PageSourceSearch

https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html

html flooringinc.com collected 2026-10-03 19:27:20 UTC 1,633,768 bytes, 22,204 lines download raw bytes

1<!doctype html>
2<html lang="en">
3<head prefix="og: http://ogp.me/ns# category: http://ogp.me/ns/category#">
4    <meta charset="utf-8"/>
4<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1120151136",accountID:"3731713",trustKey:"1322840",xpid:"VwEEUFFSCxABVVBQAQACV1cJ",licenseKey:"NRJS-d3390ca2649c82069a5",applicationID:"1112615138",browserID:"1120151136"};;/*! For license information please see nr-loader-spa-1.323.0.min.js.LICENSE.txt */
5(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.323.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
5e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof a.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},7485(e,t,r){"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},7560(e,t,r){"use strict";r.d(t,{N:()=>a,j:()=>c});var n=r(9119),i=r(944);const s=(0,r(6389).J)(e=>(0,i.R)(80,e));function a(e){if(!Array.isArray(e?.assets)||!e.assets.length)return;
5const t=e.assets.map(o).filter(Boolean);return t.length?{assets:t,scripts:t.filter(e=>e.isScript)}:void 0}function o(e){if(!e||"object"!=typeof e)return;const{matcher:t,type:r}=e;let i="string"==typeof t&&t.endsWith(".js");return void 0!==r&&(!function(e){return"script"===e||"asset"===e}(r)?s(r):i=function(e){return"script"===e}(r)),a=t,"[object RegExp]"===Object.prototype.toString.call(a)?{pattern:t,test:e=>(t.lastIndex=0,t.test((0,n.L)(e))),isScript:i}:"string"==typeof t&&t.length>0?{pattern:t,test:e=>(0,n.L)(e).includes(t),isScript:i}:void s(t);var a}function c(e,t,{scriptsOnly:r=!1}={}){if(!e||!t)return!1;return(r?e.scripts:e.assets).some(e=>e.test(t))}},5718(e,t,r){"use strict";r.d(t,{xo:()=>T,AZ:()=>v,cI:()=>g,Qr:()=>A,QL:()=>y});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=v(y())[0]}catch(e){u=v(e)[0]}const l=new Map;let f=[];const h=new WeakMap;function p(e){let t=h.get(e);return t||(t={weighedAssetUrls:new Set,recordManifestScriptWindow:(t,r)=>{t&&(e.scriptStart=e.scriptStart>0?Math.min(e.scriptStart,t):t),r&&(e.scriptEnd=e.scriptEnd>0?Math.max(e.scriptEnd,r):r)}},h.set(e,t)),t}function g(e){return l.get(e)}function m(e){const t=g(e);
5if(t)return t;const r=new o(e);if(l.set(e,r),l.size>1e3){const e=l.keys().next().value;l.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=m((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"))(e)){const t=m((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e}if(!f.length)return;const t=[];f.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),f=f.filter((e,r)=>!t.includes(r))})}).observe({type:"resource",buffered:!0})}function v(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function y(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function b(e,t){return(0,s.L)(e.name)===t}function E(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType,w(e,t)}function w(e,t){const r=(0,s.L)(t.name),{weighedAssetUrls:n}=p(e);n.has(r)||(n.add(r),e.totalWeight=(e.totalWeight||0)+(t.transferSize||0),"blocking"===t.renderBlockingStatus?e.renderBlocking=!0:"non-blocking"===t.renderBlockingStatus&&!0!==e.renderBlocking&&(e.renderBlocking=!1))}function R(e,t,r,n,i){if(w(e,t),"scripts"!==i&&"all"!==i)return;if("all"===i||r.isScript){const r=Math.floor(t.startTime),n=Math.floor(t.responseEnd);e.fetchStart=e.fetchStart>0?Math.min(e.fetchStart,r):r,e.fetchEnd=e.fetchEnd>0?Math.max(e.fetchEnd,n):n}if(r.isScript){const r=g((0,s.L)(t.name));if(r){const t=()=>{const{start:t,end:n}=r.script;p(e).recordManifestScriptWindow(t,n)};t(),!r.dom.end&&r.dom.value&&["load","error"].forEach(e=>r.dom.value.addEventListener(e,t,{once:!0}))}n.resolved||(e.asset=t.name,e.type=t.initiatorType,n.resolved=!0)}}function T(e,t){const r=t?.manifest;if(!r||!r.assets.length)return;const s={resolved:!1},a=new Set(r.assets);(n.gm.performance?.getEntriesByType("resource")||[]).forEach(r=>{const n=[...a].find(e=>e.test(r.name));n&&(R(e,r,n,s,t.timingMethod),a.delete(n))}),a.size&&function(e,t,r,s){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:n=>{const i=[...t].find(e=>e.test(n.name));return i&&(R(e,n,i,r,s),t.delete(i)),0===t.size}})}(e,a,s,t.timingMethod)}function A(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown",totalWeight:0,renderBlocking:void 0},a=y();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=v(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=g(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>b(e,c));if(l)E(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:r=>!!b(r,t)&&(E(e,r),!0)})}(r,c)}const h=r.correlation,m=!!t&&!!h?.claimedBy.has(t);h&&t&&h.claimedBy.add(t);const y=()=>{const e=h?.script.start;if(!m||!e)return!1;return r.registeredAt-e>1e4};let w=0,R=0;p(r).recordManifestScriptWindow=(e,t)=>{e&&(w=w>0?Math.min(w,e):e),t&&(R=R>0?Math.max(R,t):t)},Object.defineProperty(r,"scriptStart",d(()=>{const e=y()?r.registeredAt:h?.script.start??r.fetchEnd;return w>0?Math.min(e,w):e})),Object.defineProperty(r,"scriptEnd",d(()=>{const e=y()?r.registeredAt:h?.script.end??r.registeredAt;return R>0?Math.max(e,R):e}))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>m,B5:()=>g,K6:()=>u,M$:()=>
5o,Ms:()=>d,NG:()=>c,Ux:()=>h,YA:()=>p,yx:()=>l});var n=r(5718),i=r(7560),s=r(9119),a=r(9232);function o(e){return e?.type===a.f.MFE}function c(e,t){if(!y(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function d(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function u(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=(0,s.L)(e),a=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!1}):!!t.metadata.timings?.asset&&(0,s.L)(t.metadata.timings.asset)===n});return f(a).map(e=>e.metadata.target)}function l(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!0}):!!t.metadata.timings?.asset?.endsWith(e)});return f(n).map(e=>e.metadata.target)}function f(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}function h(e,t){return v(t)?o(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function p(e,t){return g(e,t)?{"child.id":e.id,"child.type":e.type,...h(void 0,t)}:{}}function g(e,t){return o(e)&&!!v(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function m(e){if(!e?.runtime)return[];if(!y(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...l(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function v(e){return 2===e?.harvestEndpointVersion}function y(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}
5(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
5;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},3962(e,t,r){"use strict";const n=r(860).K7.softNav;r.d(t,["O2",0,{INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},"OV",0,"popstate","Qu",0,{INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},"TZ",0,n,"ih",0,{IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"},"pP",0,"initialPageLoad","tC",0,["click","keydown","submit"]])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","hw",0,"api-ixn-","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({212:"nr-spa-compressor",238:"nr-spa-iframe-message-handler",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.323.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.323.0.PROD:";r.l=(n,i,s,a)=>
5{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={478:"sha512-ORjtmy+nQMgxbu0os8+oTRa5sPzbinyuWSvpZrrstVLIaHofRRlfODdH+oUmkIgeQpM+vPf3vG/4RzvCsFVh1A==",249:"sha512-o7+K6xC0z3TqynjVxpd+jgiSgqy8rrPeRcUSqt5J0Rqg5Su5CycLMYfpwiM3WBCHiNDrG5aZoXJQ6HRc335XYQ==",212:"sha512-kRvBt1IYQDBnClTEWNaE8sDFqbXXM3Vdyf972Uf4MFbJxl7u3KmdO+jdB1H4achPEoT9YtNXHswaESey6sCH0A==",238:"sha512-U5EGmyYbFVR2UMNAuZJ7fTgVVtPa5b8RPMySDwXo7z3frRdkUJ2x1VAQTLQCeBab8VlGVGRV8FiSHIn/pwN72A=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={38:0,788:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.323.0.PROD"]=self["webpackChunk:NRBA-1.323.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
5ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var w=r(9232);var R=r(7836),T=r(3241);const A={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var S=r(9908),x=r(9752);function O(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,A)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:w.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=R.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(x.Pl)&&(0,S.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var _=r(1863),k=r(4261),N=r(1738);var L=r(1687),M=r(4234),P=r(5289),I=r(5270),j=r(7767),C=r(6389),D=r(7699);const B=new WeakSet,H=new WeakMap;class W extends M.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,C.J)(()=>{(0,L.Ak)(e,this.featureName),t()}))}):(0,L.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(H.has(e))return H.get(e);const i=(async()=>
5{if((0,j.V)(e.init))try{const{setupAgentSession:t}=await r.e(478).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,S.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(238).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(478).then(r.bind(r,6589)),r.e(478).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();H.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,P.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,I.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!B.has(e)&&(B.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}O(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var U=r(6630);class K extends W{static featureName=U.T;constructor(e){var t;super(e,U.T),this.setupInspectionEvents(),t=e,(0,N.Y)(k.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,S.p)("api-"+k.Fw,[(0,_.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(478).then(r.bind(r,908)):r.e(478).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,P.sB)(t=>{e(t,"DOMContentLoaded")}),(0,P.GG)(t=>{e(t,"load")}),(0,P.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class F extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(K),O(this,e,e.loaderType||"agent"),t=this,(0,N.Y)(k.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,N.U)(t,e,r,k.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,N.Y)(k.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,S.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,N.U)(e,"enduser.id",t,k.Dl,!0)},e)}(this),function(e){(0,N.Y)(k.nb,function(t){if("string"==typeof t||null===t)return(0,N.U)(e,"application.version",t,k.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,N.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,N.Y)(k.Pv,function(t=!0){if("boolean"==typeof t){if((0,S.p)("api-"+k.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,S.p)("docHidden",[(0,_.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,S.p)("winPagehide",[(0,_.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(478).then(r.bind(r,9917))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(478).then(r.bind(r,6555)))}}var Z=r(6774),J=r(3878),X=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,X.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,_.t)()){"string"==typeof e&&(e=new Error(e)),(0,S.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,_.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,_.t)()){(0,S.p)("api-"+k.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,_.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
5null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,S.p)("api-"+k.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,_.t)()){(0,S.p)("api-"+k.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,_.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,_.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,_.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(7560),Ee=r(9119);const we=["entry","scripts","all"],Re=["name","id","type"],Te=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Ae={experimental:(0,C.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,C.J)(()=>(0,l.R)(55)),invalidTarget:(0,C.J)(e=>(0,l.R)(48,e)),deregistered:(0,C.J)(()=>(0,l.R)(68)),invalidTimingMethod:(0,C.J)(e=>(0,l.R)(80,e)),duplicateName:(0,C.J)(e=>(0,l.R)(81,e)),duplicateId:(0,C.J)(e=>(0,l.R)(82,e))};function Se(e){(0,N.Y)(k.eY,function(t){return xe(e,t)},e)}function xe(e,r){Ae.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=w.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:w.f.BA},r.manifest=(0,be.N)(r.manifest),void 0===r.timingMethod||we.includes(r.timingMethod)||(Ae.invali
5dTimingMethod(r.timingMethod),r.timingMethod=void 0);const n=(0,le.Qr)(r);r.manifest&&(0,le.xo)(n,r);const i=ve(r,n),s=(0,Ee.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||w.f.BA,"parent.id":r.parent?.id})}),Object.entries(r.tags).forEach(([e,t])=>{Re.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Ae.disabled),u(r.id)&&u(r.name)||d(()=>Ae.invalidTarget(r)),c.forEach(e=>{try{const{name:t,id:n}=e.metadata.target;t===r.name&&n!==r.id&&Ae.duplicateName(r),n===r.id&&t!==r.name&&Ae.duplicateId(r)}catch(e){}});const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Ae.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,_.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,Ee.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
5imeToRegister:n.registeredAt,totalWeight:n.totalWeight,...void 0!==n.renderBlocking&&{renderBlocking:n.renderBlocking},...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==xe)return;const s=f.metadata.events.latestTimestamp??(0,_.t)();f.metadata.events.latestTimestamp=void 0;const a=Te.get(r)||"unknown";(0,S.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class Oe extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,N.Y)(k.o5,(e,r)=>ie(e,r,t),t),function(e){(0,N.Y)(k.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,N.Y)(k.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Se(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,S.p)("ierr",[ee(t),(0,_.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,S.p)("err",[te(t),(0,_.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,S.p)("err",[re(t),(0,_.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(478).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var _e=r(8990);let ke=1;function Ne(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,_e.I)(e,"nr@id",function(){return ke++})}function Le(e){if("string"==typeof e)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,X.A)(e).length}catch(e){return}}}var Me=r(8139),Pe=r(3434),Ie=r(5732);const je={},Ce=["open","send","setRequestHeader"];function De(e,t){var r=e||R.ee;const n=function(e){return(e||R.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(je[n.debugId]++)return n;je[n.debugId]=1,(0,Me.u)(r,t);var i=(0,Pe.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,Ie.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,J.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Be="fetch-",He=Be+"body-",We=["arrayBuffer","blob","json","text","formData"],Ue=g.gm.Request,Ke=g.gm.Response,Fe="prototype";const Ve={};function ze(e,t){const r=function(e){return(e||R.ee).get("fetch")}(e);if(!(Ue&&Ke&&g.gm.fetch))return r;if(Ve[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,Ie.$5)(t);var o;r.emit(i+"before-start",[e],n),n[R.P]&&n[R.P].dt&&(o=n[R.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
5return Ve[r.debugId]=1,We.forEach(e=>{n(Ue[Fe],e,He),n(Ke[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s,a=(0,ye.ZF)(),o=(0,ye.el)(),c=Date.now();this.agentRef.runtime?.timeKeeper?.ready&&(s=Math.floor(this.agentRef.runtime.timeKeeper.correctAbsoluteTimestamp(c)));var d={spanId:a,traceId:o,timestamp:c,timestampCorrected:s};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(d.traceContextParentHeader=this.generateTraceContextParentHeader(a,o),d.traceContextStateHeader=this.generateTraceContextStateHeader(a,s??c,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(d.newrelicHeader=this.generateTraceHeader(a,o,s??c,r,n,i)),d}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ge.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(e),this.handler=(e,t,r,n)=>(0,S.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){O(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Le(i);a&&(n.txSize=a)}this.startTime=(0,_.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
5!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(rt,[e])}catch(e){}}};for(var o=0;o<Xe;o++)t.addEventListener(Je[o],this.listener,(0,J.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function h(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,_.t)()}function v(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof et&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,_.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,_.t)()-this.xhrCbStart,this.onload,t],t)}function w(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,Ge.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function R(e,t){this.params={},this.metrics={},this.startTime=(0,_.t)(),this.dt=t;let[r,n={}]=e;$e(this,Ze(r));const i=(""+(r&&r instanceof Qe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Le(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,_.t)(),this.params||(this.params={}),(0,Ye.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>x(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Le(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(rt,[e])}).finally(()=>{n()}):n()}function A(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Xe;t++)e.removeEventListener(Je[t],this.listener,!1);if(t.aborted)return;if((0,Ye.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):O(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Le(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(rt,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>x(i,this,e))}function x(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function O(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Le(e.response):"text"===r||""===r||void 0===r?Le(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(tt)>=0){var s=n.getResponseHeader(tt);s&&((0,S.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",w),r.on("fetch-start",R),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(478).then(r.bind(r,3845)))}}const it={},st=["pushState","replaceState"];function at(e,t){const r=function(e){return(e||R.ee).get("history")}(e);return!g.RI||it[r.debugId]++||(it[r.debugId]=1,(0,Pe.YM)(r,void 0,t).inPlace(window.history,st,"-")),r}var ot=r(3738);function ct(e){(0,N.Y)(k.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,S.p)(q.XG,[k.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:k.BL,start:r,origin:"nr"}),(0,S.p)("api-"+k.hG,[n,k.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:dt,bD:ut,d3:lt,Kp:ft,TZ:ht,Lc:pt,uP:gt,Rz:mt}=ot;class vt extends W{static featureName=ht;constructor(e){var n;super(e,ht),n=e,(0,N.Y)(k.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,S.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),ct(e);
5if(!(0,j.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;at(i,e),this.eventsEE=(0,Me.u)(i,e),this.eventsEE.on(gt,function(e,t){this.bstStart=(0,_.t)()}),this.eventsEE.on(pt,function(e,r){(0,S.p)("bst",[e[0],r,this.bstStart,(0,_.t)()],void 0,t.K7.sessionTrace,i)}),i.on(mt+lt,function(e){this.time=(0,_.t)(),this.startPath=location.pathname+location.hash}),i.on(mt+ft,function(e){(0,S.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,S.p)(dt,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ut,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(478).then(r.bind(r,6974)),{resourceObserver:s})}}var yt=r(733),bt=r(6344);class Et extends W{static featureName=bt.TZ;#i;recorder;constructor(e){var n;let i;super(e,bt.TZ),n=e,(0,N.Y)(k.CH,function(){(0,S.p)(k.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,N.Y)(k.Tb,function(){(0,S.p)(k.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,yt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,I.SR)(e.init)&&this.ee.on(k.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(bt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(478).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,S.p)(bt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,I.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(478),r.e(249)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,bt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(bt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var wt=r(3962);class Rt extends W{static featureName=wt.TZ;constructor(e){if(super(e,wt.TZ),function(e){const r=e.ee.get("tracer");function n(){}(0,N.Y)(k.dT,function(e){return(new n).get("object"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var s={},a=this,o="function"==typeof i;return(0,S.p)(q.xV,["API/createTracer/called"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((o?"":"no-")+"fn-start",[(0,_.t)(),a,o],s),o)try{return i.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw r.emit("fn-err",[arguments,this,t],s),t}finally{r.emit("fn-end",[(0,_.t)()],s)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach(r=>{N.Y.apply(this,[r,function(){return(0,S.p)(k.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,N.Y)(k.PA,function(){(0,S.p)(k.hw+"routeName",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!g.RI||!(0,i.dV)().o.MO)return;const n=at(this.ee,e);try{this.removeOnAbort=new AbortController}catch(e){}wt.tC.forEach(e=>{(0,J.sp)(e,e=>{c(e)},!0,this.removeOnAbort?.signal)}
5);const s=()=>(0,S.p)("newURL",[(0,_.t)(),""+window.location],void 0,this.featureName,this.ee);n.on("pushState-end",s),n.on("replaceState-end",s),(0,J.sp)(wt.OV,e=>{c(e),(0,S.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let a=!1;const o=new((0,i.dV)().o.MO)((e,t)=>{a||(a=!0,requestAnimationFrame(()=>{(0,S.p)("newDom",[(0,_.t)()],void 0,this.featureName,this.ee),a=!1}))}),c=(0,C.s)(e=>{"loading"!==document.readyState&&((0,S.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=>r.e(478).then(r.bind(r,4393)),{domObserver:o})}}var Tt=r(981);const At={},St=new Set;function xt(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class Ot{constructor(e,t){this.timestamp=(0,_.t)(),this.currentUrl=(0,Ee.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,Ee.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class _t extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,N.Y)(k.hG,(e,t)=>ce(e,t,c),c),function(e){(0,N.Y)(k.fF,(t,r)=>ue(t,r,e),e)}(e),ct(e),Se(e),function(e){(0,N.Y)(k.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(At[r.debugId]++)return r;At[r.debugId]=1,(0,V.G)(()=>{const e=(0,_.t)();St.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
5class n extends WebSocket{static name=Tt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new Ot(e[0],e[1]),this.targets=(0,Ie.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,_.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),St.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=xt(e.data);this.nrData.messageOrigin??=(0,Ee.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,_.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,St.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=xt(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,S.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s){if("function"==typeof g.gm.ReportingObserver){const l=new g.gm.ReportingObserver(e=>{e.forEach(e=>{(0,S.p)("spv",[kt(e),(0,_.t)()],void 0,t.K7.genericEvents,this.ee)}),l.disconnect()},{types:["csp-violation"],buffered:!0});l.observe()}g.gm.addEventListener("securitypolicyviolation",e=>{(0,S.p)("spv",[kt(e),e.timeStamp],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal))}if(g.RI){if(ze(this.ee,e),De(this.ee,e),d=at(this.ee,e),e.init.user_actions.enabled){function f(t){const r=(0,Ge.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function h(){d.emit("navChange")}o.Zp.forEach(e=>(0,J.sp)(e,e=>(0,S.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
5h(e=>{const t=(0,C.s)(e=>{(0,S.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,J.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{f(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!f(Ze(e[0]))&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",h),d.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,J.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",h,(0,J.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,S.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(478).then(r.bind(r,8019))):this.deregisterDrain()}}function kt(e){const t=e.body??e;return{blockedUrl:t.blockedURL??e.blockedURI,documentUrl:t.documentURL??e.documentURI,effectiveDirective:t.effectiveDirective,originalPolicy:t.originalPolicy,sourceFile:t.sourceFile,statusCode:t.statusCode,lineNumber:t.lineNumber,columnNumber:t.columnNumber,disposition:"reporting"===t.disposition?"report":t.disposition,sample:t.sample,referrer:t.referrer}}var Nt=r(2646);const Lt=new Map;function Mt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||R.ee).get("logger")}(e),o=(0,Pe.YM)(a,void 0,s),c=new Nt.y(R.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Pe.Jt]||t[r];return Lt.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>Lt.get(d),void 0,!0),a}var Pt=r(1910);class It extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,N.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,N.Y)(k.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Mt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Se(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Pt.i)(g.gm.console[t]),Mt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(478).then(r.bind(r,5288)))}}new F({features:[nt,K,G,vt,Et,Y,Oe,_t,It,Rt],loaderType:"spa"})})()})();</script>
5
6<meta name="title" content="Shop Best Rubber Flooring: Tiles, Rolls, Mats | Gym &amp; Playground"/>
7<meta name="description" content="Shop the best Traxxon rubber flooring for gyms, playgrounds &amp; commercial use. Durable rubber tiles, rolls &amp; mats, indoor &amp; outdoor. Lowest prices!"/>
8<meta name="keywords" content="gym flooring, rubber flooring, rubber mat, rubber mats, rubber gym flooring, basement flooring, rubber floor tiles, resilient flooring, rubber floor mat, rubber floor, rubber matting, playground flooring, rolled rubber flooring, rubber tile, rubber floors, rubber rolls, rubberized flooring, interlocking rubber flooring, commercial rubber flooring, playground rubber tiles, recycled rubber flooring, industrial rubber flooring, durable rubber flooring "/>
9<meta name="robots" content="INDEX,FOLLOW"/>
10<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
11<title>Shop Best Rubber Flooring: Tiles, Rolls, Mats | Gym &amp; Playground</title>
12<link  type="text/css"  rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/css/styles.min.css" />
13<script  type="text/javascript"  defer="defer" src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Hyva_MagentoDataServices/js/storefront-event-collector.min.js"></script>
vendor: 1 bytes, line 13
13
14<script  type="text/javascript"  defer="defer" src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Hyva_MagentoDataServices/js/storefront-events-sdk.min.js"></script>
vendor: 1 bytes, line 14
14
15<script  type="text/javascript"  defer="defer" src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Hyva_MagentoProductRecommendations/js/recs-sdk.min.js"></script>
vendor: 1 bytes, line 15
15
16<script  type="text/javascript"  defer="defer" src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Hyva_MagentoProductRecommendationsLayout/js/recs-sdk.min.js"></script>
vendor: 1 bytes, line 16
16
17<script  type="text/javascript"  async="async" src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Hyva_MirasvitLayeredNavigation/js/lib/nouislider.min.js"></script>
17
18<link  rel="canonical" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html" />
19<link  rel="icon" type="image/x-icon" href="https://www.flooringinc.com/media/favicon/stores/1/fav.png" />
20<link  rel="shortcut icon" type="image/x-icon" href="https://www.flooringinc.com/media/favicon/stores/1/fav.png" />
21
22<!-- Plausible Script Start -->
23
24<script defer data-domain="flooringinc.com" src="https://plausible.io/js/script.file-downloads.hash.outbound-links.pageview-props.revenue.tagged-events.js"></script>
vendor: 2 bytes, line 24
24
25<script>window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }</script>
25
26
27<!-- Plausible Script Ends -->
28
29<!--My8cKJTuUilt2Vvmb0igB9BsOCrMSS2F-->
30
31<link rel="preconnect" href="https://www.googletagmanager.com" crossorigin>
32<link rel="dns-prefetch" href="https://www.googletagmanager.com">
33<link rel="preload" href="https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrJJfecg.woff2" as="font" type="font/woff2" crossorigin="anonymous"/>
34
35<style>
36.needsclick.kl-teaser-UEa7DA { display:none!important; }
37.bg-white.w-full.max-w-\[580px\].text-center.rounded-lg.shadow-lg {
38    max-width: 580px;
39}
40</style>
41    
42<script nonce="dW0zODRtOWZjdmJ0bDF4NXV6NmVlNHB0bTFmZWRxYTU=">
43    window.getWpGA4Cookie = function(name) {
44        match = document.cookie.match(new RegExp(name + '=([^;]+)'));
45        if (match) return decodeURIComponent(match[1].replace(/\+/g, ' ')) ;
46    };
47
48    window.ga4AllowServices = false;
49
50    var isCookieRestrictionModeEnabled = 0,
51        currentWebsiteId = 1,
52        cookieRestrictionName = 'user_allowed_save_cookie';
53
54    if (isCookieRestrictionModeEnabled) {
55        allowedCookies = window.getWpGA4Cookie(cookieRestrictionName);
56
57        if (allowedCookies !== undefined) {
58            allowedWebsites = JSON.parse(allowedCookies);
59
60            if (allowedWebsites[currentWebsiteId] === 1) {
61                window.ga4AllowServices = true;
62            }
63        }
64    } else {
65        window.ga4AllowServices = true;
66    }
67</script>
67
68            
68<script nonce="dW0zODRtOWZjdmJ0bDF4NXV6NmVlNHB0bTFmZWRxYTU=">
69        if (window.ga4AllowServices) {
70            window.dataLayer = window.dataLayer || [];
71                        var dl4Objects = [{"pageName":"Shop Best Rubber Flooring: Tiles, Rolls, Mats | Gym & Playground","pageType":"category"},{"ecommerce":{"items":[{"item_name":"Rubber Gym Flooring Rolls - 4ft Wide (Custom Cut)","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"294452","price":3.96,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":1},{"item_name":"3\/8\" Heavy Duty Rubber Rolls | Commercial Gym Flooring","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"305543","price":6.33,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":2},{"item_name":"1\/2\" Mega Rubber Rolls | Commercial Gym Flooring","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"269393","price":8.29,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":3},{"item_name":"NextGen XL Rubber Rolls - Pro Series | 5ft Wide, Custom-Cut, Commercial-Grade Flooring","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"420159","price":8.25,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":4},{"item_name":"Next-Day Rubber Rolls \u2013 Custom Cut","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"327947","price":4.76,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":5},{"item_name":"Goliath XL Rubber Tiles","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"420108","price":30.11,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":6},{"item_name":"3\/4\" Premium Gym Floor Tiles \u2013 Vulcanized Rubber","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"308597","price":22.09,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":7},{"item_name":"1\/2\" Premium Gym Floor Tiles \u2013 Vulcanized Rubber","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"288551","price":16.42,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":8},{"item_name":"PowerLock Rubber Gym Floor Tiles","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"304232","price":6.06,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":9},{"item_name":"1\/4\" Tough Rubber Flooring Rolls","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"316394","price":4.6,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":10},{"item_name":"Dura Lock Rubber Tiles","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"275153","price":6.72,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":11},{"item_name":"1\/2\" Pre-Cut Mega Rubber Rolls | 4' x 15', 25', or 50'","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"298961","price":162,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":12},{"item_name":"Jamboree Rubber Playground Tiles\u2122","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"289901","price":26.99,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":13},{"item_name":"Regrind Rubber Rolls","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"290504","price":4.96,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":14},{"item_name":"1\/2\" Mega Gym Mats | Rubber Mats & Utility Floor Mats","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"302564","price":47.49,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":15}],"item_list_id":"2333","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring"},"event":"view_item_list"},{"ecommerce":{"items":[{"item_name":"8mm Strong Rubber Gym Flooring Rolls","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"292697","price":5.65,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":16},{"item_name":"15mm Impact Rubber Rolls - Designer Series","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"284975","price":25.96,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":17},{"item_name":"Impact Rubber Flooring Rolls - Wood Grain Vinyl Top Layer","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"281438","price":55.5,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":18},{"item_name":"1\" Monster Rubber Tiles","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"301589","price":35.96,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":19},{"item_name":"3\/4\" Olympian Rubber Rolls | Commercial Gym Flooring","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"304106","price":13,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":20},{"item_name":"1\/4\" Tough Rubber Mats | Fitness Mats & Utility Floor Mats ","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"277442","price":63.74,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":21}
71,{"item_name":"Budget Rubber Flooring Rolls - Best Value","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"421534","price":3.16,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":22},{"item_name":"8mm Strong Rubber Rolls - Designer Series","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"305060","price":11.38,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":23},{"item_name":"Eco-Flec Rubber Rolls","affiliation":"Flooring Inc. - Main Website Store - Default Store View","item_id":"304136","price":3.96,"item_brand":"","item_category":"Flooring By Category","item_category2":"Rubber Flooring","item_category3":"All Rubber Flooring","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring","item_list_id":"2333","index":24}],"item_list_id":"2333","item_list_name":"Flooring By Category\/Rubber Flooring\/All Rubber Flooring"},"event":"view_item_list"}];
72            for (var i in dl4Objects) {
73                window.dataLayer.push({ecommerce: null});
74                window.dataLayer.push(dl4Objects[i]);
75            }
76                        var wpGA4Cookies = ['wp_ga4_user_id','wp_ga4_customerGroup'];
77            wpGA4Cookies.map(function (cookieName) {
78                var cookieValue = window.getWpGA4Cookie(cookieName);
79                if (cookieValue) {
80                    var dl4Object = {};
81                    dl4Object[cookieName.replace('wp_ga4_', '')] = cookieValue;
82                    window.dataLayer.push(dl4Object);
83                }
84            });
85        }
86    </script>
86
87
88    <!-- Google Tag Manager -->
89<script nonce="dW0zODRtOWZjdmJ0bDF4NXV6NmVlNHB0bTFmZWRxYTU=" >  if (window.ga4AllowServices) { 
90
91window.addEventListener('init-external-scripts', () => {
vendor: 335 bytes, lines 91-97
91
92
93(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
94new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
95j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
96'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
97})(window,document,'script','dataLayer','
97GTM-5XR7MB7
vendor: 7 bytes, lines 97-98
97');
98
99}, {once: true, passive: true});
100
101} </script>
101
102<!-- End Google Tag Manager -->
103
104
105<script nonce="dW0zODRtOWZjdmJ0bDF4NXV6NmVlNHB0bTFmZWRxYTU&#x3D;">var prCookieService={defaultAttributes:{path:'/'},converter:{write:function(value){return encodeURIComponent(value);},read:function(value){return decodeURIComponent(value)}},decode:function(string){return string.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent);},set:function(key,value,attributes){if(typeof document==='undefined'){return;}
106attributes=Object.assign(this.defaultAttributes,attributes);if(typeof attributes.expires==='number'){attributes.expires=new Date(new Date()*1+attributes.expires*864e+5);}
107attributes.expires=attributes.expires?attributes.expires.toUTCString():'';try{var result=JSON.stringify(value);if(/^[\{\[]/.test(result)){value=result;}}catch(e){}
108value=this.converter.write(value);key=this.converter.write(String(key)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var stringifiedAttributes='';for(var attributeName in attributes){if(!attributes[attributeName]){continue;}
109stringifiedAttributes+='; '+attributeName;if(attributes[attributeName]===true){continue;}
110stringifiedAttributes+='='+attributes[attributeName].split(';')[0];}
111return(document.cookie=key+'='+value+stringifiedAttributes);},remove:function(key,attributes){this.set(key,'',{...attributes,...{expires:-1}});},get:function(key,json=false){if(typeof document==='undefined'){return;}
112var jar={};var cookies=document.cookie?document.cookie.split('; '):[];var i=0;for(;i<cookies.length;i++){var parts=cookies[i].split('=');var cookie=parts.slice(1).join('=');if(!json&&cookie.charAt(0)==='"'){cookie=cookie.slice(1,-1);}
113try{var name=this.converter.write(parts[0]);cookie=this.converter.read(cookie);if(json){try{cookie=JSON.parse(cookie);}catch(e){}}
114jar[name]=cookie;if(key===name){break;}}catch(e){}}
115return key?jar[key]:jar;}}</script>
115
116
117<script nonce="dW0zODRtOWZjdmJ0bDF4NXV6NmVlNHB0bTFmZWRxYTU&#x3D;">var prGlobalPrivacyControlApi={config:{"canProcessSignal":true,"isGeotargetingEnabled":true,"geotargetingApiEndpoint":"https:\/\/www.flooringinc.com\/rest\/V1\/pr-global-privacy-control\/geo-targeting\/is-applicable"},isApplicableForUser:false,isConfigured:false,configure:function(){const setConfigurationResult=(isApplicable)=>{this.isApplicableForUser=isApplicable;this.isConfigured=true;if(isApplicable){this.signalHandlers.processPendingHandlers();}
118document.dispatchEvent(new Event('pr-global-privacy-control-api:configured'));};if(!this.config.canProcessSignal){setConfigurationResult(false);return;}
119if(this.cache.get('isApplicableForUser')){setConfigurationResult(this.cache.get('isApplicableForUser'));return;}
120if(!navigator.globalPrivacyControl){setConfigurationResult(false);return;}
121if(!this.config.isGeotargetingEnabled){this.cache.set('isApplicableForUser',true);setConfigurationResult(true);return;}
122this.geotargeting.isApplicable().then(result=>{this.cache.set('isApplicableForUser',result);setConfigurationResult(result);}).catch(()=>setConfigurationResult(true));},shouldApply:function(){if(!this.isConfigured){return false;}
123return this.isApplicableForUser;},};prGlobalPrivacyControlApi.geotargeting={isApplicable:async function(){return fetch(prGlobalPrivacyControlApi.config.geotargetingApiEndpoint,{method:'POST',credentials:'include'}).then(r=>r.json());}};prGlobalPrivacyControlApi.signalHandlers={handlers:[],addHandler:function(callback){let handler={callback:callback,executed:false}
124this.handlers.push(handler);if(prGlobalPrivacyControlApi.isConfigured&&prGlobalPrivacyControlApi.shouldApply()){handler.callback();handler.executed=true;}},processPendingHandlers:function(){if(!prGlobalPrivacyControlApi.shouldApply()){return;}
125if(!prCookieService.get('pr-gpc-signal-handled')){prCookieService.set('pr-gpc-signal-handled',true,{expires:null});}
126this.handlers.forEach(function(handler){if(false===handler.executed){handler.callback();handler.executed=true;}}.bind(this));}};prGlobalPrivacyControlApi.cache={storageKey:'pr_global_privacy_control_api_cache',get:function(key){try{let raw=sessionStorage.getItem(this.storageKey);let cacheData=JSON.parse(raw);return cacheData.hasOwnProperty(key)?cacheData[key]:null;}catch(e){return null;}},set:function(key,value){try{let cacheData=JSON.parse(sessionStorage.getItem(this.storageKey)||'{}');cacheData[key]=value;sessionStorage.setItem(this.storageKey,JSON.stringify(cacheData));}catch(e){}},};prGlobalPrivacyControlApi.configure();</script>
vendor: 1 bytes, line 126
126
127<script  type="text/javascript"  data-routing="commerce=rum" defer="defer" src="https://rum.hlx.page/.rum/@adobe/helix-rum-js@^2/dist/rum-standalone.js"></script>
127
128
129
130    
130<script type="text&#x2F;javascript" nonce="dW0zODRtOWZjdmJ0bDF4NXV6NmVlNHB0bTFmZWRxYTU&#x3D;">(()=>{let userAllowedCookies=prCookieService.get('user_allowed_save_cookie');if(!userAllowedCookies){return;}
131let customerConsent=prCookieService.get('pr-cookie-consent');if(!customerConsent){return;}
132try{customerConsent=JSON.parse(customerConsent);}catch(error){return;}
133const categoryKey='marketing';if(customerConsent.includes('all')||customerConsent.includes(categoryKey)){return;}
134let intervalId=setInterval(prCookieService.set.bind(prCookieService,'mg_dnt',true,{expires:null}),500);document.addEventListener('pr-cookie-consent-api:configured',()=>{clearInterval(intervalId);});})();</script>
134
135
136<!-- Critical CSS for <lite-youtube> element to avoid CLS: https://web.dev/cls/ -->
137<style>
138    lite-youtube{background-color:#000;position:relative;display:block;contain:content;background-position:center center;background-size:cover;cursor:pointer}lite-youtube::after{content:"";display:block;padding-bottom:calc(100% / (16 / 9))}</style>
139<script>
140    var BASE_URL = 'https://www.flooringinc.com/';
141    var THEME_PATH = 'https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US';
142    var COOKIE_CONFIG = {
143        "expires": null,
144        "path": "\u002F",
145        "domain": ".www.flooringinc.com",
146        "secure": true,
147        "lifetime": "3600",
148        "cookie_restriction_enabled": false    };
149    var CURRENT_STORE_CODE = 'default';
150    var CURRENT_WEBSITE_ID = '1';
151
152    window.hyva = window.hyva || {}
153
154    window.cookie_consent_groups = window.cookie_consent_groups || {}
155    window.cookie_consent_groups['necessary'] = true;
156
157    window.cookie_consent_config = window.cookie_consent_config || {};
158    window.cookie_consent_config['necessary'] = [].concat(
159        window.cookie_consent_config['necessary'] || [],
160        [
161            'user_allowed_save_cookie',
162            'form_key',
163            'mage-messages',
164            'private_content_version',
165            'mage-cache-sessid',
166            'last_visited_store',
167            'section_data_ids'
168        ]
169    );
170</script>
vendor: 1 bytes, line 170
170
171<script>
172    'use strict';
173    (function( hyva, undefined ) {
174
175        function lifetimeToExpires(options, defaults) {
176
177            const lifetime = options.lifetime || defaults.lifetime;
178
179            if (lifetime) {
180                const date = new Date;
181                date.setTime(date.getTime() + lifetime * 1000);
182                return date;
183            }
184
185            return null;
186        }
187
188        function generateRandomString() {
189
190            const allowedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
191                length = 16;
192
193            let formKey = '',
194                charactersLength = allowedCharacters.length;
195
196            for (let i = 0; i < length; i++) {
197                formKey += allowedCharacters[Math.round(Math.random() * (charactersLength - 1))]
198            }
199
200            return formKey;
201        }
202
203        const sessionCookieMarker = {noLifetime: true}
204
205        const cookieTempStorage = {};
206
207        const internalCookie = {
208            get(name) {
209                const v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
210                return v ? v[2] : null;
211            },
212            set(name, value, days, skipSetDomain) {
213                let expires,
214                    path,
215                    domain,
216                    secure,
217                    samesite;
218
219                const defaultCookieConfig = {
220                    expires: null,
221                    path: '/',
222                    domain: null,
223                    secure: false,
224                    lifetime: null,
225                    samesite: 'lax'
226                };
227
228                const cookieConfig = window.COOKIE_CONFIG || {};
229
230                expires = days && days !== sessionCookieMarker
231                    ? lifetimeToExpires({lifetime: 24 * 60 * 60 * days, expires: null}, defaultCookieConfig)
232                    : lifetimeToExpires(window.COOKIE_CONFIG, defaultCookieConfig) || defaultCookieConfig.expires;
233
234                path = cookieConfig.path || defaultCookieConfig.path;
235                domain = !skipSetDomain && (cookieConfig.domain || defaultCookieConfig.domain);
236                secure = cookieConfig.secure || defaultCookieConfig.secure;
237                samesite = cookieConfig.samesite || defaultCookieConfig.samesite;
238
239                document.cookie = name + "=" + encodeURIComponent(value) +
240                    (expires && days !== sessionCookieMarker ? '; expires=' + expires.toGMTString() : '') +
241                    (path ? '; path=' + path : '') +
242                    (domain ? '; domain=' + domain : '') +
243                    (secure ? '; secure' : '') +
244                    (samesite ? '; samesite=' + samesite : 'lax');
245            },
246            isWebsiteAllowedToSaveCookie() {
247                const allowedCookies = this.get('user_allowed_save_cookie');
248                if (allowedCookies) {
249                    const allowedWebsites = JSON.parse(unescape(allowedCookies));
250
251                    return allowedWebsites[CURRENT_WEBSITE_ID] === 1;
252                }
253                return false;
254            },
255            getGroupByCookieName(name) {
256                const cookieConsentConfig = window.cookie_consent_config || {};
257                let group = null;
258                for (let prop in cookieConsentConfig) {
259                    if (!cookieConsentConfig.hasOwnProperty(prop)) continue;
260                    if (cookieConsentConfig[prop].includes(name)) {
261                        group = prop;
262                        break;
263                    }
264                }
265                return group;
266            },
267            isCookieAllowed(name) {
268                const cookieGroup = this.getGroupByCookieName(name);
269                return cookieGroup
270                    ? window.cookie_consent_groups[cookieGroup]
271                    : this.isWebsiteAllowedToSaveCookie();
272            },
273            saveTempStorageCookies() {
274                for (const [name, data] of Object.entries(cookieTempStorage)) {
275                    if (this.isCookieAllowed(name)) {
276                        this.set(name, data['value'], data['days'], data['skipSetDomain']);
277                        delete cookieTempStorage[name];
278                    }
279                }
280            }
281        };
282
283        hyva.getCookie = (name) => {
284            const cookieConfig = window.COOKIE_CONFIG || {};
285
286            if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) {
287                return cookieTempStorage[name] ? cookieTempStorage[name]['value'] : null;
288            }
289
290            return internalCookie.get(name);
291        }
292
293        hyva.setCookie = (name, value, days, skipSetDomain) => {
294            const cookieConfig = window.COOKIE_CONFIG || {};
295
296            if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) {
297                cookieTempStorage[name] = {value, days, skipSetDomain};
298                return;
299            }
300            return internalCookie.set(name, value, days, skipSetDomain);
301        }
302
303
304        hyva.setSessionCookie = (name, value, skipSetDomain) => {
305            return hyva.setCookie(name, value, sessionCookieMarker, skipSetDomain)
306        }
307
308        hyva.getBrowserStorage = () => {
309            const browserStorage = window.localStorage || window.sessionStorage;
310            if (!browserStorage) {
311                console.warn('Browser Storage is unavailable');
312                return false;
313            }
314            try {
315                browserStorage.setItem('storage_test', '1');
316                browserStorage.removeItem('storage_test');
317            } catch (error) {
318                console.warn('Browser Storage is not accessible', error);
319                return false;
320            }
321            return browserStorage;
322        }
323
324        hyva.postForm = (postParams) => {
325            const form = document.createElement("form");
326
327            let data = postParams.data;
328
329            if (! postParams.skipUenc && ! data.uenc) {
330                data.uenc = btoa(window.location.href);
331            }
332            form.method = "POST";
333            form.action = postParams.action;
334
335            Object.keys(postParams.data).map(key => {
336                const field = document.createElement("input");
337                field.type = 'hidden'
338                field.value = postParams.data[key];
339                field.name = key;
340                form.appendChild(field);
341            });
342
343            const form_key = document.createElement("input");
344            form_key.type = 'hidden';
345            form_key.value = hyva.getFormKey();
346            form_key.name="form_key";
347            form.appendChild(form_key);
348
349            document.body.appendChild(form);
350
351            form.submit();
352        }
353
354        hyva.getFormKey = function () {
355            let formKey = hyva.getCookie('form_key');
356
357            if (!formKey) {
358                formKey = generateRandomString();
359                hyva.setCookie('form_key', formKey);
360            }
361
362            return formKey;
363        }
364
365        hyva.formatPrice = (value, showSign, options = {}) => {
366            const formatter = new Intl.NumberFormat(
367                'en\u002DUS',
368                Object.assign({
369                    style: 'currency',
370                    currency: 'USD',
371                    signDisplay: showSign ? 'always' : 'auto'
372                }, options)
373            );
374            return (typeof Intl.NumberFormat.prototype.formatToParts === 'function') ?
375                formatter.formatToParts(value).map(({type, value}) => {
376                    switch (type) {
377                        case 'currency':
378                            return '\u0024' || value;
379                        case 'minusSign':
380                            return '- ';
381                        case 'plusSign':
382                            return '+ ';
383                        default :
384                            return value;
385                    }
386                }).reduce((string, part) => string + part) :
387                formatter.format(value);
388        }
389
390        const formatStr = function (str, nStart) {
391            const args = Array.from(arguments).slice(2);
392
393            return str.replace(/(%+)([0-9]+)/g, (m, p, n) => {
394                const idx = parseInt(n) - nStart;
395
396                if (args[idx] === null || args[idx] === void 0) {
397                    return m;
398                }
399                return p.length % 2
400                    ? p.slice(0, -1).replace('%%', '%') + args[idx]
401                    : p.replace('%%', '%') + n;
402            })
403        }
404
405        hyva.str = function (string) {
406            const args = Array.from(arguments);
407            args.splice(1, 0, 1);
408
409            return formatStr.apply(undefined, args);
410        }
411
412        hyva.strf = function () {
413            const args = Array.from(arguments);
414            args.splice(1, 0, 0);
415
416            return formatStr.apply(undefined, args);
417        }
418
419        /**
420         * Take a html string as `content` parameter and
421         * extract an element from the DOM to replace in
422         * the current page under the same selector,
423         * defined by `targetSelector`
424         */
425        hyva.replaceDomElement = (targetSelector, content) => {
426            // Parse the content and extract the DOM node using the `targetSelector`
427            const parser = new DOMParser();
428            const doc = parser.parseFromString(content, 'text/html');
429            const contentNode = doc.querySelector(targetSelector);
430
431            // Bail if content can't be found
432            if (!contentNode) {
433                return;
434            }
435
436            hyva.activateScripts(contentNode)
437
438            // Replace the old DOM node with the new content
439            document.querySelector(targetSelector).replaceWith(contentNode);
440
441            // Reload customerSectionData and display cookie-messages if present
442            window.dispatchEvent(new CustomEvent("reload-customer-section-data"));
443            hyva.initMessages();
444        }
445
446        hyva.activateScripts = (contentNode) => {
447            // Extract all the script tags from the content.
448            // Script tags won't execute when inserted into a dom-element directly,
449            // therefore we need to inject them to the head of the document.
450            const tmpScripts = contentNode.getElementsByTagName('script');
451
452            if (tmpScripts.length > 0) {
453                // Push all script tags into an array
454                // (to prevent dom manipulation while iterating over dom nodes)
455                const scripts = [];
456                for (let i = 0; i < tmpScripts.length; i++) {
457                    scripts.push(tmpScripts[i]);
458                }
459
460                // Iterate over all script tags and duplicate+inject each into the head
461                for (let i = 0; i < scripts.length; i++) {
462                    let script = document.createElement('script');
463                    script.innerHTML = scripts[i].innerHTML;
464
465                    document.head.appendChild(script);
466
467                    // Remove the original (non-executing) node from the content
468                    scripts[i].parentNode.removeChild(scripts[i]);
469                }
470            }
471            return contentNode;
472        }
473
474        const replace = {['+']: '-', ['/']: '_', ['=']: ','};
475        hyva.getUenc = () => btoa(window.location.href).replace(/[+/=]/g, match => replace[match]);
476
477        let currentTrap;
478
479        const focusableElements = (rootElement) => {
480            const selector = 'button, [href], input, select, textarea, details, [tabindex]:not([tabindex="-1"]';
481            return Array.from(rootElement.querySelectorAll(selector))
482                .filter(el => {
483                    return el.style.display !== 'none'
484                        && !el.disabled
485                        && el.tabIndex !== -1
486                        && (el.offsetWidth || el.offsetHeight || el.getClientRects().length)
487                })
488        }
489
490        const focusTrap = (e) => {
491            const isTabPressed = e.key === 'Tab' || e.keyCode === 9;
492            if (!isTabPressed) return;
493
494            const focusable = focusableElements(currentTrap)
495            const firstFocusableElement = focusable[0]
496            const lastFocusableElement = focusable[focusable.length - 1]
497
498            e.shiftKey
499                ? document.activeElement === firstFocusableElement && (lastFocusableElement.focus(), e.preventDefault())
500                : document.activeElement === lastFocusableElement && (firstFocusableElement.focus(), e.preventDefault())
501        };
502
503        hyva.releaseFocus = (rootElement) => {
504            if (currentTrap && (!rootElement || rootElement === currentTrap)) {
505                currentTrap.removeEventListener('keydown', focusTrap)
506                currentTrap = null
507            }
508        }
509        hyva.trapFocus = (rootElement) => {
510            if (!rootElement) return;
511            hyva.releaseFocus()
512            currentTrap = rootElement
513            rootElement.addEventListener('keydown', focusTrap)
514            const firstElement = focusableElements(rootElement)[0]
515            firstElement && firstElement.focus()
516        }
517
518                hyva.alpineInitialized = (fn) => window.addEventListener('alpine:initialized', fn, {once: true})
519                window.addEventListener('user-allowed-save-cookie', () => internalCookie.saveTempStorageCookies())
520
521    }( window.hyva = window.hyva || {} ));
522</script>
vendor: 1 bytes, line 522
522
523<script>
524    if (!window.IntersectionObserver) {
525        window.IntersectionObserver = function (callback) {
526            this.observe = el => el && callback(this.takeRecords());
527            this.takeRecords = () => [{isIntersecting: true, intersectionRatio: 1}];
528            this.disconnect = () => {};
529            this.unobserve = () => {};
530        }
531    }
532</script>
532
533<div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><button id="open-chatbox" aria-label="Open chat"><svg position="right" class="sc-1k07fow-1 cbnSms" width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M10,18 L6,22 L6,18 L10,18 Z M17,6 C19.7614237,6 22,8.23857625 22,11 C22,13.7614237 19.7614237,16 17,16 L17,16 L7,16 C4.23857625,16 2,13.7614237 2,11 C2,8.23857625 4.23857625,6 7,6 L7,6 Z" transform="translate(12.000000, 14.000000) scale(-1, 1) translate(-12.000000, -14.000000) "></path></svg></button>
534<script>
535// Lightweight click handler: if Zendesk is already available, open messenger and hide the button.
536// If Zendesk is not available yet we do nothing here — the DOMContentLoaded handler below is
537// responsible for loading the script (avoids double-loading the Zendesk snippet).
538(function () {
539    const btn = document.getElementById('open-chatbox');
540    if (!btn) return;
541
542    btn.addEventListener('click', function () {
543        if (typeof zE !== 'undefined') {
544            try {
545                zE('messenger', 'open');
546            } catch (e) {
547                // ignore if API is not ready yet
548            }
549            this.style.display = 'none';
550            this.setAttribute('aria-hidden', 'true');
551        }
552        // If zE is not defined we intentionally don't load the script here to avoid
553        // duplicate loading. The DOMContentLoaded listener below will handle loading.
554    });
555})();
556</script>
vendor: 2 bytes, line 556
556
557<script>
558/* ===== Load UserWay on click ===== */
559document.addEventListener('DOMContentLoaded', function () {
560  
561  const userWayButton = document.getElementById('uw-widget-custom-trigger');
562  const zendeskButton = document.getElementById('open-chatbox');
563
564    /* ---- UserWay Script Functions ---- */
565    function initUserWay() {
566    if (window.UserWay) {
567      window.UserWay.widgetToggle();
568      return;
569    }
570    }
571
572    function loadUserWay() {
573      if (window.UserWay) return; // Skip if already loaded
574    
575    const userwayScript = document.createElement('script');
576    userwayScript.src = 'https://cdn.userway.org/widget.js';
577    userwayScript.type = 'text/javascript';
578    userwayScript.async = true;
579    userwayScript.crossOrigin = 'anonymous';
580    userwayScript.setAttribute('data-account', 'vfvO52o2Kn');
581    document.head.append(userwayScript);
582
583    /* Hide UserWay accessibility icon when initialized */
584    document.addEventListener('userway:init_completed', function (event) {
585      const instance = event.detail.userWayInstance;
586      instance.iconVisibilityOff();
587
588      const userwayIframe = document.getElementById("launcher");
589      if (userwayIframe) {
590        const userwaySiblings = Array.from(userwayIframe.parentNode.children);
591        const userwaySiblingDiv = userwaySiblings.find(el => el.tagName === 'DIV');
592        if (userwaySiblingDiv) {
593          userwaySiblingDiv.id = 'userway-live-chat';
594        }
595      }
596    }, { once: true });
597  }
598
599  if (userWayButton) {
600    userWayButton.addEventListener('click', initUserWay);
601  }
602
603  /* ---- Load UserWay on Scroll ---- */
604  let hasLoaded = false;
605  function handleScroll() {
606    if (!hasLoaded) {
607      hasLoaded = true;
608      loadUserWay();
609      // Remove scroll listener after loading
610      window.removeEventListener('scroll', handleScroll);
611    }
612  }
613  
614  window.addEventListener('scroll', handleScroll);
615
616  /* ---- Load Zendesk Script ---- */
617  function hideChatButton() {
618    try {
619      if (zendeskButton) {
620        zendeskButton.style.display = 'none';
621        zendeskButton.setAttribute('aria-hidden', 'true');
622      }
623    } catch (e) {
624      // ignore
625    }
626  }
627
628  function loadZendesk() {
629    // If already loaded, open messenger and hide the button
630    if (window.zE) {
631      try { zE('messenger', 'open'); } catch (e) { }
632      hideChatButton();
633      return;
634    }
635
636    // If script is already injected, do nothing (we'll open on load)
637    if (document.getElementById('ze-snippet')) return;
638
639    const zendeskScript = document.createElement('script');
640    zendeskScript.id = 'ze-snippet';
641    zendeskScript.src = 'https://static.zdassets.com/ekr/snippet.js?key=f007eb69-6b5d-407a-bdff-0706af960a4d';
642
643    zendeskScript.onload = function () {
644      // Wait a short moment to ensure widget initializes
645      setTimeout(() => {
646        if (typeof zE !== 'undefined') {
647          try { zE('messenger', 'open'); } catch (e) { }
648          hideChatButton();
649        }
650      }, 300);
651    };
652
653    document.head.append(zendeskScript);
654  }
655
656  if (zendeskButton) {
657    zendeskButton.addEventListener('click', loadZendesk);
658  }
659
660});
661</script>
661
662
663<style>
664.checkout-index-index button#open-chatbox{display:none}
665.uw-widget-custom-trigger{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" style="&%2310; fill: %2374767e;&%2310;"><circle cx="16" cy="16" r="15.5" fill="%23fff" stroke="%2374767e" class="circle-wrapper" style="&%2310; stroke: %2374767e;&%2310;"/><path d="M16 11.583a2.083 2.083 0 1 0 0-4.166 2.083 2.083 0 0 0 0 4.166ZM23.917 12.417H8.083a.834.834 0 0 0 0 1.666H13.5v11.459a1.041 1.041 0 1 0 2.083 0V19.5h.834v6.042a1.041 1.041 0 1 0 2.083 0V14.083h5.417a.833.833 0 0 0 0-1.666Z"/></svg>');}
666</style></div>
667<meta property="og:type" content="category"/>
668
669    <meta property="og:title" content="Shop Best Rubber Flooring: Tiles, Rolls, Mats | Gym &amp; Playground"/>
670
671    <meta property="og:description" content="Shop the best Traxxon rubber flooring for gyms, playgrounds &amp; commercial use. Durable rubber tiles, rolls &amp; mats, indoor &amp; outdoor. Lowest prices!"/>
672
673<meta property="og:url" content="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html"/>
674
675    <meta property="og:image" content="https://www.flooringinc.com/media/catalog/category/all_rubber_main.jpg"/>
676
677<meta property="og:site_name" content="Flooring Inc."/>
678    <style>.mst-nav__horizontal-bar {display:none}.mst-nav__label .mst-nav__label-item._highlight a{color: #ff5501;}.navigation-horizontal .block-actions.filter-actions {display: none;} .sidebar .filter-options .filter-options-content { display: block; } /* Display filters rules - begin */.sidebar [x-data='initLayeredNavigation()'] .block-title {display:flex;}.sidebar [data-nav-position=horizontal] {display:none;}/* Display filters rules - end */</style>
679
680<script>
681    window.addEventListener('load', function () {
682        window.magentoStorefrontEvents = magentoStorefrontEvents;
683        magentoStorefrontEvents.context.setStorefrontInstance(
684            {"storeUrl":"https:\/\/www.flooringinc.com\/","websiteId":1,"websiteCode":"base","storeId":1,"storeCode":"main_website_store","storeViewId":1,"storeViewCode":"default","websiteName":"Flooring Inc.","storeName":"Main Website Store","storeViewName":"Default Store View","baseCurrencyCode":"USD","storeViewCurrencyCode":"USD","catalogExtensionVersion":"103.4.28","environmentId":"a90eb89f-1f93-44b0-81d9-2a9af649b47f","environment":"Production","storefrontTemplate":"Hyva"}        );
685        magentoStorefrontEvents.context.setMagentoExtension({
686            magentoExtensionVersion: "8.0.1",
687        });
688        magentoStorefrontEvents.context.setDataServicesExtension({
689            version: "8.0.1",
690        });
691        magentoStorefrontEvents.context.setPage({
692            pageType: "Default"
693        });
694        magentoStorefrontEvents.context.setContext("pageExtended", {
695            action: "page-view"
696        });
697
698        
699        magentoStorefrontEvents.publish.pageView();
700    });
701</script>
701
702<link rel="next" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?p=2" />
703</head>
704<body class="pl-thm-dcw pl-thm-dcw-hyvadesktop prgdpr-dcw prgdpr-dcw-hyvadesktop page-with-filter page-products categorypath-shop-rubber-flooring-all-rubber-flooring category-all-rubber-flooring mst-nav__theme-hyva-reset mst-nav__theme-hyva-default mst-nav__theme-dcw-hyvadesktop catalog-category-view page-layout-2columns-left" id="html-body">
705<!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 705-706
705
706<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
706GTM-5XR7MB7
vendor: 85 bytes, lines 706-707
706"
707height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
708<!-- End Google Tag Manager (noscript) -->
709
710<script  nonce="dW0zODRtOWZjdmJ0bDF4NXV6NmVlNHB0bTFmZWRxYTU=">
711var prCookieConsentApi = {
712    CUSTOMER_CONSENT: 'pr-cookie-consent',
713    SYSTEM_COOKIES: [
714        'PHPSESSID',
715        this.CUSTOMER_CONSENT,
716        'user_allowed_save_cookie',
717    ],
718    config: {},
719    whitelist: {},
720    isConfigured: false,
721    /**
722     * Contains callbacks that run after all configuration come
723     *
724     * @type {function[]}
725     */
726    configuredCallbacks: [],
727    initCookieBlocking: function () {
728        var cookieDesc = Object.getOwnPropertyDescriptor(Document.prototype, 'cookie')
729            || Object.getOwnPropertyDescriptor(HTMLDocument.prototype, 'cookie');
730        if (cookieDesc && cookieDesc.configurable) {
731            var api = this;
732            Object.defineProperty(document, 'cookie', {
733                get: function () {
734                    return cookieDesc.get.call(document);
735                },
736                set: function (cookie) {
737                    let cookieName = cookie.substring(0, cookie.indexOf('=')).trim();
738                    document.dispatchEvent(new CustomEvent('pr-cookie-consent-api:cookie-blocking:validation', {
739                        detail: {cookieName: cookieName, isAllowed: api.isAllowed(cookieName), cookie: cookie}
740                    }));
741
742                    if (! api.isAllowed(cookieName)) {
743                        api.logger.warn('CookieConsent: blocked cookie "' + cookieName + '"');
744                        return;
745                    }
746                    cookieDesc.set.call(document, cookie);
747                }
748            });
749        }
750    },
751    getCookieValue: function (name) {
752        var values = document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)');
753        return values ? decodeURIComponent(values.pop()) : '';
754    },
755    configure: function (configJson) {
756        this.logger.init();
757        this.userScript.init();
758        try {
759            this.config = JSON.parse(configJson);
760            if (this.config.canManageCookie === null) {
761                console.error('CookieConsent: restriction config is invalid');
762            }
763            this.isConfigured = true;
764
765            this.configuredCallbacks.forEach(function (callback) {
766                callback();
767            }.bind(this));
768
769            this.clearRejectedCookie();
770        } catch (e) {
771            console.error('CookieConsent: error has happened during parse JSON');
772            return false;
773        }
774
775        document.dispatchEvent(new Event('pr-cookie-consent-api:configured'));
776    },
777    /**
778     * @param {function} callback
779     * @returns {prCookieConsentApi}
780     */
781    addConfiguredCallback: function (callback) {
782        this.configuredCallbacks.push(callback);
783        return this;
784    },
785        isAllowedCategory: function (categoryKey) {
786        if (! this.config.canManageCookie) {
787            return true;
788        }
789        if (this.isEssentialCategory(categoryKey)) {
790            return true;
791        }
792        if (this.isOptIn()) {
793            if (this.isAllCategoriesAllowed()) {
794                return true;
795            }
796            return this.consent.get().includes(categoryKey);
797        }
798        return this.config.canUseCookieBeforeOptIn;
799    },
800    getDomain: function (cookieName) {
801        return this.config.cookies[cookieName] ? this.config.cookies[cookieName].domain : null;
802    },
803        isAllowed: function (cookieName) {
804        if (this.isSystemCookie(cookieName)) {
805            return true;
806        }
807        if (! this.config.canManageCookie) {
808            return true;
809        }
810        if (this.whitelist[cookieName]) {
811            return true;
812        }
813        cookieName = this.getTrueCookieName(cookieName);
814        if (! this.isOptIn()) {
815            if (this.config.canUseCookieBeforeOptIn) {
816                return true;
817            }
818            if (this.isKnownCookie(cookieName)) {
819                return this.isInEssentialCategory(cookieName);
820            }
821            return false;
822        }
823        if (! this.isKnownCookie(cookieName)) {
824            return ! this.config.canBlockUnknownCookie;
825        }
826        return this.isInAllowedCategory(cookieName);
827    },
828    isAllCategoriesAllowed: function () {
829        if (null === this.cache.get('allowAllCategories')) {
830            var customerConsent = this.consent.get();
831            if (customerConsent && customerConsent.includes('all') ) {
832                this.cache.set('allowAllCategories', true);
833            } else {
834                var allowedWebsites = this.websiteRestriction.getAllowed();
835                this.cache.set('allowAllCategories', allowedWebsites[this.config.mage.website] === 1);
836            }
837        }
838        return this.cache.get('allowAllCategories');
839    },
840    isEssentialCategory: function (categoryKey) {
841        return this.config.essentialCategoryKeys.includes(categoryKey);
842    },
843    isInEssentialCategory: function (cookieName) {
844        return this.isEssentialCategory(this.getCookieCategory(cookieName));
845    },
846    isInAllowedCategory: function (cookieName) {
847        return this.isAllowedCategory(this.getCookieCategory(cookieName));
848    },
849    getCookieCategory: function (cookieName) {
850        return this.config.cookieToCategoryMapping[cookieName];
851    },
852    isOptIn: function () {
853        var allowedWithDefaultCookie = this.websiteRestriction.getAllowed()[this.config.mage.website] === 1;
854        return Boolean(this.consent.get()) || allowedWithDefaultCookie;
855    },
856    isSystemCookie: function (cookieName) {
857        return this.SYSTEM_COOKIES.includes(cookieName);
858    },
859    isKnownCookie: function (cookieName) {
860        return this.config.cookieToCategoryMapping.hasOwnProperty(cookieName);
861    },
862    getTrueCookieName: function (cookieName) {
863        var keys = Object.keys(this.config.dynamicNamesPatterns), key;
864        for (var i = 0, length = keys.length; i < length; i++) {
865            key = keys[i];
866            if (new RegExp(this.config.dynamicNamesPatterns[key]).test(cookieName)) {
867                return key;
868            }
869        }
870        return cookieName;
871    },
872    clearRejectedCookie: function () {
873        let cookies = prCookieService.get();
874        Object.keys(cookies).forEach(function(cookieName) {
875            if (this.isAllowed(cookieName)) {
876                return;
877            }
878
879            var encodedCookieName = cookieName = encodeURIComponent(String(cookieName))
880                .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)
881                .replace(/[\(\)]/g, escape);
882
883            this.whitelist[encodedCookieName] = true;
884            if (this.getDomain(cookieName)) {
885                prCookieService.remove(cookieName, {domain: this.getDomain(cookieName)});
886            } else {
887                prCookieService.remove(cookieName);
888                if (this.config.cookie.parentDomain) {
889                    prCookieService.remove(cookieName, {domain: this.config.cookie.parentDomain});
890                }
891            }
892            this.logger.warn('CookieConsent: remove cookie "' + cookieName + '"');
893            if (typeof prCookieService.get(cookieName) !== 'undefined') {
894                this.logger.error('CookieConsent: fail to remove cookie "' + cookieName + '"');
895            }
896            this.whitelist[encodedCookieName] = false;
897        }.bind(this));
898    }
899};
900
901prCookieConsentApi.userScript = {
902    /**
903     * List of callbacks and categories they depend on.
904     */
905    pendingScripts: [],
906    /**
907     * Run script after model is configured or after user provided consent.
908     */
909    init: function () {
910        prCookieConsentApi.addConfiguredCallback(this.executePendingScripts.bind(this));
911        prCookieConsentApi.consent.addCallback(this.executePendingScripts.bind(this));
912    },
913    /**
914     * Run or delay script.
915     *
916     * @param {function} callback
917     * @param {string}   categoryKey
918     */
919    execute: function (callback, categoryKey) {
920        if (prCookieConsentApi.isConfigured && prCookieConsentApi.isAllowedCategory(categoryKey)) {
921            callback();
922            return;
923        }
924
925        this.pendingScripts.push({callback: callback, categoryKey: categoryKey, executed: false});
926    },
927    /**
928     * Run pending scripts.
929     */
930    executePendingScripts: function () {
931        this.pendingScripts.forEach(function (script) {
932            if (false === script.executed && prCookieConsentApi.isAllowedCategory(script.categoryKey)) {
933                script.callback();
934                script.executed = true;
935            }
936        }.bind(this));
937    },
938};
939
940prCookieConsentApi.websiteRestriction = {
941    getAllowed: function () {
942        var allowedWebsites = prCookieConsentApi.getCookieValue(prCookieConsentApi.config.mage.cookieName);
943        return allowedWebsites ? JSON.parse(allowedWebsites) : {};
944    },
945    allowCurrent: function () {
946        return this.set(prCookieConsentApi.config.mage.website, true);
947    },
948    disallowCurrent: function () {
949        return this.set(prCookieConsentApi.config.mage.website, false);
950    },
951    /**
952     * @param {number} website
953     * @param {boolean} flag
954     * @return {CookieRestriction.websiteRestriction}
955     */
956    set: function (website, flag) {
957        var allowedWebsites = this.getAllowed();
958
959        if (flag) {
960            allowedWebsites[website] = 1;
961        } else {
962            delete allowedWebsites[website];
963        }
964
965        prCookieService.set(prCookieConsentApi.config.mage.cookieName, allowedWebsites, {
966            path: prCookieConsentApi.config.cookie.path,
967            expires: prCookieConsentApi.config.mage.lifetime ? Math.ceil(prCookieConsentApi.config.mage.lifetime / 86400) : 0
968        });
969
970        return this;
971    }
972};
973
974prCookieConsentApi.cache = {
975    cacheData: {allowAllCategories: null},
976    get: function (key) {
977        return this.cacheData[key];
978    },
979    set: function (key, value) {
980        this.cacheData[key] = value;
981    },
982    reset: function () {
983        this.cacheData = {allowAllCategories: null};
984    }
985};
986
987prCookieConsentApi.logger = {
988    level: 0, /* disabled */
989        init: function () {
990        if (window.location.hash === '#pr-enable-cookie-log') {
991            this.level = 1; /* only warnings and errors */
992        }
993        if (window.location.hash === '#pr-enable-cookie-log-all') {
994            this.level = 2; /* all logs */
995        }
996    },
997    log: function () {
998        this.level > 1 && console.log.apply(console, arguments);
999    },
1000    warn: function () {
1001        this.level > 0 && console.warn.apply(console, arguments);
1002    },
1003    error: function () {
1004        this.level > 0 && console.error.apply(console, arguments);
1005    }
1006};
1007
1008prCookieConsentApi.consent = {
1009    /**
1010     * Contains callbacks that run after user consent.
1011     *
1012     * @type {function[]}
1013     */
1014    callbacks: [],
1015    allowAllCategories: function () {
1016        prCookieConsentApi.cache.reset();
1017        prCookieConsentApi.consent.set(['all']);
1018        return this;
1019    },
1020    declineAll: function () {
1021        prCookieConsentApi.cache.reset();
1022        prCookieConsentApi.consent.set([]);
1023        return this;
1024    },
1025    set: function (allowedCategories) {
1026        prCookieService.set(prCookieConsentApi.CUSTOMER_CONSENT, JSON.stringify(allowedCategories), {
1027            expires: prCookieConsentApi.config.consent.expiry,
1028            path: prCookieConsentApi.config.cookie.path,
1029            domain: prCookieConsentApi.config.cookie.domain
1030        });
1031
1032        if (allowedCategories.includes('all')) {
1033            prCookieConsentApi.websiteRestriction.allowCurrent();
1034        } else {
1035            prCookieConsentApi.websiteRestriction.disallowCurrent();
1036        }
1037        prCookieConsentApi.cache.reset();
1038
1039        var isAccepting = allowedCategories.length;
1040
1041        this.callbacks.forEach(function (callback) {
1042            callback(allowedCategories)
1043        });
1044
1045        fetch(prCookieConsentApi.config.consent.logUrl, {
1046            method: 'POST',
1047            headers: {
1048                'Content-Type': 'application/json',
1049                'X-Requested-With': 'XMLHttpRequest'
1050            },
1051            body: JSON.stringify({acceptedKeys: allowedCategories})
1052        })
1053            .then(this.pageReloadAfterAction.bind(this, isAccepting));
1054    },
1055    /**
1056     * Reload page by configuration and action
1057     *
1058     * @param isAccepting
1059     */
1060    pageReloadAfterAction: function (isAccepting) {
1061        if (isAccepting && prCookieConsentApi.config.consent.reloadAfterAccept) {
1062            window.location.reload();
1063        }
1064
1065        if (! isAccepting && prCookieConsentApi.config.consent.reloadAfterDecline) {
1066            window.location.reload();
1067        }
1068    },
1069    get: function () {
1070        var consent = prCookieConsentApi.getCookieValue(prCookieConsentApi.CUSTOMER_CONSENT);
1071        return consent ? JSON.parse(consent) : false;
1072    },
1073    addCallback: function (callback) {
1074        this.callbacks.push(callback);
1075        return this;
1076    },
1077};
1078
1079prCookieConsentApi.configure('\u007B\u0022canManageCookie\u0022\u003Afalse,\u0022canUseCookieBeforeOptIn\u0022\u003Afalse,\u0022canBlockUnknownCookie\u0022\u003Afalse,\u0022consent\u0022\u003A\u007B\u0022isLoggedIn\u0022\u003Atrue,\u0022logUrl\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwww.flooringinc.com\u005C\u002Fpr\u002Dcookie\u002Dconsent\u005C\u002Fconsent_customer\u005C\u002Fupdate\u005C\u002F\u0022,\u0022reloadAfterAccept\u0022\u003Atrue,\u0022reloadAfterDecline\u0022\u003Afalse,\u0022expiry\u0022\u003A365\u007D,\u0022cookie\u0022\u003A\u007B\u0022path\u0022\u003A\u0022\u005C\u002F\u0022,\u0022domain\u0022\u003A\u0022www.flooringinc.com\u0022,\u0022parentDomain\u0022\u003A\u0022.flooringinc.com\u0022\u007D,\u0022cookies\u0022\u003A\u007B\u0022pr\u002Dcookie\u002Dnotice\u002Dstatus\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022user_allowed_save_cookie\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022guest\u002Dview\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022login_redirect\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dmessages\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022section_data_ids\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022store\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022amz_auth_err\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022amz_auth_logout\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dcache\u002Dsessid\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dcache\u002Dstorage\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022stf\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022recently_viewed_product\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022recently_viewed_product_previous\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dtranslation\u002Dstorage\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dtranslation\u002Dfile\u002Dversion\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022product_data_storage\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022recently_compared_product\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022recently_compared_product_previous\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dcache\u002Dstorage\u002Dsection\u002Dinvalidation\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_ga\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_ga_\u002A\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_gid\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_gat\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_dc_gtm_\u002A\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mg_dnt\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022last_visited_store\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022pr\u002Dgpc\u002Dnotification\u002Dshown\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022pr\u002Dgpc\u002Dsignal\u002Dhandled\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_clck\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_clsk\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022CLID\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022MR\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022MUID\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022pr\u002Dcookie\u002Dconsent\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022pr\u002Dcookie\u002Dconsent\u002Did\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022form_key\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022X\u002DMagento\u002DVary\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022private_content_version\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022persistent_shopping_cart\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022add_to_cart\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dbanners\u002Dcache\u002Dstorage\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022remove_from_cart\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D\u007D,\u0022mage\u0022\u003A\u007B\u0022website\u0022\u003A1,\u0022cookieName\u0022\u003A\u0022user_allowed_save_cookie\u0022,\u0022lifetime\u0022\u003A31536000\u007D,\u0022cookieToCategoryMapping\u0022\u003A\u007B\u0022pr\u002Dcookie\u002Dnotice\u002Dstatus\u0022\u003A\u0022necessary\u0022,\u0022user_allowed_save_cookie\u0022\u003A\u0022necessary\u0022,\u0022guest\u002Dview\u0022\u003A\u0022necessary\u0022,\u0022login_redirect\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dmessages\u0022\u003A\u0022necessary\u0022,\u0022section_data_ids\u0022\u003A\u0022necessary\u0022,\u0022store\u0022\u003A\u0022necessary\u0022,\u0022amz_auth_err\u0022\u003A\u0022necessary\u0022,\u0022amz_auth_logout\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dcache\u002Dsessid\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dcache\u002Dstorage\u0022\u003A\u0022necessary\u0022,\u0022stf\u0022\u003A\u0022necessary\u0022,\u0022recently_viewed_product\u
10790022\u003A\u0022necessary\u0022,\u0022recently_viewed_product_previous\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dtranslation\u002Dstorage\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dtranslation\u002Dfile\u002Dversion\u0022\u003A\u0022necessary\u0022,\u0022product_data_storage\u0022\u003A\u0022necessary\u0022,\u0022recently_compared_product\u0022\u003A\u0022necessary\u0022,\u0022recently_compared_product_previous\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dcache\u002Dstorage\u002Dsection\u002Dinvalidation\u0022\u003A\u0022necessary\u0022,\u0022_ga\u0022\u003A\u0022statistics\u0022,\u0022_ga_\u002A\u0022\u003A\u0022statistics\u0022,\u0022_gid\u0022\u003A\u0022statistics\u0022,\u0022_gat\u0022\u003A\u0022statistics\u0022,\u0022_dc_gtm_\u002A\u0022\u003A\u0022statistics\u0022,\u0022mg_dnt\u0022\u003A\u0022necessary\u0022,\u0022last_visited_store\u0022\u003A\u0022necessary\u0022,\u0022pr\u002Dgpc\u002Dnotification\u002Dshown\u0022\u003A\u0022necessary\u0022,\u0022pr\u002Dgpc\u002Dsignal\u002Dhandled\u0022\u003A\u0022necessary\u0022,\u0022_clck\u0022\u003A\u0022statistics\u0022,\u0022_clsk\u0022\u003A\u0022statistics\u0022,\u0022CLID\u0022\u003A\u0022statistics\u0022,\u0022MR\u0022\u003A\u0022statistics\u0022,\u0022MUID\u0022\u003A\u0022statistics\u0022,\u0022pr\u002Dcookie\u002Dconsent\u0022\u003A\u0022necessary\u0022,\u0022pr\u002Dcookie\u002Dconsent\u002Did\u0022\u003A\u0022necessary\u0022,\u0022form_key\u0022\u003A\u0022necessary\u0022,\u0022X\u002DMagento\u002DVary\u0022\u003A\u0022necessary\u0022,\u0022private_content_version\u0022\u003A\u0022necessary\u0022,\u0022persistent_shopping_cart\u0022\u003A\u0022necessary\u0022,\u0022add_to_cart\u0022\u003A\u0022statistics\u0022,\u0022mage\u002Dbanners\u002Dcache\u002Dstorage\u0022\u003A\u0022necessary\u0022,\u0022remove_from_cart\u0022\u003A\u0022statistics\u0022\u007D,\u0022essentialCategoryKeys\u0022\u003A\u005B\u0022necessary\u0022\u005D,\u0022dynamicNamesPatterns\u0022\u003A\u007B\u0022_dc_gtm_\u002A\u0022\u003A\u0022_dc_gtm_.\u002A\u0022,\u0022_ga_\u002A\u0022\u003A\u0022_ga_.\u002A\u0022\u007D\u007D');
1080prCookieConsentApi.initCookieBlocking();
1081
1082if (typeof define === 'function') {
1083    define('prCookieService', function () {return prCookieService});
1084    define('prCookieConsentApi', function () {return prCookieConsentApi;});
1085}
1086</script>
1086
1087
1088
1089    
1089<script type="text/javascript"  nonce="dW0zODRtOWZjdmJ0bDF4NXV6NmVlNHB0bTFmZWRxYTU=">
1090        (() => {
1091            document.addEventListener('pr-cookie-consent-api:cookie-blocking:validation', (event) => {
1092                if ('mg_dnt' !== event.detail.cookieName) {
1093                    return;
1094                }
1095
1096                setTimeout(() => {
1097                    const categoryKey = 'marketing';
1098                    let cookieValue = (event.detail.cookie.match(/^[^=]+=(.*?)(?:$|;)/) || [])[1]?.trim();
1099
1100                    if (prCookieConsentApi.isAllowedCategory(categoryKey) && cookieValue.length) {
1101                        prCookieService.remove('mg_dnt', prCookieConsentApi.config.cookie);
1102                        return;
1103                    }
1104
1105                    if (! prCookieConsentApi.isAllowedCategory(categoryKey) && ! cookieValue.length) {
1106                        prCookieService.set('mg_dnt', true, { ...prCookieConsentApi.config.cookie, expires: null });
1107                    }
1108                }, 100);
1109            });
1110
1111            let handleCookieConsent = () => {
1112                const categoryKey = 'marketing';
1113                if (prCookieConsentApi.isAllowedCategory(categoryKey)) {
1114                    prCookieService.remove('mg_dnt', prCookieConsentApi.config.cookie);
1115                } else {
1116                    prCookieService.set('mg_dnt', true, { ...prCookieConsentApi.config.cookie, expires: null });
1117                }
1118            };
1119
1120            prCookieConsentApi.consent.addCallback(handleCookieConsent);
1121            handleCookieConsent();
1122        })();
1123    </script>
1123
1124
1125    
1125<script>
1126        (function () {
1127            'use strict';
1128
1129            window.amRecaptchaModel = {
1130                formsToProtect: "form\u005Baction\u002A\u003D\u0022faq\u002Findex\u002Fsave\u0022\u005D",
1131                isEnabledOnPayments: "",
1132                checkoutRecaptchaValidateUrl: "https://www.flooringinc.com/amcapthca/checkout/validate/",
1133                invisibleCaptchaCustomForm: "\u002D1",
1134                recaptchaConfig: {
1135                    lang: "hl\u003Den" || 'hl=en',
1136                    theme: "light",
1137                    badge: "bottomright",
1138                    sitekey: "6Lc6gcYqAAAAADiXHrgCFqC4Sewhxs-nrHYgN4oo",
1139                    size: "normal"
1140                },
1141                url: 'https://www.google.com/recaptcha/api.js',
1142                isCaptchaScriptLoaded: false,
1143                isInvisible: "normal" === 'invisible',
1144
1145                /**
1146                 * Submit event
1147                 *
1148                 * @param {Object} $event
1149                 * @return {void}
1150                 */
1151                execute: function ($event) {
1152                    const eventTarget = $event?.target;
1153                    if (this.isCaptchaScriptLoaded) {
1154                        this.executeCaptcha(eventTarget);
1155                    } else {
1156                        window.addEventListener('amcaptcha-script-loaded', () => {
1157                            this.isCaptchaScriptLoaded = true;
1158                            this.executeCaptcha(eventTarget);
1159                            this.initAmcaptchaBadges();
1160                        });
1161
1162                        this.loadRecaptchaScript();
1163                    }
1164                },
1165
1166                /**
1167                 * Execute original submit
1168                 *
1169                 * @param {Object} $event
1170                 * @param {HTMLElement} $el
1171                 * @return {void}
1172                 */
1173                recaptchaCallback: function ($event, $el) {
1174                    this.shouldExecuteCallback($event, $el) && $el.dispatchEvent(new CustomEvent('amrecaptcha-executable-callback'));
1175                },
1176
1177                /**
1178                 * Reset captcha
1179                 *
1180                 * @param {Object} $event
1181                 * @param {HTMLElement} $el
1182                 */
1183                expiredCallback: function($event, $el) {
1184                    this.shouldExecuteCallback($event, $el) && grecaptcha.reset($event.detail.widgetId);
1185                },
1186
1187                /**
1188                 * Checks if event is fired on submitted element
1189                 *
1190                 * @param {Object} $event
1191                 * @param {HTMLElement} $el
1192                 * @return {boolean}
1193                 */
1194                shouldExecuteCallback: function($event, $el) {
1195                    const eventWidgetId = $event.detail.widgetId;
1196                    const elementWidgetId = $el.dataset.amCaptchaWidgetId || $el.closest('form')?.dataset.amCaptchaWidgetId;
1197
1198                    return eventWidgetId === elementWidgetId;
1199                },
1200
1201                /**
1202                 * Run captcha for widget by id
1203                 *
1204                 * @param {HTMLElement} eventTarget
1205                 * @return {void}
1206                 */
1207                executeCaptcha: function(eventTarget) {
1208                    if (!eventTarget.dataset.hasOwnProperty('amCaptchaRendered')) {
1209                        this.bindCaptchaGlobalCallbacks(eventTarget);
1210                        this.renderCaptcha(eventTarget);
1211                        eventTarget.dataset.amCaptchaRendered = '';
1212                    }
1213
1214                    const widgetId = this.getWidgetId(eventTarget);
1215
1216                    if (!widgetId) {
1217                        typeof window.dispatchMessages !== "undefined" && window.dispatchMessages([
1218                            {
1219                                type: "error",
1220                                text: 'Recaptcha\u0020cannot\u0020properly\u0020validate\u0020form.'
1221                            }
1222                        ]);
1223                        return;
1224                    }
1225
1226                    window.dispatchEvent(new CustomEvent('amcaptcha-loading-start'));
1227                    grecaptcha.reset(widgetId);
1228
1229                    if (!this.isInvisible) {
1230                        this.stopAmcaptchaLoading();
1231                        return;
1232                    }
1233
1234                    grecaptcha.execute(widgetId)
1235                        .then(() => this.stopAmcaptchaLoading())
1236                        .catch(() => this.stopAmcaptchaLoading());
1237                },
1238
1239                /**
1240                 * Add recaptcha script to page
1241                 *
1242                 * @return {void}
1243                 */
1244                loadRecaptchaScript: function () {
1245                    const lang = window.amRecaptchaModel.recaptchaConfig.lang;
1246                    const url = `${window.amRecaptchaModel.url}?onload=amRecaptchaLoadCallback&render=explicit&${lang}`;
1247                    const script = document.createElement('script');
1248
1249                    script.type = 'text/javascript';
1250                    script.src = url;
1251                    script.async = true;
1252                    document.head.appendChild(script);
1253                },
1254
1255                /**
1256                 * Stop loader on page
1257                 *
1258                 * @return {void}
1259                 */
1260                stopAmcaptchaLoading: function () {
1261                    window.dispatchEvent(new CustomEvent('amcaptcha-loading-stop'));
1262                },
1263
1264                /**
1265                 * Add attributes to hide captcha badge
1266                 *
1267                 * @return {void}
1268                 */
1269                initAmcaptchaBadges: function () {
1270                    if (!this.isInvisible) {
1271                        return;
1272                    }
1273
1274                    document.querySelectorAll('.grecaptcha-badge')?.forEach(captchaBadge => {
1275                        captchaBadge?.setAttribute('x-data', '{ visible: true }');
1276                        captchaBadge?.setAttribute('x-on:amcaptcha-loading-start.window', 'visible = true');
1277                        captchaBadge?.setAttribute('x-on:amcaptcha-loading-stop.window', 'visible = false');
1278                        captchaBadge?.setAttribute(':class', '!visible && "invisible"');
1279                    });
1280                },
1281
1282                /**
1283                 * Get form widgetId
1284                 *
1285                 * @param {HTMLElement} eventTarget
1286                 * @return {string}
1287                 */
1288                getWidgetId: function (eventTarget) {
1289                    return eventTarget.dataset.amCaptchaWidgetId
1290                        || eventTarget.closest('form')?.dataset.amCaptchaWidgetId;
1291                },
1292
1293                /**
1294                 * Add captcha badge or checkbox to protected form.
1295                 * Store widgetId in dataset to pass this info in callbacks
1296                 *
1297                 * @param {HTMLElement} eventTarget
1298                 * @return {void}
1299                 */
1300                renderCaptcha: function (eventTarget) {
1301                    const captchaElement = document.createElement('div');
1302                    const formContent = eventTarget.closest('form')?.querySelector('[data-element="form-content"]')
1303                        ?? eventTarget.closest('form');
1304                    formContent?.appendChild(captchaElement);
1305
1306                    eventTarget.dataset.amCaptchaWidgetId = grecaptcha.render(captchaElement, {
1307                        ...window.amRecaptchaModel?.recaptchaConfig,
1308                        callback: () => {
1309                            window.dispatchEvent(new CustomEvent(
1310                                'amrecaptcha-callback', {
1311                                    detail: this.getCaptchaCallbackDetail(eventTarget)
1312                                }));
1313                        },
1314                        'expired-callback': () => {
1315                            window.dispatchEvent(new CustomEvent(
1316                                'amrecaptcha-expired-callback', {
1317                                    detail: this.getCaptchaCallbackDetail(eventTarget)
1318                                }));
1319                        }
1320                    });
1321                },
1322
1323                /**
1324                 * Get detail property for callback event
1325                 *
1326                 * @param {HTMLElement} eventTarget
1327                 * @return {object}
1328                 */
1329                getCaptchaCallbackDetail: function (eventTarget) {
1330                    return {
1331                        widgetId: eventTarget.dataset.amCaptchaWidgetId,
1332                        form: eventTarget
1333                    }
1334                },
1335
1336                /**
1337                 * Add functions that will be called on the global state
1338                 *
1339                 * @param {HTMLElement} eventTarget
1340                 * @return {void}
1341                 */
1342                bindCaptchaGlobalCallbacks: function (eventTarget) {
1343                    eventTarget.setAttribute(
1344                        'x-on:amrecaptcha-callback.window',
1345                        `amRecaptchaModel.recaptchaCallback($event, $el)`
1346                    );
1347                    eventTarget.setAttribute(
1348                        'x-on:amrecaptcha-expired-callback.window',
1349                        'amRecaptchaModel.expiredCallback($event, $el)'
1350                    );
1351                }
1352            };
1353        })(window.amRecaptchaModel = window.amRecaptchaModel || {});
1354
1355        window.amRecaptchaLoadCallback = function () {
1356            window.dispatchEvent(new CustomEvent('amcaptcha-script-loaded'));
1357        }
1358    </script>
1358
1359
1360
1361        <!--suppress HtmlUnknownTarget -->
1362    <!-- BV | Magento Extension 9.1.7 -->
1363    
1363<script>
1364        window.addEventListener('init-external-scripts', () => {
1365            const bvScript = document.createElement('script');
1366            bvScript.src = '//apps.bazaarvoice.com/deployments/incstores/main_site/production/en_US/bv.js';
1367            bvScript.type = 'text/javascript';
1368            bvScript.async = true;
1369            document.head.append(bvScript);
1370        }, {once: true, passive: true});
1371    </script>
vendor: 1 bytes, line 1371
1371
1372<script>
1373    function initSocialLoginPost() {
1374        return {
1375            submitForm(form) {
1376                event.preventDefault();
1377                var loginRefererElement = document.getElementById("sociallogin-login-referer");
1378                var value = loginRefererElement.value;
1379                fetch(form.action, {
1380                    headers: {
1381                        contentType: "application/json;charset=utf-8",
1382                    },
1383                    body: new URLSearchParams({
1384                        form_key: hyva.getFormKey(),
1385                        'refress-redirect-url':value
1386                    }),
1387                    method: "POST",
1388                    mode: "cors",
1389                    credentials: "include",
1390                }).then(response => {
1391                    if (response.redirected) {
1392                        window.location.href = response.url;
1393                    } else {
1394                        window.dispatchMessages("warning", "Post request failed", 5000);
1395                    }
1396                })
1397            }
1398        }
1399    }
1400</script>
1400
1401<form style="display:none;" class="form" x-data="initSocialLoginPost()" @submit="submitForm($el)"
1402      action="https://www.flooringinc.com/sociallogin/account/loginPost/"
1403      method="post"
1404      id="sociallogin-login-form"
1405>
1406    <input id="sociallogin-login-referer" name="refress-redirect-url" type="hidden" value="" />
1407    <input id="sociallogin-login-submit" type="submit" value="sociallogin" style="font-size:0"/>
1408</form>
1409
1410<style>
1411    .pr-cookie-setting-bar-overlay,
1412    .pr-cookie-setting-bar-container {
1413        z-index: 999999999999999;
1414    }
1415</style>
1416
1417<script>
1418    'use strict';
1419    var prCookieSettingBar = {
1420        config: {"categories":[{"key":"necessary","is_essential":true,"is_pre_checked":false,"name":"Strictly necessary cookies","description":"These cookies are essential for you to browse our store and use its features, such as accessing secure areas of the website. Cookies that allow holding your cart items, cookies that keep you logged-in and cookies that save your customized preferences are an example of strictly necessary cookies. These cookies are essential to a website's functionality and cannot be disabled by users.","sort_order":0,"details":[{"name":"First party","is_third_party":false,"cookies":[{"name":"pr-cookie-notice-status","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Stores close status of cookie notice."},{"name":"user_allowed_save_cookie","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":31536000,"durationLabel":"365 days","description":"Stores built-in cookie consent per website."},{"name":"guest-view","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Stores the Order ID that guest shoppers use to retrieve their order status. Guest orders view. Used in \u201cOrders and Returns\u201d widgets."},{"name":"login_redirect","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Preserves the destination page the customer was loading before being directed to log in."},{"name":"mage-messages","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":31536000,"durationLabel":"365 days","description":"Tracks error messages and other notifications that are shown to the user, such as the cookie consent message, and various error messages. The message is deleted from the cookie after it is shown to the shopper."},{"name":"section_data_ids","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Stores customer-specific information related to shopper-initiated actions such as display wish list, checkout information, etc."},{"name":"store","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":31536000,"durationLabel":"365 days","description":"Tracks the specific store view \/ locale selected by the shopper."},{"name":"amz_auth_err","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":31536000,"durationLabel":"365 days","description":"Used if Enable Login with Amazon is enabled. Value 1 indicates an authorization error."},{"name":"amz_auth_logout","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Used if Enable Login with Amazon is enabled. Value 1 indicates that the user should be logged out."},{"name":"mage-cache-sessid","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"The value of this cookie triggers the cleanup of local cache storage. When the cookie is removed by the backend application, the Admin cleans up local storage, and sets the cookie value to true."},{"name":"mage-cache-storage","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Local storage of visitor-specific content that enables ecommerce functions."},{"name":"stf","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Records the time messages are sent by the SendFriend (Email a Friend) module."},{"name":"recently_viewed_product","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Stores product IDs of recently viewed products for easy navigation."},{"name":"recently_viewed_product_previous","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Stores product IDs of recently previously viewed products for easy navigation."},{"name":"mage-translation-storage","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Stores translated content when requested by the shopper. Used when Translation Strategy is configured as \"Dictionary (Translation on Storefront side)\"."},{"name":"mage-translation-file-version","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Tracks the version of translations in local storage. Used when Translation Strategy is configured as Dictionary (Translation on Storefront side)."},{"name":"product_data_storage","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Stores configuration for product data related to Recently Viewed \/ Compared Products."},{"name":"recently_compared_product","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Stores product IDs of recently compared products."},{"name":"recently_compared_product_previous","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Stores product IDs of previously compared products for easy navigation."},{"name":"mage-cache-storage-section-invalidation","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Forces local storage of specific content sections that should be invalidated."},{"name":"mg_dnt","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Used to restrict Adobe Commerce data collection functionality if the user has opted out of tracking."},{"name":"last_visited_store","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"last_visited_store"},{"name":"pr-gpc-notification-shown","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Stores whether the GPC opt-out notification was shown to and closed by the user."},{"name":"pr-gpc-signal-handled","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Stores whether the Global Privacy Control (GPC) signal has been detected on the front end and the associated handling logic has been executed for the current user."},{"name":"pr-cookie-consent","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":365,"durationLabel":"less than an hour","description":"Keeps your cookie consent."},{"name":"pr-cookie-consent-id","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":365,"durationLabel":"less than an hour","description":"Keeps your cookie consent id."},{"name":"form_key","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":3600,"durationLabel":"1 hour","description":"A security measure that appends a random string to all form submissions to protect the data from Cross-Site Request Forgery (CSRF)."},{"name":"X-Magento-Vary","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":3600,"durationLabel":"1 hour","description":"Configuration setting that improves performance when using Varnish static content caching."},{"name":"private_content_version","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":31536000,"durationLabel":"365 days","description":"Appends a random, unique number and time to pages with customer content to prevent them from being cached on the server."},{"name":"persistent_shopping_cart","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":31536000,"durationLabel":"365 days","description":"Stores the key (ID) of persistent cart to make it possible to restore the cart for an anonymous shopper."},{"name":"mage-banners-cache-storage","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":3600,"durationLabel":"1 hour","description":"Stores banner content locally to improve performance."}]}],"show_details":false},{"key":"preferences","is_essential":false,"is_pre_checked":false,"name":"Preferences cookies","description":"Preferences cookies are also known as \u201cfunctionality cookies\u201d. These cookies allow a website to remember choices you have made in the past, like what language you prefer, your favourite search f
1420ilters, or what your user name and password are so you can automatically log in.","sort_order":0,"details":[],"show_details":false},{"key":"statistics","is_essential":false,"is_pre_checked":false,"name":"Statistics cookies","description":"Statistics cookies are also known as \u201cperformance cookies\u201d. These cookies collect information about how you use a website, like which pages you visited and which links you clicked on. None of this information can be used to identify you. It is all aggregated and, therefore, anonymized. Their sole purpose is to improve website functions. This includes cookies from third-party analytics services, such as visitor analytics, heatmaps and social media analytics.","sort_order":0,"details":[{"name":"First party","is_third_party":false,"cookies":[{"name":"_ga","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":63072000,"durationLabel":"730 days","description":"Used to distinguish users."},{"name":"_ga_*","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":63072000,"durationLabel":"730 days","description":"Used to persist session state."},{"name":"_gid","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Used to distinguish users."},{"name":"_gat","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Used to throttle request rate."},{"name":"_dc_gtm_*","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":60,"durationLabel":"less than an hour","description":"Used to throttle request rate."},{"name":"_clck","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Persists the Microsoft Clarity User ID and preferences, unique to that site is attributed to the same user ID."},{"name":"_clsk","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Connects multiple page views by a user into a single Microsoft Clarity session recording."},{"name":"add_to_cart","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":3600,"durationLabel":"1 hour","description":"Used by Google Tag Manager. Captures the product SKU, name, price and quantity removed from the cart, and makes the information available for future integration by third-party scripts."},{"name":"remove_from_cart","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":3600,"durationLabel":"1 hour","description":"Used by Google Tag Manager. Captures the product SKU, name, price and quantity added to the cart, and makes the information available for future integration by third-party scripts."}]},{"name":"","is_third_party":true,"cookies":[{"name":"CLID","category_key":"statistics","type":"third","typeLabel":"3rd Party","domain":"","domainLabel":"","duration":31536000,"durationLabel":"365 days","description":"Identifies the first time Microsoft Clarity saw the current user on any site using the service"},{"name":"MR","category_key":"statistics","type":"third","typeLabel":"3rd Party","domain":"","domainLabel":"","duration":31536000,"durationLabel":"365 days","description":"Used by Microsoft to track users for analytics purposes."},{"name":"MUID","category_key":"statistics","type":"third","typeLabel":"3rd Party","domain":"","domainLabel":"","duration":31536000,"durationLabel":"365 days","description":"Identifies unique web browsers visiting Microsoft sites. These cookies are used for advertising, site analytics, and other operational purposes."}]}],"show_details":false},{"key":"marketing","is_essential":false,"is_pre_checked":false,"name":"Marketing cookies","description":"The
1420se cookies track your online activity to help advertisers deliver more relevant advertising or to limit how many times you see an ad. These cookies can share that information with other organizations or advertisers. These are persistent cookies and almost always of third-party provenance.","sort_order":0,"details":[],"show_details":false}],"displayStyle":"left_bar","canShowCookieDetails":true,"overview":{"title":"Privacy and Cookies","text":"<p>A cookie is information stored on your computer by a website you visit. Cookies provide a way for the site to recognize you and keep track of your preferences. Ecommerce websites place cookies on visitors' browsers to retain login credentials, identify customers, and provide a customized shopping experience.<\/p>\r\n<p>We respect the privacy of individuals and recognize the importance of personal data entrusted to us by our customers. Any website visitor may choose not to allow some types of cookies. Click on cookie category headings and cookie details to find out more and change our default settings. However, blocking some types of cookies may impact your website experience and prevent you from using all the features on our store.<\/p>"},"consentPreferences":{"header":"Manage Consent Preferences","essential_category_status":"Always Active","cookie_details_link":"Cookie Details"},"design":{"textColor":"inherit","backgroundColor":"inherit"},"acceptButtonConfig":{"label":"Accept All","text_color":null,"text_color_on_hover":null,"background_color":null,"background_color_on_hover":null},"declineButtonConfig":{"enabled":true,"label":"Decline All","text_color":null,"text_color_on_hover":null,"background_color":null,"background_color_on_hover":null},"confirmButtonConfig":{"label":"Confirm My Choices","text_color":null,"text_color_on_hover":null,"background_color":null,"background_color_on_hover":null},"cookieDetailsIsOpen":false},
1421        show: function () {},
1422        hide: function () {},
1423        syncCategoriesDataWithConsent: function () {
1424            this.config.categories = this.config.categories.map(category => {
1425                category.is_allowed = prCookieConsentApi.isAllowedCategory(category.key);
1426                return category;
1427            });
1428        },
1429        allowAll: function () {
1430            prCookieConsentApi.consent.allowAllCategories();
1431            this.syncCategoriesDataWithConsent();
1432            window.prCookieSettingBar.hide();
1433        },
1434        declineAll: function () {
1435            prCookieConsentApi.consent.declineAll();
1436            this.syncCategoriesDataWithConsent();
1437            window.prCookieSettingBar.hide();
1438        },
1439        confirm: function () {
1440            var allowedCategories = [...prCookieConsentApi.config.essentialCategoryKeys];
1441            this.config.categories.forEach((category) => {
1442                if (allowedCategories.includes(category.key) || !category.is_allowed) {
1443                    return;
1444                }
1445
1446                allowedCategories.push(category.key);
1447            });
1448
1449            prCookieConsentApi.consent.set(allowedCategories);
1450            this.syncCategoriesDataWithConsent();
1451            window.prCookieSettingBar.hide();
1452        }
1453    };
1454</script>
1454
1455
1456<div x-data="{...hyva.modal(), init() {
1457            window.prCookieSettingBar.show = this.show.bind(this, 'pr-cookie-setting-bar', event);
1458            window.prCookieSettingBar.hide = this.hide.bind(this);
1459    }}" x-init="init()">
1460    <div x-cloak    x-bind="overlay('pr-cookie-setting-bar')"
1461    x-spread="overlay('pr-cookie-setting-bar')"
1462    class="fixed inset-0 bg-black bg-opacity-50 z-50 pr-cookie-setting-bar-overlay">
1463    <div class="fixed flex justify-center items-center text-left z-40 pr-cookie-setting-bar-container inset-0">
1464        <div x-ref="pr-cookie-setting-bar" role="dialog" aria-modal="true"
1465                                                  class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain pr-cookie-setting-bar rounded-none px-0 py-0 fixed top-0 bottom-0 left-0 w-[400px] max-w-full">
1466            <div class="pr-cookie-setting-bar-wrap text-[13px] px-4 pt-2 pb-4 relative"
1467     id="pr-cookie-setting-bar"
1468     :class="config.cookieDetailsIsOpen && 'h-screen overflow-hidden'"
1469     x-data="prCookieSettingBar"
1470     x-init="syncCategoriesDataWithConsent()"
1471>
1472    <button @click="hide" class="ml-auto -mt-2 -mr-4 block top-2 right-2 p-2">
1473        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4" width="24" height="24" role="img">
1474  <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/>
1475<title>x</title></svg>
1476    </button>
1477    <h3 class="font-bold text-xl leading-normal mb-3" x-text="config.overview.title"></h3>
1478    <div class="pr-cookie-description" x-html="config.overview.text"></div>
1479    <div class="pr-actions-buttons flex flex-wrap items-center justify-center py-4 mb-6 border-container border-b">
1480        <button type="button" class="action btn btn-primary m-2" x-text="config.acceptButtonConfig.label" @click="allowAll();"></button>
1481        <button type="button" class="action btn btn-secondary m-2" x-text="config.declineButtonConfig.label" @click="declineAll()"></button>
1482    </div>
1483    <h3 class="pr-cookie-manage-title font-bold text-xl mb-0" x-text="config.consentPreferences.header"></h3>
1484    <ul class="message-system-list mt-8">
1485        <template x-for="category in config.categories">
1486            <li class="mt-0 mb-4">
1487                <div class="accordion-title">
1488                    <div class="pr-cookie-option flex justify-between pb-2 mt-8 text-sm">
1489                        <strong class="option-label mr-4" x-text="category.name"></strong>
1490                        <template x-if="category.is_essential">
1491                            <strong class="option-status whitespace-nowrap text-green-700" x-text="config.consentPreferences.essential_category_status"></strong>
1492                        </template>
1493                        <template x-if="! category.is_essential">
1494                            <div class="pr-cookie-switch">
1495                                <label class="switch-label" aria-label="Switch">
1496                                    <input type="checkbox"
1497                                           class="sr-only"
1498                                           x-model="category.is_allowed"
1499                                           x-bind:name="category.key"
1500                                    >
1501                                    <span class="switch-area flex items-center w-11 h-6 rounded-3xl border border-container cursor-pointer transition-all"
1502                                          :class="category.is_allowed ? 'bg-green-500 border-green-700' : 'bg-gray-200 border-gray-300'"
1503                                    >
1504                                        <span class="switch-nob block w-5 h-5 rounded-full transition-all"
1505                                              :class="category.is_allowed ? 'bg-white ml-auto mr-[2px]' : 'bg-gray-500 mr-auto ml-[2px]'"
1506                                        ></span>
1507                                    </span>
1508                                </label>
1509                            </div>
1510                        </template>
1511                    </div>
1512                    <div class="first-details" x-data="{ isOpen: false }">
1513                        <div class="pr-cookie-category-description text-gray-700 mb-4" x-text="category.description"></div>
1514                        <template x-if="config.canShowCookieDetails">
1515                            <div>
1516                                <div class="lvl1">
1517                                    <span class="pr-cookie-details text-blue-700 cursor-pointer underline hover:no-underline"
1518                                          x-on:click="isOpen = true; config.cookieDetailsIsOpen = isOpen"
1519                                          x-text="config.consentPreferences.cookie_details_link"
1520                                          x-bind:data-category-key="category.key"></span>
1521                                </div>
1522                                <div class="second-details absolute bg-white px-4 pt-2 pb-4 inset-0 h-full"
1523                                     x-show="isOpen"
1524                                >
1525                                    <div class="pr-cookie-view flex flex-col h-full">
1526                                        <template x-if="isOpen">
1527                                            <button @click="hide" class="ml-auto -mt-2 -mr-2 block top-2 right-2 p-2">
1528                                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4" width="24" height="24" role="img">
1529  <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/>
1530<title>x</title></svg>
1531                                            </button>
1532                                        </template>
1533                                        <div class="flex justify-between items-center text-sm mb-2">
1534                                            <button class="pr-cookie-details-hide px-3 -ml-3 mr-3 flex items-center cursor-pointer hover:text-blue-800"
1535                                                    x-show="isOpen"
1536                                                    x-on:click="isOpen = false; config.cookieDetailsIsOpen = isOpen">
1537                                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-3 h-3 mr-2 flex-shrink-0" width="24" height="24" role="img">
1538  <path fill-rule="evenodd" d="M9.707 16.707a1 1 0 01-1.414 0l-6-6a1 1 0 010-1.414l6-6a1 1 0 011.414 1.414L5.414 9H17a1 1 0 110 2H5.414l4.293 4.293a1 1 0 010 1.414z" clip-rule="evenodd"/>
1539<title>arrow-left</title></svg>
1540                                                Back
1541                                            </button>
1542                                            <strong class="option-label" x-text="category.name"></strong>
1543                                        </div>
1544                                        <div class="pr-cookies-list h-full px-4 -mx-4 mb-3 overflow-auto">
1545                                            <h3 class="pr-cookie-view-title mb-2 font-bold text-base">Cookies List</h3>
1546                                            <template x-if="category.details.length > 0">
1547                                                <template x-for="group in category.details">
1548                                                    <div class="pr-cookie-item text-xs py-2 border-container border-b">
1549                                                        <h4 class="pr-cookie-details-title font-semibold mb-1" x-text="group.name"></h4>
1550                                                        <details class="pr-cookie-details-info">
1551                                                            <summary class="cursor-pointer text-blue-600 hover:text-blue-500">
1552                                                                <h5 class="inline-block font-semibold">
1553                                                                    View Cookies
1554                                                                </h5>
1555                                                            </summary>
1556                                                            <div class="pr-cookie-group-wrp">
1557                                                                <template x-for="cookie in group.cookies">
1558                                                                    <div class="pr-cookie-group mt-1 mb-4 p-4 bg-gray-100 rounded">
1559                                                                        <div class="pr-cookie-group-row mb-2 flex">
1560                                                                            <sp
1560an class="w-24 flex-shrink-0 mr-4">Name</span>
1561                                                                            <span class="truncate" x-text="cookie.name"></span>
1562                                                                        </div>
1563                                                                        <div class="pr-cookie-group-row mb-2 flex">
1564                                                                            <span class="w-24 flex-shrink-0 mr-4">Domain</span>
1565                                                                            <span class="truncate" x-text="cookie.domainLabel"></span>
1566                                                                        </div>
1567                                                                        <div class="pr-cookie-group-row mb-2 flex">
1568                                                                            <span class="w-24 flex-shrink-0 mr-4">Duration</span>
1569                                                                            <span x-text="cookie.durationLabel"></span>
1570                                                                        </div>
1571                                                                        <div class="pr-cookie-group-row mb-2 flex">
1572                                                                            <span class="w-24 flex-shrink-0 mr-4">Type</span>
1573                                                                            <span x-text="cookie.typeLabel"></span>
1574                                                                        </div>
1575                                                                        <div class="pr-cookie-group-row mb-2 flex">
1576                                                                            <span class="w-24 flex-shrink-0 mr-4">Category</span>
1577                                                                            <span x-text="cookie.category_key"></span>
1578                                                                        </div>
1579                                                                        <div class="pr-cookie-group-row flex">
1580                                                                            <span class="w-24 flex-shrink-0 mr-4">Description</span>
1581                                                                            <span x-text="cookie.description"></span>
1582                                                                        </div>
1583                                                                    </div>
1584                                                                </template>
1585                                                            </div>
1586                                                        </details>
1587                                                    </div>
1588                                                </template>
1589                                            </template>
1590                                            <template x-if="category.details.length === 0">
1591                                                <p>There are no cookies.</p>
1592                                            </template>
1593                                        </div>
1594
1595                                        <template x-if="isOpen">
1596                                            <div>
1597                                                <button class="action btn btn-primary"
1598                                                        :style="`color: ${config.confirmButtonConfig.text_color}; background-color: ${config.confirmButtonConfig.background_color}; border-color: ${config.confirmButtonConfig.background_color}`"
1599                                                        x-text="config.confirmButtonConfig.label"
1600                                                        @click="prCookieSettingBar.confirm()">
1601                                                </button>
1602                                            </div>
1603                                        </template>
1604                                    </div>
1605                                </div>
1606                            </div>
1607                        </template>
1608                    </div>
1609                </div>
1610            </li>
1611        </template>
1612        <button class="action btn btn-primary"
1613                :style="`color: ${config.confirmButtonConfig.text_color}; background-color: ${config.confirmButtonConfig.background_color}; border-color: ${config.confirmButtonConfig.background_color}`"
1614                x-text="config.confirmButtonConfig.label"
1615                @click="prCookieSettingBar.confirm()">
1616        </button>
1617    </ul>
1618</div>
1619        </div>
1620    </div>
1621    </div>
1622</div>
1623<script type="text/javascript"  nonce="dW0zODRtOWZjdmJ0bDF4NXV6NmVlNHB0bTFmZWRxYTU=">
1624    (() => {
1625        const updateCookieConsentConfig = () => {
1626            const categoryMap = {};
1627            Object.entries(prCookieConsentApi.config.cookieToCategoryMapping).forEach(([cookieName, categoryName]) => {
1628                if (! categoryMap[categoryName]) {
1629                    categoryMap[categoryName] = [];
1630                }
1631                categoryMap[categoryName].push(cookieName);
1632            });
1633
1634            Object.entries(categoryMap).forEach(([category, cookies]) => {
1635                const existingList = window.cookie_consent_config[category] || [];
1636                window.cookie_consent_config[category] = Array.from(new Set(existingList.concat(cookies)));
1637            });
1638
1639            let cookieCategories = ["necessary","preferences","statistics","marketing"];
1640            window.cookie_consent_groups = {};
1641            cookieCategories.forEach((category) => {
1642                window.cookie_consent_groups[category] = prCookieConsentApi.isAllowedCategory(category);
1643            });
1644        }
1645
1646        const updateConsent = () => {
1647            window.cookie_consent_groups = window.cookie_consent_groups || {}
1648            Object.keys(window.cookie_consent_groups).forEach(categoryKey => {
1649                window.cookie_consent_groups[categoryKey] = prCookieConsentApi.isAllowedCategory(categoryKey);
1650            });
1651            window.dispatchEvent(new CustomEvent('user-allowed-save-cookie'));
1652        }
1653
1654        document.addEventListener('pr-cookie-consent-api:configured', () => {
1655            updateCookieConsentConfig();
1656            prCookieConsentApi.consent.addCallback(updateConsent);
1657        });
1658
1659        if (prCookieConsentApi.isConfigured) {
1660            updateCookieConsentConfig();
1661            prCookieConsentApi.consent.addCallback(updateConsent);
1662        }
1663    })();
1664</script>
1664
1665<div id="prgdpr-consentpopups-container"
1666     x-data="prDataPrivacyConsentPopupsLoadInit()"
1667     @private-content-loaded.window="receiveCustomerData($event.detail.data)"
1668></div>
1669<script>
1670    function prDataPrivacyConsentPopupsLoadInit() {
1671        return {
1672            receiveCustomerData: function (data) {
1673                if (! data.hasOwnProperty('data_privacy')) {
1674                    return;
1675                }
1676
1677                if (data.data_privacy.countNotifies !== 0 || data.data_privacy.countPopups !== 0) {
1678                    this.loadPopups();
1679                }
1680            },
1681            loadPopups: function () {
1682                fetch('https://www.flooringinc.com/data-privacy/consentpopups/load/')
1683                    .then((response) => {
1684                        if (! response.ok) {
1685                            throw new Error('Network response was not ok');
1686                        }
1687
1688                        return response.json();
1689                    })
1690                    .then(data => this.$el.innerHTML = data.html)
1691                    .catch(error => console.warn(error));
1692            }
1693        }
1694    }
1695
1696    function prDataPrivacyConsentPopupsInit(popups, notifies) {
1697        return {
1698            popups: popups,
1699            notifies: notifies,
1700            data: null,
1701            isShowModal: true,
1702            init: function () {
1703                for (popup of this.popups) {
1704                    popup.isShowModal = true;
1705                }
1706
1707                for (notify of this.notifies) {
1708                    notify.isShowModal = true;
1709                }
1710            },
1711            closeModal(popup) {
1712                popup.isShowModal = false;
1713            },
1714            sendRequest: function (url, consent) {
1715                if (consent.cms_page) {
1716                    consent.checkboxLabel = 'I agree';
1717                }
1718
1719                fetch(url, {
1720                    method: 'POST',
1721                    headers: {'X-Requested-With': 'XMLHttpRequest'},
1722                    body: JSON.stringify({'consent': consent})
1723                });
1724            },
1725            print: function (popup) {
1726                let printWindow = window.open('', 'Print', 'height=600,width=800');
1727                printWindow.document.write(
1728                    `<html><head><title>${popup.cms_page.title}</title><link rel="next" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?p=2" />
1729</head><body>${popup.cms_page.content}</body></html`
1730                );
1731                printWindow.document.close();
1732                printWindow.focus();
1733                printWindow.print();
1734                printWindow.onafterprint = function () {
1735                    printWindow.close();
1736                };
1737
1738                return true;
1739            }
1740        }
1741    }
1742</script>
1742
1743
1744<script  nonce="dW0zODRtOWZjdmJ0bDF4NXV6NmVlNHB0bTFmZWRxYTU=">
1745    (() => {
1746        const updateConsents = () => {
1747                        if (! Array.isArray(prCookieConsentApi.consent.get()) || prCookieConsentApi.consent.get().length > 0) {
1748                prCookieConsentApi.consent.declineAll();
1749            }
1750                    }
1751
1752        prGlobalPrivacyControlApi.signalHandlers.addHandler(updateConsents);
1753    })();
1754</script>
1754
1755<input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />
1756    
1756<script>
1757        window.amRecaptchaModel = window.amRecaptchaModel || {};
1758    </script>
1758
1759
1760<script>
1761    function getMstNavConfig() {
1762        return {
1763            clearUrl: 'https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html',
1764
1765            isAjax: function () {
1766                return 1;
1767            },
1768
1769            isInstantMode: function () {
1770                return 1;
1771            },
1772
1773            isConfirmationMode: function () {
1774                var isConfirmationMode = 0;
1775                var isConfirmOnMobile  = 1;
1776                var modeSwitchBreakpoint = 768;
1777
1778                return isConfirmationMode
1779                    || (isConfirmOnMobile && window.innerWidth <= modeSwitchBreakpoint);
1780            },
1781
1782            isConfirmOnMobile: function () {
1783                return 1;
1784            },
1785
1786            getModeSwitchBreakpoint: function () {
1787                return 768;
1788            },
1789
1790            isSeoFilterEnabled: function () {
1791                return 0;
1792            },
1793
1794            isHighlightEnabled: function () {
1795                return 0;
1796            },
1797
1798            getFriendlyClearUrl: function () {
1799                return 'https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html';
1800            },
1801
1802            getAjaxCallEvent: function () {
1803                return 'mst-nav__ajax-call';
1804            },
1805
1806            getAjaxProductListWrapperId: function () {
1807                return '#m-navigation-product-list-wrapper';
1808            },
1809
1810            isSearchFilterFulltext: function () {
1811                return 1;
1812            },
1813
1814            isSearchFilterOptions: function () {
1815                return 1;
1816            },
1817
1818            isFilterClearBlockInOneRow: function () {
1819                return 0            },
1820
1821            getClearUrl: function () {
1822                return this.clearUrl;
1823            },
1824
1825            getOverlayUrl: function () {
1826                return 'https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Mirasvit_LayeredNavigation/images/ajax_loading.gif'
1827            },
1828
1829            isHorizontalByDefault: function () {
1830                return false;
1831            },
1832            
1833            // trustpilot compatibility
1834            loadTrustpilotWidget: function () {
1835                if(window.Trustpilot) {
1836                    let trustboxes = document.querySelectorAll(this.getAjaxProductListWrapperId() + ' .trustpilot-widget');
1837                    if(trustboxes.length !== 0) {
1838                        trustboxes.forEach((trustbox) => {
1839                            window.Trustpilot.loadFromElement(trustbox);
1840                        });
1841                    }
1842                }
1843            },
1844
1845            // yotpo compatibility
1846            loadYotpoWidget: function () {
1847                if(window.yotpo){
1848                    window.yotpo.initWidgets();
1849                }
1850            },
1851           
1852            load3rdPartyReviewWidgets: function () {
1853                this.loadTrustpilotWidget();
1854                this.loadYotpoWidget();
1855            }
1856
1857        }
1858    }
1859
1860    const mstNavCache = (() => {
1861        return {
1862            cache: [],
1863
1864            getCacheId: function (key) {
1865                return JSON.stringify(key);
1866            },
1867
1868            getData: function (key) {
1869                let cacheId = this.getCacheId(key);
1870                return this.cache[cacheId];
1871            },
1872
1873            setData: function (key, data) {
1874                let cacheId = this.getCacheId(key);
1875                this.cache[cacheId] = data;
1876            }
1877        }
1878    })();
1879</script>
1879
1880
1881<script>
1882    function handleFiltersNavPositions() {
1883        var filtersConfig = {"category_ids":"sidebar","features":"sidebar","product_floor_type":"sidebar","incstores_pim_ships_from_region":"sidebar","incstores_pim_lf_shipping_speed":"sidebar","size":"sidebar","incstores_pim_flooring_type":"sidebar","type":"sidebar","incstores_pim_category_filters":"sidebar","tailer_roll_width":"sidebar","roll_cut_type":"sidebar","ships_from":"sidebar","manufacturer":"sidebar","incstores_pim_primary_color_filter":"sidebar","incstores_pim_lf_shipping_program":"sidebar","incstores_pim_tf_made_in_usa":"sidebar","incstores_pim_tf_rubber_thickness":"sidebar","incstores_pim_tf_rubber_format":"sidebar","incstores_pim_tf_sport":"sidebar","incstores_pim_tf_trim_type":"sidebar","incstores_pim_tf_underlayment_type":"sidebar","incstores_pim_tf_vinyl_styles":"sidebar","incstores_pim_fire_resistant":"sidebar","incstores_pim_fall_height_rating":"sidebar","incstores_pim_bevel":"sidebar","incstores_pim_character_variation":"sidebar","incstores_pim_lf_features":"sidebar","incstores_pim_dye_method":"sidebar","incstores_pim_edge_profile":"sidebar","incstores_pim_fiber_type":"sidebar","incstores_pim_fiber_treatment":"sidebar","incstores_pim_finish":"sidebar","incstores_pim_gloss":"sidebar","incstores_pim_variant_species":"sidebar","incstores_pim_surface_texture":"sidebar","incstores_pim_surface_type":"sidebar","incstores_pim_type_of_finish":"sidebar","incstores_pim_core":"sidebar","incstores_pim_floor_speed":"sidebar","incstores_pim_locking_system":"sidebar","incstores_pim_nose_type":"sidebar","incstores_pim_tarr_rating":"sidebar","incstores_pim_waterproof":"sidebar","incstores_pim_wear_layer_rating":"sidebar","incstores_pim_warranty_filter":"sidebar","incstores_pim_backing":"sidebar","incstores_pim_certifications":"sidebar","incstores_pim_cleat_safe":"sidebar","incstores_pim_installation_location":"sidebar","incstores_pim_interlock_style":"sidebar"};
1884
1885        document.querySelectorAll('.sidebar template').forEach(function (filterOptionsTemplate) {
1886            var filterItem = filterOptionsTemplate.content.querySelector('[data-mst-nav-filter]');
1887
1888            if (!filterItem || filterItem == undefined) {
1889                return;
1890            }
1891
1892            var attributeCode = filterItem.getAttribute('data-mst-nav-filter').replace(/A\d{6}A/, '');
1893
1894            if (filtersConfig.hasOwnProperty(attributeCode)) {
1895                filterOptionsTemplate.closest('.filter-option').setAttribute('data-nav-position', filtersConfig[attributeCode]);
1896            }
1897        }.bind(this))
1898    }
1899
1900    document.addEventListener('DOMContentLoaded', handleFiltersNavPositions);
1901</script>
1901
1902
1903<script>
1904    function getContentUpdater() {
1905        return {
1906            config: getMstNavConfig(),
1907
1908            leftnavUpdate: function (leftnav) {
1909                const navigation = document.querySelector('.sidebar.sidebar-main .block.filter, .sidebar.sidebar-main .block.filter, .sidebar.sidebar-main .block-content');
1910
1911                if (leftnav) {
1912                    const el = navigation.parentElement;
1913
1914                    el.outerHTML = this.renderJSFromContent(leftnav);
1915                    /* remove duplicated scripts */
1916                    document.querySelectorAll('.sidebar.sidebar-main script')
1917                        .forEach(function (scriptEl) {
1918                            if (scriptEl.innerHTML.indexOf('expandFilters') >= 0) {
1919                                scriptEl.remove();
1920                            }
1921                        });
1922
1923                    expandFilters();
1924                }
1925            },
1926
1927            productsUpdate: function (products) {
1928                if (products) {
1929                    this.triggerUpdate(this.config.getAjaxProductListWrapperId(), products);
1930
1931                    // re-init ajax toolbar
1932                    let toolbars = document.querySelector(this.config.getAjaxProductListWrapperId())
1933                        .querySelectorAll('.toolbar.toolbar-products');
1934
1935                    toolbars.forEach(function (toolbar) {
1936                        let xData = toolbar.getAttribute('x-data');
1937                        xData = '{...' + xData + ', ...initAjaxToolbar()}';
1938
1939                        toolbar.setAttribute('x-data', xData);
1940                    });
1941
1942                    // re-init ajax pager
1943                    let pagerItems = document.querySelector(this.config.getAjaxProductListWrapperId())
1944                        .querySelectorAll('.toolbar.toolbar-products .pages-items a');
1945
1946                    pagerItems.forEach(function (item) {
1947                        item.addEventListener('click', function (e) {
1948                            e.preventDefault();
1949
1950                            initApplier().apply(item.href);
1951                        });
1952                    });
1953
1954                    // third-party review widgets compatibility
1955                    this.config.load3rdPartyReviewWidgets();
1956                   
1957                    
1958                    // update form_key cookie after products update
1959                    const formKeyElem = document.querySelector('form.product_addtocart_form input[name="form_key"]');
1960
1961                    if (formKeyElem && formKeyElem.value) {
1962                        hyva.setCookie('form_key', formKeyElem.value);
1963                    }
1964                }
1965            },
1966
1967            pageTitleUpdate: function (pageTitle) {
1968                /*this.triggerUpdate('.page-title', pageTitle, '.page-title-wrapper');*/
1969            },
1970
1971            breadcrumbsUpdate: function (breadcrumbs) {
1972                this.triggerUpdate('.wrapper-breadcrums, .breadcrumbs', breadcrumbs);
1973            },
1974
1975            updateCategoryViewData: function (categoryViewData) {
1976                if (categoryViewData === '') {
1977                    return
1978                }
1979
1980                if (document.querySelectorAll(".category-view").length === 0) {
1981                    const el = document.createElement("div");
1982                    el.classList.add('category-view');
1983
1984                    document.querySelector('.page.messages').parentNode.insertBefore(el, document.querySelector('.page.messages'));
1985                } else {
1986                    document.querySelector(".category-view").outerHtml = categoryViewData;
1987                }
1988            },
1989
1990            updateQuickNavigation: function (quickNavigation) {
1991                this.triggerUpdate(".mst-quick-nav__filterList", quickNavigation);
1992            },
1993
1994            horizontalNavigationUpdate: function (horizontalNav, isHorizontalByDefault) {
1995                const horizontalNavigation = '.mst-nav__horizontal-bar';
1996
1997                if (horizontalNav) {
1998                    if (isHorizontalByDefault == 1) {
1999                        $("#layered-filter-block").remove();
2000                    }
2001
2002                    if (!document.querySelectorAll(horizontalNavigation).length) {
2003                        let horNavEl = document.createElement('DIV');
2004                        horNavEl.classList.add('mst-nav__horizontal-bar');
2005
2006                        if (document.querySelectorAll('[data-element="quick-navigation"]').length) {
2007                            document.querySelector('[data-element="quick-navigation"]').after(horNavEl);
2008                        } else {
2009                            document.querySelector('.column.main').prepend(horNavEl);
2010                        }
2011                    }
2012
2013                    this.triggerUpdate(horizontalNavigation, horizontalNav);
2014                }
2015            },
2016
2017            updateUrlPath: function (targetUrl) {
2018                targetUrl.replace('&amp;', '&');
2019                targetUrl.replace('%2C', ',');
2020
2021                window.mNavigationAjaxscrollCompatibility = 'true';
2022                window.location = targetUrl;
2023            },
2024
2025            updateInstantlyMode: function (data, isHorizontalByDefault) {
2026                document.querySelector('#mst-ajax-nav-script-container').innerText = '';
2027
2028                if (data['ajaxscroll'] == 'true') {
2029                    this.updateUrlPath(data.url);
2030                }
2031
2032                this.leftnavUpdate(data['leftnav']);
2033                this.horizontalNavigationUpdate(data['horizontalBar'], isHorizontalByDefault);
2034                this.productsUpdate(data['products']);
2035                this.pageTitleUpdate(data['pageTitle']);
2036                this.breadcrumbsUpdate(data['breadcrumbs']);
2037                this.updateCategoryViewData(data['categoryViewData']);
2038                this.updateQuickNavigation(data['quickNavigation']);
2039            },
2040
2041            triggerUpdate: function (selector, content, closest = false) {
2042                if (!document.querySelectorAll(selector).length) {
2043                    return;
2044                }
2045
2046                let insertTarget = document.querySelector(selector);
2047
2048                if (closest) {
2049                    insertTarget = insertTarget.closest(closest);
2050                }
2051
2052                insertTarget.outerHTML = this.renderJSFromContent(content);
2053            },
2054
2055            renderJSFromContent: function (content) {
2056                const scriptBeginTag = '
2056<script';
2057                const scriptEndTag = '</scr' + 'ipt>';
2058
2059                let startIndex = 0;
2060                let scripts = [];
2061
2062                while (content.indexOf(scriptBeginTag, startIndex) >= 0) {
2063                    const scriptStartPos = content.indexOf(scriptBeginTag, startIndex);
2064                    const scriptEndPos = content.indexOf(scriptEndTag, startIndex) + 9;
2065
2066                    scripts.push(content.slice(scriptStartPos, scriptEndPos));
2067
2068                    startIndex = scriptEndPos;
2069                }
2070
2071                if (!scripts.length) {
2072                    return content;
2073                }
2074
2075                scripts.forEach(function (script) {
2076                    content.replace(script, '');
2077
2078                    let scriptContent = '';
2079
2080                    if (script.indexOf('magento-init') < 0) {
2081                        scriptContent = script.replace(/
2081<script([^>]*)>/m, '')
2082                            .replace(scriptEndTag, '');
2083                    }
2084
2085                    let scriptElement = document.createElement('script');
2086                    scriptElement.innerHTML = scriptContent;
2087
2088                    document.querySelector('#mst-ajax-nav-script-container').appendChild(scriptElement);
2089                });
2090
2091                return content;
2092            }
2093        }
2094    }
2095</script>
2095
2096
2097<div id="mst-ajax-nav-script-container"></div>
2098
2099    <!-- Mst Layered Navigation Ajax -->
2100    
2100<script>
2101        (() => {
2102            return {
2103                config: getMstNavConfig(),
2104
2105                initAjaxMode: function () {
2106                    document.addEventListener(this.config.getAjaxCallEvent(), function (event) {
2107                        if (this.config.isConfirmationMode()) {
2108                            initApplyButton().hide();
2109                        }
2110
2111                        let cachedData = mstNavCache.getData(event.detail.url);
2112                        if (cachedData) {
2113                            this.updatePageInstantlyMode(event.detail.url, cachedData);
2114                        } else {
2115                            this.requestUpdate(event.detail.url, event.detail.force);
2116                        }
2117                        this.addBrowserHistory(event.detail.url);
2118                        handleFiltersNavPositions();
2119                    }.bind(this));
2120
2121                    if (typeof window.history.replaceState === 'function') {
2122                        /** Browser back button */
2123                        window.onpopstate = function (e) {
2124                            if (e.state && e.state.url !== undefined) {
2125                                window.location.href = e.state.url;
2126                            } else if (window.location.href.indexOf('#') < 0) {
2127                                window.location.reload();
2128                            }
2129                        }.bind(this);
2130                    }
2131                },
2132
2133                updatePageInstantlyMode: function (url, result) {
2134                    getContentUpdater().updateInstantlyMode(result, this.config.isHorizontalByDefault());
2135
2136                    if (!window.mstScrollPaging) {
2137                        window.mstScrollPaging = initPaging();
2138                    }
2139
2140                    if (typeof window.mstScrollPaging.initAjaxScroll == 'function') {
2141                        window.mstScrollPaging.initAjaxScroll()
2142                    }
2143
2144                    initCheckedOptionsCounter().apply();
2145                },
2146
2147                addBrowserHistory: function (url) {
2148                    url = this.deleteForceModeQueryParam(url);
2149                    window.history.pushState({url: url}, '', url);
2150
2151                    return true;
2152                },
2153
2154                deleteForceModeQueryParam: function (url) {
2155                    url = url.replace("?mstNavForceMode=instantly", "");
2156                    url = url.replace("?mstNavForceMode=instantly&", "?");
2157                    url = url.replace("&mstNavForceMode=instantly&", "&");
2158                    url = url.replace("&mstNavForceMode=instantly", "");
2159
2160                    url = url.replace("?mstNavForceMode=by_button_click", "");
2161                    url = url.replace("?mstNavForceMode=by_button_click&", "?");
2162                    url = url.replace("&mstNavForceMode=by_button_click&", "&");
2163                    url = url.replace("&mstNavForceMode=by_button_click", "");
2164
2165                    return url;
2166                },
2167
2168                requestUpdate: function (url, force) {
2169                    const $overlay = document.getElementById("mst-nav__overlay");
2170
2171                    $overlay.classList.remove('hidden');
2172                    let data = {isAjax: true};
2173                    if (force) {
2174                        data.mstNavForceMode = 'instantly';
2175                    }
2176
2177                    let queryParams = new URLSearchParams();
2178
2179                    for (const key in data) {
2180                        queryParams.set(key, data[key]);
2181                    }
2182
2183                    const separator = url.indexOf('?') > 0 ? '&' : '?';
2184
2185                    fetch(url + separator + queryParams.toString())
2186                        .then(response => {
2187                            if (!response.ok) console.warn('GET request failed');
2188                            return response.json()
2189                        })
2190                        .then(function (result) {
2191                            try {
2192                                mstNavCache.setData(url, result);
2193                                this.updatePageInstantlyMode(url, result);
2194                            } catch (e) {
2195                                if (window.mNavigationAjaxscrollCompatibility !== 'true') {
2196                                    console.log(e);
2197
2198                                   window.location = url;
2199                                }
2200                            }
2201                        }.bind(this))
2202                        .catch(function (error) {
2203                            window.location = url;
2204                        }.bind(this))
2205                        .finally(function () {
2206                            $overlay.classList.add('hidden');
2207                            handleFiltersNavPositions();
2208                        }.bind(this));
2209                }
2210            }
2211        })().initAjaxMode();
2212    </script>
2212
2213
2214
2215
2216    
2216<script>
2217        /*document.addEventListener('DOMContentLoaded',*/
2218
2219        function initAjaxToolbar() {
2220            return {
2221                config: getMstNavConfig(),
2222
2223                /**
2224                 * @param {String} paramName
2225                 * @param {*} paramValue
2226                 * @param {*} defaultValue
2227                 */
2228                changeUrl: function (paramName, paramValue, defaultValue) {
2229                    return this.config.isAjax()
2230                        ? this._changeAjaxUrl(paramName, paramValue, defaultValue)
2231                        : this._changeStdUrl(paramName, paramValue, defaultValue);
2232
2233                },
2234
2235                /**
2236                 * Change URL when AJAX enabled.
2237                 *
2238                 * @param {String} paramName
2239                 * @param {*} paramValue
2240                 * @param {*} defaultValue
2241                 */
2242                _changeAjaxUrl: function (paramName, paramValue, defaultValue) {
2243                    var link;
2244
2245                    // ignore duplicate requests
2246                    if (this._isToolbarLock()) {
2247                        return false;
2248                    }
2249
2250                    this.config.clearUrl = this._getToolbarCleanUrl(
2251                        paramName,
2252                        paramValue,
2253                        defaultValue,
2254                        this.options
2255                    );
2256
2257                    initApplier().apply(this.config.getClearUrl());
2258                },
2259
2260                /**
2261                 * Change URL without AJAX.
2262                 *
2263                 * @param {String} paramName
2264                 * @param {*} paramValue
2265                 * @param {*} defaultValue
2266                 */
2267                _changeStdUrl: function (paramName, paramValue, defaultValue) {
2268                    var decode    = window.decodeURIComponent,
2269                        urlPaths  = this.options.url.split('?'),
2270                        baseUrl   = urlPaths[0],
2271                        paramData = this.getUrlParams(),
2272                        currentPage = this.getCurrentPage(),
2273                        parameters, i, newPage;
2274
2275                    if (currentPage > 1 && paramName === this.options.limit) {
2276                        newPage = Math.floor(this.getCurrentLimit() * (currentPage - 1) / paramValue) + 1;
2277
2278                        if (newPage > 1) {
2279                            paramData[this.options.page] = newPage;
2280                        } else {
2281                            delete paramData[this.options.page];
2282                        }
2283                    }
2284
2285                    paramData[paramName] = paramValue;
2286
2287                    if (paramValue == defaultValue) { //eslint-disable-line eqeqeq
2288                        delete paramData[paramName];
2289                    }
2290
2291                    let queryParams = new URLSearchParams();
2292
2293                    for (const key in paramData) {
2294                        queryParams.set(key, paramData[key]);
2295                    }
2296
2297                    paramData = queryParams.toString();
2298
2299                    //fix incorrect symbols in url
2300                    paramData = paramData.replace(/%2C/g, ",");
2301
2302                    location.href = baseUrl + (paramData.length ? '?' + paramData : '');
2303                },
2304
2305                _getToolbarCleanUrl: function (paramName, paramValue, defaultValue, options) {
2306                    var decode    = window.decodeURIComponent,
2307                        urlPaths  = options.url.split('?'),
2308                        baseUrl   = urlPaths[0],
2309                        paramData = this.getUrlParams(),
2310                        currentPage = this.getCurrentPage(),
2311                        parameters, i, newPage;
2312
2313                    if (currentPage > 1 && paramName === options.limit) {
2314                        newPage = Math.floor(this.getCurrentLimit() * (currentPage - 1) / paramValue) + 1;
2315
2316                        if (newPage > 1) {
2317                            paramData[options.page] = newPage;
2318                        } else {
2319                            delete paramData[options.page];
2320                        }
2321                    }
2322                   // console.log(paramData);
2323                     if (paramValue == 'pricehigh' &&  paramName == 'product_list_order') {
2324                        paramData['product_list_order'] = 'price';
2325                        paramData['product_list_dir'] = 'desc';
2326                     } else if(paramValue == 'pricelow' &&  paramName == 'product_list_order') {
2327                        paramData['product_list_order'] = 'price';
2328                        paramData['product_list_dir'] = 'asc';
2329                     } else if(paramValue == 'revenue_ranking') {
2330                        paramData['product_list_order'] = 'revenue_ranking';
2331                        paramData['product_list_dir'] = 'desc';
2332                     } else {
2333                    paramData[paramName] = paramValue;
2334                        if (paramData['product_list_dir']) {
2335                            //delete paramData['product_list_dir'];
2336                        }
2337                     }
2338                    
2339
2340                    if (paramValue == defaultValue) { //eslint-disable-line eqeqeq
2341                        delete paramData[paramName];
2342                    }
2343
2344                    let queryParams = new URLSearchParams();
2345
2346                    for (const key in paramData) {
2347                        queryParams.set(key, paramData[key]);
2348                    }
2349
2350                    paramData = queryParams.toString();
2351
2352                    //fix incorrect symbols in url
2353                    paramData = paramData.replace(/%2C/g, ",");
2354
2355                    return baseUrl + (paramData.length ? '?' + paramData : '');
2356                },
2357
2358                /**
2359                 * Page contains 2 toolbars: before and after product listing, hence, multiple instances of this widget exists.
2360                 * We use this hack in order to stop multiple requests from being called.
2361                 *
2362                 * @return {Boolean}
2363                 */
2364                _isToolbarLock: function () {
2365                    // if (window.blockToolbar) {
2366                    //     return true;
2367                    // }
2368                    //
2369                    // window.blockToolbar = true;
2370                    // setTimeout(function () {
2371                    //     window.blockToolbar = false;
2372                    // }, 300);
2373
2374                    return false;
2375                }
2376            }
2377        }
2378    </script>
2378
2379
2380<script>
2381    function initPaging() {
2382        return {
2383            nextBtn:          null,
2384            prevBtn:          null,
2385            isActive:         false,
2386            excludeHeight:    null,
2387            dataPageAttr:     'scroll-page',
2388            currLimit:        null,
2389            modeSwitched:     false,
2390            maxLoadedPageNum: 0,
2391            minLoadedPageNum: 1000,
2392            progressBar:      null,
2393            loadedPages:      1,
2394
2395            modes: {
2396                infinite:        '_initInfiniteMode',
2397                button:          '_initButtonMode',
2398                infinite_button: '_initInfiniteButtonMode',
2399                button_infinite: '_initButtonInfiniteMode'
2400            },
2401
2402            mode:         'button',
2403            pageLimit:    0,
2404            moreBtnClass: 'mst-scroll__button', // "load more" buttons class
2405            postCatalogHeightSelectors: [
2406                '.main .products ~ .block-static-block',
2407                '.page-footer',
2408                '.page-bottom'
2409            ],
2410            // elements that should be hidden
2411            hide:                       [
2412                '.pages',
2413                '.toolbar-amount'
2414            ],
2415            // initial info
2416            factor:       0.95, // factor for loading next page when scrolling down in infinite mode
2417            pageParam:    'p',
2418            pageNum:      1,
2419            initPageNum:  1,
2420            prevPageNum:  null,
2421            nextPageNum:  null,
2422            lastPageNum:  null,
2423            loadPrevText: 'Load Previous Page',
2424            loadNextText: 'Load More',
2425            progressBarEnabled: 0,
2426            progressBarText:    'Loaded %loaded% of %total% items',
2427            itemsTotal:         100000,
2428            itemsLimit:         12,
2429
2430            productListSelector: '.products.product-grid, .products.products-grid, .products.product-list, .products.products-list',
2431
2432            config: getMstNavConfig(),
2433            
2434            updateData: function(data) {
2435                for (let key in data) {
2436                    this[key] = data[key];
2437                }
2438
2439                return this;
2440            },
2441
2442            $el: function () {
2443                return document.querySelector(this.productListSelector);
2444            },
2445
2446            initAjaxScroll: function () {
2447                // scroll is active only when catalog has more than 1 page
2448                this.isActive = this.nextPageNum || this.prevPageNum || false;
2449
2450                // set initial page number to product list
2451                this.$el().setAttribute('data-' + this.dataPageAttr, this.pageNum);
2452
2453                // hide default DOM elements such as pagination
2454                this._hideElements();
2455
2456                // init scroll widget in chosen mode
2457                this[this.modes[this.mode]]();
2458
2459                this._bind();
2460
2461                this.progressBar = this._createProgressBar();
2462
2463                this._updateLabels(this);
2464            },
2465
2466            _destroy: function () {
2467                this.isActive = false;
2468                // this = null;
2469            },
2470
2471            /**
2472             * Bind scroll event and load products when window is scrolled down.
2473             */
2474            _initInfiniteMode: function () {
2475                this._initScroll();
2476
2477                // init button for previous page
2478                if (this.prevPageNum) {
2479                    this.prevBtn = this._createButton(this.loadPrevText, this.prevPageNum, 'insertBefore');
2480                    this.progressBar = this._createProgressBar();
2481                }
2482            },
2483
2484            _initScroll: function () {
2485                var onPause = false;
2486
2487                window.addEventListener('scroll', function () {
2488                    var scrollTop = window.scrollY;
2489
2490                    if (scrollTop >= this._calculateHeightDiff() && !onPause && this.nextPageNum) {
2491                        this.currLimit--;
2492
2493                        // stop processing infinite scroll when page limit reached
2494                        if (this.mode === 'infinite_button' && this.currLimit < 0) {
2495                            return;
2496                        }
2497                        onPause = true; // suspend ajax scrolling
2498
2499                        getLoader().show(this._getLastProductList());
2500
2501                        this._request(window.location.href, {p: this.nextPageNum})
2502                            .then(function (response) {
2503                                getLoader().hide();
2504                                this._updateCatalog(response);
2505
2506                                return response;
2507                            }.bind(this))
2508                            .then(function (response) { // update next page num
2509                                if (response.config) {
2510                                    this.nextPageNum = response.config.nextPageNum;
2511                                    onPause = false; // resume ajax scrolling
2512                                }
2513                            }.bind(this));
2514                    }
2515                }.bind(this));
2516            },
2517
2518            /**
2519             * Calculate difference between the whole document height and its visible part + height of excluded blocks.
2520             *
2521             * @return {Number}
2522             */
2523            _calculateHeightDiff: function () {
2524                var diff = this._getLastProductList().getBoundingClientRect().height
2525                    + (this._getLastProductList().getBoundingClientRect().top)
2526                    - window.innerHeight;
2527
2528                diff -= this._getExcludeHeight();
2529
2530                return diff;
2531            },
2532
2533            /**
2534             * Initialize widget in button mode.
2535             */
2536            _initButtonMode: function () {
2537                this._initButtons();
2538            },
2539
2540            _initInfiniteButtonMode: function() {
2541                this.currLimit = this.currLimit === null ? this.pageLimit : this.currLimit;
2542
2543                this._initInfiniteMode();
2544            },
2545
2546            _initButtonInfiniteMode: function() {
2547                this.currLimit = this.currLimit === null ? this.pageLimit : this.currLimit;
2548
2549                this._initButtonMode();
2550            },
2551
2552            /**
2553             * Create buttons.
2554             */
2555            _initButtons: function () {
2556                if (this.nextPageNum) {
2557                    this.nextBtn = this._createButton(this.loadNextText, this.nextPageNum, 'insertAfter');
2558                }
2559
2560                if (this.prevPageNum) {
2561                    this.prevBtn = this._createButton(this.loadPrevText, this.prevPageNum, 'insertBefore');
2562                }
2563            },
2564
2565            /**
2566             * Create html button and attach it to widget's element.
2567             *
2568             * @param {String} label
2569             * @param {Number} pageNum - number of page used for button
2570             * @param {String} method - method used to insert the button over widget's element
2571             *
2572             * @return {HTMLElement}
2573             */
2574            _createButton: function (label, pageNum, method) {
2575                const element = method === 'insertAfter'
2576                    ? this._getLastProductList()
2577                    : this._getFirstProductList();
2578                const btnClass = method === 'insertAfter' ? "_next" : "_prev";
2579
2580                const btn = document.createElement('button');
2581                btn.classList.add('btn');
2582                btn.classList.add('btn-primary');
2583                btn.classList.add('m-auto');
2584                btn.classList.add(this.moreBtnClass);
2585                btn.classList.add(btnClass);
2586                btn.dataset.page = pageNum;
2587                btn.innerText = label;
2588
2589                if (method === 'insertAfter') {
2590                    if (element.nextSibling) {
2591                        element.parentNode.insertBefore(btn, element.nextSibling)
2592                    } else {
2593                        element.parentNode.appendChild(btn);
2594                    }
2595
2596                } else {
2597                    element.parentNode.insertBefore(btn, element);
2598                }
2599
2600                return btn;
2601            },
2602
2603            _createProgressBar: function () {
2604                if (!this.progressBarEnabled) {
2605                    return null;
2606                }
2607
2608                if (this.progressBar) {
2609                    return this.progressBar;
2610                }
2611
2612                let progressBar = document.createElement('div');
2613                progressBar.classList.add('mst-scroll__progress');
2614                progressBar.innerHTML = '<span class="mst-scroll__progress-label"></span>' +
2615                    '<div class="mst-scroll__progress-bar bg-gray-200"><div class="bg-primary"></div></div>';
2616
2617                let target = null;
2618
2619                if (this.nextBtn) {
2620                    target = document.querySelector('button.' + this.moreBtnClass + '._next');
2621                } else {
2622                    target = this._getLastProductList().nextSibling;
2623                }
2624
2625                this._getLastProductList().parentNode.insertBefore(progressBar, target);
2626
2627                if (this.prevBtn) {
2628                    target = document.querySelector('button.' + this.moreBtnClass + '._prev');
2629                } else {
2630                    target = this._getFirstProductList();
2631                }
2632
2633                this._getFirstProductList().parentNode.insertBefore(progressBar.cloneNode(true), target);
2634
2635                return progressBar;
2636            },
2637
2638            /**
2639             * Hide DOM elements listed in this.hide array.
2640             */
2641            _hideElements: function () {
2642                this.hide.map(function (selector) {
2643                    // hide only if "load" buttons exist
2644                    if (this.isActive) {
2645                        // mark all hidden elements with our identification
2646                        document.querySelector(selector).dataset.scroll = 'hidden';
2647                        document.querySelector(selector).classList.add('hidden');
2648                    } else {
2649                        // show only elements hidden by us
2650                        if (document.querySelectorAll(selector + ' [data-scroll="hidden"]').length) {
2651                            document.querySelector(selector + ' [data-scroll="hidden"]').classList.remove('hidden');
2652                        }
2653                    }
2654                }.bind(this));
2655            },
2656
2657            _bind: function () {
2658                var self = this;
2659
2660                // observe "load more" buttons clicks
2661                if (document.querySelectorAll('.' + this.moreBtnClass).length) {
2662                    document.querySelectorAll('.' + this.moreBtnClass).forEac
2662h(function (button) {
2663                        button.addEventListener('click', function (e) {
2664                            var page = e.target.dataset.page,
2665                                targetBtn = page > self.initPageNum ? self.nextBtn : self.prevBtn;
2666
2667                            self.currLimit--;
2668
2669                            // stop processing nextBtn when page limit reached
2670                            if (self.mode === 'button_infinite' && self.currLimit < 0 && targetBtn.hasClass('_next')) {
2671                                return;
2672                            }
2673
2674                            targetBtn.classList.add('_loading');
2675
2676                            self._request(window.location.href, {p: page})
2677                                .then(function (data) {
2678                                    targetBtn.classList.remove('_loading');
2679
2680                                    return data;
2681                                }.bind(self))
2682                                .then(function (data) {
2683                                    self._updatePaging(data);
2684                                    self._updateCatalog(data);
2685                                }.bind(self));
2686                        }.bind(self));
2687                    }.bind(self));
2688                }
2689
2690                // sort options change workaround
2691                document.querySelectorAll('select[data-role="sorter"]').forEach(function (sorter) {
2692                    sorter.addEventListener('change', function (e) {
2693                        let baseUrl = window.location.origin + window.location.pathname;
2694
2695                        let queryString = new URLSearchParams(window.location.search);
2696
2697                        if (queryString.has('product_list_order') && queryString.get('product_list_order') != e.target.value) {
2698                            queryString.set('product_list_order', e.target.value);
2699
2700                            window.history.pushState({}, '', baseUrl + '?' + queryString.toString());
2701                        }
2702                    })
2703                });
2704
2705                // update URL when scrolling through pages
2706                window.addEventListener('scroll', function () {
2707                    if (this.isActive) {
2708                        this._updateHistory({config: {pageNum: this._determineCurrentPage()}});
2709                    }
2710                }.bind(this));
2711            },
2712
2713            /**
2714             * Determine current page by scrollTop position.
2715             *
2716             * @return {Number} - current page number
2717             */
2718            _determineCurrentPage: function () {
2719                var page        = null,
2720                    self        = this,
2721                    biggestPart = 0;
2722
2723                this._getProductLists().forEach(function (list) {
2724                    let visiblePart = 0; // visible part of a product list block in window
2725
2726                    if (list.getBoundingClientRect().top - document.body.scrollTop < 0) { // list block is above window
2727                        visiblePart = list.getBoundingClientRect().top + list.offsetHeight - document.body.scrollTop;
2728                    } else {
2729                        visiblePart = window.offsetHeight - (list.getBoundingClientRect().top - document.body.scrollTop);
2730                    }
2731
2732                    if (visiblePart < 0) {
2733                        return; // skip current product list and continue loop
2734                    }
2735
2736                    // if whole product list completely fit on the window
2737                    if (visiblePart >= list.offsetHeight
2738                        // or the product list takes up most of the window size
2739                        || list.offsetHeight > window.offsetHeight && window.offsetHeight / visiblePart < 2
2740                    ) {
2741                        page = list.getAttribute('data-' + self.dataPageAttr) || 1;
2742                        return false; // we found page, stop looping
2743                    }
2744
2745                    // otherwise use the page that takes up the most part of a space in the window
2746                    if (visiblePart > biggestPart) {
2747                        biggestPart = visiblePart;
2748                        page = list.getAttribute('data-' + self.dataPageAttr) || 1;
2749                    }
2750                });
2751
2752                return page;
2753            },
2754
2755            _updateLabels: function (config) {
2756                const btnPattern    = "%limit%";
2757                const totalPattern  = '%total%';
2758                const loadedPattern = '%loaded%';
2759
2760                if (this.prevBtn) {
2761                    this.prevBtn.innerHTML = config.loadPrevText.replace(btnPattern, config.itemsLimit);
2762                }
2763
2764                let nextLimit = config.itemsLimit;
2765
2766                if ((config.pageNum + 1) * config.itemsLimit > config.itemsTotal) {
2767                    nextLimit = config.itemsTotal - config.pageNum * config.itemsLimit;
2768                }
2769
2770                if (this.nextBtn) {
2771                    this.nextBtn.innerHTML = config.loadNextText.replace(btnPattern, nextLimit);
2772                }
2773
2774                if (this.progressBar) {
2775                    let progressBarLabel = config.progressBarText;
2776                    let initPageItems    = this.initPageNum * config.itemsLimit > this.itemsTotal
2777                        ? this.itemsTotal - (this.initPageNum - 1) * config.itemsLimit
2778                        : config.itemsLimit;
2779
2780                    let calculatedLoadedItems = initPageItems + (this.loadedPages - 1) * config.itemsLimit;
2781
2782                    let current = calculatedLoadedItems > config.itemsTotal
2783                        ? config.itemsTotal
2784                        : calculatedLoadedItems;
2785
2786                    progressBarLabel = progressBarLabel.replace(totalPattern, config.itemsTotal)
2787                        .replace(loadedPattern, current);
2788
2789                    document.querySelectorAll('.mst-scroll__progress-label').forEach(function (label) {
2790                        label.innerHTML = progressBarLabel;
2791                    });
2792
2793                    let width = Math.round(current / config.itemsTotal * 100) + '%';
2794
2795                    document.querySelectorAll('.mst-scroll__progress-bar div').forEach(function (bar) {
2796                        bar.style.width = width;
2797                    });
2798                }
2799
2800                this.loadedPages++;
2801            },
2802
2803            /**
2804             * Update catalog products.
2805             *
2806             * @param {Object} response
2807             */
2808            _updateCatalog: function (response) {
2809                var selector      = this._getProductListSelector(),
2810                    productList   = null,
2811                    doc = document.documentElement,
2812                    top = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);
2813
2814                if (response.products && response.config) {
2815                    this._updateLabels(response.config);
2816                    // wrap product list into div to be able to retrieve needed 
2816selector
2817                    let wrapper = document.createElement('div');
2818                    wrapper.innerHTML = response.products;
2819
2820                    productList = wrapper.querySelector(selector);
2821
2822                    getContentUpdater().renderJSFromContent(response.products);
2823
2824                    productList.setAttribute('data-' + this.dataPageAttr, response.config.pageNum);
2825                    // insert products after last of first list accordingly
2826                    if (response.config.pageNum > this.initPageNum) {
2827                        this._getLastProductList()
2828                            .parentNode
2829                            .insertBefore(productList, this._getLastProductList().nextSibling);
2830                        window.scroll(0, top);
2831                    } else {
2832                        this._getFirstProductList()
2833                            .parentNode
2834                            .insertBefore(productList, this._getFirstProductList());
2835                    }
2836
2837                    window.scroll(0, top);
2838
2839                    // switch infinite mode to button mode
2840                    if (this.mode === 'infinite_button' && this.currLimit <= 0 && !this.modeSwitched) {
2841                        if (this.nextPageNum) {
2842                            this.nextPageNum++;
2843
2844                            if (this.lastPageNum >= this.nextPageNum) {
2845                                this.nextBtn = this._createButton(this.loadNextText, this.nextPageNum, 'insertAfter');
2846                                this.progressBar = this._createProgressBar();
2847                                this._bind();
2848                            }
2849                        }
2850
2851                        this.modeSwitched = true;
2852                    }
2853
2854                    // switch button mode to infinite mode
2855                    if (this.mode === 'button_infinite' && this.currLimit <= 0 && !this.modeSwitched) {
2856                        if (this.nextPageNum) {
2857                            this.nextPageNum += 2;
2858
2859                            if (this.lastPageNum >= this.nextPageNum) {
2860                                this._initScroll();
2861                                this._bind();
2862                            }
2863                        }
2864
2865                        let elem = document.querySelector('.mst-scroll__button._next');
2866
2867                        elem.parentNode.removeChild(elem);
2868
2869                        this.modeSwitched = true;
2870
2871                    }
2872
2873                    // third-party review widgets compatibility
2874                    this.config.load3rdPartyReviewWidgets();
2875                }
2876            },
2877
2878            /**
2879             * @return {String}
2880             */
2881            _getProductListSelector: function () {
2882                var selector = '';
2883                if (document.querySelectorAll(selector).length) {
2884                    return selector;
2885                }
2886                return '.' + this.$el().getAttribute('class').split(' ').filter(
2886Boolean).join('.');
2887            },
2888
2889            _getProductLists: function () {
2890                return document.querySelectorAll(this._getProductListSelector());
2891            },
2892
2893            _getLastProductList: function () {
2894                return this._getProductLists()[this._getProductLists().length - 1];
2895            },
2896
2897            _getFirstProductList: function () {
2898                return this._getProductLists()[0];
2899            },
2900
2901            /**
2902             * Update paging buttons.
2903             *
2904             * @param {Object} response
2905             */
2906            _updatePaging: function (response) {
2907                // hide next/prev buttons
2908                if (response.config) {
2909                    // if next page was loaded - change next page number, otherwise change prev page number
2910                    if (response.config.pageNum > this.initPageNum) {
2911                        this.nextBtn.dataset.page = response.config.nextPageNum;
2912                    } else {
2913                        this.prevBtn.dataset.page = response.config.prevPageNum;
2914                    }
2915
2916                    // for hiding nextBtn if last page is loaded and prevBtn clicked (initial page != 1)
2917                    this.maxLoadedPageNum = this.maxLoadedPageNum > response.config.pageNum
2918                        ? this.maxLoadedPageNum
2919                        : response.config.pageNum;
2920
2921                    // for hiding prevBtn if first page is loaded and nextBtn clicked (initial page != 1)
2922                    this.minLoadedPageNum = this.minLoadedPageNum < response.config.pageNum
2923                        ? this.minLoadedPageNum
2924                        : response.config.pageNum;
2925
2926                    // hide next/prev page buttons if first or last pages loaded
2927                    if (response.config.pageNum === 1 || this.minLoadedPageNum === 1) {
2928                        this.prevBtn.classList.add('hidden');
2929                    } else if (this.prevBtn) {
2930                        this.prevBtn.classList.remove('hidden');
2931                    }
2932
2933                    if (response.config.pageNum === response.config.lastPageNum || this.maxLoadedPageNum === response.config.lastPageNum) {
2934                        this.nextBtn.classList.add('hidden');
2935                    } else if (this.nextBtn) {
2936                        this.nextBtn.classList.remove('hidden');
2937                    }
2938                }
2939            },
2940
2941            /**
2942             * Update page number param in URL.
2943             *
2944             * @param {Object} response
2945             */
2946            _updateHistory: function (response) {
2947                var url            = null,
2948                    currentPageNum = null;
2949
2950                if (response.config) {
2951                    url = this._getUrl(response.config.pageNum);
2952                    currentPageNum = this._getUrl().searchParams.get(this.pageParam);
2953
2954                    // ignore page #1
2955                    if (response.config.pageNum === 1 && currentPageNum === null) {
2956                        return;
2957                    }
2958
2959                    if (parseInt(currentPageNum) !== parseInt(response.config.pageNum)) {
2960                        history.replaceState({}, document.title, url.href);
2961                    }
2962                }
2963            },
2964
2965            /**
2966             * Send XHR.
2967             *
2968             * @param {String} url
2969             * @param {Object} data
2970             *
2971             * @return {Object}
2972             */
2973            _request: function (url, data) {
2974                data.is_scroll = 1;
2975                data.isAjax = 1;
2976
2977                let queryParams = new URLSearchParams();
2978
2979                for (const key in data) {
2980                    queryParams.set(key, data[key]);
2981                }
2982
2983                const separator = url.indexOf('?') > 0 ? '&' : '?';
2984
2985                return fetch(url + separator + queryParams.toString())
2986                    .then(response => {
2987                        if (!response.ok) console.warn('GET request failed');
2988                        return response.json()
2989                    });
2990            },
2991
2992            _getExcludeHeight: function () {
2993                var height = 0;
2994
2995                if (this.excludeHeight === null) {
2996                    if (!this.postCatalogHeightSelectors) {
2997                        this.postCatalogHeightSelectors = [
2998                            '.main .products ~ .block-static-block',
2999                            '.page-footer',
3000                            '.page-bottom'
3001                        ];
3002                    }
3003
3004                    this.postCatalogHeightSelectors.map(function (selector) {
3005                        var block = document.querySelector(selector);
3006
3007                        if (block && block.length) {
3008                            height += block[0].offsetHeight;
3009                        }
3010                    });
3011
3012                    this.excludeHeight = height;
3013                }
3014
3015                return this.excludeHeight;
3016            },
3017
3018            /**
3019             * Get the URL for fetching additional products.
3020             *
3021             * @param {Number|Null} pageNum
3022             *
3023             * @return {URL}
3024             */
3025            _getUrl: function (pageNum) {
3026                var url = new URL(window.location);
3027
3028                if (pageNum) {
3029                    if (parseInt(pageNum) === 1) {
3030                        url.searchParams.delete(this.pageParam);
3031                    } else {
3032                        url.searchParams.set(this.pageParam, pageNum);
3033                    }
3034                }
3035
3036                return url;
3037            }
3038        }
3039    }
3040</script>
3040
3041
3042<script>
3043    function initCheckedOptionsCounter() {
3044        return {
3045            apply: function () {
3046                const filters = document.querySelectorAll('.filter-option');
3047
3048                filters.forEach(function (filter) {
3049                    const title = filter.querySelector('.filter-options-title');
3050                    const checkedCounterContainer = filter.querySelector('template').content.querySelector('.mst-clear-options-link');
3051
3052                    if (!checkedCounterContainer || checkedCounterContainer.getAttribute('data-checked-count') == 0) {
3053                        return;
3054                    }
3055
3056                    const checkedCounter = checkedCounterContainer.querySelector('.mst-nav__checked-counter__wrapper');
3057
3058                    checkedCounter.querySelector('a').addEventListener('click', function (e) {
3059                        e.stopPropagation();
3060                        e.preventDefault();
3061
3062                        initApplier().apply(e.target.href);
3063                    })
3064
3065                    const filterTitle = filter.querySelector('.filter-options-title');
3066
3067                    filterTitle.insertBefore(checkedCounter, filterTitle.querySelector('span.title').nextElementSibling);
3068                });
3069            }
3070        }
3071    }
3072
3073    document.addEventListener('DOMContentLoaded', function () {
3074        initCheckedOptionsCounter().apply();
3075    });
3076</script>
3076
3077
3078<script>
3079    function initAlphabeticalIndex(shouldDisplay, limit) {
3080        return {
3081            letters:         [],
3082            visibleSelector: '[data-letter][data-value][data-search-hidden = false]',
3083
3084            options: {
3085                shouldDisplay: shouldDisplay,
3086                limit: limit
3087            },
3088
3089            init: function () {
3090                if (!this.options.shouldDisplay) {
3091                    return;
3092                }
3093
3094                const options = this.$el.parentElement.querySelectorAll('[data-element="filter"][data-value]');
3095
3096                if (!options.length) {
3097                    return;
3098                }
3099
3100                if (this.$el.querySelectorAll('.mst-nav__alphabetical').length) {
3101                    return;
3102                }
3103
3104                this.createAlphabeticalIndex(options);
3105            },
3106
3107            createAlphabeticalIndex: function (options) {
3108                this.letters = [];
3109
3110                options.forEach(function (option) {
3111                    let label = option.querySelectorAll('label').length
3112                        ? option.querySelector('label').innerText.trim()
3113                        : option.getAttribute('aria-label');
3114
3115                    let letter = label.substring(0, 1).toUpperCase();
3116                    letter = letter.match(/[a-zA-Z]/) ? letter : '#';
3117
3118                    if (this.letters.indexOf(letter) < 0) {
3119                        this.letters.push(letter);
3120                    }
3121                }.bind(this));
3122
3123                this.letters.sort();
3124
3125                const $container = document.createElement('div');
3126                $container.classList.add('mst-nav__alphabetical');
3127
3128                this.letters.forEach(function (letter) {
3129                    const $letter = document.createElement('span');
3130                    $letter.innerText = letter;
3131                    $letter.addEventListener('click', this.filterOptions.bind(this));
3132                    $letter.addEventListener('click', this.handleVisibility.bind(this));
3133
3134                    $container.appendChild($letter);
3135                }.bind(this));
3136
3137                this.$el.appendChild($container);
3138
3139                this.$el.closest('.filter-option').addEventListener('alphabetical', this.handleVisibility.bind(this));
3140            },
3141
3142            filterOptions: function (e) {
3143                const letter = e.target;
3144
3145                if (letter.classList.contains('_checked')) {
3146                    letter.classList.remove('_checked');
3147                } else {
3148                    letter.classList.add('_checked');
3149                }
3150
3151                const checkedLetters = this.getCheckedLetters();
3152
3153                getEventManager().triggerEvent(this.$el.closest('.filter-option'), 'showhide') // communicate with sizeLimiter
3154
3155                this.$el.parentElement.querySelectorAll('[data-letter]').forEach(function (option) {
3156                    option.setAttribute('data-hidden', 'false');
3157
3158                    if (checkedLetters.length && checkedLetters.indexOf(option.getAttribute('data-letter')) < 0) {
3159                        option.setAttribute('data-letter-hidden', 'true');
3160                    } else {
3161                        option.setAttribute('data-letter-hidden', 'false');
3162                    }
3163                });
3164            },
3165
3166            handleVisibility: function () {
3167                const visibleFilters = this.$el.parentElement.querySelectorAll(this.visibleSelector);
3168
3169                if (visibleFilters.length < this.options.limit) {
3170                    this.$el.querySelectorAll('span').forEach(function (letter) {
3171                        letter.classList.add('hidden');
3172                    });
3173
3174                    return;
3175                }
3176
3177                let visibleLetters = [];
3178
3179                visibleFilters.forEach(function (filter) {
3180                    if (visibleLetters.indexOf(filter.getAttribute('data-letter')) < 0) {
3181                        visibleLetters.push(filter.getAttribute('data-letter'));
3182                    }
3183                });
3184
3185                if (visibleLetters.length) {
3186                    this.$el.querySelectorAll('span').forEach(function (letter) {
3187                        if (visibleLetters.indexOf(letter.innerText) < 0) {
3188                            letter.classList.add('hidden');
3189                        } else {
3190                            letter.classList.remove('hidden');
3191                        }
3192                    });
3193                }
3194            },
3195
3196            getCheckedLetters: function () {
3197                let checkedLetters = [];
3198
3199                this.$el.querySelectorAll('span._checked').forEach(function (letter) {
3200                    checkedLetters.push(letter.innerText);
3201                })
3202
3203                return checkedLetters;
3204            },
3205        }
3206    }
3207</script>
3207
3208
3209<script>
3210    function getEventManager () {
3211        return {
3212            triggerEvent: function (element, eventName, data) {
3213                if (!element) {
3214                    console.warn('Attempt to trigger event ' + eventName + ' on unknown element');
3215                    return;
3216                }
3217
3218                let event;
3219
3220                if (window.CustomEvent && typeof window.CustomEvent === 'function') {
3221                    event = new CustomEvent(eventName, {detail: data ? data : {}});
3222                } else {
3223                    event = document.createEvent('CustomEvent', true, true, data ? data : {});
3224                    event.initCustomEvent(eventName);
3225                }
3226
3227                element.dispatchEvent(event);
3228            }
3229        }
3230    }
3231</script>
3231
3232
3233<div class="fixed inset-0 z-10 hidden" id="mst-nav__overlay">
3234    <div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50"
3235     style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);"
3236     x-show="isLoading"
3237     x-transition:enter="ease-out duration-200"
3238     x-transition:enter-start="opacity-0"
3239     x-transition:enter-end="opacity-100"
3240     x-transition:leave="ease-in duration-200"
3241     x-transition:leave-start="opacity-100"
3242     x-transition:leave-end="opacity-0">
3243    <!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL -->
3244<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="text-primary" width="57" height="57" role="img">
3245    <g fill="none" fill-rule="evenodd">
3246        <g transform="translate(1 1)" stroke-width="2">
3247            <circle cx="5" cy="50" r="5">
3248                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/>
3249                <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/>
3250            </circle>
3251            <circle cx="27" cy="5" r="5">
3252                <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/>
3253                <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/>
3254            </circle>
3255            <circle cx="49" cy="50" r="5">
3256                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/>
3257                <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/>
3258            </circle>
3259        </g>
3260    </g>
3261<title>loader</title></svg>
3262    <div class="ml-10 text-primary text-xl">
3263        Loading...    </div>
3264</div>
3265</div>
3266<!--<div class="fixed inset-0 bg-black bg-opacity-50 z-10 hidden" id="mst-nav__overlay"></div>-->
3267
3268<script>
3269    function initApplier() {
3270        return {
3271            config: getMstNavConfig(),
3272            $from: null,
3273            $to: null,
3274
3275            apply(url, $initiator = null, force = false, from = null, to = null) {
3276                this.$from = from;
3277                this.$to = to;
3278                url = this.fixUrl(url);
3279
3280                if (!$initiator || $initiator.closest("[data-mst-nav-part=state]")) {
3281                    force = true;
3282                } else {
3283                    const mode = $initiator.dataset.mode;
3284
3285                    if (mode === 'instant') {
3286                        force = true;
3287                    }
3288                }
3289
3290                if (!this.config.isAjax()) {
3291                    this.noAjaxMode(url);
3292                } else if (this.config.isConfirmationMode() && force === false) {//@todo
3293                    this.confirmationMode(url, $initiator);
3294                } else {
3295                    this.instantMode(url);
3296                }
3297            },
3298
3299            applyForced: function (url) {
3300                this.apply(url, null, true);
3301            },
3302
3303            fixUrl: function (url) {
3304                url = url.replace('&amp;', '&');
3305                url = url.replace(/%2C/g, ',');
3306
3307                return url;
3308            },
3309
3310            noAjaxMode(url) {
3311                window.location.href = url;
3312            },
3313
3314            instantMode(url, force) {
3315                let event;
3316
3317                if (window.CustomEvent && typeof window.CustomEvent === 'function') {
3318                    event = new CustomEvent(this.config.getAjaxCallEvent(), {detail: {url: url, force: force}});
3319                } else {
3320                    event = document.createEvent('CustomEvent');
3321                    event.initCustomEvent(this.config.getAjaxCallEvent(), true, true, {url: url, force: force});
3322                }
3323
3324                document.dispatchEvent(event);
3325            },
3326
3327            confirmationMode(url, $initiator, force) {
3328                if (this.config.isSeoFilterEnabled()) {
3329                    url = this.config.getFriendlyClearUrl();
3330                }
3331
3332                const actualParams = new URLSearchParams(window.location.search.substr(1));
3333                const filtersParams = this.getFilters();
3334
3335                let cacheKey = filtersParams.cacheKey !== undefined ? filtersParams.cacheKey : '';
3336
3337                if (cacheKey) {
3338                    delete filtersParams.cacheKey;
3339                }
3340
3341                const params = Object.assign({}, filtersParams, {mode: 'by_button_click'});
3342
3343                const urlSearchObject = new URLSearchParams();
3344
3345                for (const key in params) {
3346                    urlSearchObject.set(key, params[key]);
3347                }
3348
3349                const query = urlSearchObject.toString();
3350
3351                url = url.split('?')[0];
3352
3353                if (query) {
3354                    url += "?" + query;
3355                }
3356
3357                const applyButton = initApplyButton();
3358
3359                cacheKey = url + cacheKey;
3360
3361                applyButton.show();
3362                applyButton.move($initiator);
3363                applyButton.load(url, cacheKey, force);
3364            },
3365
3366            filters: {},
3367
3368            getFilters() {
3369
3370                let cacheKey = '';
3371
3372                document.querySelectorAll('[data-mst-nav-filter]').forEach(function (filter) {
3373                    cacheKey += filter.dataset.mstNavCacheKey;
3374                    this.collectActiveFilters(filter);
3375                }.bind(this));
3376
3377                document.querySelectorAll('.filter-option.card template').forEach(function (template) {
3378                    const filter = template.content.querySelector('[data-mst-nav-filter]')
3379                    if (!filter) {
3380                        return;
3381                    }
3382                    this.collectActiveFilters(filter, this);
3383                }.bind(this));
3384
3385                this.filters['cacheKey'] = cacheKey;
3386
3387                return this.filters;
3388            },
3389
3390            collectActiveFilters(filter) {
3391                let filterName = filter.dataset.mstNavFilter;
3392
3393                filterName = filterName.replace(/A\d{6,7}A/, '');
3394                let filterValues = [];
3395
3396                switch (filterName) {
3397                    case 'price': //@todo
3398                        let filterValue = this.getSliderPriceFilterValue(filter);
3399                        if (filterValue) {
3400                            filterValues.push(filterValue);
3401                            this.filters[filterName] = filterValues.join(',');
3402                        } else {
3403                            filter.querySelectorAll('[data-element = filter]._checked').forEach( function (item) {
3404                                let filterValue = item.dataset.value;
3405                                filterValues.push(filterValue);
3406                            }.bind(this));
3407
3408                            if (filterValues.length > 0 && !this.filters[filterName]) {
3409                                this.filters[filterName] = filterValues.join(',');
3410                            }
3411                        }
3412                        break;
3413
3414                    default:
3415                        filter.querySelectorAll('[data-element = filter]._checked').forEach( function (item) {
3416                            let filterValue = item.dataset.value;
3417                            filterValues.push(filterValue);
3418                        }.bind(this));
3419
3420                        if (filterValues.length > 0 && !this.filters[filterName]) {
3421                            this.filters[filterName] = filterValues.join(',');
3422                        }
3423                }
3424            },
3425
3426            getSliderPriceFilterValue($el) {
3427                
3428                if ($el.getAttribute("x-init") !== 'initSlider') {
3429                    return false;
3430                }
3431                
3432                let sliderElement = $el.querySelector('.mst-nav__slider-slider') ?? $el.querySelector('.mst-nav__slider-from-to');
3433                if (!sliderElement) {
3434                    return false;
3435                }
3436
3437                const priceWidget = sliderElement.noUiSlider
3438
3439                let minVal  = 0;
3440                let maxVal  = 0;
3441                let fromVal = 0;
3442                let toVal   = 0;
3443
3444                if (priceWidget) {
3445                    minVal = parseFloat(priceWidget.options.range.min).toFixed(2);
3446                    maxVal = parseFloat(priceWidget.options.range.max).toFixed(2);
3447                    fromVal = parseFloat(priceWidget.options.start[0]).toFixed(2);
3448                    toVal = parseFloat(priceWidget.options.start[1]).toFixed(2);
3449                } else {
3450                    const slider = this.getSliderOption($el.getAttribute("x-data"));
3451
3452                    if(!slider) {
3453                        return false;
3454                    }
3455                        minVal  = slider.min.toFixed(2);
3456                        maxVal  = slider.max.toFixed(2);
3457                        fromVal = slider.from.toFixed(2);
3458                        toVal   = slider.to.toFixed(2);
3459                }
3460
3461                fromVal = this.$from ? parseFloat(this.$from).toFixed(2) : fromVal;
3462                toVal = this.$to ? parseFloat(this.$to).toFixed(2) : toVal;
3463
3464                if (fromVal === minVal && toVal === maxVal) {
3465                    return false;
3466                }
3467
3468                return fromVal + "-" + toVal;
3469            },
3470
3471            getSliderOption(content) {
3472                if (!content.includes("renderRangeSlider")) {
3473                    return false;
3474                }
3475                let result = content.match(/\({(.*?)}\)/);
3476                if (!result[1]) {
3477                    return false;
3478                }
3479                
3480                let prepareSliderObject = result[1].substring(0, result[1].indexOf('valueTemplate') - 2);
3481
3482                prepareSliderObject = "{" + prepareSliderObject + "}";
3483
3484                return JSON.parse(prepareSliderObject);
3485                
3486            }
3487        }
3488    }
3489</script>
3489
3490
3491<script>
3492    function initLabelRenderer() {
3493        return {
3494            config: getMstNavConfig(),
3495
3496            handleClick(e) {
3497                // if (e.target.tagName !== 'INPUT') {
3498                    e.preventDefault();
3499                    e.stopPropagation();
3500                // }
3501
3502                let $item = e.target.closest('[data-element = filter]');
3503
3504                const link = $item.tagName === 'A' ? $item : $item.querySelector('a');
3505
3506                if (link.classList.contains('disabled')) {
3507                    return;
3508                }
3509
3510                if ($item.tagName !== 'A') {
3511                    if (e.target.tagName !== 'INPUT') {
3512                        this.toggleCheckbox($item);
3513                    }
3514                }
3515
3516                this.toggleSwatch($item);
3517                this.showHighLight($item);
3518
3519                const url = $item.tagName === 'A'
3520                    ? $item.href
3521                    : $item.querySelector('a').href;
3522				
3523                initApplier().apply(url, $item);
3524				const elements = document.querySelectorAll(".special-filters");
3525				const currentUrl = url; 
3526                // Replace '&product_list_model=list' with an empty string in the final URL
3527               // newFinalUrl = finalUrl.replace('&product_list_mode=list', '');
3528                // Get the base URL by splitting before the '?'
3529                const baseUrl = currentUrl.split('?')[0]; 
3530                // Get the current URL parameters by splitting after the '?'
3531                const currentUrlParams = currentUrl.split('?')[1];
3532                // Convert the current URL parameters into an array of key-value pairs
3533                const currentUrlParamsArray = currentUrlParams.split('&').map(param => param.split('=')); //alert(currentUrlParamsArray);
3534
3535				// Iterate over the elements and get the href value for each element.
3536                let newFinalUrl = "";
3537                let finalUrl = "";
3538				elements.forEach(function(element) {
3539                    let staticBlockUrl = element.getAttribute("data-link-url");
3540                    // Get the static block URL parameters by splitting after the '?'
3541                    let staticBlockUrlParams = staticBlockUrl.split('?')[1];
3542
3543                    // Convert the static block URL parameters into an array of key-value pairs
3544                    let staticBlockUrlParamsArray = staticBlockUrlParams.split('&').map(param => param.split('='));
3545
3546                    // Concatenate the two arrays of parameters
3547                    let allParamsArray = currentUrlParamsArray.concat(staticBlockUrlParamsArray);
3548
3549                    // Initialize an empty object to store the revised parameters
3550                    let revisedParamsObject = {};
3551
3552                    // Loop over the array of parameters
3553                    for (let [key, value] of allParamsArray) {
3554                        // If the key already exists in the object, append the value with a comma separator
3555                        if (revisedParamsObject[key]) { 
3556                            // Split the existing value by comma and check if it includes the new value
3557                            let existingValues = revisedParamsObject[key].split(',');
3558                            if (!existingValues.includes(value) && value!='list') {
3559                            // If not, append the value with a comma separator
3560                            revisedParamsObject[key] += ',' + value;
3561                            }
3562                            
3563                        } else {
3564                            // Otherwise, assign the value to the key
3565                            revisedParamsObject[key] = value;
3566                        }
3567                    }
3568
3569                    // Initialize an empty string to store the revised parameters as a query string
3570                    let revisedParamsString = "";
3571
3572                    // Loop over the object of revised parameters
3573                    for (let [key, value] of Object.entries(revisedParamsObject)) {
3574                        // Append the key-value pair with a '&' separator
3575                        revisedParamsString += key + '=' + value + '&';
3576                    }
3577
3578                    // Remove the trailing '&' from the string
3579                    revisedParamsString = revisedParamsString.slice(0, -1);
3580
3581                    // Construct the final URL by adding the base URL and the revised parameters string with a '?' separator
3582                    let finalUrl = baseUrl + '?' + revisedParamsString;
3583
3584                    // Replace '&product_list_model=list' with an empty string in the final URL
3585                    let newFinalUrl = finalUrl.replace('&product_list_mode=list', '');
3586                    
3587                    // Append '&product_list_model=list' to the new final URL
3588                    newFinalUrl += '&product_list_mode=list';
3589
3590                    element.setAttribute("href", newFinalUrl);
3591                    if (link.classList.contains('remove')) {
3592                        const removelink = link.href;
3593                        const pagebuilderlink = $(this)[0].href;
3594                        if(removelink != pagebuilderlink){
3595                            const parentElement = $(this).closest('.pagebuilder-column');
3596                        if(parentElement){
3597                            // console.log(parentElement[0]);
3598                            if(parentElement[0].classList.contains('active')){
3599                                    // console.log('right');
3600                                    parentElement[0].classList.remove("active");
3601                            }
3602                            }
3603                        }
3604                    }	
3605
3606                    // for clear all active class remove
3607                    if(link.classList.contains('filter-clear')){ 
3608                        var elems = document.querySelectorAll(".pagebuilder-column");
3609                        [].forEach.call(elems, function(el) {
3610                            el.classList.remove("active");
3611                        });
3612                    }
3613				});
3614            },
3615
3616            showHighLight: function ($el) {
3617                if ($el.classList.contains('_checked')) {
3618                    $el.classList.add("_highlight");
3619					const parentElement = $el.closest('.pagebuilder-column');
3620					if(parentElement){
3621						parentElement.classList.add("active");
3622					}
3623                } else {
3624                    $el.classList.remove("_highlight");
3625					const parentElement = $el.closest('.pagebuilder-column');
3626
3627					if(parentElement) {
3628						parentElement.classList.remove("active");
3629					}
3630
3631                    const anchorElement = $el.querySelector('a');
3632
3633                    if (anchorElement) {
3634                        const relValue = anchorElement.getAttribute('data-link-url');
3635                        console.log("data-link-url===="+relValue);
3636                        const ogiurl = relValue.split('?')[1];
3637                        console.log('Anchor data-link-url value:', ogiurl);
3638
3639                        if (ogiurl === undefined || ogiurl.trim() === "") {
3640                            //do nothing
3641                        } else {
3642                            const currentUrl = window.location.href;
3643                            const baseUrl = currentUrl.split('?')[0]; 
3644                            const currentUrlParams = currentUrl.split('?')[1];
3645                            console.log('current url value:', currentUrlParams);
3646                            const hrefValue = anchorElement.getAttribute('href');
3647                            var urlObj = new URL(anchorElement);
3648                            var params = new URLSearchParams(urlObj.search);
3649                            const keyUrl = ogiurl.split('=')[0];
3650
3651                            if (ogiurl == currentUrlParams) {
3652                                params.delete(keyUrl);
3653                            } else {
3654                                const ogivalue = ogiurl.split('=')[0];
3655                                const ogioldvalue = ogiurl.split('=')[1];
3656                                const filUrl = ogioldvalue.split('&')[0];
3657                                let sizeValue = params.get(ogivalue);
3658
3659                                if (sizeValue) {
3660                                    let sizes = sizeValue.split(',');
3661                                    sizes = sizes.filter(ogivalue => ogivalue !== filUrl);
3662                                    let newSizeValue = sizes.join(',');
3663                                    params.set(ogivalue, newSizeValue);
3664                                }
3665                            }
3666                            
3667                            urlObj.search = params.toString();
3668                            var updatedUrl = urlObj.toString();
3669                            anchorElement.setAttribute('href',updatedUrl);  
3670                        }
3671                    }
3672                }
3673            },
3674
3675            toggleCheckbox: function ($el) {
3676                const $checkbox = $el.querySelector('input[type=checkbox]');
3677                const parentElement = $el.closest('.pagebuilder-column');
3678
3679                if (parentElement) {
3680                    parentElement.classList.remove("active");
3681                }
3682
3683                if (!$checkbox) {
3684                    return
3685                }
3686
3687                if ($checkbox.disabled) {
3688                    return true;
3689                }
3690
3691                $checkbox.checked = !$checkbox.checked;
3692            },
3693
3694            toggleSwatch: function ($el) {
3695                if ($el.classList.contains('_checked')) {
3696                    $el.classList.remove('_checked');
3697					const parentElement = $el.closest('.pagebuilder-column');
3698					if(parentElement){
3699						parentElement.classList.remove("active");
3700					}
3701
3702                    if ($el.classList.contains('swatch-option-link-layered')) {
3703                        $el.classList.remove('ring');
3704                        $el.classList.remove('ring-primary');
3705                    }
3706                } else {
3707                    $el.classList.add('_checked');
3708					const parentElement = $el.closest('.pagebuilder-column');
3709					if (parentElement) {
3710						parentElement.classList.add("active");
3711					}
3712					
3713                    if ($el.classList.contains('swatch-option-link-layered')) {
3714                        $el.classList.add('ring');
3715                        $el.classList.add('ring-primary');
3716                    }
3717                }
3718            }
3719        }
3720    }
3721</script>
vendor: 1 bytes, line 3721
3721
3722<script>
3723    function initSwatchRenderer() {
3724        return {
3725            getSwatchType(typeNumber) {
3726                switch ("" + typeNumber) {
3727                    case "1":
3728                        return "color"
3729                    case "2":
3730                        return "image"
3731                    case "0":
3732                    default:
3733                        return "text"
3734                }
3735            },
3736            getSwatchBackgroundStyle(type, value, image) {
3737                if (this.getSwatchType(type) === "color") {
3738                    return 'background-color:' + value;
3739                } else if (this.getSwatchType(type) === "image") {
3740                    return "background: #ffffff url('" + image + "') no-repeat center;" + this.groupImageStyle(image);
3741                } else {
3742                    return '';
3743                }
3744            },
3745            activeTooltipItem: false,
3746            tooltipPositionElement: false,
3747            isTooltipVisible() {
3748                return this.activeTooltipItem
3749            },
3750            getTooltipImageStyle() {
3751                const type = this.activeTooltipItem.type;
3752
3753                if (this.getSwatchType(type) === "color") {
3754                    return 'background-color:' + this.activeTooltipItem.value + '; width: 110px; height: 90px;';
3755                } else if (this.getSwatchType(type) === "image") {
3756                    return "background: #ffffff url('" + this.activeTooltipItem.thumb +
3757                        "') center center no-repeat; width: 110px; height: 90px;" + this.groupImageStyle(this.activeTooltipItem.value);
3758                } else {
3759                    return 'display:none';
3760                }
3761            },
3762            getTooltipPosition() {
3763                return this.tooltipPositionElement ?
3764                    (
3765                        `top: ${this.tooltipPositionElement.offsetTop}px;` +
3766                        `left: ${this.tooltipPositionElement.offsetLeft}px;`
3767                    ) : ''
3768            },
3769            getTooltipLabel() {
3770                return this.activeTooltipItem.label || ''
3771            },
3772            isVisualSwatch() {
3773                return this.getSwatchType(this.activeTooltipItem.type) !== 'text'
3774            },
3775            isFirstItemCol() {
3776                return ''
3777            },
3778            groupImageStyle(img) {
3779                return img.includes('mst_nav_group') ? " background-size:contain" : "";
3780            }
3781        }
3782    }
3783</script>
3783<script>
3784    function initSearchRenderer() {
3785        const searchFilter = document.querySelector('#mst-nav__search')
3786            .closest('.filter-option');
3787
3788        searchFilter.classList.add('relative');
3789
3790        let searchTitle = searchFilter.querySelector('.filter-options-title');
3791
3792        let isInHorizontalNav = false;
3793
3794        if (document.querySelector('#mst-nav__search').closest('.mst-nav__horizontal-bar')) {
3795            isInHorizontalNav = true;
3796        }
3797
3798        if (!isInHorizontalNav) {
3799            searchTitle.parentNode.removeChild(searchTitle);
3800        }
3801
3802        return {
3803            suggest: function (suggestionContainer, value) {
3804                suggestionContainer.innerHTML = '';
3805
3806                if (!value) {
3807                    suggestionContainer.style.display = 'none';
3808                    return;
3809                }
3810
3811                value = value.toLowerCase();
3812
3813                let filters = document.querySelector('.sidebar-main').querySelectorAll('.filter-option');
3814
3815                filters.forEach(function (item, idx) {
3816                    if (idx === 0) {
3817                        return;
3818                    }
3819
3820                    let filter = item.cloneNode(true);
3821
3822                    if (filter.querySelectorAll('.filter-options-content').length) {
3823                        let opened = filter.querySelector('.filter-options-content');
3824                        opened.parentNode.removeChild(opened);
3825                    }
3826
3827                    filter.setAttribute('x-data', "{open: true}");
3828                    filter.classList.remove('my-4');
3829                    let expander = filter.querySelector('.filter-options-title span:last-child');
3830                    expander.parentNode.removeChild(expander);
3831
3832                    let templateContent = filter.querySelector('template').content;
3833
3834                    filter.appendChild(templateContent);
3835                    filter.removeChild(filter.querySelector('template'));
3836
3837                    // remove search filter
3838                    if (filter.querySelectorAll('[data-element="search"]').length) {
3839                        let filterSearch = filter.querySelector('[data-element="search"]');
3840                        filterSearch.parentNode.removeChild(filterSearch);
3841                    }
3842
3843                    // remove alphabetical index
3844                    if (filter.querySelectorAll('[data-holder="alphabetical"]').length) {
3845                        let alphabetical = filter.querySelector('[data-holder="alphabetical"]');
3846                        alphabetical.parentNode.removeChild(alphabetical);
3847                    }
3848
3849                    if (filter.querySelectorAll('.mst-nav__sizeLimiter').length) {
3850                        let sizeLimiter = filter.querySelector('.mst-nav__sizeLimiter');
3851                        let parent = sizeLimiter.parentNode;
3852                        parent.removeChild(sizeLimiter);
3853                        if (parent.querySelector('style')) {
3854                            parent.removeChild(parent.querySelector('style'));
3855                        }
3856                    }
3857
3858                    let optionsCount = filter.querySelectorAll('[data-element=filter][data-value]').length;
3859                    let clonedFilter = filter.cloneNode(true);
3860
3861                    // check options match
3862                    filter.querySelectorAll('[data-element=filter]').forEach(function (option, i) {
3863                        if (!option.getAttribute('data-value')) {
3864                            option.parentNode.removeChild(option);
3865                            return;
3866                        }
3867
3868                        option.classList.remove('_parent', 'ml-7');
3869
3870                        if (!option.classList.contains('swatch-option')) {
3871                            option.classList.add('w-full');
3872                        }
3873
3874                        option.parentNode.classList.remove('pl-6');
3875
3876                        const label = option.tagName === 'A'
3877                            ? option.getAttribute('aria-label')
3878                            : option.querySelector('a').getAttribute('aria-label');
3879
3880                        if (label.toLowerCase().indexOf(value.toLowerCase()) < 0 || option.querySelectorAll('input:disabled').length) {
3881                            option.parentNode.removeChild(option);
3882                            optionsCount--;
3883                        }
3884                    });
3885
3886                    // check filter label if no option match
3887                    if (!optionsCount) {
3888                        let title = filter.querySelector('span.title').innerText;
3889                        title = title.trim();
3890
3891                        if (title.toLowerCase().indexOf(value.toLowerCase()) >= 0) {
3892                            filter = clonedFilter;
3893                            optionsCount = 1;
3894                        }
3895                    }
3896
3897                    // highlight match
3898                    filter.querySelectorAll('span.title, span.mst-nav__label-item__label').forEach(function (titleNode) {
3899                        let start = titleNode.innerText.toLowerCase().indexOf(value.toLowerCase());
3900
3901                        if (start >= 0) {
3902                            let match = titleNode.innerText.substr(start, value.length);
3903                            let regexp = new RegExp(match, 'g');
3904
3905                            if (titleNode.closest('.items')) {
3906                                titleNode.closest('.items').classList.remove('hidden');
3907                            }
3908
3909                            titleNode.innerHTML = titleNode.innerText.replace(regexp, '<span class="mst-nav__suggest-match bg-secondary">' + match + '</span>');
3910                        }
3911                    })
3912
3913                    if (optionsCount) {
3914                        suggestionContainer.appendChild(filter);
3915                    }
3916                });
3917
3918                if (suggestionContainer.children.length) {
3919                    suggestionContainer.style.display = 'block';
3920                } else {
3921                    suggestionContainer.style.display = 'none';
3922                }
3923
3924                document.addEventListener('click', function(e) {
3925                    suggestionContainer.style.display = 'none';
3926                });
3927            },
3928
3929            prepareSearch: function (e, url, origQuery, param, value) {
3930                if (e.keyCode === 13) {
3931                    document.querySelector('#mst-nav__search-apply').click();
3932                }
3933
3934                let query = '';
3935
3936                if (!origQuery) {
3937                    query = '?' + param + '=' + value;
3938                } else if (origQuery.indexOf(param) >= 0) {
3939                    origQuery = origQuery.replace('?', '');
3940
3941                    let queryArray = origQuery.split('&');
3942
3943                    queryArray.forEach(function (item, key) {
3944                        if (item.indexOf(param) >= 0) {
3945                            let itemArray   = item.split('=');
3946                            itemArray[1]    += ',' + value;
3947                            item            = itemArray.join('=');
3948                            queryArray[key] = item;
3949                        }
3950                    });
3951
3952                    query = '?' + queryArray.join('&');
3953                } else {
3954                    query = origQuery + '&' + param + '=' + value;
3955                }
3956
3957                document.querySelector('#mst-nav__search-apply').setAttribute('href', url + query);
3958            },
3959
3960            initSearch: function () {
3961                let param     = document.querySelector('#mst-nav__search-filter').name;
3962                let url       = location.href;
3963                let origQuery = location.search;
3964
3965                let suggestionContainer = document.querySelector('#mst-nav__search-suggestion');
3966
3967                url = url.replace(origQuery, '');
3968
3969                document.querySelector('#mst-nav__search-filter').addEventListener('keyup', function (e) {
3970                    let value = e.target.value;
3971
3972                    if (this.config.isSearchFilterOptions()) {
3973                        this.suggest(suggestionContainer, value);
3974                    }
3975
3976                    if (this.config.isSearchFilterFulltext()) {
3977                        this.prepareSearch(e, url, origQuery, param, value);
3978                    }
3979                }.bind(this));
3980            },
3981        }
3982    }
3983</script>
vendor: 1 bytes, line 3983
3983
3984<script>
3985    function renderRangeSlider(params) {
3986        return {
3987            ...params,
3988
3989            initSlider: function () {
3990                this.from = this.toFixed(this.from * this.rate, 2);
3991                this.to   = this.toFixed(this.to * this.rate, 2);
3992                this.min  = Math.floor(this.min * this.rate);
3993                this.max  = Math.ceil(this.max * this.rate);
3994
3995                this.updateFromTo();
3996
3997                if (this.getSliderNode()) {
3998                    noUiSlider.create(this.getSliderNode(), {
3999                        start: [this.from, this.to],
4000                        connect: true,
4001                        range: {
4002                            'min': this.min,
4003                            'max': this.max
4004                        },
4005                        step: this.step ? this.step : 1
4006                    });
4007
4008                    this.getSliderNode().noUiSlider.on('update', function (values) {
4009                        this.from = this.toFixed(parseFloat(values[0]), 2);
4010                        this.to   = this.toFixed(parseFloat(values[1]), 2);
4011
4012                        this.updateFromTo();
4013                    }.bind(this));
4014
4015                    this.getSliderNode().noUiSlider.on('change', function () {
4016                        this.applyFilter();
4017                    }.bind(this));
4018                }
4019
4020                if (this.getFromToNode()) {
4021                    this.getFromToNode().querySelectorAll('input').forEach(function (inputNode) {
4022                        ['keyup', 'change'].forEach(function (eventName) {
4023                            inputNode.addEventListener(eventName, function (e) {
4024                                let from = this.from;
4025                                let to   = this.to;
4026
4027                                let value = this.toFixed(parseFloat(e.target.value), 2);
4028
4029                                if (e.target.dataset.element === 'from') {
4030                                    from = value;
4031                                } else {
4032                                    to = value;
4033                                }
4034
4035                                this.from = from;
4036                                this.to   = to;
4037                            }.bind(this));
4038                        }.bind(this));
4039
4040                        if (this.getSliderNode()) {
4041                            inputNode.addEventListener('blur', function () {
4042                                this.getSliderNode().noUiSlider.set([this.from, this.to]);
4043                            }.bind(this));
4044                        }
4045                    }.bind(this));
4046                }
4047            },
4048
4049            getSliderNode: function () {
4050                return this.$el.querySelector("[data-element=slider]");
4051            },
4052
4053            getTextNode: function () {
4054                return this.$el.querySelector('[data-element=text]');
4055            },
4056
4057            getFromToNode: function () {
4058                return this.$el.querySelector('.mst-nav__slider-from-to');
4059            },
4060
4061            updateFromTo: function () {
4062                if (this.getTextNode()) {
4063                    this.getTextNode().innerHTML = this.getTextValue(this.from) + ' - ' + this.getTextValue(this.to);
4064                }
4065
4066                if (this.getFromToNode()) {
4067                    this.getFromToNode().querySelector('[data-element=from]').value = this.toFixed(this.from);
4068                    this.getFromToNode().querySelector('[data-element=to]').value   = this.toFixed(this.to);
4069                }
4070            },
4071
4072            applyFilter: function () {
4073                this.from = this.from < this.min ? this.min : this.from;
4074                this.to   = this.to > this.max ? this.max : this.to;
4075
4076                if (parseFloat(this.to) < parseFloat(this.from)) {
4077                    this.from = this.to;
4078                }
4079
4080                const value = this.toFixed(this.from / this.rate, 2) + this.separator + this.toFixed(this.to / this.rate, 2);
4081
4082                let url = this.urlTemplate.replace(this.paramTemplate, value);
4083
4084                initApplier().apply(url, this.$el, false, this.from, this.to);
4085            },
4086
4087            getTextValue: function (value) {
4088                let tmpl = this.valueTemplate;
4089
4090                tmpl = tmpl.replace('{value}', this.toFixed(value, 0));
4091                tmpl = tmpl.replace('{value.0}', this.toFixed(value, 0));
4092                tmpl = tmpl.replace('{value.1}', this.toFixed(value, 1));
4093                tmpl = tmpl.replace('{value.2}', this.toFixed(value, 2));
4094
4095                return tmpl;
4096            },
4097
4098            toFixed: function (value, precision) {
4099                //1.00 === 1
4100                if (parseFloat(parseFloat(value).toFixed(0)) === parseFloat(parseFloat(value).toFixed(precision))) {
4101                    return parseFloat(value).toFixed(0);
4102                }
4103
4104                return parseFloat(value).toFixed(precision);
4105            }
4106        }
4107    }
4108</script>
4108
4109
4110<script>
4111    function createCollapsibleCategories() {
4112        return {
4113            initToggler: function ($el) {
4114                const categoryFilter = this.getCategoryFilter($el);
4115
4116                const parentCatOptions = categoryFilter.querySelectorAll('li._parent');
4117
4118                if (!parentCatOptions.length) {
4119                    return;
4120                }
4121
4122                parentCatOptions.forEach(function (elem) {
4123                    this.initCollapsibe(elem)
4124                }.bind(this));
4125
4126                categoryFilter.addEventListener('nested-toggle', function (event) {
4127                    const parent = categoryFilter.querySelector('ol.items.collapsible');
4128
4129                    if (!parent || parent === undefined) {
4130                        return;
4131                    }
4132
4133                    parent.querySelectorAll('ol.items, a.mst-nav_category-toggler').forEach(function (elem) {
4134                        if (event.detail.q) {
4135                            elem.classList.add('_active');
4136                            elem.classList.remove('hidden');
4137
4138                            if (elem.classList.contains('mst-nav_category-toggler')) {
4139                                elem.classList.add('hidden');
4140                            }
4141                        } else {
4142                            elem.classList.remove('_active');
4143                            elem.classList.add('hidden');
4144
4145                            if (elem.classList.contains('mst-nav_category-toggler')) {
4146                                elem.classList.remove('hidden');
4147                            }
4148                        }
4149                    })
4150                })
4151            },
4152
4153            initCollapsibe: function (element) {
4154                const $togglerHandler = element;
4155                const $target  = element.nextElementSibling;
4156                if (!$target) {
4157                    return;
4158                }
4159                const $toggler = document.createElement('A');
4160                $toggler.classList.add('mst-nav_category-toggler', 'cursor-pointer', 'inline-block', 'p-1');
4161                $toggler.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-5 h-5 transition-transform transform duration-300 ease-in-out" width="25" height="25" role="img">
4162  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
4163<title>chevron-down</title></svg>
4164`;
4165
4166                $target.querySelectorAll('li').forEach( function (elem) {
4167                    if (elem.classList.contains('_checked')) {
4168                        $toggler.classList.add('_active');
4169                        $toggler.querySelector('svg').classList.add('rotate-180');
4170                        $target.classList.add('_active');
4171                        $target.classList.remove('hidden');
4172                    }
4173                });
4174
4175                $toggler.addEventListener('click', function (e) {
4176                    if ($toggler.classList.contains('_active')) {
4177                        $toggler.classList.remove('_active');
4178                        $toggler.querySelector('svg').classList.remove('rotate-180');
4179                        $target.classList.remove('_active');
4180                        $target.classList.add('hidden');
4181                    } else {
4182                        $toggler.classList.add('_active');
4183                        $toggler.querySelector('svg').classList.add('rotate-180');
4184                        $target.classList.add('_active');
4185                        $target.classList.remove('hidden');
4186                    }
4187                });
4188
4189                $togglerHandler.style.marginLeft = '0';
4190
4191                $togglerHandler.parentElement.insertBefore($toggler, $togglerHandler);
4192            },
4193
4194            getCategoryFilter: function ($el) {
4195                return $el.closest('.mst-nav__category');
4196            }
4197        }
4198    }
4199</script>
4199
4200    
4200<script>
4201        function initApplyButton() {
4202            return {
4203                config:         getMstNavConfig(),
4204                selector:       '[data-element="mst-nav__applyButton"]',
4205                countSelector:  '[data-count]',
4206                buttonSelector: '[data-apply]',
4207                label1Selector: '[data-label-1]',
4208                labelNSelector: '[data-label-n]',
4209
4210                $el: function () {
4211                    return document.querySelector(this.selector);
4212                },
4213
4214                $count: function () {
4215                    return this.$el().querySelector(this.countSelector);
4216                },
4217
4218                $button: function () {
4219                    return this.$el().querySelector(this.buttonSelector);
4220                },
4221
4222                clear: function () {
4223                    this.$count().innerHTML = '';
4224                    this.$button().dataset.apply = '';
4225                },
4226
4227                show: function () {
4228                    this.$el().classList.remove('hidden');
4229                    this.$el().style.visibility = 'hidden';
4230                },
4231
4232                hide: function () {
4233                    //this.$el().classList.add('hidden');
4234                },
4235
4236                showLoader: function () {
4237                    this.$el().classList.add('_loading');
4238                    document.querySelector('.show-result .mst-nav__apply-button .loader').classList.remove('hidden');
4239                    document.querySelector('.show-result .mst-nav__apply-button').classList.add('disabled');
4240                    document.querySelector('.show-result .mst-nav__apply-button button').disabled = true;
4241                    //document.querySelector('#mob-navfilter-loader').style.display = 'block';
4242                },
4243
4244                hideLoader: function () {
4245                    this.$el().classList.remove('_loading');
4246                    document.querySelector('.show-result .mst-nav__apply-button .loader').classList.add('hidden');
4247                    document.querySelector('.show-result .mst-nav__apply-button').classList.remove('disabled');
4248                    document.querySelector('.show-result .mst-nav__apply-button button').disabled = false;
4249                    //document.querySelector('#mob-navfilter-loader').style.display = 'none';
4250
4251                },
4252
4253                move: function ($initiator) {
4254                    let x = $initiator.getBoundingClientRect().left + parseFloat(window.getComputedStyle($initiator, null).width.replace("px", ""));
4255
4256                    let baseElement = this.getBaseElement($initiator);
4257
4258                    let y = baseElement.getBoundingClientRect().top
4259                        - parseFloat(window.getComputedStyle(this.$el(), null).height.replace("px", "")) / 2
4260                        + parseFloat(window.getComputedStyle(baseElement, null).height.replace("px", "")) / 2
4261                        + window.scrollY;
4262
4263                    if (
4264                        this.config.isConfirmOnMobile()
4265                        && window.innerWidth <= this.config.getModeSwitchBreakpoint()) {
4266                        this.$el().style.right = '10px'
4267                    } else {
4268                        this.$el().style.left = x + 'px';
4269                    }
4270
4271                    this.$el().style.top  = y + 'px';
4272                    this.$el().style.visibility = 'visible';
4273                },
4274
4275                getBaseElement: function ($initiator) {
4276                    let filterName = $initiator.closest('[data-mst-nav-filter]').dataset.mstNavFilter;
4277
4278                    if (filterName === 'price') {
4279                        return $initiator.querySelector('[data-element="slider"]').firstChild;
4280                    }
4281
4282                    return $initiator
4283                },
4284
4285                update: function (result) {
4286                    let productsHtml   = result['products'];
4287                    let applyFilterUrl = result['url'];
4288                    let productsCount  = result['products_count'];
4289					
4290					// Parameters you want to check
4291					const paramString = "&product_list_dir=desc&product_list_order=revenue_ranking";
4292
4293					// Check if both parameters already exist
4294					if (!applyFilterUrl.includes("product_list_dir=desc") || 
4295						!applyFilterUrl.includes("product_list_order=revenue_ranking")) {
4296
4297						// If URL already has ?, use &, else use ?
4298						if (applyFilterUrl.includes("?")) {
4299							applyFilterUrl += paramString;
4300						} else {
4301							applyFilterUrl += "?" + paramString.substring(1); // remove first "&"
4302						}
4303					}
4304
4305                    this.$button().dataset.apply = applyFilterUrl;
4306					console.log('applyFilterUrl='+applyFilterUrl);
4307                    this.$count().innerHTML = productsCount;
4308                    this.toggleLabel(productsCount);
4309
4310                    if (productsHtml.length > 0) {//todo what for?
4311                        document.querySelector(this.config.getAjaxProductListWrapperId()).outerHtml = result['products'];
4312
4313                        let event = document.createEvent('HTMLEvents');
4314                        event.initEvent('contentUpdated', true, false);
4315                        document.querySelector(this.config.getAjaxProductListWrapperId()).dispatchEvent(event);
4316                    }
4317
4318                    this.$button().addEventListener('click', function (e) {
4319                        e.stopImmediatePropagation();
4320
4321                        document.querySelector('.show-result .mst-nav__apply-button .loader').classList.remove('hidden');
4322                        document.querySelector('.show-result .mst-nav__apply-button').classList.add('disabled');
4323                        document.querySelector('.show-result .mst-nav__apply-button button').disabled = true;
4324                        //document.querySelector('#mob-navfilter-loader').style.display = 'block';
4325
4326                        const url = this.$button().dataset.apply;
4327                        // this.filterApplier.apply(url);
4328                        initApplier().apply(url);
4329                        //window.location = url;
4330                        //document.querySelector('#mob-navfilter-loader').style.display = 'none';
4331                    }.bind(this))
4332                },
4333
4334                load: function (url, cacheKey, force) {
4335                    this.clear();
4336                    cacheKey = 'applyingMode:' + url;
4337                    let cachedData = mstNavCache.getData(cacheKey);
4338                    if (cachedData) {
4339                        this.update(cachedData);
4340                    } else {
4341                        this._request(url, force);
4342                    }
4343                },
4344
4345                _request: function (url, force) {
4346                    this.showLoader();
4347
4348                    let data = {isAjax: true};
4349                    if (force) {
4350                        data.mstNavForceMode = 'by_button_click';
4351                    }
4352
4353                    let queryParams = new URLSearchParams();
4354
4355                    for (const key in data) {
4356                        queryParams.set(key, data[key]);
4357                    }
4358
4359                    const separator = url.indexOf('?') > 0 ? '&' : '?';
4360
4361                    fetch(url + separator + queryParams.toString())
4362                        .then(response => {
4363                            if (! response.ok) console.warn('GET request failed');
4364                            return response.json()
4365                        })
4366                        .then(function (result) {
4367                            let cacheKey = 'applyingMode:' + url;
4368                            mstNavCache.setData(cacheKey, result);
4369
4370                            this.update(result);
4371                        }.bind(this))
4372                        .catch(function (error) {
4373                            console.log(error);
4374                            // window.location = url;
4375                        }.bind(this))
4376                        .finally(function () {
4377                            this.hideLoader();
4378                        }.bind(this));
4379                },
4380
4381                toggleLabel: function (number) {
4382                    if (number === 1) {
4383                        this.$el().querySelector(this.labelNSelector).classList.add('hidden');
4384                        this.$el().querySelector(this.label1Selector).classList.remove('hidden');
4385                    } else {
4386                        this.$el().querySelector(this.labelNSelector).classList.remove('hidden');
4387                        this.$el().querySelector(this.label1Selector).classList.add('hidden');
4388                    }
4389                }
4390            }
4391        }
4392    </script>
4392
4393<div class="page-wrapper"><div class="container hidden">
4394    <div class="pt-2 pb-2 flex flex-row items-end justify-end">
4395                    <div class="pl-3">
4396                <a href="https://www.flooringinc.com/knowledge-base/" class="hover:underline">
4397    FAQ</a>
4398            </div>
4399            </div>
4400</div>
4401<header class="page-header"><div class="panel wrapper"><div class="header_top flex justify-between items-center" x-data="notificationAjaxCall()" x-init="initNotificationFunc()">
4402    <div class="header_left_notification text-size14 font-normal" x-html="left_notification_html"></div>
4403    <div class="header_middle_notification flex">
4404        <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div class="flex items-center"><a href="#" class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="29" height="20" viewBox="0 0 29 20" fill="none">
4405<path d="M18.125 0V9.09091H0V0H18.125ZM19.9375 0H29V9.09091H19.9375V0ZM10.875 20V10.9091H29V20H10.875ZM0 20V10.9091H9.0625V20H0Z" fill="#15324C"/>
4406</svg> 500+ Million Sqft Covered</a></div>
4407
4408<div class="flex items-center"><a href="https://www.flooringinc.com/reviews" class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none">
4409<path d="M8.99984 0.666504L11.5748 5.88317L17.3332 6.72484L13.1665 10.7832L14.1498 16.5165L8.99984 13.8082L3.84984 16.5165L4.83317 10.7832L0.666504 6.72484L6.42484 5.88317L8.99984 0.666504Z" fill="#15324C" stroke="#15324C" stroke-linecap="round" stroke-linejoin="round"/>
4410</svg> 125K+ Verified Reviews</a></div>
4411
4412<div class="flex items-center"><a href="/price-match" class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
4413<path d="M17.1582 11.1748L11.1832 17.1498C11.0284 17.3048 10.8446 17.4277 10.6422 17.5116C10.4399 17.5955 10.223 17.6386 10.004 17.6386C9.78498 17.6386 9.5681 17.5955 9.36577 17.5116C9.16344 17.4277 8.97963 17.3048 8.82484 17.1498L1.6665 9.99984V1.6665H9.99984L17.1582 8.82484C17.4686 9.13711 17.6428 9.55953 17.6428 9.99984C17.6428 10.4401 17.4686 10.8626 17.1582 11.1748Z" fill="#15324C"/>
4414<path d="M5.83317 5.83317H5.8415M17.1582 11.1748L11.1832 17.1498C11.0284 17.3048 10.8446 17.4277 10.6422 17.5116C10.4399 17.5955 10.223 17.6386 10.004 17.6386C9.78498 17.6386 9.5681 17.5955 9.36577 17.5116C9.16344 17.4277 8.97963 17.3048 8.82484 17.1498L1.6665 9.99984V1.6665H9.99984L17.1582 8.82484C17.4686 9.13711 17.6428 9.55953 17.6428 9.99984C17.6428 10.4401 17.4686 10.8626 17.1582 11.1748Z" stroke="#15324C" stroke-linecap="round" stroke-linejoin="round"/>
4415<circle cx="5" cy="5" r="1" fill="white"/>
4416</svg> Price Match Guarantee</a></div>
4417
4418<div class="flex items-center"><a href="/moneybackguarantee" class="flex items-center gap-2">
4419<svg xmlns="http://www.w3.org/2000/svg" width="14" height="18" viewBox="0 0 14 18" fill="none">
4420<path d="M7 0.75V18.4499M11.1667 3.75H4.91667C4.14312 3.75 3.40125 4.02656 2.85427 4.51884C2.30729 5.01113 2 5.67881 2 6.375C2 7.07119 2.30729 7.73887 2.85427 8.23116C3.40125 8.72344 4.14312 9 4.91667 9H9.08333C9.85688 9 10.5987 9.27656 11.1457 9.76885C11.6927 10.2611 12 10.9288 12 11.625C12 12.3212 11.6927 12.9889 11.1457 13.4812C10.5987 13.9734 9.85688 14.25 9.08333 14.25H2" stroke="#15324C" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
4421</svg> Money Back Guarantee</a></div>
4422</div>    </div>
4423    <div class="header_right_notifications font-normal">
4424        <style>#html-body [data-pb-style=GSTQRKU]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="GSTQRKU"><div data-content-type="text" data-appearance="default" data-element="main"><ul>
4425<li><a href="/contact">Contact Us</a></li>
4426<li><a href="/sales/guest/form">Track Order</a></li>
4427</ul></div></div></div>    </div>
4428</div>
4429
4430<script>
4431  function notificationAjaxCall() {
4432    return {
4433        availability_notification: '',
4434        left_notification_html: '',
4435        right_notification_html: '',
4436        initNotificationFunc: function () {
4437            fetch(BASE_URL+'notifications/index/show', {
4438                method: "GET",
4439                headers: { 'Content-Type': 'application/json' },
4440            })
4441            .then(response => {
4442                if (! response.ok) console.warn('GET request failed');
4443                return response.json();
4444            })
4445            .then(data => {
4446                if (data) {
4447                  this.availability_notification = data.availability_notification;
4448                  this.left_notification_html = data.left_notification_html;
4449                  this.right_notification_html = data.right_notification_html;
4450                }
4451            });
4452        }
4453    }
4454  }
4455</script>
4455</div><div class="header content">
4455<script>
4456    function initQuoteCartDrawer() {
4457        return {
4458            open: false,
4459            cartData: {},
4460            getQuoteCartData(data) {
4461                if (data.quotecart) {
4462                    this.cartData = data.quotecart
4463                    this.setCartItems();
4464                }
4465            },
4466            cartItems: [],
4467            setCartItems() {
4468                this.cartItems = this.cartData && this.cartData.items.sort(function(a,b) { return a.item_id - b.item_id }) || {}
4469            },
4470            deleteItemFromCart(itemId) {
4471                var formKey = document.querySelector('input[name=form_key]').value;
4472                fetch(BASE_URL+"amasty_quote/sidebar/removeItem/", {
4473                    "headers": {
4474                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
4475                    },
4476                    "body": "form_key="+ formKey + "&item_id="+itemId,
4477                    "method": "POST",
4478                    "mode": "cors",
4479                    "credentials": "include"
4480                }).then(function (response) {
4481                    if (response.redirected) {
4482                        window.location.href = response.url;
4483                    } else if (response.ok) {
4484                        return response.json();
4485                    } else {
4486                        typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
4487                            [{
4488                                type: "warning",
4489                                text: "Could not remove item from quote."
4490                            }], 5000
4491                        );
4492                    }
4493                }).then(function (response) {
4494                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
4495                        [{
4496                            type: response.success ? "success" : "error",
4497                            text: response.success
4498                                ? "You removed the item."
4499                                : response.error_message
4500                        }], 5000
4501                    );
4502                    var reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data");
4503                    window.dispatchEvent(reloadCustomerDataEvent);
4504                });
4505            }
4506        }
4507    }
4508</script>
4508
4509<section id="cart-quote-drawer"
4510         x-data="initQuoteCartDrawer()"
4511         @private-content-loaded.window="getQuoteCartData(event.detail.data)"
4512         @toggle-quote-cart.window="open=true;"
4513         @keydown.window.escape="open=false"
4514>
4515    <template x-if="cartData && cartData.summary_count">
4516        <div role="dialog"
4517             aria-labelledby="cart-drawer-title"
4518             aria-modal="true"
4519             @click.away="open = false"
4520             class="fixed inset-y-0 right-0 z-30 flex max-w-full">
4521            <div class="backdrop"
4522                 x-show="open"
4523                 x-transition:enter="ease-in-out duration-500"
4524                 x-transition:enter-start="opacity-0"
4525                 x-transition:enter-end="opacity-100"
4526                 x-transition:leave="ease-in-out duration-500"
4527                 x-transition:leave-start="opacity-100"
4528                 x-transition:leave-end="opacity-0"
4529                 @click="open = false"
4530                 aria-label="Close panel"></div>
4531            <div class="relative w-screen max-w-md shadow-2xl"
4532                 x-show="open"
4533                 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700"
4534                 x-transition:enter-start="translate-x-full"
4535                 x-transition:enter-end="translate-x-0"
4536                 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700"
4537                 x-transition:leave-start="translate-x-0"
4538                 x-transition:leave-end="translate-x-full"
4539            >
4540                <div
4541                    x-show="open"
4542                    x-transition:enter="ease-in-out duration-500"
4543                    x-transition:enter-start="opacity-0"
4544                    x-transition:enter-end="opacity-100"
4545                    x-transition:leave="ease-in-out duration-500"
4546                    x-transition:leave-start="opacity-100"
4547                    x-transition:leave-end="opacity-0" class="absolute top-0 right-0 flex mr-3 mt-2">
4548                    <button @click="open = false" aria-label="Close panel"
4549                            class="p-2 text-gray-300 transition duration-150 ease-in-out hover:text-black">
4550                        <svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
4551                            <path stroke-linecap="round" stroke-linejoin="round"
4552                                  stroke-width="2" d="M6 18L18 6M6 6l12 12">
4553                            </path>
4554                        </svg>
4555                    </button>
4556                </div>
4557                <div class="flex flex-col h-full py-6 space-y-6 bg-white shadow-xl">
4558                    <header class="px-4 sm:px-6">
4559                        <div id="cart-drawer-title" class="text-lg font-medium leading-7 text-gray-900">
4560                            My Quote Cart                        </div>
4561                    </header>
4562                    <div class="relative grid gap-6 px-4 py-6 overflow-y-auto bg-white border-b
4563                        sm:gap-8 sm:px-6 border-container">
4564                        <template x-for="item in cartItems">
4565                            <div class="flex items-start p-3 -m-3 space-x-4 transition duration-150
4566                                ease-in-out rounded-lg hover:bg-gray-100">
4567                                <a :href="item.product_url" class="w-1/4">
4568                                    <img
4569                                        :src="item.product_image.src"
4570                                        :width="item.product_image.width"
4571                                        :height="item.product_image.height"
4572                                        loading="lazy"
4573                                    />
4574                                </a>
4575                                <div class="w-3/4 relative">
4576                                    <div>
4577                                        <div class="text-xl">
4578                                            <a :href="item.product_url" class="hover:underline">
4579                                                <span x-html="item.qty"></span> x <span x-html="item.product_name"></span>
4580                                            </a>
4581                                        </div>
4582                                        <div class="text-sm"><span x-html="item.product_sku"></div>
4583                                    </div>
4584                                    <template x-for="option in item.options">
4585                                        <div class="pt-2">
4586                                            <p class="font-semibold" x-text="option.label + ':'"></p>
4587                                            <p class="text-secondary" x-html="option.value"></p>
4588                                        </div>
4589                                    </template>
4590                                    <div><span x-html="item.product_price"></span></div>
4591                                    <div class="pt-4">
4592                                        <a :href="item.configure_url"
4593                                           x-show="item.product_type !== 'grouped'"
4594                                            class="inline-flex p-2 mr-2 btn btn-primary">
4595                                            <svg fill="none" viewBox="0 0 24 24" stroke="currentColor"
4596                                                 size="16" class="w-5 h-5">
4597                                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
4598                                                      d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536
4599                                                      3.536L6.5 21.036H3v-3.572L16.732 3.732z">
4600                                                </path>
4601                                            </svg>
4602                                        </a>
4603                                        <button class="inline-flex p-2 btn btn-primary"
4604                                                @click="deleteItemFromCart(item.item_id)"
4605                                        >
4606                                            <svg fill="none" viewBox="0 0 24 24" stroke="currentColor"
4607                                                 size="16" class="w-5 h-5">
4608                                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
4609                                                      d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0
4610                                                      01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1
4611                                                      0 00-1 1v3M4 7h16">
4612                                                </path>
4613                                            </svg>
4614                                        </button>
4615                                    </div>
4616                                </div>
4617                            </div>
4618                        </template>
4619                    </div>
4620                    <div class="relative grid gap-6 px-4 py-6 bg-white sm:gap-8 sm:px-6">
4621                        <div class="w-full p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg
4622                            hover:bg-gray-100">
4623                            <span>Cart Subtotal:</span>
4624                            <span class="text-gray-900 font-bold" x-text="hyva.formatPrice(cartData.subtotalAmount)"></span>
4625                        </div>
4626                        <div class="w-full">
4627                            <a href="https://www.flooringinc.com/amasty_quote/cart/"
4628                               class="btn btn-secondary justify-center">
4629                                View and Edit Cart                            </a>
4630                        </div>
4631                    </div>
4632                </div>
4633            </div>
4634        </div>
4635    </template>
4636</section>
4637<div class="widget block block-static-block">
4638    <style>#html-body [data-pb-style=J86NFKS]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</style><div data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="J86NFKS"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div x-data="globalNotificationAjaxCall()" x-init="initGlobalNotificationFunc()">
4639    <div class="notification4 pt-2 pb-2 text-center text-size13 font-normal text-white bg-custom-green" style="display:none" x-html="global_notification_text"></div>
4640</div>
4641
4642<script>
4643function globalNotificationAjaxCall() {
4644    return {
4645        global_notification_text: '',
4646        initGlobalNotificationFunc: function () {
4647            fetch(BASE_URL+'notifications/index/GlobalNotification?full_action_name=catalog_category_view&cat_prod_id=2333', {
4648                method: "GET",
4649                headers: { 'Content-Type': 'application/json' },
4650            })
4651            .then(response => {
4652                if (! response.ok) console.warn('GET request failed');
4653                return response.json();
4654            })
4655            .then(data => {
4656                if (data) {
4657                    if (data.notification_text !='') {
4658                        document.querySelector('.notification4.bg-custom-green').style.display = 'block';
4659                        this.global_notification_text = data.notification_text;
4660                    }
4661                }
4662            });
4663        }
4664    }
4665}
4666</script>
4666</div></div></div>
4667</div>
4667<script>
4668    function initHeader () {
4669        return {
4670            searchOpen: false,
4671            cart: {},
4672            quoteCart: {},
4673            activeCartType: 'cart',
4674            getData(data) {
4675                if (data.cart) {
4676                    this.cart = data.cart;
4677                   // this.cart.summary_count=this.cart.items.length;
4678                }
4679                if (data.quotecart) {
4680                    this.quoteCart = data.quotecart;
4681                }
4682                if (data.active_cart_icon) {
4683                    this.activeCartType = data.active_cart_icon;
4684                }
4685            }
4686        }
4687    }
4688    function initCompareHeader() {
4689        return {
4690            compareProducts: null,
4691            itemCount: 0,
4692            receiveCompareData(data) {
4693                if (data['compare-products']) {
4694                    this.compareProducts = data['compare-products'];
4695                    this.itemCount = this.compareProducts.count;
4696                }
4697            }
4698        }
4699    }
4700</script>
4700
4701
4702<div id="header"
4703     class="relative z-30 w-full bg-white"
4704     x-data="initHeader()"
4705     @keydown.window.escape="searchOpen = false;"
4706     @private-content-loaded.window="getData(event.detail.data)"
4707>
4708    <div class="content flex flex-wrap items-center justify-between w-full pt-4 pb-4 mx-auto mt-0">
4709        <!--Logo-->
4710        <div class="logo relative z-20">
4711            <div class="order-1 sm:order-2 lg:order-1 w-full pb-2 sm:w-auto sm:pb-0">
4712    <a class="flex items-center text-xl font-medium tracking-wide text-gray-800
4713        no-underline hover:no-underline font-title"
4714       href="https://www.flooringinc.com/"
4715       title="Flooring&#x20;Inc.&#x20;The&#x20;Flooring&#x20;Superstore"
4716       aria-label="store logo">
4717        <picture><source type="image/webp" srcset="https://www.flooringinc.com/media/logo/stores/1/logo.webp"><img src="https://www.flooringinc.com/media/logo/stores/1/logo.jpg" title="Flooring&#x20;Inc.&#x20;The&#x20;Flooring&#x20;Superstore" alt="Flooring&#x20;Inc.&#x20;The&#x20;Flooring&#x20;Superstore" fetchpriority="high" width="266" height="31" /></picture>
4718    </a>
4719</div>
4720        </div>
4721
4722        <!--Main Navigation-->
4723        <div x-data="initMenuMobile_6ac143420e7c9()"
4724     class="z-50 order-2 sm:order-1 lg:order-2 navigation xl:hidden"
4725>
4726    <!-- mobile -->    
4727    <div @load.window="setActiveMenu($root)"
4728         class="mobile-menu bg-lightblue"
4729         :class="{'h-screen fixed top-0 left-0 w-full' : open}"
4730         @toggle-mobile-menu.window="open = !open"
4731         @keydown.window.escape="open=false"
4732    >
4733        <div class="flex items-baseline justify-between ml-0 menu-icon">
4734            <div class="flex justify-end w-full">
4735                <a @click="$dispatch('toggle-mobile-menu')"
4736                       class="flex items-center justify-center cursor-pointer"
4737                       :class="{ 'ml-auto': open }">                       
4738                       <span class="close-icon px-5 py-2 text-size12 font-normal text-custom-blue rounded-md absolute" :class="{ 'hidden' : !open, 'block': open }">CLOSE</span>
4739                    <picture class="menu_icon -mt-0 mr-1"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-icon.webp"><img class="menu_icon -mt-0 mr-1" :class="{ 'block' : !open, 'hidden': open }" src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-icon.png" width="25" height="17" alt="menu-icon"></picture>
4740                </a>
4741            </div>
4742        </div>
4743        <div class="menu-overlay hidden" :class="{ 'hidden' : !open }" @click="$dispatch('toggle-mobile-menu')"></div>
4744        <nav
4745            class="hidden w-full h-full duration-150 ease-in-out transform transition-display pt-5 pr-5 pl-12"
4746            :class="{ 'hidden' : !open }"
4747        >
4748        <span class="menu-label text-size28 font-medium text-black pt-1 pb-4" :class="{ 'hidden' : !open, 'block': open }">Menu</span>
4749        <div class="nav-in overflow-y-auto overflow-x-hidden h-5/6">
4750                                <div class="level-0">
4751                <span class="flex items-center transition-transform duration-150 ease-in-out transform mb-3">
4752                    <a class="flex items-center w-full cursor-pointer level-0 text-size24 font-medium text-black no-underline"
4753                                                    @click="mobilePanelActiveId =
4754                            mobilePanelActiveId === 'category-node-1826' ?
4755                            0 : 'category-node-1826'"
4756                                                                   title="Flooring&#x20;By&#x20;Category">
4757                        Flooring By Category                    </a>
4758                                        <a class="absolute right-0 cursor-pointer menu_arw1" :class="{
4759                        'active' : mobilePanelActiveId,
4760                        '' : !mobilePanelActiveId
4761                    }"
4762                          @click="mobilePanelActiveId =
4763                          mobilePanelActiveId === 'category-node-1826' ?
4764                           0 : 'category-node-1826'"
4765                    >
4766                        <picture><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.png" width="17" height="10" alt="menu-arw"></picture>
4767                    </a>
4768                                    </span>
4769                                    <div
4770                        class="w-full h-full transition-transform duration-200 ease-in-out block transform"
4771                        :class="{
4772                            'block' : mobilePanelActiveId !== 'category-node-1826',
4773                            'hidden' : mobilePanelActiveId === 'category-node-1826',
4774                        }"
4775                    >
4776                        
4777                        
4778                                                    
4779                            <li class="imgcat list-none relative" x-data="{ show: false }" >
4780                            <a
4781                                                            @click="show = !show"
4782                                                        
4783                               title="Rubber&#x20;Flooring"
4784                               class="flex items-center cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
4785                            >
4786                                <!-- <span class="w-6"></span> -->
4787                                <span>
4788                                    Rubber Flooring                                </span>
4789                            </a>
4790                            
4791                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
4792                             <ul class="z-10 w-full" x-show="show"> 
4793                                                                    <li class="level-2">
4794                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html"
4795                                           title="All&#x20;Rubber&#x20;Flooring"
4796                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4797                                           All Rubber Flooring</a>
4798                                    </li>
4799                                                                                                        <li class="level-2">
4800                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/rubber-rolls.html"
4801                                           title="Rubber&#x20;Flooring&#x20;Rolls"
4802                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4803                                           Rubber Flooring Rolls</a>
4804                                    </li>
4805                                                                                                        <li class="level-2">
4806                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/rubber-tiles.html"
4807                                           title="Rubber&#x20;Floor&#x20;Tiles"
4808                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4809                                           Rubber Floor Tiles</a>
4810                                    </li>
4811                                                                                                        <li class="level-2">
4812                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/rubber-mats.html"
4813                                           title="Rubber&#x20;Mats"
4814                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4815                                           Rubber Mats</a>
4816                                    </li>
4817                                                                                                        <li class="level-2">
4818                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/playground-flooring.html"
4819                                           title="Playground&#x20;Flooring"
4820                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4821                                           Playground Flooring</a>
4822                                    </li>
4823                                                                                                        <li class="level-2">
4824                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/outdoor-rubber-flooring.html"
4825                                           title="Outdoor&#x20;Rubber&#x20;Flooring"
4826                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4827                                           Outdoor Rubber Flooring</a>
4828                                    </li>
4829                                                                  </ul>
4830                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/rubber-flooring.html" x-show="show">View All</a>
4831                                             
4832                                                        
4833                        
4834                                                    
4835                            <li class="imgcat list-none relative" x-data="{ show: false }" >
4836                            <a
4837                                                            @click="show = !show"
4838                                                        
4839                               title="Garage&#x20;Flooring"
4840                               class="flex items-center cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
4841                            >
4842                                <!-- <span class="w-6"></span> -->
4843                                <span>
4844                                    Garage Flooring                                </span>
4845                            </a>
4846                            
4847                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
4848                             <ul class="z-10 w-full" x-show="show"> 
4849                                                                    <li class="level-2">
4850                                        <a href="https://www.flooringinc.com/shop/garage-flooring/all-garage-flooring.html"
4851                                           title="All&#x20;Garage&#x20;Flooring"
4852                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4853                                           All Garage Flooring</a>
4854                                    </li>
4855                                                                                                        <li class="level-2">
4856                                        <a href="https://www.flooringinc.com/shop/garage-flooring/garage-rolls.html"
4857                                           title="Garage&#x20;Flooring&#x20;Rolls"
4858                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4859                                           Garage Flooring Rolls</a>
4860                                    </li>
4861                                                                                                        <li class="level-2">
4862                                        <a href="https://www.flooringinc.com/shop/garage-flooring/garage-tiles.html"
4863                                           title="Garage&#x20;Floor&#x20;Tiles"
4864                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4865                                           Garage Floor Tiles</a>
4866                                    </li>
4867                                                                                                        <li class="level-2">
4868                                        <a href="https://www.flooringinc.com/shop/garage-flooring/garage-gym-flooring.html"
4869                                           title="Garage&#x20;Gym&#x20;Flooring"
4870                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4871                                           Garage Gym Flooring</a>
4872                                    </li>
4873                                                                                                        <li class="level-2">
4874                                        <a href="https://www.flooringinc.com/shop/garage-flooring/coatings-epoxy.html"
4875                                           title="Garage&#x20;Floor&#x20;Epoxy"
4876                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4877                                           Garage Floor Epoxy</a>
4878                                    </li>
4879                                                                                                        <li class="level-2">
4880                                        <a href="https://www.flooringinc.com/shop/garage-flooring/trailer-flooring.html"
4881                                           title="Trailer&#x20;Flooring"
4882                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4883                                           Trailer Flooring</a>
4884                                    </li>
4885                                                                  </ul>
4886                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/garage-flooring.html" x-show="show">View All</a>
4887                                             
4888                                                        
4889                        
4890                                                    
4891                            <li class="imgcat list-none relative" x-data="{ show: false }" >
4892                            <a
4893                                                            @click="show = !show"
4894                                                        
4895                               title="Dance&#x20;Flooring"
4896                               class="flex items-center cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
4897                            >
4898                                <!-- <span class="w-6"></span> -->
4899                                <span>
4900                                    Dance Flooring                                </span>
4901                            </a>
4902                            
4903                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
4904                             <ul class="z-10 w-full" x-show="show"> 
4905                                                                    <li class="level-2">
4906                                        <a href="https://www.flooringinc.com/shop/dance-flooring/marley-flooring.html"
4907                                           title="Marley&#x20;Floor&#x20;Rolls"
4908                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4909                                           Marley Floor Rolls</a>
4910                                    </li>
4911                                                                                                        <li class="level-2">
4912                                        <a href="https://www.flooringinc.com/shop/dance-flooring/dance-floor-tiles.html"
4913                                           title="Dance&#x20;Floor&#x20;Tiles"
4914                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4915                                           Dance Floor Tiles</a>
4916                                    </li>
4917                                                                                                        <li class="level-2">
4918                                        <a href="https://www.flooringinc.com/shop/dance-flooring/portable-dance-floor-kits.html"
4919                                           title="Portable&#x20;Dance&#x20;Floors&#x20;&amp;&#x20;Kits"
4920                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4921                                           Portable Dance Floors &amp; Kits</a>
4922                                    </li>
4923                                                                                                        <li class="level-2">
4924                                        <a href="https://www.flooringinc.com/shop/dance-flooring/subflooring.html"
4925                                           title="Subflooring"
4926                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4927                                           Subflooring</a>
4928                                    </li>
4929                                                                                                        <li class="level-2">
4930                                        <a href="https://www.flooringinc.com/shop/dance-flooring/adhesives-cleaners-accessories.html"
4931                                           title="Adhesives,&#x20;Cleaners&#x20;&amp;&#x20;Accessories"
4932                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4933                                           Adhesives, Cleaners &amp; Accessories</a>
4934                                    </li>
4935                                                                                                        <li class="level-2">
4936                                        <a href="https://www.flooringinc.com/shop/dance-flooring/all-dance-flooring.html"
4937                                           title="All&#x20;Dance&#x20;Flooring"
4938                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4939                                           All Dance Flooring</a>
4940                                    </li>
4941                                                                  </ul>
4942                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/dance-flooring.html" x-show="show">View All</a>
4943                                             
4944                                                        
4945                        
4946                                                    
4947                            <li class="imgcat list-none relative" x-data="{ show: false }" >
4948                            <a
4949                                                            @click="show = !show"
4950                                                        
4951                               title="Foam&#x20;Flooring"
4952                               class="flex items-center cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
4953                            >
4954                                <!-- <span class="w-6"></span> -->
4955                                <span>
4956                                    Foam Flooring                                </span>
4957                            </a>
4958                            
4959                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
4960                             <ul class="z-10 w-full" x-show="show"> 
4961                                                                    <li class="level-2">
4962                                        <a href="https://www.flooringinc.com/shop/foam-flooring/foam-tiles.html"
4963                                           title="Foam&#x20;Floor&#x20;Tiles"
4964                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4965                                           Foam Floor Tiles</a>
4966                                    </li>
4967                                                                                                        <li class="level-2">
4968                                        <a href="https://www.flooringinc.com/shop/foam-flooring/kids-baby-play-mats.html"
4969                                           title="Kids&#x20;&amp;&#x20;Baby&#x20;Play&#x20;Mats"
4970                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4971                                           Kids &amp; Baby Play Mats</a>
4972                                    </li>
4973                                                                                                        <li class="level-2">
4974                                        <a href="https://www.flooringinc.com/shop/foam-flooring/gymnastic-folding-mats.html"
4975                                           title="Gymnastics&#x20;Mats&#x20;"
4976                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4977                                           Gymnastics Mats </a>
4978                                    </li>
4979                                                                                                        <li class="level-2">
4980                                        <a href="https://www.flooringinc.com/shop/foam-flooring/wrestling-mats.html"
4981                                           title="Wrestling&#x20;Mats"
4982                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4983                                           Wrestling Mats</a>
4984                                    </li>
4985                                                                                                        <li class="level-2">
4986                                        <a href="https://www.flooringinc.com/shop/foam-flooring/martial-arts-mats.html"
4987                                           title="Martial&#x20;Arts&#x20;Mats&#x20;"
4988                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4989                                           Martial Arts Mats </a>
4990                                    </li>
4991                                                                                                        <li class="level-2">
4992                                        <a href="https://www.flooringinc.com/shop/foam-flooring/trade-show-flooring.html"
4993                                           title="Trade&#x20;Show&#x20;Flooring"
4994                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
4995                                           Trade Show Flooring</a>
4996                                    </li>
4997                                                                  </ul>
4998                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/foam-flooring.html" x-show="show">View All</a>
4999                                             
5000                                                        
5001                        
5002                                                    
5003                            <li class="imgcat list-none relative" x-data="{ show: false }" >
5004                            <a
5005                                                            @click="show = !show"
5006                                                        
5007                               title="Outdoor&#x20;Flooring"
5008                               class="flex items-center cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
5009                            >
5010                                <!-- <span class="w-6"></span> -->
5011                                <span>
5012                                    Outdoor Flooring                                </span>
5013                            </a>
5014                            
5015                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
5016                             <ul class="z-10 w-full" x-show="show"> 
5017                                                                    <li class="level-2">
5018                                        <a href="https://www.flooringinc.com/shop/outdoor-flooring/playground-flooring.html"
5019                                           title="Playground&#x20;Flooring"
5020                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5021                                           Playground Flooring</a>
5022                                    </li>
5023                                                                                                        <li class="level-2">
5024                                        <a href="https://www.flooringinc.com/shop/outdoor-flooring/sport-and-court-flooring.html"
5025                                           title="Sports&#x20;Flooring&#x20;&amp;&#x20;Court&#x20;Tiles"
5026                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5027                                           Sports Flooring &amp; Court Tiles</a>
5028                                    </li>
5029                                                                                                        <li class="level-2">
5030                                        <a href="https://www.flooringinc.com/shop/outdoor-flooring/artificial-grass.html"
5031                                           title="Turf&#x20;&amp;&#x20;Artificial&#x20;Grass"
5032                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5033                                           Turf &amp; Artificial Grass</a>
5034                                    </li>
5035                                                                                                        <li class="level-2">
5036                                        <a href="https://www.flooringinc.com/shop/outdoor-flooring/composite-decking.html"
5037                                           title="Composite&#x20;Decking"
5038                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5039                                           Composite Decking</a>
5040                                    </li>
5041                                                                                                        <li class="level-2">
5042                                        <a href="https://www.flooringinc.com/shop/outdoor-flooring/rooftop-deck-flooring.html"
5043                                           title="Rooftop&#x20;Deck&#x20;Flooring"
5044                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5045                                           Rooftop Deck Flooring</a>
5046                                    </li>
5047                                                                                                        <li class="level-2">
5048                                        <a href="https://www.flooringinc.com/shop/outdoor-flooring/drainage-tiles.html"
5049                                           title="Drainage&#x20;Tile&#x20;&amp;&#x20;Mats"
5050                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5051                                           Drainage Tile &amp; Mats</a>
5052                                    </li>
5053                                                                  </ul>
5054                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/outdoor-flooring.html" x-show="show">View All</a>
5055                                             
5056                                                        
5057                        
5058                                                    
5059                            <li class="imgcat list-none relative" x-data="{ show: false }" >
5060                            <a
5061                                                            @click="show = !show"
5062                                                        
5063                               title="Turf&#x20;&amp;&#x20;Artificial&#x20;Grass"
5064                               class="flex items-center cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
5065                            >
5066                                <!-- <span class="w-6"></span> -->
5067                                <span>
5068                                    Turf &amp; Artificial Grass                                </span>
5069                            </a>
5070                            
5071                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
5072                             <ul class="z-10 w-full" x-show="show"> 
5073                                                                    <li class="level-2">
5074                                        <a href="https://www.flooringinc.com/shop/artificial-grass/sport-field-turf.html"
5075                                           title="Sport&#x20;&amp;&#x20;Gym&#x20;Turf"
5076                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5077                                           Sport &amp; Gym Turf</a>
5078                                    </li>
5079                                                                                                        <li class="level-2">
5080                                        <a href="https://www.flooringinc.com/shop/artificial-grass/landscape-turf.html"
5081                                           title="Landscape&#x20;Turf"
5082                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5083                                           Landscape Turf</a>
5084                                    </li>
5085                                                                                                        <li class="level-2">
5086                                        <a href="https://www.flooringinc.com/shop/artificial-grass/pet-turf.html"
5087                                           title="Pet&#x20;Turf"
5088                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5089                                           Pet Turf</a>
5090                                    </li>
5091                                                                                                        <li class="level-2">
5092                                        <a href="https://www.flooringinc.com/shop/artificial-grass/putting-greens.html"
5093                                           title="Golf&#x20;&amp;&#x20;Putting&#x20;Green&#x20;Turf"
5094                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5095                                           Golf &amp; Putting Green Turf</a>
5096                                    </li>
5097                                                                                                        <li class="level-2">
5098                                        <a href="https://www.flooringinc.com/shop/artificial-grass/turf-accessories.html"
5099                                           title="Turf&#x20;Accessories"
5100                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5101                                           Turf Accessories</a>
5102                                    </li>
5103                                                                                                        <li class="level-2">
5104                                        <a href="https://www.flooringinc.com/shop/artificial-grass/all-artificial-grass.html"
5105                                           title="All&#x20;Turf&#x20;&amp;&#x20;Artificial&#x20;Grass"
5106                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5107                                           All Turf &amp; Artificial Grass</a>
5108                                    </li>
5109                                                                  </ul>
5110                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/artificial-grass.html" x-show="show">View All</a>
5111                                             
5112                                                        
5113                        
5114                                                    
5115                            <li class="imgcat list-none relative" x-data="{ show: false }" >
5116                            <a
5117                                                            @click="show = !show"
5118                                                        
5119                               title="Carpet&#x20;Tiles&#x20;&amp;&#x20;Rolls"
5120                               class="flex items-center cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
5121                            >
5122                                <!-- <span class="w-6"></span> -->
5123                                <span>
5124                                    Carpet Tiles &amp; Rolls                                </span>
5125                            </a>
5126                            
5127                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
5128                             <ul class="z-10 w-full" x-show="show"> 
5129                                                                    <li class="level-2">
5130                                        <a href="https://www.flooringinc.com/shop/carpet/carpet-tiles.html"
5131                                           title="Carpet&#x20;Tiles"
5132                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5133                                           Carpet Tiles</a>
5134                                    </li>
5135                                                                                                        <li class="level-2">
5136                                        <a href="https://www.flooringinc.com/shop/carpet/carpet-rolls.html"
5137                                           title="Carpet&#x20;Rolls"
5138                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5139                                           Carpet Rolls</a>
5140                                    </li>
5141                                                                                                        <li class="level-2">
5142                                        <a href="https://www.flooringinc.com/shop/carpet/home-theater-carpet.html"
5143                                           title="Home&#x20;Theater&#x20;Carpet"
5144                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5145                                           Home Theater Carpet</a>
5146                                    </li>
5147                                                                                                        <li class="level-2">
5148                                        <a href="https://www.flooringinc.com/shop/carpet/peel-stick-carpet.html"
5149                                           title="Peel&#x20;and&#x20;Stick&#x20;Carpet&#x20;Tiles"
5150                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5151                                           Peel and Stick Carpet Tiles</a>
5152                                    </li>
5153                                                                                                        <li class="level-2">
5154                                        <a href="https://www.flooringinc.com/shop/carpet/outdoor-carpet.html"
5155                                           title="Outdoor&#x20;Carpet"
5156                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5157                                           Outdoor Carpet</a>
5158                                    </li>
5159                                                                                                        <li class="level-2">
5160                                        <a href="https://www.flooringinc.com/shop/carpet/waterproof-carpet.html"
5161                                           title="Waterproof&#x20;Carpet"
5162                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5163                                           Waterproof Carpet</a>
5164                                    </li>
5165                                                                  </ul>
5166                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/carpet.html" x-show="show">View All</a>
5167                                             
5168                                                        
5169                        
5170                                                    
5171                            <li class="imgcat list-none relative" x-data="{ show: false }" >
5172                            <a
5173                                                            @click="show = !show"
5174                                                        
5175                               title="Vinyl&#x20;Flooring"
5176                               class="flex items-center cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
5177                            >
5178                                <!-- <span class="w-6"></span> -->
5179                                <span>
5180                                    Vinyl Flooring                                </span>
5181                            </a>
5182                            
5183                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
5184                             <ul class="z-10 w-full" x-show="show"> 
5185                                                                    <li class="level-2">
5186                                        <a href="https://www.flooringinc.com/shop/vinyl/vinyl-sheet.html"
5187                                           title="Vinyl&#x20;Sheet&#x20;Flooring"
5188                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5189                                           Vinyl Sheet Flooring</a>
5190                                    </li>
5191                                                                                                        <li class="level-2">
5192                                        <a href="https://www.flooringinc.com/shop/vinyl/vinyl-tiles-planks.html"
5193                                           title="Vinyl&#x20;Tiles&#x20;&amp;&#x20;Planks"
5194                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5195                                           Vinyl Tiles &amp; Planks</a>
5196                                    </li>
5197                                                                                                        <li class="level-2">
5198                                        <a href="https://www.flooringinc.com/shop/vinyl/waterproof-vinyl.html"
5199                                           title="Waterproof&#x20;Vinyl&#x20;Flooring"
5200                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5201                                           Waterproof Vinyl Flooring</a>
5202                                    </li>
5203                                                                                                        <li class="level-2">
5204                                        <a href="https://www.flooringinc.com/shop/vinyl/rigid-core-vinyl.html"
5205                                           title="Rigid&#x20;Core&#x20;Vinyl&#x20;Flooring"
5206                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5207                                           Rigid Core Vinyl Flooring</a>
5208                                    </li>
5209                                                                                                        <li class="level-2">
5210                                        <a href="https://www.flooringinc.com/shop/vinyl/commercial-vinyl.html"
5211                                           title="Commercial&#x20;Vinyl&#x20;Flooring"
5212                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5213                                           Commercial Vinyl Flooring</a>
5214                                    </li>
5215                                                                                                  </ul>
5216                             
5217                                                        
5218                        
5219                                                    
5220                            <li class="imgcat list-none relative" x-data="{ show: false }" >
5221                            <a
5222                                                            @click="show = !show"
5223                                                        
5224                               title="Wood&#x20;&amp;&#x20;Laminate&#x20;Flooring"
5225                               class="flex items-center cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
5226                            >
5227                                <!-- <span class="w-6"></span> -->
5228                                <span>
5229                                    Wood &amp; Laminate Flooring                                </span>
5230                            </a>
5231                            
5232                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
5233                             <ul class="z-10 w-full" x-show="show"> 
5234                                                                    <li class="level-2">
5235                                        <a href="https://www.flooringinc.com/shop/wood-laminate/waterproof-laminate.html"
5236                                           title="Waterproof&#x20;Laminate&#x20;Flooring"
5237                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5238                                           Waterproof Laminate Flooring</a>
5239                                    </li>
5240                                                                                                        <li class="level-2">
5241                                        <a href="https://www.flooringinc.com/shop/wood-laminate/laminate.html"
5242                                           title="Laminate&#x20;Flooring"
5243                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5244                                           Laminate Flooring</a>
5245                                    </li>
5246                                                                                                        <li class="level-2">
5247                                        <a href="https://www.flooringinc.com/shop/wood-laminate/hardwood.html"
5248                                           title="Engineered&#x20;Hardwood&#x20;Flooring"
5249                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5250                                           Engineered Hardwood Flooring</a>
5251                                    </li>
5252                                                                                                        <li class="level-2">
5253                                        <a href="https://www.flooringinc.com/shop/wood-laminate/oak.html"
5254                                           title="Oak&#x20;Wood&#x20;Flooring"
5255                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5256                                           Oak Wood Flooring</a>
5257                                    </li>
5258                                                                                                        <li class="level-2">
5259                                        <a href="https://www.flooringinc.com/shop/wood-laminate/commercial-wood-laminate.html"
5260                                           title="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate"
5261                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5262                                           Commercial Wood &amp; Laminate</a>
5263                                    </li>
5264                                                                                                  </ul>
5265                             
5266                                                        
5267                        
5268                                                    
5269                            <li class="imgcat list-none relative" x-data="{ show: false }" >
5270                            <a
5271                                                            @click="show = !show"
5272                                                        
5273                               title="Commercial&#x20;Flooring"
5274                               class="flex items-center cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
5275                            >
5276                                <!-- <span class="w-6"></span> -->
5277                                <span>
5278                                    Commercial Flooring                                </span>
5279                            </a>
5280                            
5281                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
5282                             <ul class="z-10 w-full" x-show="show"> 
5283                                                                    <li class="level-2">
5284                                        <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-rubber-flooring.html"
5285                                           title="Commercial&#x20;Rubber&#x20;Flooring"
5286                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5287                                           Commercial Rubber Flooring</a>
5288                                    </li>
5289                                                                                                        <li class="level-2">
5290                                        <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-garage-flooring.html"
5291                                           title="Commercial&#x20;Garage&#x20;Flooring"
5292                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5293                                           Commercial Garage Flooring</a>
5294                                    </li>
5295                                                                                                        <li class="level-2">
5296                                        <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-carpet.html"
5297                                           title="Commercial&#x20;Carpet&#x20;Tiles"
5298                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5299                                           Commercial Carpet Tiles</a>
5300                                    </li>
5301                                                                                                        <li class="level-2">
5302                                        <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-vinyl.html"
5303                                           title="Commercial&#x20;Vinyl&#x20;Flooring"
5304                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5305                                           Commercial Vinyl Flooring</a>
5306                                    </li>
5307                                                                                                        <li class="level-2">
5308                                        <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-wood-laminate.html"
5309                                           title="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate&#x20;Flooring"
5310                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5311                                           Commercial Wood &amp; Laminate Flooring</a>
5312                                    </li>
5313                                                                                                        <li class="level-2">
5314                                        <a href="https://www.flooringinc.com/shop/commercial-flooring/gym-floor-covers-protection.html"
5315                                           title="Gym&#x20;Floor&#x20;Covers&#x20;&#x7C;&#x20;Floor&#x20;Protection"
5316                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5317                                           Gym Floor Covers | Floor Protection</a>
5318                                    </li>
5319                                                                  </ul>
5320                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/commercial-flooring.html" x-show="show">View All</a>
5321                                             
5322                                                        
5323                        
5324                                                    
5325                            <li class="imgcat list-none relative" x-data="{ show: false }" >
5326                            <a
5327                                                            @click="show = !show"
5328                                                        
5329                               title="Floors&#x20;by&#x20;Activity"
5330                               class="flex items-center cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
5331                            >
5332                                <!-- <span class="w-6"></span> -->
5333                                <span>
5334                                    Floors by Activity                                </span>
5335                            </a>
5336                            
5337                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
5338                             <ul class="z-10 w-full" x-show="show"> 
5339                                                                    <li class="level-2">
5340                                        <a href="https://www.flooringinc.com/shop/shop-by-activity/fitness-flooring.html"
5341                                           title="Fitness&#x20;Flooring"
5342                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5343                                           Fitness Flooring</a>
5344                                    </li>
5345                                                                                                        <li class="level-2">
5346                                        <a href="https://www.flooringinc.com/shop/shop-by-activity/dance-marley-flooring.html"
5347                                           title="Dance&#x20;Flooring&#x20;&#x7C;&#x20;Marley&#x20;Floor"
5348                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5349                                           Dance Flooring | Marley Floor</a>
5350                                    </li>
5351                                                                                                        <li class="level-2">
5352                                        <a href="https://www.flooringinc.com/shop/shop-by-activity/sport-and-court-flooring.html"
5353                                           title="Sport&#x20;&amp;&#x20;Court&#x20;Flooring"
5354                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5355                                           Sport &amp; Court Flooring</a>
5356                                    </li>
5357                                                                                                        <li class="level-2">
5358                                        <a href="https://www.flooringinc.com/shop/shop-by-activity/martial-arts-flooring.html"
5359                                           title="Martial&#x20;Arts&#x20;Mats&#x20;"
5360                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5361                                           Martial Arts Mats </a>
5362                                    </li>
5363                                                                                                        <li class="level-2">
5364                                        <a href="https://www.flooringinc.com/shop/shop-by-activity/cheer-mats.html"
5365                                           title="Cheer&#x20;Mats"
5366                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5367                                           Cheer Mats</a>
5368                                    </li>
5369                                                                                                        <li class="level-2">
5370                                        <a href="https://www.flooringinc.com/shop/shop-by-activity/wrestling-mats.html"
5371                                           title="Wrestling&#x20;Mats"
5372                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5373                                           Wrestling Mats</a>
5374                                    </li>
5375                                                                  </ul>
5376                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/shop-by-activity.html" x-show="show">View All</a>
5377                                             
5378                                                        
5379                        
5380                                                    
5381                            <li class="imgcat list-none relative" x-data="{ show: false }" >
5382                            <a
5383                                                            @click="show = !show"
5384                                                        
5385                               title="Floors&#x20;by&#x20;Space"
5386                               class="flex items-center cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
5387                            >
5388                                <!-- <span class="w-6"></span> -->
5389                                <span>
5390                                    Floors by Space                                </span>
5391                            </a>
5392                            
5393                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
5394                             <ul class="z-10 w-full" x-show="show"> 
5395                                                                    <li class="level-2">
5396                                        <a href="https://www.flooringinc.com/shop/shop-by-space/kitchen-flooring.html"
5397                                           title="Kitchen&#x20;Flooring"
5398                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5399                                           Kitchen Flooring</a>
5400                                    </li>
5401                                                                                                        <li class="level-2">
5402                                        <a href="https://www.flooringinc.com/shop/shop-by-space/bathroom-flooring.html"
5403                                           title="Bathroom&#x20;Flooring"
5404                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5405                                           Bathroom Flooring</a>
5406                                    </li>
5407                                                                                                        <li class="level-2">
5408                                        <a href="https://www.flooringinc.com/shop/shop-by-space/commercial-flooring.html"
5409                                           title="Commercial&#x20;Flooring"
5410                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5411                                           Commercial Flooring</a>
5412                                    </li>
5413                                                                                                        <li class="level-2">
5414                                        <a href="https://www.flooringinc.com/shop/shop-by-space/gym-flooring.html"
5415                                           title="Gym&#x20;Flooring"
5416                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5417                                           Gym Flooring</a>
5418                                    </li>
5419                                                                                                        <li class="level-2">
5420                                        <a href="https://www.flooringinc.com/shop/shop-by-space/garage-flooring.html"
5421                                           title="Garage&#x20;Flooring"
5422                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5423                                           Garage Flooring</a>
5424                                    </li>
5425                                                                                                        <li class="level-2">
5426                                        <a href="https://www.flooringinc.com/shop/shop-by-space/outdoor-flooring.html"
5427                                           title="Outdoor&#x20;Flooring"
5428                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5429                                           Outdoor Flooring</a>
5430                                    </li>
5431                                                                  </ul>
5432                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/shop-by-space.html" x-show="show">View All</a>
5433                                             
5434                                                        
5435                        
5436                                                    
5437                            <li class="imgcat list-none relative" x-data="{ show: false }" >
5438                            <a
5439                                                            @click="show = !show"
5440                                                        
5441                               title="Underlayment&#x20;&amp;&#x20;Flooring&#x20;Accessories"
5442                               class="flex items-center cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
5443                            >
5444                                <!-- <span class="w-6"></span> -->
5445                                <span>
5446                                    Underlayment &amp; Flooring Accessories                                </span>
5447                            </a>
5448                            
5449                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
5450                             <ul class="z-10 w-full" x-show="show"> 
5451                                                                    <li class="level-2">
5452                                        <a href="https://www.flooringinc.com/shop/installation-care/adhesives-glue.html"
5453                                           title="Flooring&#x20;Adhesives&#x20;&amp;&#x20;Glue"
5454                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5455                                           Flooring Adhesives &amp; Glue</a>
5456                                    </li>
5457                                                                                                        <li class="level-2">
5458                                        <a href="https://www.flooringinc.com/shop/installation-care/tape.html"
5459                                           title="Floor&#x20;and&#x20;Mat&#x20;Tape"
5460                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5461                                           Floor and Mat Tape</a>
5462                                    </li>
5463                                                                                                        <li class="level-2">
5464                                        <a href="https://www.flooringinc.com/shop/installation-care/accessories.html"
5465                                           title="Installation&#x20;Accessories"
5466                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5467                                           Installation Accessories</a>
5468                                    </li>
5469                                                                                                        <li class="level-2">
5470                                        <a href="https://www.flooringinc.com/shop/installation-care/trims-moldings.html"
5471                                           title="Floor&#x20;Trims&#x20;&amp;&#x20;Moldings"
5472                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5473                                           Floor Trims &amp; Moldings</a>
5474                                    </li>
5475                                                                                                        <li class="level-2">
5476                                        <a href="https://www.flooringinc.com/shop/installation-care/underlayment.html"
5477                                           title="Flooring&#x20;Underlayment"
5478                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5479                                           Flooring Underlayment</a>
5480                                    </li>
5481                                                                                                        <li class="level-2">
5482                                        <a href="https://www.flooringinc.com/shop/installation-care/cleaners.html"
5483                                           title="Flooring&#x20;Cleaners"
5484                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5485                                           Flooring Cleaners</a>
5486                                    </li>
5487                                                                  </ul>
5488                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/installation-care.html" x-show="show">View All</a>
5489                                             
5490                                                        
5491                        
5492                                                    
5493                            <li class="imgcat list-none relative" x-data="{ show: false }" >
5494                            <a
5495                                                            @click="show = !show"
5496                                                        
5497                               title="Specials"
5498                               class="flex items-center cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
5499                            >
5500                                <!-- <span class="w-6"></span> -->
5501                                <span>
5502                                    Specials                                </span>
5503                            </a>
5504                            
5505                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvamobile/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
5506                             <ul class="z-10 w-full" x-show="show"> 
5507                                                                    <li class="level-2">
5508                                        <a href="https://www.flooringinc.com/shop/specials/hot-buys.html"
5509                                           title="Flooring&#x20;Deals"
5510                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5511                                           Flooring Deals</a>
5512                                    </li>
5513                                                                                                        <li class="level-2">
5514                                        <a href="https://www.flooringinc.com/shop/specials/made-in-usa.html"
5515                                           title="American&#x20;Made"
5516                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5517                                           American Made</a>
5518                                    </li>
5519                                                                                                        <li class="level-2">
5520                                        <a href="https://www.flooringinc.com/shop/specials/quick-ship.html"
5521                                           title="Quick&#x20;Ship"
5522                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5523                                           Quick Ship</a>
5524                                    </li>
5525                                                                                                        <li class="level-2">
5526                                        <a href="https://www.flooringinc.com/shop/specials/new-arrivals.html"
5527                                           title="New&#x20;Arrivals"
5528                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
5529                                           New Arrivals</a>
5530                                    </li>
5531                                                                                                  </ul>
5532                             
5533                                                        
5534                                            </div>
5535                
5536                
5537            </div>
5538                <div class="menu_static_links">
5539            <style>#html-body [data-pb-style=QGH21I8]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="QGH21I8"><div data-content-type="text" data-appearance="default" data-element="main"><ul>
5540<li><a tabindex="0" href="/shop-by-category/specials/hot-buys.html">Sale</a></li>
5541<li><a tabindex="0" href="/blog">Get Inspired &amp; How To</a></li>
5542</ul></div></div></div>        </div>
5543    </div>
5544        </nav>
5545    </div>
5546</div>
5547<script>
5548    'use strict';
5549
5550    const initMenuMobile_6ac143420e7c9 = () => {
5551        return {
5552            mobilePanelActiveId: null,
5553            open: false,
5554            setActiveMenu(menuNode) {
5555                Array.from(menuNode.querySelectorAll('a')).filter(link => {
5556                    return link.href === window.location.href.split('?')[0];
5557                }).map(item => {
5558                    item.classList.add('underline');
5559                    item.closest('div.level-0') &&
5560                    item.closest('div.level-0').querySelector('a.level-0').classList.add('underline');
5561                });
5562            }
5563        }
5564    }
5565
5566    window.addEventListener("scroll", function() {
5567        successMsgSticky2();
5568    });
5569
5570    // sticky header
5571    function successMsgSticky2() {
5572        if (window.innerWidth < 767) {
5573            var headerHeight = document.querySelector('.page-header .panel.wrapper').offsetHeight;
5574            var headerMainHeight = document.getElementById('header').offsetHeight;
5575            var scrollTop = window.scrollY;
5576
5577            if (scrollTop >= headerHeight) {
5578                document.body.classList.add('scroll-reached-hHgt');
5579                document.body.style.paddingTop = headerMainHeight + 'px';
5580            } else {
5581                document.body.classList.remove('scroll-reached-hHgt');
5582                document.body.style.paddingTop = '0';
5583            }
5584        }
5585    }
5586
5587    window.addEventListener("load", function() {
5588        successMsgSticky2();
5589    });
5590
5591</script>
5591
5592
5593<div x-data="initMenuDesktop_6ac1434217b5f()"
5594    class="z-20 order-2 sm:order-1 lg:order-2 navigation hidden xl:flex desktop__menu"
5595>
5596    <!-- desktop -->
5597    <div @load.window="setActiveMenu($root)"
5598        class="justify-between items-center mx-auto w-full max-w-7xl pl-2"
5599    >
5600        <nav
5601                class="flex flex-wrap"
5602        >
5603                                                            <div class="level-0 flex py-2 items-center border-transparent transition transition-colors duration-500 group megamenu_items" :class="{ 'block' : open}"
5604                    @mouseover.stop="hoverTopPosition = $event.currentTarget.offsetTop + $event.currentTarget.getBoundingClientRect().height"
5605                    @mouseenter="desktopMegaMenuShow = true" @mouseleave="desktopMegaMenuShow = false"
5606                    x-data="{ desktopMegaMenuShow: false }"
5607                >
5608                    <!-- <a href="https://www.flooringinc.com/shop.html" -->
5609                    <a 
5610                                        @focus="hoverTopPosition = $event.currentTarget.parentNode.offsetTop + $event.currentTarget.parentNode.getBoundingClientRect().height"
5611                    title="Flooring&#x20;By&#x20;Category"
5612                    class="level-0 block p-2 text-base font-medium text-black whitespace-nowrap cursor-pointer megamenu_items_link">
5613                        <span>Flooring By Category</span>
5614                                                    <span class="inline items-center releat">
5615                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img">
5616  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
5617<title>chevron-down</title></svg>
5618                            </span>
5619                                            </a>
5620                                            <template x-if="desktopMegaMenuShow">
5621                        <div class="absolute left-0 right-0 top-full z-10 -mt-3 w-3/4 mx-auto bg-white opacity-0 transition-opacity ease-out pointer-events-none group-hover:opacity-100 focus-within:opacity-100 group-hover:pointer-events-auto megamenu"
5622                            style="display:none;"
5623                            :style="`margin-top: 0; top: ${hoverTopPosition}px;`"
5624                        >
5625                            <div class="flex justify-between mt-0 mb-0 sub-megamenu">
5626                                                                <div class="mx-auto w-full">
5627                                    <ul class="grid flex-1 w-full gap-y-0 gap-x-0 py-4 px-5 relative">
5628                                                                                                                            
5629                                            <li :class="{ 'active': show }" class="level-1 level1 display-first"  x-data="{ show: true }"  
5630                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
5631                                                                                        >
5632                                                <a 
5633                                                title="Rubber&#x20;Flooring"
5634                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
5635                                                
5636                                                    >
5637                                                    Rubber Flooring
5638                                                                                                            <span class="inline items-center rotate-180 absolute">
5639                                                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img">
5640  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
5641<title>chevron-down</title></svg>
5642                                                        </span>
5643                                                                                                    </a>
5644                                                 
5645                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
5646                                    <style>#html-body [data-pb-style=IIM6H46]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=U0GMW4D]{border-style:none}#html-body [data-pb-style=CSIHBUF],#html-body [data-pb-style=HQMCF2E]{max-width:100%;height:auto}#html-body [data-pb-style=D3FJGJ6]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=RR2V2I7]{display:flex;width:100%}#html-body [data-pb-style=PYIYA0A]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=P1TMDVT]{text-align:left}#html-body [data-pb-style=F6SSOOO]{display:inline-block}#html-body [data-pb-style=K11XLVI]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=U0GMW4D]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="IIM6H46"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="U0GMW4D"><a href="/next-day-rubber-rolls-14003.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/powered-by-rfi-image.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/powered-by-rfi-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="HQMCF2E" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/powered-by-rfi-image.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/powered-by-rfi-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="CSIHBUF" loading="lazy"></picture></a></figure><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="D3FJGJ6"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="RR2V2I7"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="PYIYA0A"><div class="text-size14 font-medium text-custom-black text-left pt-5 pb-1" data-content-type="text" data-appearance="default" data-element="main"><p>Powered By <picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/website-logo-powerd-by-color-rfi.webp"><img src="https://www.flooringinc.com/media/wysiwyg/website-logo-powerd-by-color-rfi.png" alt="" width="87" height="15"></picture></p></div><div class="text-size18 text-custom-black font-bold text-left pt-2 pb-4" data-content-type="text" data-appearance="default" data-element="main"><h2><span style="font-size: 18px;">Premium Rubber Solutions</span></h2></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="P1TMDVT" class="free__Shipping__btn"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="F6SSOOO"><a class="pagebuilder-button-primary" href="/next-day-rubber-rolls-14003.html" target="" data-link-type="default" data-element="link" data-pb-style="K11XLVI"><span data-element="link_text">SHOP NOW</span></a></div></div></div></div></div></div>                                </div>
5647                                
5648                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
5649                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Rubber Flooring</span>
5650
5651                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
5652                                                            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html"
5653                                                            title="All&#x20;Rubber&#x20;Flooring"
5654                                                            class="level-2 block">
5655                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/all_rubber_main.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/all_rubber_main.jpg" alt="All&#x20;Rubber&#x20;Flooring" title="All&#x20;Rubber&#x20;Flooring" /></picture>   
5656                                                                                                                                                                                        
5657                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">All Rubber Flooring</span></a>
5658                                                        </li>
5659                                                           
5660                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5661                                                            <a href="https://www.flooringinc.com/shop/rubber-flooring/rubber-rolls.html"
5662                                                            title="Rubber&#x20;Flooring&#x20;Rolls"
5663                                                            class="level-2 block">
5664                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/rubber_rolls_category_main_1_.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/rubber_rolls_category_main_1_.jpg" alt="Rubber&#x20;Flooring&#x20;Rolls" title="Rubber&#x20;Flooring&#x20;Rolls" /></picture>   
5665                                                                                                                                                                                        
5666                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Rubber Flooring Rolls</span></a>
5667                                                        </li>
5668                                                           
5669                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5670                                                            <a href="https://www.flooringinc.com/shop/rubber-flooring/rubber-tiles.html"
5671                                                            title="Rubber&#x20;Floor&#x20;Tiles"
5672                                                            class="level-2 block">
5673                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/rubbertiles-main-category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/rubbertiles-main-category_1.jpg" alt="Rubber&#x20;Floor&#x20;Tiles" title="Rubber&#x20;Floor&#x20;Tiles" /></picture>   
5674                                                                                                                                                                                        
5675                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Rubber Floor Tiles</span></a>
5676                                                        </li>
5677                                                           
5678                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5679                                                            <a href="https://www.flooringinc.com/shop/rubber-flooring/rubber-mats.html"
5680                                                            title="Rubber&#x20;Mats"
5681                                                            class="level-2 block">
5682                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/rubbermats-main-category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/rubbermats-main-category_1.jpg" alt="Rubber&#x20;Mats" title="Rubber&#x20;Mats" /></picture>   
5683                                                                                                                                                                                        
5684                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Rubber Mats</span></a>
5685                                                        </li>
5686                                                           
5687                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5688                                                            <a href="https://www.flooringinc.com/shop/rubber-flooring/playground-flooring.html"
5689                                                            title="Playground&#x20;Flooring"
5690                                                            class="level-2 block">
5691                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Playground_Flooring_Category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Playground_Flooring_Category.jpg" alt="Playground&#x20;Flooring" title="Playground&#x20;Flooring" /></picture>   
5692                                                                                                                                                                                        
5693                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Playground Flooring</span></a>
5694                                                        </li>
5695                                                           
5696                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5697                                                            <a href="https://www.flooringinc.com/shop/rubber-flooring/outdoor-rubber-flooring.html"
5698                                                            title="Outdoor&#x20;Rubber&#x20;Flooring"
5699                                                            class="level-2 block">
5700                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_rubber_flooring_outdoor_rubber_flooing_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_rubber_flooring_outdoor_rubber_flooing_1.jpg" alt="Outdoor&#x20;Rubber&#x20;Flooring" title="Outdoor&#x20;Rubber&#x20;Flooring" /></picture>   
5701                                                                                                                                                                                        
5702                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Outdoor Rubber Flooring</span></a>
5703                                                        </li>
5704                                                           
5705                                                        
5706                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/rubber-flooring.html" >View All</a>
5707                                             
5708
5709                                                </ul>
5710                                            </li>
5711                                            
5712                                            
5713                                                                                                                            
5714                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
5715                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
5716                                                                                        >
5717                                                <a 
5718                                                title="Garage&#x20;Flooring"
5719                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
5720                                                
5721                                                    >
5722                                                    Garage Flooring
5723                                                                                                            <span class="inline items-center rotate-180 absolute">
5724                                                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img">
5725  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
5726<title>chevron-down</title></svg>
5727                                                        </span>
5728                                                                                                    </a>
5729                                                 
5730                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
5731                                    <style>#html-body [data-pb-style=H2Q94UM]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=C5CAQFQ]{border-style:none}#html-body [data-pb-style=FY780K4],#html-body [data-pb-style=P2NDU5I]{max-width:100%;height:auto}#html-body [data-pb-style=RFW0BPB]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=MX73IJ8]{display:flex;width:100%}#html-body [data-pb-style=YYPRLU8]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=TU662D2]{text-align:left}#html-body [data-pb-style=EXLNMTV]{display:inline-block}#html-body [data-pb-style=N31DM3P]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=C5CAQFQ]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="H2Q94UM"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="C5CAQFQ"><a href="https://www.flooringinc.com/shop/flex-nitro-tiles-8985.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/nav-nitro-flex.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/nav-nitro-flex.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="FY780K4" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/nav-nitro-flex.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/nav-nitro-flex.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="P2NDU5I" loading="lazy"></picture></a></figure><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="RFW0BPB"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="MX73IJ8"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="YYPRLU8"><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="TU662D2" class="free__Shipping__btn"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="EXLNMTV"><a class="pagebuilder-button-primary" href="https://www.flooringinc.com/shop/flex-nitro-tiles-8985.html" target="" data-link-type="default" data-element="link" data-pb-style="N31DM3P"><span data-element="link_text">SHOP NOW</span></a></div></div></div></div></div></div>                                </div>
5732                                
5733                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
5734                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Garage Flooring</span>
5735
5736                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
5737                                                            <a href="https://www.flooringinc.com/shop/garage-flooring/all-garage-flooring.html"
5738                                                            title="All&#x20;Garage&#x20;Flooring"
5739                                                            class="level-2 block">
5740                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/All_Garage_Flooring.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/All_Garage_Flooring.jpg" alt="All&#x20;Garage&#x20;Flooring" title="All&#x20;Garage&#x20;Flooring" /></picture>   
5741                                                                                                                                                                                        
5742                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">All Garage Flooring</span></a>
5743                                                        </li>
5744                                                           
5745                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5746                                                            <a href="https://www.flooringinc.com/shop/garage-flooring/garage-rolls.html"
5747                                                            title="Garage&#x20;Flooring&#x20;Rolls"
5748                                                            class="level-2 block">
5749                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/garagerools-main-category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/garagerools-main-category_1.jpg" alt="Garage&#x20;Flooring&#x20;Rolls" title="Garage&#x20;Flooring&#x20;Rolls" /></picture>   
5750                                                                                                                                                                                        
5751                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Garage Flooring Rolls</span></a>
5752                                                        </li>
5753                                                           
5754                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5755                                                            <a href="https://www.flooringinc.com/shop/garage-flooring/garage-tiles.html"
5756                                                            title="Garage&#x20;Floor&#x20;Tiles"
5757                                                            class="level-2 block">
5758                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/garagetiles-main-category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/garagetiles-main-category_1.jpg" alt="Garage&#x20;Floor&#x20;Tiles" title="Garage&#x20;Floor&#x20;Tiles" /></picture>   
5759                                                                                                                                                                                        
5760                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Garage Floor Tiles</span></a>
5761                                                        </li>
5762                                                           
5763                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5764                                                            <a href="https://www.flooringinc.com/shop/garage-flooring/garage-gym-flooring.html"
5765                                                            title="Garage&#x20;Gym&#x20;Flooring"
5766                                                            class="level-2 block">
5767                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_garage_flooring_garage_gym_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_garage_flooring_garage_gym_flooring_1.jpg" alt="Garage&#x20;Gym&#x20;Flooring" title="Garage&#x20;Gym&#x20;Flooring" /></picture>   
5768                                                                                                                                                                                        
5769                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Garage Gym Flooring</span></a>
5770                                                        </li>
5771                                                           
5772                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5773                                                            <a href="https://www.flooringinc.com/shop/garage-flooring/coatings-epoxy.html"
5774                                                            title="Garage&#x20;Floor&#x20;Epoxy"
5775                                                            class="level-2 block">
5776                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_garage_flooring_coatings_epoxy_1_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_garage_flooring_coatings_epoxy_1_1.jpg" alt="Garage&#x20;Floor&#x20;Epoxy" title="Garage&#x20;Floor&#x20;Epoxy" /></picture>   
5777                                                                                                                                                                                        
5778                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Garage Floor Epoxy</span></a>
5779                                                        </li>
5780                                                           
5781                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5782                                                            <a href="https://www.flooringinc.com/shop/garage-flooring/trailer-flooring.html"
5783                                                            title="Trailer&#x20;Flooring"
5784                                                            class="level-2 block">
5785                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_garage_flooring_trailer_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_garage_flooring_trailer_flooring_1.jpg" alt="Trailer&#x20;Flooring" title="Trailer&#x20;Flooring" /></picture>   
5786                                                                                                                                                                                        
5787                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Trailer Flooring</span></a>
5788                                                        </li>
5789                                                           
5790                                                        
5791                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/garage-flooring.html" >View All</a>
5792                                             
5793
5794                                                </ul>
5795                                            </li>
5796                                            
5797                                            
5798                                                                                                                            
5799                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
5800                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
5801                                                                                        >
5802                                                <a 
5803                                                title="Dance&#x20;Flooring"
5804                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
5805                                                
5806                                                    >
5807                                                    Dance Flooring
5808                                                                                                            <span class="inline items-center rotate-180 absolute">
5809                                                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img">
5810  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
5811<title>chevron-down</title></svg>
5812                                                        </span>
5813                                                                                                    </a>
5814                                                 
5815                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
5816                                    <style>#html-body [data-pb-style=DE1KPIK]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=I9PHOLE]{border-style:none}#html-body [data-pb-style=PGOIAVD],#html-body [data-pb-style=XRTA8XP]{max-width:100%;height:auto}@media only screen and (max-width: 768px) { #html-body [data-pb-style=I9PHOLE]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="DE1KPIK"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="I9PHOLE"><a href="https://www.flooringinc.com/shop/prostep-dance-floor-rolls-9876.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/by-brand-ad.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/by-brand-ad.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="XRTA8XP" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/by-brand-ad.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/by-brand-ad.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="PGOIAVD" loading="lazy"></picture></a></figure></div>                                </div>
5817                                
5818                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
5819                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Dance Flooring</span>
5820
5821                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
5822                                                            <a href="https://www.flooringinc.com/shop/dance-flooring/marley-flooring.html"
5823                                                            title="Marley&#x20;Floor&#x20;Rolls"
5824                                                            class="level-2 block">
5825                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Marley_Dance_Floor_Rolls_Category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Marley_Dance_Floor_Rolls_Category_1.jpg" alt="Marley&#x20;Floor&#x20;Rolls" title="Marley&#x20;Floor&#x20;Rolls" /></picture>   
5826                                                                                                                                                                                        
5827                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Marley Floor Rolls</span></a>
5828                                                        </li>
5829                                                           
5830                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5831                                                            <a href="https://www.flooringinc.com/shop/dance-flooring/dance-floor-tiles.html"
5832                                                            title="Dance&#x20;Floor&#x20;Tiles"
5833                                                            class="level-2 block">
5834                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Dance_Floor_Tiles_Category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Dance_Floor_Tiles_Category_1.jpg" alt="Dance&#x20;Floor&#x20;Tiles" title="Dance&#x20;Floor&#x20;Tiles" /></picture>   
5835                                                                                                                                                                                        
5836                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Dance Floor Tiles</span></a>
5837                                                        </li>
5838                                                           
5839                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5840                                                            <a href="https://www.flooringinc.com/shop/dance-flooring/portable-dance-floor-kits.html"
5841                                                            title="Portable&#x20;Dance&#x20;Floors&#x20;&amp;&#x20;Kits"
5842                                                            class="level-2 block">
5843                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Portable_Dance_Floor_Kits_Category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Portable_Dance_Floor_Kits_Category_1.jpg" alt="Portable&#x20;Dance&#x20;Floors&#x20;&amp;&#x20;Kits" title="Portable&#x20;Dance&#x20;Floors&#x20;&amp;&#x20;Kits" /></picture>   
5844                                                                                                                                                                                        
5845                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Portable Dance Floors &amp; Kits</span></a>
5846                                                        </li>
5847                                                           
5848                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5849                                                            <a href="https://www.flooringinc.com/shop/dance-flooring/subflooring.html"
5850                                                            title="Subflooring"
5851                                                            class="level-2 block">
5852                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Dance_Subflooring_Category_1_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Dance_Subflooring_Category_1_1.jpg" alt="Subflooring" title="Subflooring" /></picture>   
5853                                                                                                                                                                                        
5854                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Subflooring</span></a>
5855                                                        </li>
5856                                                           
5857                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5858                                                            <a href="https://www.flooringinc.com/shop/dance-flooring/adhesives-cleaners-accessories.html"
5859                                                            title="Adhesives,&#x20;Cleaners&#x20;&amp;&#x20;Accessories"
5860                                                            class="level-2 block">
5861                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Dance_Floor_Accessories.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Dance_Floor_Accessories.jpg" alt="Adhesives,&#x20;Cleaners&#x20;&amp;&#x20;Accessories" title="Adhesives,&#x20;Cleaners&#x20;&amp;&#x20;Accessories" /></picture>   
5862                                                                                                                                                                                        
5863                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Adhesives, Cleaners &amp; Accessories</span></a>
5864                                                        </li>
5865                                                           
5866                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5867                                                            <a href="https://www.flooringinc.com/shop/dance-flooring/all-dance-flooring.html"
5868                                                            title="All&#x20;Dance&#x20;Flooring"
5869                                                            class="level-2 block">
5870                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/All_Dance_Flooring_Category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/All_Dance_Flooring_Category.jpg" alt="All&#x20;Dance&#x20;Flooring" title="All&#x20;Dance&#x20;Flooring" /></picture>   
5871                                                                                                                                                                                        
5872                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">All Dance Flooring</span></a>
5873                                                        </li>
5874                                                           
5875                                                        
5876                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/dance-flooring.html" >View All</a>
5877                                             
5878
5879                                                </ul>
5880                                            </li>
5881                                            
5882                                            
5883                                                                                                                            
5884                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
5885                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
5886                                                                                        >
5887                                                <a 
5888                                                title="Foam&#x20;Flooring"
5889                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
5890                                                
5891                                                    >
5892                                                    Foam Flooring
5893                                                                                                            <span class="inline items-center rotate-180 absolute">
5894                                                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img">
5895  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
5896<title>chevron-down</title></svg>
5897                                                        </span>
5898                                                                                                    </a>
5899                                                 
5900                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
5901                                    <style>#html-body [data-pb-style=V4QEB1B]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=RATJYYQ]{border-style:none}#html-body [data-pb-style=C8AYEH6],#html-body [data-pb-style=K3BTVRB]{max-width:100%;height:auto}#html-body [data-pb-style=C9LYQAD]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=WFJJ3YQ]{display:flex;width:100%}#html-body [data-pb-style=IJTR1TW]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=UUFOJKP]{text-align:left}#html-body [data-pb-style=LCUDGB3]{display:inline-block}#html-body [data-pb-style=E91VWL4]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=RATJYYQ]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="V4QEB1B"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="RATJYYQ"><a href="/shop/foam-flooring.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/powered-by-ft-image.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/powered-by-ft-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="K3BTVRB" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/powered-by-ft-image.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/powered-by-ft-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="C8AYEH6" loading="lazy"></picture></a></figure><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="C9LYQAD"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="WFJJ3YQ"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="IJTR1TW"><div class="text-size14 font-medium text-custom-black text-left pt-5 pb-1" data-content-type="text" data-appearance="default" data-element="main"><p>Powered By <picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/6000x2556_FT.webp"><img src="https://www.flooringinc.com/media/wysiwyg/6000x2556_FT.png" alt="" width="100" height="26"></picture></p></div><div class="text-size18 text-custom-black font-bold text-left pt-2 pb-4" data-content-type="text" data-appearance="default" data-element="main"><h2><span style="font-size: 18px;">Elite Sports Surfaces</span></h2></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="UUFOJKP" class="free__Shipping__btn"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="LCUDGB3"><a class="pagebuilder-button-primary" href="/shop/foam-flooring.html" target="" data-link-type="default" data-element="link" data-pb-style="E91VWL4"><span data-element="link_text">SHOP NOW</span></a></div></div></div></div></div></div>                                </div>
5902                                
5903                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
5904                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Foam Flooring</span>
5905
5906                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
5907                                                            <a href="https://www.flooringinc.com/shop/foam-flooring/foam-tiles.html"
5908                                                            title="Foam&#x20;Floor&#x20;Tiles"
5909                                                            class="level-2 block">
5910                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/foamtiles-main-category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/foamtiles-main-category_1.jpg" alt="Foam&#x20;Floor&#x20;Tiles" title="Foam&#x20;Floor&#x20;Tiles" /></picture>   
5911                                                                                                                                                                                        
5912                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Foam Floor Tiles</span></a>
5913                                                        </li>
5914                                                           
5915                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5916                                                            <a href="https://www.flooringinc.com/shop/foam-flooring/kids-baby-play-mats.html"
5917                                                            title="Kids&#x20;&amp;&#x20;Baby&#x20;Play&#x20;Mats"
5918                                                            class="level-2 block">
5919                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Kids_Baby_Play_Mats.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Kids_Baby_Play_Mats.jpg" alt="Kids&#x20;&amp;&#x20;Baby&#x20;Play&#x20;Mats" title="Kids&#x20;&amp;&#x20;Baby&#x20;Play&#x20;Mats" /></picture>   
5920                                                                                                                                                                                        
5921                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Kids &amp; Baby Play Mats</span></a>
5922                                                        </li>
5923                                                           
5924                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5925                                                            <a href="https://www.flooringinc.com/shop/foam-flooring/gymnastic-folding-mats.html"
5926                                                            title="Gymnastics&#x20;Mats&#x20;"
5927                                                            class="level-2 block">
5928                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Gymnastics_Mat_Category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Gymnastics_Mat_Category_1.jpg" alt="Gymnastics&#x20;Mats&#x20;" title="Gymnastics&#x20;Mats&#x20;" /></picture>   
5929                                                                                                                                                                                        
5930                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Gymnastics Mats </span></a>
5931                                                        </li>
5932                                                           
5933                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5934                                                            <a href="https://www.flooringinc.com/shop/foam-flooring/wrestling-mats.html"
5935                                                            title="Wrestling&#x20;Mats"
5936                                                            class="level-2 block">
5937                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Wrestling_Mats_Category_2.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Wrestling_Mats_Category_2.jpg" alt="Wrestling&#x20;Mats" title="Wrestling&#x20;Mats" /></picture>   
5938                                                                                                                                                                                        
5939                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Wrestling Mats</span></a>
5940                                                        </li>
5941                                                           
5942                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5943                                                            <a href="https://www.flooringinc.com/shop/foam-flooring/martial-arts-mats.html"
5944                                                            title="Martial&#x20;Arts&#x20;Mats&#x20;"
5945                                                            class="level-2 block">
5946                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Martial_Arts_Mats_Category_1_.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Martial_Arts_Mats_Category_1_.jpg" alt="Martial&#x20;Arts&#x20;Mats&#x20;" title="Martial&#x20;Arts&#x20;Mats&#x20;" /></picture>   
5947                                                                                                                                                                                        
5948                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Martial Arts Mats </span></a>
5949                                                        </li>
5950                                                           
5951                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
5952                                                            <a href="https://www.flooringinc.com/shop/foam-flooring/trade-show-flooring.html"
5953                                                            title="Trade&#x20;Show&#x20;Flooring"
5954                                                            class="level-2 block">
5955                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Trade_Show_Flooring.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Trade_Show_Flooring.jpg" alt="Trade&#x20;Show&#x20;Flooring" title="Trade&#x20;Show&#x20;Flooring" /></picture>   
5956                                                                                                                                                                                        
5957                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Trade Show Flooring</span></a>
5958                                                        </li>
5959                                                           
5960                                                        
5961                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/foam-flooring.html" >View All</a>
5962                                             
5963
5964                                                </ul>
5965                                            </li>
5966                                            
5967                                            
5968                                                                                                                            
5969                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
5970                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
5971                                                                                        >
5972                                                <a 
5973                                                title="Outdoor&#x20;Flooring"
5974                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
5975                                                
5976                                                    >
5977                                                    Outdoor Flooring
5978                                                                                                            <span class="inline items-center rotate-180 absolute">
5979                                                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img">
5980  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
5981<title>chevron-down</title></svg>
5982                                                        </span>
5983                                                                                                    </a>
5984                                                 
5985                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
5986                                    <style>#html-body [data-pb-style=ALQ4JPY]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=TAKV2W6]{border-style:none}#html-body [data-pb-style=HFLT9TD],#html-body [data-pb-style=Q8I554G]{max-width:100%;height:auto}#html-body [data-pb-style=FM097SK]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=P04UNTQ]{display:flex;width:100%}#html-body [data-pb-style=DWKW6WK]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=UW72WSA]{text-align:left}#html-body [data-pb-style=GY38RBS]{display:inline-block}#html-body [data-pb-style=W6R7Y9S]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=TAKV2W6]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="ALQ4JPY"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="TAKV2W6"><a href="/helios-deck-tiles-13850.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/outdoor-flooring-image.
5986webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/outdoor-flooring-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="Q8I554G" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/outdoor-flooring-image.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/outdoor-flooring-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="HFLT9TD" loading="lazy"></picture></a></figure><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="FM097SK"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="P04UNTQ"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="DWKW6WK"><div class="text-size14 font-medium text-custom-black text-left pt-5" data-content-type="text" data-appearance="default" data-element="main"><p><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Helios_Color.webp"><img src="https://www.flooringinc.com/media/wysiwyg/Helios_Color.png" alt="" width="100" height="33"></picture></p></div><div class="text-size18 text-custom-black font-bold text-left pt-1 pb-5" data-content-type="text" data-appearance="default" data-element="main"><h2><span style="font-size: 18px;">Helios Deck Tiles</span></h2></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="UW72WSA" class="free__Shipping__btn"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="GY38RBS"><a class="pagebuilder-button-primary" href="/helios-deck-tiles-13850.html" target="" data-link-type="default" data-element="link" data-pb-style="W6R7Y9S"><span data-element="link_text">SHOP NOW</span></a></div></div></div></div></div></div>                                </div>
5987                                
5988                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
5989                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Outdoor Flooring</span>
5990
5991                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
5992                                                            <a href="https://www.flooringinc.com/shop/outdoor-flooring/playground-flooring.html"
5993                                                            title="Playground&#x20;Flooring"
5994                                                            class="level-2 block">
5995                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Playground_Flooring_Category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Playground_Flooring_Category_1.jpg" alt="Playground&#x20;Flooring" title="Playground&#x20;Flooring" /></picture>   
5996                                                                                                                                                                                        
5997                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Playground Flooring</span></a>
5998                                                        </li>
5999                                                           
6000                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6001                                                            <a href="https://www.flooringinc.com/shop/outdoor-flooring/sport-and-court-flooring.html"
6002                                                            title="Sports&#x20;Flooring&#x20;&amp;&#x20;Court&#x20;Tiles"
6003                                                            class="level-2 block">
6004                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/court-main-category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/court-main-category_1.jpg" alt="Sports&#x20;Flooring&#x20;&amp;&#x20;Court&#x20;Tiles" title="Sports&#x20;Flooring&#x20;&amp;&#x20;Court&#x20;Tiles" /></picture>   
6005                                                                                                                                                                                        
6006                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Sports Flooring &amp; Court Tiles</span></a>
6007                                                        </li>
6008                                                           
6009                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6010                                                            <a href="https://www.flooringinc.com/shop/outdoor-flooring/artificial-grass.html"
6011                                                            title="Turf&#x20;&amp;&#x20;Artificial&#x20;Grass"
6012                                                            class="level-2 block">
6013                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_outdoor_flooring_artifical_grass_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_outdoor_flooring_artifical_grass_1.jpg" alt="Turf&#x20;&amp;&#x20;Artificial&#x20;Grass" title="Turf&#x20;&amp;&#x20;Artificial&#x20;Grass" /></picture>   
6014                                                                                                                                                                                        
6015                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Turf &amp; Artificial Grass</span></a>
6016                                                        </li>
6017                                                           
6018                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6019                                                            <a href="https://www.flooringinc.com/shop/outdoor-flooring/composite-decking.html"
6020                                                            title="Composite&#x20;Decking"
6021                                                            class="level-2 block">
6022                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Composite_Decking_Category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Composite_Decking_Category.jpg" alt="Composite&#x20;Decking" title="Composite&#x20;Decking" /></picture>   
6023                                                                                                                                                                                        
6024                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Composite Decking</span></a>
6025                                                        </li>
6026                                                           
6027                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6028                                                            <a href="https://www.flooringinc.com/shop/outdoor-flooring/rooftop-deck-flooring.html"
6029                                                            title="Rooftop&#x20;Deck&#x20;Flooring"
6030                                                            class="level-2 block">
6031                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Rooftop_Deck_Flooring_Category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Rooftop_Deck_Flooring_Category_1.jpg" alt="Rooftop&#x20;Deck&#x20;Flooring" title="Rooftop&#x20;Deck&#x20;Flooring" /></picture>   
6032                                                                                                                                                                                        
6033                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Rooftop Deck Flooring</span></a>
6034                                                        </li>
6035                                                           
6036                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6037                                                            <a href="https://www.flooringinc.com/shop/outdoor-flooring/drainage-tiles.html"
6038                                                            title="Drainage&#x20;Tile&#x20;&amp;&#x20;Mats"
6039                                                            class="level-2 block">
6040                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Drainage_Tiles_Category_01.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Drainage_Tiles_Category_01.jpg" alt="Drainage&#x20;Tile&#x20;&amp;&#x20;Mats" title="Drainage&#x20;Tile&#x20;&amp;&#x20;Mats" /></picture>   
6041                                                                                                                                                                                        
6042                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Drainage Tile &amp; Mats</span></a>
6043                                                        </li>
6044                                                           
6045                                                        
6046                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/outdoor-flooring.html" >View All</a>
6047                                             
6048
6049                                                </ul>
6050                                            </li>
6051                                            
6052                                            
6053                                                                                                                            
6054                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
6055                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
6056                                                                                        >
6057                                                <a 
6058                                                title="Turf&#x20;&amp;&#x20;Artificial&#x20;Grass"
6059                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
6060                                                
6061                                                    >
6062                                                    Turf &amp; Artificial Grass
6063                                                                                                            <span class="inline items-center rotate-180 absolute">
6064                                                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img">
6065  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
6066<title>chevron-down</title></svg>
6067                                                        </span>
6068                                                                                                    </a>
6069                                                
6070                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
6071                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Turf &amp; Artificial Grass</span>
6072
6073                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
6074                                                            <a href="https://www.flooringinc.com/shop/artificial-grass/sport-field-turf.html"
6075                                                            title="Sport&#x20;&amp;&#x20;Gym&#x20;Turf"
6076                                                            class="level-2 block">
6077                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/10079_0_1_3_.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/10079_0_1_3_.jpg" alt="Sport&#x20;&amp;&#x20;Gym&#x20;Turf" title="Sport&#x20;&amp;&#x20;Gym&#x20;Turf" /></picture>   
6078                                                                                                                                                                                        
6079                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Sport &amp; Gym Turf</span></a>
6080                                                        </li>
6081                                                           
6082                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6083                                                            <a href="https://www.flooringinc.com/shop/artificial-grass/landscape-turf.html"
6084                                                            title="Landscape&#x20;Turf"
6085                                                            class="level-2 block">
6086                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_artifical_grass_landscape_turf_2.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_artifical_grass_landscape_turf_2.jpg" alt="Landscape&#x20;Turf" title="Landscape&#x20;Turf" /></picture>   
6087                                                                                                                                                                                        
6088                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Landscape Turf</span></a>
6089                                                        </li>
6090                                                           
6091                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6092                                                            <a href="https://www.flooringinc.com/shop/artificial-grass/pet-turf.html"
6093                                                            title="Pet&#x20;Turf"
6094                                                            class="level-2 block">
6095                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_artifical_grass_pet_turf_3.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_artifical_grass_pet_turf_3.jpg" alt="Pet&#x20;Turf" title="Pet&#x20;Turf" /></picture>   
6096                                                                                                                                                                                        
6097                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Pet Turf</span></a>
6098                                                        </li>
6099                                                           
6100                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6101                                                            <a href="https://www.flooringinc.com/shop/artificial-grass/putting-greens.html"
6102                                                            title="Golf&#x20;&amp;&#x20;Putting&#x20;Green&#x20;Turf"
6103                                                            class="level-2 block">
6104                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_artifical_grass_putting_greens_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_artifical_grass_putting_greens_1.jpg" alt="Golf&#x20;&amp;&#x20;Putting&#x20;Green&#x20;Turf" title="Golf&#x20;&amp;&#x20;Putting&#x20;Green&#x20;Turf" /></picture>   
6105                                                                                                                                                                                        
6106                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Golf &amp; Putting Green Turf</span></a>
6107                                                        </li>
6108                                                           
6109                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6110                                                            <a href="https://www.flooringinc.com/shop/artificial-grass/turf-accessories.html"
6111                                                            title="Turf&#x20;Accessories"
6112                                                            class="level-2 block">
6113                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Untitled_design_1_.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Untitled_design_1_.png" alt="Turf&#x20;Accessories" title="Turf&#x20;Accessories" /></picture>   
6114                                                                                                                                                                                        
6115                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Turf Accessories</span></a>
6116                                                        </li>
6117                                                           
6118                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6119                                                            <a href="https://www.flooringinc.com/shop/artificial-grass/all-artificial-grass.html"
6120                                                            title="All&#x20;Turf&#x20;&amp;&#x20;Artificial&#x20;Grass"
6121                                                            class="level-2 block">
6122                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/All_Artificial_Grass2_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/All_Artificial_Grass2_1.jpg" alt="All&#x20;Turf&#x20;&amp;&#x20;Artificial&#x20;Grass" title="All&#x20;Turf&#x20;&amp;&#x20;Artificial&#x20;Grass" /></picture>   
6123                                                                                                                                                                                        
6124                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">All Turf &amp; Artificial Grass</span></a>
6125                                                        </li>
6126                                                           
6127                                                        
6128                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/artificial-grass.html" >View All</a>
6129                                             
6130
6131                                                </ul>
6132                                            </li>
6133                                            
6134                                            
6135                                                                                                                            
6136                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
6137                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
6138                                                                                        >
6139                                                <a 
6140                                                title="Carpet&#x20;Tiles&#x20;&amp;&#x20;Rolls"
6141                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
6142                                                
6143                                                    >
6144                                                    Carpet Tiles &amp; Rolls
6145                                                                                                            <span class="inline items-center rotate-180 absolute">
6146                                                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img">
6147  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
6148<title>chevron-down</title></svg>
6149                                                        </span>
6150                                                                                                    </a>
6151                                                
6152                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
6153                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Carpet Tiles &amp; Rolls</span>
6154
6155                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
6156                                                            <a href="https://www.flooringinc.com/shop/carpet/carpet-tiles.html"
6157                                                            title="Carpet&#x20;Tiles"
6158                                                            class="level-2 block">
6159                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Carpet_Tiles_Category_01.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Carpet_Tiles_Category_01.jpg" alt="Carpet&#x20;Tiles" title="Carpet&#x20;Tiles" /></picture>   
6160                                                                                                                                                                                        
6161                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Carpet Tiles</span></a>
6162                                                        </li>
6163                                                           
6164                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6165                                                            <a href="https://www.flooringinc.com/shop/carpet/carpet-rolls.html"
6166                                                            title="Carpet&#x20;Rolls"
6167                                                            class="level-2 block">
6168                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_carpet_carpet_rolls_3.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_carpet_carpet_rolls_3.jpg" alt="Carpet&#x20;Rolls" title="Carpet&#x20;Rolls" /></picture>   
6169                                                                                                                                                                                        
6170                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Carpet Rolls</span></a>
6171                                                        </li>
6172                                                           
6173                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6174                                                            <a href="https://www.flooringinc.com/shop/carpet/home-theater-carpet.html"
6175                                                            title="Home&#x20;Theater&#x20;Carpet"
6176                                                            class="level-2 block">
6177                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Home_Theater_Carpet_Category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Home_Theater_Carpet_Category.jpg" alt="Home&#x20;Theater&#x20;Carpet" title="Home&#x20;Theater&#x20;Carpet" /></picture>   
6178                                                                                                                                                                                        
6179                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Home Theater Carpet</span></a>
6180                                                        </li>
6181                                                           
6182                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6183                                                            <a href="https://www.flooringinc.com/shop/carpet/peel-stick-carpet.html"
6184                                                            title="Peel&#x20;and&#x20;Stick&#x20;Carpet&#x20;Tiles"
6185                                                            class="level-2 block">
6186                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_carpet_peel_stick_carpet_3.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_carpet_peel_stick_carpet_3.jpg" alt="Peel&#x20;and&#x20;Stick&#x20;Carpet&#x20;Tiles" title="Peel&#x20;and&#x20;Stick&#x20;Carpet&#x20;Tiles" /></picture>   
6187                                                                                                                                                                                        
6188                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Peel and Stick Carpet Tiles</span></a>
6189                                                        </li>
6190                                                           
6191                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6192                                                            <a href="https://www.flooringinc.com/shop/carpet/outdoor-carpet.html"
6193                                                            title="Outdoor&#x20;Carpet"
6194                                                            class="level-2 block">
6195                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_carpet_outdoor_carpet_3.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_carpet_outdoor_carpet_3.jpg" alt="Outdoor&#x20;Carpet" title="Outdoor&#x20;Carpet" /></picture>   
6196                                                                                                                                                                                        
6197                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Outdoor Carpet</span></a>
6198                                                        </li>
6199                                                           
6200                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6201                                                            <a href="https://www.flooringinc.com/shop/carpet/waterproof-carpet.html"
6202                                                            title="Waterproof&#x20;Carpet"
6203                                                            class="level-2 block">
6204                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_carpet_waterproof_carpet_3.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_carpet_waterproof_carpet_3.jpg" alt="Waterproof&#x20;Carpet" title="Waterproof&#x20;Carpet" /></picture>   
6205                                                                                                                                                                                        
6206                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Waterproof Carpet</span></a>
6207                                                        </li>
6208                                                           
6209                                                        
6210                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/carpet.html" >View All</a>
6211                                             
6212
6213                                                </ul>
6214                                            </li>
6215                                            
6216                                            
6217                                                                                                                            
6218                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
6219                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
6220                                                                                        >
6221                                                <a 
6222                                                title="Vinyl&#x20;Flooring"
6223                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
6224                                                
6225                                                    >
6226                                                    Vinyl Flooring
6227                                                                                                            <sp
6227an class="inline items-center rotate-180 absolute">
6228                                                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img">
6229  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
6230<title>chevron-down</title></svg>
6231                                                        </span>
6232                                                                                                    </a>
6233                                                 
6234                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
6235                                    <style>#html-body [data-pb-style=EM115TO]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=IKTB4TW]{border-style:none}#html-body [data-pb-style=GIF1L08],#html-body [data-pb-style=XQRKPTA]{max-width:100%;height:auto}#html-body [data-pb-style=L8H5BBD]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=R47C5CN]{display:flex;width:100%}#html-body [data-pb-style=KQ2WCHQ]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=DKAF2SH]{text-align:left}#html-body [data-pb-style=PYFOHXW]{display:inline-block}#html-body [data-pb-style=PNB90JW]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=IKTB4TW]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="EM115TO"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="IKTB4TW"><a href="/tritoncore-pro-7-rigid-core-vinyl-planks-12596.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/vinyl-ad-5.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/vinyl-ad-5.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="XQRKPTA" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/vinyl-ad-5.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/vinyl-ad-5.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="GIF1L08" loading="lazy"></picture></a></figure><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="L8H5BBD"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="R47C5CN"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="KQ2WCHQ"><div class="text-size18 text-custom-black font-bold text-left pt-5 pb-1" data-content-type="text" data-appearance="default" data-element="main"><h2><span style="font-size: 18px;">TritonCore Pro 7"</span><br><span style="font-size: 18px;">Rigid Core Vinyl Planks</span></h2></div><div class="text-size14 font-medium text-custom-black text-left pt-1 pb-3" data-content-type="text" data-appearance="default" data-element="main"><p>Functional beauty for busy households.</p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="DKAF2SH" class="free__Shipping__btn"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="PYFOHXW"><a class="pagebuilder-button-primary" href="/tritoncore-pro-7-rigid-core-vinyl-planks-12596.html" target="" data-link-type="default" data-element="link" data-pb-style="PNB90JW"><span data-element="link_text">SHOP NOW</span></a></div></div></div></div></div></div>                                </div>
6236                                
6237                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
6238                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Vinyl Flooring</span>
6239
6240                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
6241                                                            <a href="https://www.flooringinc.com/shop/vinyl/vinyl-sheet.html"
6242                                                            title="Vinyl&#x20;Sheet&#x20;Flooring"
6243                                                            class="level-2 block">
6244                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_vinyl_vinyl_sheet_3.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_vinyl_vinyl_sheet_3.jpg" alt="Vinyl&#x20;Sheet&#x20;Flooring" title="Vinyl&#x20;Sheet&#x20;Flooring" /></picture>   
6245                                                                                                                                                                                        
6246                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Vinyl Sheet Flooring</span></a>
6247                                                        </li>
6248                                                           
6249                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6250                                                            <a href="https://www.flooringinc.com/shop/vinyl/vinyl-tiles-planks.html"
6251                                                            title="Vinyl&#x20;Tiles&#x20;&amp;&#x20;Planks"
6252                                                            class="level-2 block">
6253                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/main-category-vinyl.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/main-category-vinyl.jpg" alt="Vinyl&#x20;Tiles&#x20;&amp;&#x20;Planks" title="Vinyl&#x20;Tiles&#x20;&amp;&#x20;Planks" /></picture>   
6254                                                                                                                                                                                        
6255                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Vinyl Tiles &amp; Planks</span></a>
6256                                                        </li>
6257                                                           
6258                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6259                                                            <a href="https://www.flooringinc.com/shop/vinyl/waterproof-vinyl.html"
6260                                                            title="Waterproof&#x20;Vinyl&#x20;Flooring"
6261                                                            class="level-2 block">
6262                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_vinyl_waterproof_vinyl_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_vinyl_waterproof_vinyl_1.jpg" alt="Waterproof&#x20;Vinyl&#x20;Flooring" title="Waterproof&#x20;Vinyl&#x20;Flooring" /></picture>   
6263                                                                                                                                                                                        
6264                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Waterproof Vinyl Flooring</span></a>
6265                                                        </li>
6266                                                           
6267                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6268                                                            <a href="https://www.flooringinc.com/shop/vinyl/rigid-core-vinyl.html"
6269                                                            title="Rigid&#x20;Core&#x20;Vinyl&#x20;Flooring"
6270                                                            class="level-2 block">
6271                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_vinyl_rigid_core_vinyl_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_vinyl_rigid_core_vinyl_1.jpg" alt="Rigid&#x20;Core&#x20;Vinyl&#x20;Flooring" title="Rigid&#x20;Core&#x20;Vinyl&#x20;Flooring" /></picture>   
6272                                                                                                                                                                                        
6273                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Rigid Core Vinyl Flooring</span></a>
6274                                                        </li>
6275                                                           
6276                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6277                                                            <a href="https://www.flooringinc.com/shop/vinyl/commercial-vinyl.html"
6278                                                            title="Commercial&#x20;Vinyl&#x20;Flooring"
6279                                                            class="level-2 block">
6280                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_vinyl_commercial_vinyl_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_vinyl_commercial_vinyl_1.jpg" alt="Commercial&#x20;Vinyl&#x20;Flooring" title="Commercial&#x20;Vinyl&#x20;Flooring" /></picture>   
6281                                                                                                                                                                                        
6282                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Vinyl Flooring</span></a>
6283                                                        </li>
6284                                                           
6285                                                                                                            
6286                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/vinyl.html" >View All</a>
6287                                             
6288
6289                                                </ul>
6290                                            </li>
6291                                            
6292                                            
6293                                                                                                                            
6294                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
6295                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
6296                                                                                        >
6297                                                <a 
6298                                                title="Wood&#x20;&amp;&#x20;Laminate&#x20;Flooring"
6299                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
6300                                                
6301                                                    >
6302                                                    Wood &amp; Laminate Flooring
6303                                                                                                            <sp
6303an class="inline items-center rotate-180 absolute">
6304                                                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img">
6305  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
6306<title>chevron-down</title></svg>
6307                                                        </span>
6308                                                                                                    </a>
6309                                                
6310                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
6311                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Wood &amp; Laminate Flooring</span>
6312
6313                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
6314                                                            <a href="https://www.flooringinc.com/shop/wood-laminate/waterproof-laminate.html"
6315                                                            title="Waterproof&#x20;Laminate&#x20;Flooring"
6316                                                            class="level-2 block">
6317                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_waterproof_laminate_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_waterproof_laminate_1.jpg" alt="Waterproof&#x20;Laminate&#x20;Flooring" title="Waterproof&#x20;Laminate&#x20;Flooring" /></picture>   
6318                                                                                                                                                                                        
6319                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Waterproof Laminate Flooring</span></a>
6320                                                        </li>
6321                                                           
6322                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6323                                                            <a href="https://www.flooringinc.com/shop/wood-laminate/laminate.html"
6324                                                            title="Laminate&#x20;Flooring"
6325                                                            class="level-2 block">
6326                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_laminate_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_laminate_1.jpg" alt="Laminate&#x20;Flooring" title="Laminate&#x20;Flooring" /></picture>   
6327                                                                                                                                                                                        
6328                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Laminate Flooring</span></a>
6329                                                        </li>
6330                                                           
6331                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6332                                                            <a href="https://www.flooringinc.com/shop/wood-laminate/hardwood.html"
6333                                                            title="Engineered&#x20;Hardwood&#x20;Flooring"
6334                                                            class="level-2 block">
6335                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_hardwood_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_hardwood_1.jpg" alt="Engineered&#x20;Hardwood&#x20;Flooring" title="Engineered&#x20;Hardwood&#x20;Flooring" /></picture>   
6336                                                                                                                                                                                        
6337                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Engineered Hardwood Flooring</span></a>
6338                                                        </li>
6339                                                           
6340                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6341                                                            <a href="https://www.flooringinc.com/shop/wood-laminate/oak.html"
6342                                                            title="Oak&#x20;Wood&#x20;Flooring"
6343                                                            class="level-2 block">
6344                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_oak_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_oak_1.jpg" alt="Oak&#x20;Wood&#x20;Flooring" title="Oak&#x20;Wood&#x20;Flooring" /></picture>   
6345                                                                                                                                                                                        
6346                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Oak Wood Flooring</span></a>
6347                                                        </li>
6348                                                           
6349                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6350                                                            <a href="https://www.flooringinc.com/shop/wood-laminate/commercial-wood-laminate.html"
6351                                                            title="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate"
6352                                                            class="level-2 block">
6353                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_commercial_wood_laminate_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_commercial_wood_laminate_1.jpg" alt="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate" title="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate" /></picture>   
6354                                                                                                                                                                                        
6355                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Wood &amp; Laminate</span></a>
6356                                                        </li>
6357                                                           
6358                                                                                                            
6359                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/wood-laminate.html" >View All</a>
6360                                             
6361
6362                                                </ul>
6363                                            </li>
6364                                            
6365                                            
6366                                                                                                                            
6367                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
6368                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
6369                                                                                        >
6370                                                <a 
6371                                                title="Commercial&#x20;Flooring"
6372                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
6373                                                
6374                                                    >
6375                                                    Commercial Flooring
6376                                                                                                            <sp
6376an class="inline items-center rotate-180 absolute">
6377                                                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img">
6378  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
6379<title>chevron-down</title></svg>
6380                                                        </span>
6381                                                                                                    </a>
6382                                                 
6383                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
6384                                    <style>#html-body [data-pb-style=O02YD59]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=OOE2A60]{border-style:none}#html-body [data-pb-style=GIBTE8V],#html-body [data-pb-style=I3MEDCP]{max-width:100%;height:auto}#html-body [data-pb-style=YUV11TT]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=BOTYRR2]{display:flex;width:100%}#html-body [data-pb-style=Y56PEM0]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=AAF7UJB]{text-align:left}#html-body [data-pb-style=MN0A9R6]{display:inline-block}#html-body [data-pb-style=GVKGSEM]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=OOE2A60]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="O02YD59"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="OOE2A60"><a href="/shaw-intellect-carpet-tile-9127.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/commercial-ad-image.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/commercial-ad-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="I3MEDCP" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/commercial-ad-image.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/commercial-ad-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="GIBTE8V" loading="lazy"></picture></a></figure><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="YUV11TT"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="BOTYRR2"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="Y56PEM0"><div class="text-size14 font-medium text-custom-black text-left pt-5" data-content-type="text" data-appearance="default" data-element="main"><p><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/shaw-logo-copy.webp"><img style="width: 100px;" src="https://www.flooringinc.com/media/wysiwyg/shaw-logo-copy.png" alt="" width="100"></picture></p></div><div class="text-size18 text-custom-black font-bold text-left pt-1 pb-5" data-content-type="text" data-appearance="default" data-element="main"><h2><span style="font-size: 18px;">Shaw Intellect<br>Carpet Tile</span></h2></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="AAF7UJB" class="free__Shipping__btn"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="MN0A9R6"><a class="pagebuilder-button-primary" href="/shaw-intellect-carpet-tile-9127.html" target="" data-link-type="default" data-element="link" data-pb-style="GVKGSEM"><span data-element="link_text">SHOP NOW</span></a></div></div></div></div></div></div>                                </div>
6385                                
6386                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
6387                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Commercial Flooring</span>
6388
6389                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
6390                                                            <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-rubber-flooring.html"
6391                                                            title="Commercial&#x20;Rubber&#x20;Flooring"
6392                                                            class="level-2 block">
6393                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/main-category-commercial-rubber.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/main-category-commercial-rubber.jpg" alt="Commercial&#x20;Rubber&#x20;Flooring" title="Commercial&#x20;Rubber&#x20;Flooring" /></picture>   
6394                                                                                                                                                                                        
6395                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Rubber Flooring</span></a>
6396                                                        </li>
6397                                                           
6398                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6399                                                            <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-garage-flooring.html"
6400                                                            title="Commercial&#x20;Garage&#x20;Flooring"
6401                                                            class="level-2 block">
6402                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_garage_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_garage_flooring_1.jpg" alt="Commercial&#x20;Garage&#x20;Flooring" title="Commercial&#x20;Garage&#x20;Flooring" /></picture>   
6403                                                                                                                                                                                        
6404                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Garage Flooring</span></a>
6405                                                        </li>
6406                                                           
6407                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6408                                                            <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-carpet.html"
6409                                                            title="Commercial&#x20;Carpet&#x20;Tiles"
6410                                                            class="level-2 block">
6411                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_carpet_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_carpet_1.jpg" alt="Commercial&#x20;Carpet&#x20;Tiles" title="Commercial&#x20;Carpet&#x20;Tiles" /></picture>   
6412                                                                                                                                                                                        
6413                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Carpet Tiles</span></a>
6414                                                        </li>
6415                                                           
6416                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6417                                                            <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-vinyl.html"
6418                                                            title="Commercial&#x20;Vinyl&#x20;Flooring"
6419                                                            class="level-2 block">
6420                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_vinyl_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_vinyl_1.jpg" alt="Commercial&#x20;Vinyl&#x20;Flooring" title="Commercial&#x20;Vinyl&#x20;Flooring" /></picture>   
6421                                                                                                                                                                                        
6422                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Vinyl Flooring</span></a>
6423                                                        </li>
6424                                                           
6425                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6426                                                            <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-wood-laminate.html"
6427                                                            title="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate&#x20;Flooring"
6428                                                            class="level-2 block">
6429                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_wood_laminate_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_wood_laminate_1.jpg" alt="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate&#x20;Flooring" title="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate&#x20;Flooring" /></picture>   
6430                                                                                                                                                                                        
6431                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Wood &amp; Laminate Flooring</span></a>
6432                                                        </li>
6433                                                           
6434                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6435                                                            <a href="https://www.flooringinc.com/shop/commercial-flooring/gym-floor-covers-protection.html"
6436                                                            title="Gym&#x20;Floor&#x20;Covers&#x20;&#x7C;&#x20;Floor&#x20;Protection"
6437                                                            class="level-2 block">
6438                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Gym_Floor_Covers_Category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Gym_Floor_Covers_Category.jpg" alt="Gym&#x20;Floor&#x20;Covers&#x20;&#x7C;&#x20;Floor&#x20;Protection" title="Gym&#x20;Floor&#x20;Covers&#x20;&#x7C;&#x20;Floor&#x20;Protection" /></picture>   
6439                                                                                                                                                                                        
6440                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Gym Floor Covers | Floor Protection</span></a>
6441                                                        </li>
6442                                                           
6443                                                        
6444                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/commercial-flooring.html" >View All</a>
6445                                             
6446
6447                                                </ul>
6448                                            </li>
6449                                            
6450                                            
6451                                                                                                                            
6452                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
6453                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
6454                                                                                        >
6455                                                <a 
6456                                                title="Floors&#x20;by&#x20;Activity"
6457                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
6458                                                
6459                                                    >
6460                                                    Floors by Activity
6461                                                                                                            <span class="inline items-center rotate-180 absolute">
6462                                                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img">
6463  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
6464<title>chevron-down</title></svg>
6465                                                        </span>
6466                                                                                                    </a>
6467                                                 
6468                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
6469                                    <style>#html-body [data-pb-style=KFA34BQ]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=SWIWRMK]{border-style:none}#html-body [data-pb-style=CW1JEO7],#html-body [data-pb-style=YR16OUN]{max-width:100%;height:auto}#html-body [data-pb-style=JE5OVK0]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=KFIHXY2]{display:flex;width:100%}#html-body [data-pb-style=PAOFWTU]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=GGMYAMB]{text-align:left}#html-body [data-pb-style=H9XX0T5]{display:inline-block}#html-body [data-pb-style=VQK95N0]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=SWIWRMK]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="KFA34BQ"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="SWIWRMK"><a href="/progame-sports-tiles-13636.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/by-activity-ad-image.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/by-activity-ad-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="CW1JEO7" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/by-activity-ad-image.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/by-activity-ad-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="YR16OUN" loading="lazy"></picture></a></figure><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="JE5OVK0"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="KFIHXY2"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="PAOFWTU"><div class="text-size14 font-medium text-custom-black text-left pt-5" data-content-type="text" data-appearance="default" data-element="main"><p><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Progame_Color.webp"><img id="BEVL1A7" style="width: 100px; height: 33px;" src="https://www.flooringinc.com/media/wysiwyg/Progame_Color.png" alt="" width="100" height="17"></picture></p></div><div class="text-size18 text-custom-black font-bold text-left pt-1 pb-5" data-content-type="text" data-appearance="default" data-element="main"><h2><span style="font-size: 18px;">ProGame Sports Tiles</span></h2></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="GGMYAMB" class="free__Shipping__btn"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="H9XX0T5"><a class="pagebuilder-button-primary" href="/progame-sports-tiles-13636.html" target="" data-link-type="default" data-element="link" data-pb-style="VQK95N0"><span data-element="link_text">SHOP NOW</span></a></div></div></div></div></div></div>                                </div>
6470                                
6471                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
6472                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Floors by Activity</span>
6473
6474                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
6475                                                            <a href="https://www.flooringinc.com/shop/shop-by-activity/fitness-flooring.html"
6476                                                            title="Fitness&#x20;Flooring"
6477                                                            class="level-2 block">
6478                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_shop_by_activity_fitness_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_shop_by_activity_fitness_flooring_1.jpg" alt="Fitness&#x20;Flooring" title="Fitness&#x20;Flooring" /></picture>   
6479                                                                                                                                                                                        
6480                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Fitness Flooring</span></a>
6481                                                        </li>
6482                                                           
6483                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6484                                                            <a href="https://www.flooringinc.com/shop/shop-by-activity/dance-marley-flooring.html"
6485                                                            title="Dance&#x20;Flooring&#x20;&#x7C;&#x20;Marley&#x20;Floor"
6486                                                            class="level-2 block">
6487                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/dance-main-category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/dance-main-category.jpg" alt="Dance&#x20;Flooring&#x20;&#x7C;&#x20;Marley&#x20;Floor" title="Dance&#x20;Flooring&#x20;&#x7C;&#x20;Marley&#x20;Floor" /></picture>   
6488                                                                                                                                                                                        
6489                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Dance Flooring | Marley Floor</span></a>
6490                                                        </li>
6491                                                           
6492                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6493                                                            <a href="https://www.flooringinc.com/shop/shop-by-activity/sport-and-court-flooring.html"
6494                                                            title="Sport&#x20;&amp;&#x20;Court&#x20;Flooring"
6495                                                            class="level-2 block">
6496                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Sport_Court_Category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Sport_Court_Category.jpg" alt="Sport&#x20;&amp;&#x20;Court&#x20;Flooring" title="Sport&#x20;&amp;&#x20;Court&#x20;Flooring" /></picture>   
6497                                                                                                                                                                                        
6498                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Sport &amp; Court Flooring</span></a>
6499                                                        </li>
6500                                                           
6501                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6502                                                            <a href="https://www.flooringinc.com/shop/shop-by-activity/martial-arts-flooring.html"
6503                                                            title="Martial&#x20;Arts&#x20;Mats&#x20;"
6504                                                            class="level-2 block">
6505                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_shop_by_activity_martial_arts_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_shop_by_activity_martial_arts_flooring_1.jpg" alt="Martial&#x20;Arts&#x20;Mats&#x20;" title="Martial&#x20;Arts&#x20;Mats&#x20;" /></picture>   
6506                                                                                                                                                                                        
6507                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Martial Arts Mats </span></a>
6508                                                        </li>
6509                                                           
6510                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6511                                                            <a href="https://www.flooringinc.com/shop/shop-by-activity/cheer-mats.html"
6512                                                            title="Cheer&#x20;Mats"
6513                                                            class="level-2 block">
6514                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Cheer_Mats_Category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Cheer_Mats_Category.jpg" alt="Cheer&#x20;Mats" title="Cheer&#x20;Mats" /></picture>   
6515                                                                                                                                                                                        
6516                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Cheer Mats</span></a>
6517                                                        </li>
6518                                                           
6519                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6520                                                            <a href="https://www.flooringinc.com/shop/shop-by-activity/wrestling-mats.html"
6521                                                            title="Wrestling&#x20;Mats"
6522                                                            class="level-2 block">
6523                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Wrestling_Mats_Category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Wrestling_Mats_Category_1.jpg" alt="Wrestling&#x20;Mats" title="Wrestling&#x20;Mats" /></picture>   
6524                                                                                                                                                                                        
6525                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Wrestling Mats</span></a>
6526                                                        </li>
6527                                                           
6528                                                        
6529                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/shop-by-activity.html" >View All</a>
6530                                             
6531
6532                                                </ul>
6533                                            </li>
6534                                            
6535                                            
6536                                                                                                                            
6537                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
6538                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
6539                                                                                        >
6540                                                <a 
6541                                                title="Floors&#x20;by&#x20;Space"
6542                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
6543                                                
6544                                                    >
6545                                                    Floors by Space
6546                                                                                                            <span class="inline items-center rotate-180 absolute">
6547                                                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img">
6548  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
6549<title>chevron-down</title></svg>
6550                                                        </span>
6551                                                                                                    </a>
6552                                                
6553                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
6554                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Floors by Space</span>
6555
6556                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
6557                                                            <a href="https://www.flooringinc.com/shop/shop-by-space/kitchen-flooring.html"
6558                                                            title="Kitchen&#x20;Flooring"
6559                                                            class="level-2 block">
6560                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/kitchen-main-category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/kitchen-main-category.jpg" alt="Kitchen&#x20;Flooring" title="Kitchen&#x20;Flooring" /></picture>   
6561                                                                                                                                                                                        
6562                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Kitchen Flooring</span></a>
6563                                                        </li>
6564                                                           
6565                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6566                                                            <a href="https://www.flooringinc.com/shop/shop-by-space/bathroom-flooring.html"
6567                                                            title="Bathroom&#x20;Flooring"
6568                                                            class="level-2 block">
6569                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/bathroom-main-category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/bathroom-main-category.jpg" alt="Bathroom&#x20;Flooring" title="Bathroom&#x20;Flooring" /></picture>   
6570                                                                                                                                                                                        
6571                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Bathroom Flooring</span></a>
6572                                                        </li>
6573                                                           
6574                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6575                                                            <a href="https://www.flooringinc.com/shop/shop-by-space/commercial-flooring.html"
6576                                                            title="Commercial&#x20;Flooring"
6577                                                            class="level-2 block">
6578                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_shop_by_space_commercial_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_shop_by_space_commercial_flooring_1.jpg" alt="Commercial&#x20;Flooring" title="Commercial&#x20;Flooring" /></picture>   
6579                                                                                                                                                                                        
6580                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Flooring</span></a>
6581                                                        </li>
6582                                                           
6583                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6584                                                            <a href="https://www.flooringinc.com/shop/shop-by-space/gym-flooring.html"
6585                                                            title="Gym&#x20;Flooring"
6586                                                            class="level-2 block">
6587                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/gym-main-category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/gym-main-category_1.jpg" alt="Gym&#x20;Flooring" title="Gym&#x20;Flooring" /></picture>   
6588                                                                                                                                                                                        
6589                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Gym Flooring</span></a>
6590                                                        </li>
6591                                                           
6592                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6593                                                            <a href="https://www.flooringinc.com/shop/shop-by-space/garage-flooring.html"
6594                                                            title="Garage&#x20;Flooring"
6595                                                            class="level-2 block">
6596                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_shop_by_space_garage_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_shop_by_space_garage_flooring_1.jpg" alt="Garage&#x20;Flooring" title="Garage&#x20;Flooring" /></picture>   
6597                                                                                                                                                                                        
6598                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Garage Flooring</span></a>
6599                                                        </li>
6600                                                           
6601                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6602                                                            <a href="https://www.flooringinc.com/shop/shop-by-space/outdoor-flooring.html"
6603                                                            title="Outdoor&#x20;Flooring"
6604                                                            class="level-2 block">
6605                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_shop_by_space_outdoor_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_shop_by_space_outdoor_flooring_1.jpg" alt="Outdoor&#x20;Flooring" title="Outdoor&#x20;Flooring" /></picture>   
6606                                                                                                                                                                                        
6607                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Outdoor Flooring</span></a>
6608                                                        </li>
6609                                                           
6610                                                        
6611                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/shop-by-space.html" >View All</a>
6612                                             
6613
6614                                                </ul>
6615                                            </li>
6616                                            
6617                                            
6618                                                                                                                            
6619                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
6620                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
6621                                                                                        >
6622                                                <a 
6623                                                title="Underlayment&#x20;&amp;&#x20;Flooring&#x20;Accessories"
6624                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
6625                                                
6626                                                    >
6627                                                    Underlayment &amp; Flooring Accessories
6628                                                                                                            <span class="inline items-center rotate-180 absolute">
6629                                                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img">
6630  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
6631<title>chevron-down</title></svg>
6632                                                        </span>
6633                                                                                                    </a>
6634                                                 
6635                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
6636                                    <style>#html-body [data-pb-style=LTPNQ8C]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=R2I2333]{border-style:none}#html-body [data-pb-style=K97631E],#html-body [data-pb-style=WX0AV4C]{max-width:100%;height:auto}@media only screen and (max-width: 768px) { #html-body [data-pb-style=R2I2333]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="LTPNQ8C"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="R2I2333"><a href="https://www.flooringinc.com/pro-advantage" target="" data-link-type="page" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/nav-pro-adv-2-ad.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/nav-pro-adv-2-ad.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="WX0AV4C" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/nav-pro-adv-2-ad.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/nav-pro-adv-2-ad.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="K97631E" loading="lazy"></picture></a></figure></div>                                </div>
6637                                
6638                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
6639                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Underlayment &amp; Flooring Accessories</span>
6640
6641                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
6642                                                            <a href="https://www.flooringinc.com/shop/installation-care/adhesives-glue.html"
6643                                                            title="Flooring&#x20;Adhesives&#x20;&amp;&#x20;Glue"
6644                                                            class="level-2 block">
6645                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_installation_care_adhesives_glue_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_installation_care_adhesives_glue_1.jpg" alt="Flooring&#x20;Adhesives&#x20;&amp;&#x20;Glue" title="Flooring&#x20;Adhesives&#x20;&amp;&#x20;Glue" /></picture>   
6646                                                                                                                                                                                        
6647                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Flooring Adhesives &amp; Glue</span></a>
6648                                                        </li>
6649                                                           
6650                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6651                                                            <a href="https://www.flooringinc.com/shop/installation-care/tape.html"
6652                                                            title="Floor&#x20;and&#x20;Mat&#x20;Tape"
6653                                                            class="level-2 block">
6654                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_installation_care_tape_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_installation_care_tape_1.jpg" alt="Floor&#x20;and&#x20;Mat&#x20;Tape" title="Floor&#x20;and&#x20;Mat&#x20;Tape" /></picture>   
6655                                                                                                                                                                                        
6656                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Floor and Mat Tape</span></a>
6657                                                        </li>
6658                                                           
6659                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6660                                                            <a href="https://www.flooringinc.com/shop/installation-care/accessories.html"
6661                                                            title="Installation&#x20;Accessories"
6662                                                            class="level-2 block">
6663                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_installation_care_accessories_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_installation_care_accessories_1.jpg" alt="Installation&#x20;Accessories" title="Installation&#x20;Accessories" /></picture>   
6664                                                                                                                                                                                        
6665                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Installation Accessories</span></a>
6666                                                        </li>
6667                                                           
6668                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6669                                                            <a href="https://www.flooringinc.com/shop/installation-care/trims-moldings.html"
6670                                                            title="Floor&#x20;Trims&#x20;&amp;&#x20;Moldings"
6671                                                            class="level-2 block">
6672                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_installation_care_trims_moldings_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_installation_care_trims_moldings_1.jpg" alt="Floor&#x20;Trims&#x20;&amp;&#x20;Moldings" title="Floor&#x20;Trims&#x20;&amp;&#x20;Moldings" /></picture>   
6673                                                                                                                                                                                        
6674                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Floor Trims &amp; Moldings</span></a>
6675                                                        </li>
6676                                                           
6677                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6678                                                            <a href="https://www.flooringinc.com/shop/installation-care/underlayment.html"
6679                                                            title="Flooring&#x20;Underlayment"
6680                                                            class="level-2 block">
6681                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_installation_care_underlayment_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_installation_care_underlayment_1.jpg" alt="Flooring&#x20;Underlayment" title="Flooring&#x20;Underlayment" /></picture>   
6682                                                                                                                                                                                        
6683                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Flooring Underlayment</span></a>
6684                                                        </li>
6685                                                           
6686                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6687                                                            <a href="https://www.flooringinc.com/shop/installation-care/cleaners.html"
6688                                                            title="Flooring&#x20;Cleaners"
6689                                                            class="level-2 block">
6690                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_installation_care_cleaners_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_installation_care_cleaners_1.jpg" alt="Flooring&#x20;Cleaners" title="Flooring&#x20;Cleaners" /></picture>   
6691                                                                                                                                                                                        
6692                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Flooring Cleaners</span></a>
6693                                                        </li>
6694                                                           
6695                                                        
6696                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/installation-care.html" >View All</a>
6697                                             
6698
6699                                                </ul>
6700                                            </li>
6701                                            
6702                                            
6703                                                                                                                            
6704                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
6705                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
6706                                                                                        >
6707                                                <a 
6708                                                title="Specials"
6709                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
6710                                                
6711                                                    >
6712                                                    Specials
6713                                                                                                            <span class="inline items-center rotate-180 absolute">
6714                                                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img">
6715  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
6716<title>chevron-down</title></svg>
6717                                                        </span>
6718                                                                                                    </a>
6719                                                
6720                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
6721                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Specials</span>
6722
6723                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
6724                                                            <a href="https://www.flooringinc.com/shop/specials/hot-buys.html"
6725                                                            title="Flooring&#x20;Deals"
6726                                                            class="level-2 block">
6727                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Hot_Buys_2.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Hot_Buys_2.jpg" alt="Flooring&#x20;Deals" title="Flooring&#x20;Deals" /></picture>   
6728                                                                                                                                                                                        
6729                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Flooring Deals</span></a>
6730                                                        </li>
6731                                                           
6732                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6733                                                            <a href="https://www.flooringinc.com/shop/specials/made-in-usa.html"
6734                                                            title="American&#x20;Made"
6735                                                            class="level-2 block">
6736                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Made_in_the_USA_2_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Made_in_the_USA_2_1.jpg" alt="American&#x20;Made" title="American&#x20;Made" /></picture>   
6737                                                                                                                                                                                        
6738                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">American Made</span></a>
6739                                                        </li>
6740                                                           
6741                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6742                                                            <a href="https://www.flooringinc.com/shop/specials/quick-ship.html"
6743                                                            title="Quick&#x20;Ship"
6744                                                            class="level-2 block">
6745                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Quick_Ship_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Quick_Ship_1.jpg" alt="Quick&#x20;Ship" title="Quick&#x20;Ship" /></picture>   
6746                                                                                                                                                                                        
6747                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Quick Ship</span></a>
6748                                                        </li>
6749                                                           
6750                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
6751                                                            <a href="https://www.flooringinc.com/shop/specials/new-arrivals.html"
6752                                                            title="New&#x20;Arrivals"
6753                                                            class="level-2 block">
6754                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/New_Arrivals_1_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/New_Arrivals_1_1.jpg" alt="New&#x20;Arrivals" title="New&#x20;Arrivals" /></picture>   
6755                                                                                                                                                                                        
6756                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">New Arrivals</span></a>
6757                                                        </li>
6758                                                           
6759                                                                                                            
6760                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/specials.html" >View All</a>
6761                                             
6762
6763                                                </ul>
6764                                            </li>
6765                                            
6766                                            
6767                                                                                
6768                                                                                    
6769                                                                                            <!--<a class="view-all main-cats mt-2 underline px-6 text-size12 font-medium text-darkblack" href="https://www.flooringinc.com/all-categories.html" >View All</a>-->
6769
6770                                         
6771                                    </ul>
6772                                </div>
6773                                
6774                            </div>
6775                        </div>
6776                        </template>
6777                                    </div>
6778                        <div class="menu_static_links">
6779                <style>#html-body [data-pb-style=QGH21I8]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="QGH21I8"><div data-content-type="text" data-appearance="default" data-element="main"><ul>
6780<li><a tabindex="0" href="/shop-by-category/specials/hot-buys.html">Sale</a></li>
6781<li><a tabindex="0" href="/blog">Get Inspired &amp; How To</a></li>
6782</ul></div></div></div>            </div>
6783        </nav>
6784    </div>
6785
6786</div>
6787<script>
6788  'use strict';
6789
6790  const initMenuDesktop_6ac1434217b5f = () => {
6791    return {
6792      hoverTopPosition: '100%',
6793      setActiveMenu(menuNode) {
6794        Array.from(menuNode.querySelectorAll('a')).filter(link => {
6795          return link.href === window.location.href.split('?')[0];
6796        }).map(item => {
6797          if (!item.classList.contains('level-0')) {
6798            item.classList.add('underline');
6799          }
6800          item.closest('div.level-0') &&
6801          item.closest('div.level-0').classList.add('border-secondary');
6802        });
6803      }
6804    }
6805  }
6806</script>
vendor: 1 bytes, line 6806
6806
6807<script>
6808    // Function to remove 'display-first' class from other list items
6809    function removeDisplayFirst() {
6810        var listItems = document.querySelectorAll('.level1');
6811        listItems.forEach(function(item) {
6812            if (item.id !== this.id) {
6813                item.classList.remove('display-first');
6814            }
6815        });
6816    }
6817</script>
6817
6818        <!--Search-->
6819        <div class="w-full"
6820             id="search-content"
6821             :class="{ 'block': searchOpen}"  
6822             @click.outside="searchOpen = false"
6823        >
6824            
6825<div class="py-0 px-0 pl-5 mx-auto text-black" x-data="initMirasvitSearch()" @click.away="closeSearch">
6826    <form class="form minisearch relative" id="search_mini_form" action="https://www.flooringinc.com/catalogsearch/result/" method="get" autocomplete="off">
6827        <label class="hidden" for="search" data-role="minisearch-label">
6828            <span>Search</span>
6829        </label>
6830        <input id="search" x-ref="searchInput" type="search" name="q" value="" placeholder="Find&#x20;it&#x20;here&#x2026;" maxlength="128" class="w-full px-5 py-0 text-sm  leading-normal transition appearance-none rounded-md 
6831                focus:outline-none focus:border-transparent font-normal" x-on:keyup.debounce.300="doSearch($refs.searchInput.value)" x-on:click.debounce.150="openSearch" x-on:keydown.debounce.100="startSearch($refs.searchInput.value)"/>
6832                <button class="action search absolute">btn</button>
6833    </form>
6834
6835    <div x-cloak x-show="isOpen" id="mirasvitSearchResults" class="search_box transition appearance-none absolute">
6836        <div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50"
6837     style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);"
6838     x-show="isLoading"
6839     x-transition:enter="ease-out duration-200"
6840     x-transition:enter-start="opacity-0"
6841     x-transition:enter-end="opacity-100"
6842     x-transition:leave="ease-in duration-200"
6843     x-transition:leave-start="opacity-100"
6844     x-transition:leave-end="opacity-0">
6845    <!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL -->
6846<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="text-primary" width="57" height="57" role="img">
6847    <g fill="none" fill-rule="evenodd">
6848        <g transform="translate(1 1)" stroke-width="2">
6849            <circle cx="5" cy="50" r="5">
6850                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/>
6851                <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/>
6852            </circle>
6853            <circle cx="27" cy="5" r="5">
6854                <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/>
6855                <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/>
6856            </circle>
6857            <circle cx="49" cy="50" r="5">
6858                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/>
6859                <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/>
6860            </circle>
6861        </g>
6862    </g>
6863<title>loader</title></svg>
6864    <div class="ml-10 text-primary text-xl">
6865        Loading...    </div>
6866</div>
6867
6868        <template x-if="hotSearch">
6869            <div class="hotSearch">
6870                <p class="text-lg leading-normal transition appearance-none text-grey-800 lg:text-xl border-b border-100 p-2 flex">
6871                    Hot Searches                </p>
6872                <div class="my-3 flex flex-wrap">
6873                                    </div>
6874            </div>
6875        </template>
6876
6877        <template x-if="searchResults">
6878            <div class="search_box_content w-full flex flex-wrap ">
6879                                    <div class="search_box_left relative">
6880                    <p class="product_title text-size20 font-medium text-black">
6881                        Top Results                        <template x-if="searchProducts != ''">
6882                            <small class="text-size16 font-medium text-black hidden">(<span x-html="searchProductsTotal"></span>)</small>
6883                        </template>
6884                    </p>
6885                    <div class="viewAll absolute right-0">
6886                            <div>
6887                                <a x-bind:href="numberResultsUrl">
6888                                    <p class="text-size14 font-normal text-black underline number-results" x-html="numberResults"></p>
6889                                </a>
6890                            </div>
6891                        </div>
6892                    <div class="search_box_left_content lg:grid-cols-6">
6893                        <template x-for="item in searchProducts">
6894                            <div class="search_products flex">
6895                                <a x-bind:href="`${item.url}`" class="">
6896                                    <div class="w-full product-image">
6897                                        <img x-bind:src="`${item.imageUrl}`" width="275" height="182" class="w-full"/>
6898                                    </div>
6899                                </a>    
6900                                    <div class="w-full product-content">
6901                                    <a x-bind:href="`${item.url}`" class=""><h4 class="product-name text-size14 font-medium text-black" x-html="item.name"></h4></a>
6902                                        <template x-if="item.rating > 0">
6903                                            <div class="ratings flex item-center">
6904                                                <div x-html="item.rating"></div>(<span x-html="item.reviews"></span>)
6905                                            </div>
6906                                        </template>
6907                                        <template x-if="item.orderFreeSample > 0">
6908                                        <div x-cloak x-data="{showModal: false, htmlContent: '',pid: item.proId }">
6909                                            <button type="button" class="order-sample-link text-size14 font-medium text-blacck mb-1" x-on:click="showModal = true,fetchHtmlContent(pid)">Order Free Sample</button>
6910                                            <div class="modal order-free-sample-popup z-50" x-show="showModal">
6911                                                <div class="modal-overlay" x-on:click="showModal = false"></div>
6912                                                <button class="closemodal" type="button" x-on:click="showModal = false">Close X</button>
6913                                                <div class="modal-content">    
6914                                                    <div x-html="htmlContent" :class="'htmlcontent' + item.proId"></div>
6915                                                </div>
6916                                            </div>
6917                                        </div>
6918                                        </template>
6919                                        <!-- <p class="mt-2 text-gray-600 text-xs truncate" x-html="item.description"></p> -->
6920                                        <template x-if="item.colorCount > 0"> 
6921                                            <p class="text-size13 font-normal text-black truncate">                                            
6922                                                Available in <span x-html="item.colorCount"></span> colors                                                                                       
6923                                            </p>
6924                                        </template> 
6925                                        <!--<div class="truncate-content">
6926                                            <p class="text-size13 font-normal text-black truncate" x-html="item.dealOfTheMonth"></p>
6927                                            <p class="text-size13 font-normal text-black truncate" x-html="item.freeShipping"></p>
6928                                            <p class="text-size13 font-normal text-black truncate" x-html="item.shipNextDay"></p>
6929                                        </div>-->
6930                                        <div class="price_container flex item-center justify-between">
6931                                            <span class="text-size14 font-semibold text-black" x-html="item.price"></span>
6932                                        </div>
6933                                    </div>
6934                                
6935                            </div>
6936                        </template>
6937                        <template x-if="searchProducts == ''">
6938                            <p>No results found.</p>
6939                        </template>
6940                    </div>
6941                    </div>
6942                                        <div class="results-rightside">
6943                    <template x-if="searchCategories != ''">
6944                        <div class="mb-6 category-rest">
6945                            <p class="categorie-title text-size20 font-medium text-black pb-2">
6946                                In Categories                                <small class="text-size16 font-medium text-black hidden">(<span x-html="searchCategoriesTotal"></span>)</small>
6947                            </p>
6948                            <div class="catgry-list">
6949                                <template x-for="category in searchCategories">
6950                                    <a x-bind:href="`${category.url}`">
6951                                        <div class="text-size14 font-normal text-black">
6952                                            <span class="text-size14 font-normal text-black cursor-pointer" x-html="category.name.split('>').pop().trim()"></span>
6953                                        </div>
6954                                    </a>
6955                                </template>
6956                            </div>
6957                        </div>
6958                    </template>
6959
6960                   <!-- <template x-if="searchPages != ''">
6961                        <div class="mb-6">
6962                            <p class="text-lg leading-normal transition appearance-none text-grey-800 lg:text-xl border-b border-100 p-2 flex">
6963                                Pages                                <small class="text-size16 font-medium text-black">(<span x-html="searchPagesTotal"></span>)</small>
6964                            </p>
6965                            <div class="px-2">
6966                                <template x-for="page in searchPages">
6967                                    <a x-bind:href="`${page.url}`">
6968                                        <div class="my-2 flex flex-wrap">
6969                                            <span class="text-size14 font-normal text-black cursor-pointer" x-html="page.name"></span>
6970                                        </div>
6971                                    </a>
6972                                </template>
6973                            </div>
6974                        </div>
6975                    </template> -->
6976
6977                    <template x-if="searchPosts != ''">
6978                        <div class="search_box_right">
6979                            <p class="blog-title text-size20 font-medium text-black">
6980                                In Blogs                                <!-- <small class="<//?= $titleNumberCSS ?>">(<span x-html="searchPostsTotal"></span>)</small> -->
6981                            </p>
6982                            <div class="search_box_right_content">
6983                                <template x-for="item in searchPosts">
6984                                    <div>
6985                                        <a x-bind:href="`${item.url}`" class="blog-items block">
6986                                            <div>
6987                                                <span class="blog-name text-size14 font-normal text-black" x-html="item.name"></span>
6988                                            </div>
6989                                        </a>
6990                                        <span class="item_description text-size14 font-normal text-black opacity-50 mb-4 block" x-html="item.description"></span>
6991                                    </div>
6992                                </template>
6993                            </div>
6994                        </div>
6995                    </template>
6996                            </div>                
6997                
6998            </div>
6999        </template>
7000
7001        <template x-if="noResults">
7002            <div class="p-2 text-size20 font-medium text-black overflow-hidden">
7003                <p class="text-lg leading-normal transition appearance-none text-grey-800 lg:text-xl" x-html="noResultsText"></p>
7004            </div>
7005        </template>
7006    </div>
7007</div>
7008
7009<script>
7010    function initMirasvitSearch() {
7011        return {
7012            //initialize Variables
7013            hotSearch:             false,
7014            searchResults:         false,
7015            noResults:             false,
7016            isLoading:             false,
7017            isOpen:                false,
7018            blockConfig:           {"query":"","priceFormat":{"pattern":"$%s","precision":2,"requiredPrecision":2,"decimalSymbol":".","groupSymbol":",","groupLength":3,"integerRequired":false},"minSearchLength":3,"url":"https:\/\/www.flooringinc.com\/searchautocomplete\/ajax\/suggest\/","storeId":"1","delay":100,"isAjaxCartButton":false,"isShowCartButton":false,"isShowImage":true,"isShowPrice":true,"isShowSku":false,"isShowRating":true,"isShowDescription":true,"isShowStockStatus":false,"layout":"in-page","popularTitle":"Popular Suggestions","popularSearches":[],"isTypeaheadEnabled":false,"typeaheadUrl":"https:\/\/www.flooringinc.com\/searchautocomplete\/ajax\/typeahead\/","minSuggestLength":2,"currency":"USD","limit":24,"customerGroupId":0,"filterPosition":"filters_sidebar"},
7019            xhttp:                 false,
7020            noResultsText:         '',
7021            numberResults:         '',
7022            numberResultsUrl:      '',
7023            searchProductsTotal:   '',
7024            searchCategoriesTotal: '',
7025            searchPagesTotal:      '',
7026            
7027            searchProducts:   [],
7028            searchCategories: [],
7029            searchPages:      [],
7030            searchPosts:      [],
7031            
7032            searchMap: {
7033                'magento_cms_page':         'Pages',
7034                'magento_catalog_category': 'Categories',
7035                'magento_catalog_product':  'Products',
7036                'magefan_blog_post':        'Posts'
7037            },
7038            
7039            hotSearchClickEvent: function (ev) {
7040                var hotSearchClick = event.currentTarget.innerText;
7041                document.getElementById("search").value = hotSearchClick;
7042
7043                this.doSearch(hotSearchClick);
7044            },
7045            
7046            openSearch: function () {
7047                //this.isOpen = true;
7048                searchValue = document.getElementById("search").value.length;
7049
7050                if (searchValue >= this.blockConfig.minSearchLength) {
7051                    this.hideHotSearch();
7052                } else {
7053                    this.showHotSearch();
7054                    this.hideSearchResults();
7055                }
7056            },
7057            
7058            startSearch: function (e) {
7059                if (e) {
7060                    //this.isOpen = true;
7061                }
7062            },
7063
7064             getSearchresult: function () {
7065                this.isOpen = true;
7066            },
7067            
7068            closeSearch: function () {
7069                this.isOpen = false;
7070            },
7071            
7072            showHotSearch: function () {
7073                this.hotSearch = true;
7074            },
7075            
7076            hideHotSearch: function () {
7077                this.hotSearch = false;
7078               
7079            },
7080            
7081            showSearchResults: function () {
7082                this.searchResults = true;
7083               // this.isOpen = true;
7084            },
7085            
7086            hideSearchResults: function () {
7087                this.searchResults = false;
7088               // this.isOpen = false;
7089            },
7090
7091            showNoResults: function () {
7092                this.noResults = true;
7093            },
7094            
7095            hideNoResults: function () {
7096                this.noResults = false;
7097            },
7098            
7099            setNoResultsText(text) {
7100                if (!text) {
7101                    return;
7102                }
7103                console.log(text);
7104                this.noResultsText = text;
7105                this.isOpen = true;
7106            },
7107
7108            setNumberResults(text) {
7109                this.numberResults = text;
7110            },
7111            
7112            setNumberResultsUrl(text) {
7113                this.numberResultsUrl = text;
7114            },
7115            
7116            resetSearchData: function () {
7117                // Reinitialize Variables to avoid wrong search results.
7118                this.searchPages = [];
7119                this.searchPagesTotal = 0;
7120                this.searchCategories = [];
7121                this.searchCategoriesTotal = 0;
7122                this.searchProducts = [];
7123                this.searchProductsTotal = 0;
7124            },
7125            
7126            doSearch: function (query) {
7127                this.isOpen = false;
7128                var self = this;
7129                // Min search length
7130                if (query.length < this.blockConfig.minSearchLength) {
7131                    this.showHotSearch();
7132                    this.isLoading = false;
7133                    this.hideSearchResults();
7134                    this.hideNoResults();
7135
7136                    return;
7137                } else {
7138                    this.hideHotSearch();
7139                    this.isLoading = true;
7140                    this.showSearchResults();
7141                    this.hideNoResults();
7142                }
7143                
7144                // AJAX for searchautocomplete/ajax/suggest/
7145                if (this.xhttp) {
7146                    try {
7147                        this.xhttp.abort();
7148                    } catch {
7149                        
7150                    }
7151                }
7152                this.xhttp = new XMLHttpRequest();
7153                var xhttp = this.xhttp;
7154                
7155                var queryEncoded = encodeURIComponent(query);
7156                var url = this.blockConfig.url.replace(/\/$/, "") + "/?q=" + queryEncoded + "&store_id=" + this.blockConfig.storeId + "&cat=false";
7157                
7158                xhttp.open("GET", url, true);
7159                xhttp.setRequestHeader("Content-Type", "application/json");
7160                
7161                xhttp.onreadystatechange = function () {
7162                    if (this.readyState === 4 && this.status === 200) {
7163                        
7164                      
7165                        // Response from ajax call in JSON.
7166                        var response = JSON.parse(this.responseText);
7167                        console.log(response);
7168                        self.resetSearchData();
7169                        
7170                        // Product Search Results
7171                        for (index in response.indexes) {
7172                            
7173                            if (response.indexes[index].items.length > 0) {
7174                                self.getSearchresult();
7175                                var res = response.indexes[index];
7176                                var map = null;
7177                                
7178                                if (self.searchMap[res.identifier]) {
7179                                    map = self.searchMap[res.identifier];
7180                                    self['search' + map] = res.items;
7181                                    self['search' + map + 'Total'] = res.totalItems;
7182                                }
7183                            }
7184                        }
7185                        
7186                        // Extract totalItems from response.textAll and format if > 999
7187                        let textAll = response.textAll;
7188                        if (response.textAll) {          
7189                            // Remove the → symbol (or any trailing characters you'd like to remove)
7190                            textAll = textAll.replace(/→$/, '').trim();                  
7191                            // Find number within textAll using regex
7192                            let totalItemsMatch = textAll.match(/\d+/); // Extracts the first number found
7193                            if (totalItemsMatch) {
7194                                let totalItemsFromTextAll = parseInt(totalItemsMatch[0], 10);
7195                                if (totalItemsFromTextAll > 999) {
7196                                    // Format with comma if > 999
7197                                    textAll = textAll.replace(totalItemsMatch[0], totalItemsFromTextAll.toLocaleString());
7198                                }
7199                            }
7200                            console.log("Formatted textAll:", textAll);
7201                            self.setNumberResults(textAll); // Update the UI with the formatted textAll
7202                        }
7203                        
7204                        self.isLoading = false;
7205                        self.hideNoResults();
7206                        self.setNumberResults(textAll);
7207                        self.setNumberResultsUrl(response.urlAll);
7208                        
7209                        if (response.noResults) {console.log(response.textEmpty);
7210                            self.showNoResults();
7211                            self.setNoResultsText(response.textEmpty);
7212                            self.hideSearchResults();
7213                            
7214                        }
7215                    }else{
7216                       this.isOpen = false;  
7217                    }
7218                };
7219
7220                xhttp.send();
7221            }
7222        }
7223    }
7224</script>
7224         </div>
7225
7226        <div class="flex items-center order-3"> 
7227            <!--Compare Icon-->
7228            <a id="compare-link"
7229               class="relative invisible inline-block mx-1 no-underline sm:ml-3 hover:text-black"
7230               :class="{ 'invisible': !(itemCount > 0) }"
7231               href="https://www.flooringinc.com/catalog/product_compare/index/"
7232               title="Compare Products"
7233               x-data="initCompareHeader()"
7234               @private-content-loaded.window="receiveCompareData($event.detail.data)"
7235            >
7236                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-8 h-8 md:h-6 md:w-6 hover:text-black" width="25" height="25" role="img">
7237  <path stroke-linecap="round" stroke-linejoin="round" d="M3 6l3 1m0 0l-3 9a5.002 5.002 0 006.001 0M6 7l3 9M6 7l6-2m6 2l3-1m-3 1l-3 9a5.002 5.002 0 006.001 0M18 7l3 9m-3-9l-6-2m0-2v2m0 16V5m0 16H9m3 0h3"/>
7238<title>scale</title></svg>
7239
7240                <span class="sr-only label">
7241                   Compare Products                </span>
7242
7243                <span class="absolute top-0 right-0 h-5 px-2 py-1 -mt-5 -mr-4 text-xs font-semibold
7244                    leading-none text-center text-white uppercase transform -translate-x-1
7245                    translate-y-1/2 bg-yellow-500 rounded-full"
7246                >
7247                    <span x-text="itemCount"></span>
7248                    <span x-show="itemCount === 1" class="sr-only">
7249                        item                    </span>
7250                    <span x-show="itemCount > 1" class="sr-only">
7251                        items                    </span>
7252                </span>
7253            </a>
7254
7255            <!--Search Icon-->
7256            <button id="menu-search-icon"
7257                    class="inline-block ml-1 no-underline sm:ml-3 hover:text-black hidden"
7258                    @click.prevent="
7259                        searchOpen = !searchOpen;
7260                        $nextTick(function () { document.querySelector('#search').select(); });
7261                    "
7262            >
7263                <span class="sr-only label">
7264                    Search                </span>
7265
7266                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-8 h-8 md:h-6 md:w-6 hover:text-black" width="25" height="25" role="img">
7267  <path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/>
7268<title>search</title></svg>
7269            </button>
7270
7271            <!--Customer Icon & Dropdown-->
7272            
7272<script>
7273"use strict";
7274
7275function initComponent() {
7276  return {
7277    cart: false,
7278    customer: false,
7279    receiveCustomerData(data) {
7280      if (data.cart) {
7281        this.cart = data.cart;
7282      }
7283      if (data.customer) {
7284        this.customer = data.customer;
7285      }
7286    }
7287  }
7288}
7289</script>
7289
7290
7291
7292<div x-data="{ open: false }" class="relative inline-block acc-dropdown">
7293        <div class="arrow-cus">
7294        <a
7295        href="https&#x3A;&#x2F;&#x2F;www.flooringinc.com&#x2F;customer&#x2F;account&#x2F;"
7296        id="customer-menu"
7297        class="block hover:text-black "
7298                    @click.prevent="$dispatch('popup-register',
7299                { open: true,openRegister : false,openLogin : true,openCreate :true,
7300                openButtonLogin :true,
7301                openButtonRegister :false,
7302            })"
7303                :aria-expanded="open ? 'true' : 'false'"
7304        aria-label="My&#x20;Account"
7305    >
7306            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
7307             class="w-8 h-8 md:h-6 md:w-6" aria-hidden="true">
7308            <circle fill="none" cx="12" cy="7" r="3"></circle>
7309            <path d="M12 2C9.243 2 7 4.243 7 7s2.243 5 5 5 5-2.243 5-5S14.757 2 12 2zM12 10c-1.654
7310                0-3-1.346-3-3s1.346-3 3-3 3 1.346 3 3S13.654 10 12 10zM21 21v-1c0-3.859-3.141-7-7-7h-4c-3.86
7311                0-7 3.141-7 7v1h2v-1c0-2.757 2.243-5 5-5h4c2.757 0 5 2.243 5 5v1H21z">
7312            </path>
7313        </svg>
7314           
7315    </a>
7316        </div>
7317            <nav class="absolute right-0 z-20 hidden w-40 pt-3 pb-4 mt-2 -mr-4 pl-4 pr-4 overflow-auto origin-top-right rounded-sm
7318        shadow-lg sm:w-48 lg:mt-3 bg-container-lighter"
7319         :class="{ 'hidden' : !open }"
7320         @click.outside="open = false"
7321         x-cloak x-show="open"
7322         aria-labelledby="customer-menu"
7323    >
7324                    
7325<a class="block&#x20;px-4&#x20;py-2&#x20;lg&#x3A;px-5&#x20;lg&#x3A;py-2&#x20;hover&#x3A;bg-gray-100"
7326   onclick="hyva.setCookie && hyva.setCookie(
7327       'login_redirect',
7328       window.location.href,
7329       1
7330   )"
7331   href="https://www.flooringinc.com/customer/account/index/">
7332        Sign In    </a>
7333<a class="block&#x20;px-4&#x20;py-2&#x20;lg&#x3A;px-5&#x20;lg&#x3A;py-2&#x20;hover&#x3A;bg-gray-100"
7334   href="https://www.flooringinc.com/customer/account/create/"
7335   title=""
7336   >
7337        Create an Account    </a>
7338            </nav>
7339</div>
7340            <!--Quote Cart Icon (show when activeCartType is 'quote' and quote has items)-->
7341            <template x-if="activeCartType === 'quote' && quoteCart.summary_count">
7342            <a id="menu-cart-quote-icon"
7343               class="relative inline-block ml-1 no-underline sm:ml-3 hover:text-black pl-3"
7344               :class="{
7345                        'hidden': !(activeCartType === 'quote' && quoteCart.summary_count),
7346                        'block': activeCartType === 'quote' && quoteCart.summary_count }"
7347               href="https://www.flooringinc.com/amasty_quote/cart/"
7348            >
7349             <span class="checkout-icon">
7350                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-8 h-8 md:h-6 md:w-6 hover:text-black" width="25" height="25" role="img">
7351  <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"/>
7352<title>shopping-cart</title></svg>
7353                </span>
7354                 <span x-text="quoteCart.summary_count"
7355                      class="absolute top-0 right-0 h-5 px-2 py-1 -mt-5 -mr-4 text-xs font-semibold
7356                        leading-none text-center text-white uppercase transform -translate-x-1
7357                        translate-y-1/2 rounded-full bg-primary"
7358                      :class="{
7359                        'hidden': !quoteCart.summary_count,
7360                        'block': quoteCart.summary_count }"
7361                ></span>
7362            </a>
7363            </template>
7364            <!--Regular Cart Icon (show when activeCartType is 'cart' or when quote mode but quote empty - always show an icon)-->
7364
7365            <a id="menu-cart-icon"
7366               x-show="activeCartType === 'cart' || (activeCartType === 'quote' && !quoteCart.summary_count)"
7367               @click.prevent.stop="$dispatch('toggle-cart',{});"               class="relative inline-block ml-6 no-underline hover:text-black"
7368               href="https://www.flooringinc.com/checkout/cart/index/"
7369            >
7370                <span class="sr-only label">
7371                    Cart                </span>
7372
7373                <span class="cart-icon">
7374                    <img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/cart-icon.svg" alt="cart-icon" width="24" height="24">
7375                    <picture class="icon"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/arrow.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/arrow.png" alt="arrow" width="8" height="6" class="icon"></picture>
7376                </span>
7377
7378                <span x-text="cart.summary_count"
7379                      class="absolute top-0 right-0 h-5 px-2 py-1 -mt-5 -mr-4 text-xs font-semibold
7380                        leading-none text-center text-white uppercase transform -translate-x-1
7381                        translate-y-1/2 rounded-full bg-primary"
7382                      :class="{
7383                        'hidden': !cart.summary_count,
7384                        'block': cart.summary_count }"
7385                ></span>
7386            </a>
7387
7388        </div>
7389    </div>
7390
7391    <!--Cart Drawer-->
7392    
7392<script>
7393    function initCartDrawer() {
7394        return {
7395            open: false,
7396            isLoading: false,
7397            cart: {},
7398            maxItemsToDisplay: 10,
7399            itemsCount: 0,
7400            totalCartAmount: 0,
7401            getData(data) {
7402                if (data.cart) {
7403                    this.cart = data.cart;
7404                    this.itemsCount = data.cart.items && data.cart.items.length || 0;
7405                    this.totalCartAmount = this.cart.summary_count; 
7406                    //this.cart.summary_count = this.itemsCount;
7407                    this.setCartItems();
7408                } 
7409                this.isLoading = false;
7410            },
7411            cartItems: [],
7412            getItemCountTitle() {
7413                return hyva.strf('(%0 of %1)', this.maxItemsToDisplay, this.totalCartAmount)
7414            },
7415            setCartItems() {
7416                if(this.cart.items){
7417                this.cartItems = this.cart.items && this.cart.items.sort((a, b) => b.item_id - a.item_id) || [];
7418                } else {
7419                    this.cartItems = [];
7420                }
7421                if (this.maxItemsToDisplay > 0) {
7422                    this.cartItems = this.cartItems.slice(0, parseInt(this.maxItemsToDisplay, 10));
7423                }
7424                getCustomerData(['customer'], function(data) {
7425                if(data.messages.messages[0]){
7426                var messagesType = data.messages.messages[0].type;
7427                var messagesText = data.messages.messages[0].text;
7428                if(messagesType === "success"){
7429                    dispatchMessages([
7430                    {
7431                        type: messagesType,
7432                        text: messagesText
7433                    }
7434                    ]);
7435                        this.openCartDrawer();
7436                } else {
7437                    dispatchMessages([
7438                    {
7439                        type: messagesType,
7440                        text: messagesText
7441                    }
7442                    ]);
7443                }
7444                }
7445                window.dispatchEvent(new CustomEvent('amcart-loading-stop'));
7446                });             
7447                
7448                if(document.querySelectorAll('.btn_cart')) {
7449                    var addtocartnew = document.querySelectorAll('.btn_cart');
7450
7451                    addtocartnew.forEach(addtocartnew => {
7452                      addtocartnew.addEventListener('click', () => {
7453                        setTimeout(() => {
7454                        }, 2500); 
7455                      });
7456                    });
7457                }
7458                if(document.getElementById('product-addtocart-button')) {
7459                    var addtocartnew2 = document.getElementById('product-addtocart-button');
7460                    
7461                    addtocartnew2.addEventListener('click', () => {
7462                        setTimeout(() => {
7463                        }, 2500); 
7464                    });
7465                }
7466
7467               
7468            },
7469            deleteItemFromCart(itemId) {
7470                this.isLoading = true;
7471
7472                const formKey = hyva.getFormKey();
7473                const postUrl = BASE_URL + 'amasty_quote/quote/removeFromMinicart';
7474                fetch(postUrl, {
7475                    "headers": {
7476                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
7477                    },
7478                    "body": "form_key=" + formKey + "&item_id=" + itemId,
7479                    "method": "POST",
7480                    "mode": "cors",
7481                    "credentials": "include"
7482                }).then(response => {
7483                    window.location.href = window.location.pathname; // Reload the page after item remove
7484                    if (response.redirected) {
7485                        window.location.href = response.url;
7486                    } else if (response.ok) {
7487                        return response.json();
7488                    } else {
7489                        window.dispatchMessages && window.dispatchMessages([{
7490                            type: 'warning',
7491                            text: 'Could\u0020not\u0020remove\u0020item\u0020from\u0020quote.'
7492                        }]);
7493                        this.isLoading = false;
7494                    }
7495                }).then(result => {
7496                    window.dispatchMessages && window.dispatchMessages([{
7497                        type: result.success ? 'success' : 'error',
7498                        text: result.success
7499                            ? 'You\u0020removed\u0020the\u0020item.'
7500                            : result.error_message
7501                    }], result.success ? 5000 : 0)
7502                    window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
7503                });
7504            },
7505            toggleCartDrawer(event) {
7506                if (event.detail && event.detail.isOpen !== undefined) {
7507                    if (event.detail.isOpen) {
7508                        this.openCartDrawer()
7509                    } else {
7510                        this.open = false
7511                        this.$refs && this.$refs.cartDialogContent && hyva.releaseFocus(this.$refs.cartDialogContent)
7512                    }
7513                } else {
7514                                        this.openCartDrawer()
7515                }
7516            },
7517            openCartDrawer() {
7518                this.open = true;
7519                this.$nextTick(() => {
7520                    this.$refs && this.$refs.cartDialogContent && hyva.trapFocus(this.$refs.cartDialogContent)
7521                })
7522            },
7523            closeCartDrawer() {
7524                this.$dispatch('toggle-cart', { isOpen: false })
7525            }
7526        }
7527    }
7528    function getCustomerData(sections, callback) {
7529          fetch('/customer/section/load/?sections=')
7530            .then(response => response.json())
7531            .then(data => callback(data))
7532            .catch(error => console.error('Error fetching customer data:', error));
7533        }
7534</script>
7534
7535<section x-cloak
7536         x-show="cart"
7537         id="cart-drawer"
7538         x-data="initCartDrawer()"
7539         @private-content-loaded.window="getData($event.detail.data)"
7540         @toggle-cart.window="toggleCartDrawer($event)"
7541         @keydown.window.escape="closeCartDrawer"
7542>
7543        <div role="dialog"
7544             aria-labelledby="cart-drawer-title"
7545             aria-modal="true"
7546             @click.outside="open=false"
7547             class="fixed inset-y-0 right-0 z-30 flex max-w-full">
7548            <div class="backdrop"
7549                 x-show="open"
7550                 x-transition:enter="ease-in-out duration-500"
7551                 x-transition:enter-start="opacity-0"
7552                 x-transition:enter-end="opacity-100"
7553                 x-transition:leave="ease-in-out duration-500"
7554                 x-transition:leave-start="opacity-100"
7555                 x-transition:leave-end="opacity-0"
7556             role="button"
7557             @click="closeCartDrawer"
7558             aria-label="Close&#x20;minicart"></div>
7559            <div class="relative w-screen max-w-md shadow-2xl"
7560                 x-show="open"
7561                 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700"
7562                 x-transition:enter-start="translate-x-full"
7563                 x-transition:enter-end="translate-x-0"
7564                 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700"
7565                 x-transition:leave-start="translate-x-0"
7566                 x-transition:leave-end="translate-x-full"
7567            >
7568                <div
7569                    x-show="open"
7570                    x-transition:enter="ease-in-out duration-500"
7571                    x-transition:enter-start="opacity-0"
7572                    x-transition:enter-end="opacity-100"
7573                    x-transition:leave="ease-in-out duration-500"
7574                    x-transition:leave-start="opacity-100"
7575                    x-transition:leave-end="opacity-0" class="absolute top-0 right-0 flex pr-6 pt-19">
7576                    <button @click="open=false" aria-label="Close panel"
7577                            class="p-0 text-black transition duration-150 ease-in-out hover:text-black">
7578                        <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img">
7579  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
7580<title>x</title></svg>
7581                    </button>
7582                </div>
7583                <div class="flex flex-col h-full bg-lightblue">
7584                    
7585                    <header class="px-4 pt-19 pb-6">
7586                        <h2 id="cart-drawer-title" class="text-size18 font-medium text-black">
7587                        <template x-if="!itemsCount">
7588                            <div>My Cart</div></template>
7589<template x-if="itemsCount">
7590                            <div class="minicart-item-count"><span class="minicart-total-cart-amount" x-html="totalCartAmount"></span> <span x-show="totalCartAmount > 1">items</span><span x-show="totalCartAmount == 1">item</span> in cart</div>
7591</template>
7592                            <span class="items-total text-xs text-black"
7593                                  x-show="maxItemsToDisplay && maxItemsToDisplay < itemsCount"
7594                                  x-text="getItemCountTitle()">
7595                            </span>
7596                        </h2>
7597                    </header>
7598
7599                    
7600<template x-if="!itemsCount">
7601                    <div class="relative px-4 py-6 border-bs sm:px-6 border-container">
7602                        Cart is empty                    </div>
7603                </template>
7604                    <div class="relative grid overflow-y-auto overflow-x-hidden bg-lightblue cart-items">
7605                        <template x-for="item in cartItems">
7606                            <div class="flex items-start cart-item px-4 pt-5 pb-6 transition duration-150
7607                                ease-in-out">
7608                                <template x-if="!item.product_has_url">
7609                                    <a :href="item.product_url" class="w-1/4 pr-6 image">
7610                                        <img
7611                                            :src="item.product_image.src"
7612                                            :width="item.product_image.width"
7613                                            :height="item.product_image.height"
7614                                            loading="lazy"
7615                                        />
7616                                    </a>
7617                                </template>
7618                                <template x-if="item.product_has_url == 1">
7619                                    <a :href="item.product_url" class="w-1/4 pr-6 image">
7620                                        <img
7621                                            :src="item.product_image.src"
7622                                            :width="item.product_image.width"
7623                                            :height="item.product_image.height"
7624                                            loading="lazy"
7625                                        />
7626                                    </a>
7627                                </template>
7628                                <div class="w-3/4">
7629                                    <div>
7630                                        <template x-if="!item.product_has_url">
7631                                            <a :href="item.product_url" class="prosku">
7632                                                <p><span class="product-title text-size16 font-semibold text-darkblack" x-html="item.product_name"></span></p>
7633                                            </a>
7634                                        </template>
7635                                        <template x-if="item.product_has_url == 1">
7636                                            <a :href="item.product_url" class="prosku">
7637                                                <p><span class="product-title text-size16 font-semibold text-darkblack" x-html="item.product_name"></span></p>
7638                                            </a>
7639                                        </template>
7640                                    </div>
7641                                    <template x-for="option in item.options">
7642                                    <div class="flex pt-2 pb-1 item-options w-full"
7643                                    x-show="option.label !== '' && !['Weight', 'Configurable Product SKU', 'Configurable Product Name', 'Configurable Product Category', 'Main Configurable Product Image Url', 'Main Configurable Product Image', 'Configurable Product Image', 'Color Display Name'].includes(option.label)">
7644                                            <div class="flex w-full">
7645                                                <p class="text-size14 font-medium text-black" x-show="option.label == 'Custom Length' || option.label == 'Roll Width' || option.label == 'Roll Length'" x-text="option.label + ':'"></p>
7646                                                <template x-if="!item.product_has_url">
7647                                                    <a :href="item.product_url" 
7648                                                    x-show="item.product_type !== 'grouped' && option.label != 'Configurable Product Image'"
7649                                                    class="inline-flex"><p class="pl-1 text-size14 font-normal text-black" x-html="option.value"></p></a>
7650                                                </template>
7651                                                <template x-if="item.product_has_url == 1">
7652                                                    <a :href="item.product_url"
7653                                                    x-show="item.product_type !== 'grouped' && option.label != 'Configurable Product Image'"
7654                                                    class="inline-flex"><p class="pl-1 text-size14 font-normal text-black" x-html="option.value"></p></a>
7655                                                </template>
7656                                            </div>
7657                                        </div>
7658                                    </template>
7659                                    <p class="pb-4 pt-1"><span x-html="item.product_price" class="text-size20 font-bold text-custom-blue pricebox"></span></p>
7660                                    <div class="text-xl flex qty-fields items-center">
7661                                        <p><span class="qty text-size14 font-semibold text-darkblack mr-1">QTY</span><span x-html="item.qty" class="qty-label text-center text-size16 font-semibold text-darkblack inline-block"></span></p>
7662                                        <div class="ml-auto">                                            
7663                                            <button 
7664                                                    @click="deleteItemFromCart(item.item_id)"
7665                                            >
7666                                                <picture><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/Delete.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/Delete.png" alt="Delete" width="12" height="16"></picture>
7667                                            </button>
7668                                        </div>
7669                                    </div>                                   
7670
7671                                </div>
7672                            </div>
7673                        </template>
7674                    </div>
7675<template x-if="itemsCount">
7676                    
7677                    <div class="relative bg-lightblue grid pt-3 pb-4">
7678                        <div class="w-full transition duration-150 ease-in-out sub-total">
7679                            <p class="text-darkgray text-size16 font-normal flex items-center pb-2">Subtotal: <span x-html="cart.subtotal" class="font-bold text-size22 text-custom-blue"></span></p>
7680                        </div>
7681                        
7682                        <div class="w-full transition duration-150 ease-in-out
7683                            chekout-btn">                            
7684                            <a href="https://www.flooringinc.com/checkout/cart/"
7685                               class="no-underline block relative font-medium text-size16 text-custom-white bg-custom-blue">
7686                                Proceed to Cart                            </a>
7687                        </div>
7688                                            </div>
7689</template>
7690                                    </div>
7691            </div>
7692            <div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50"
7693     style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);"
7694     x-show="isLoading"
7695     x-transition:enter="ease-out duration-200"
7696     x-transition:enter-start="opacity-0"
7697     x-transition:enter-end="opacity-100"
7698     x-transition:leave="ease-in duration-200"
7699     x-transition:leave-start="opacity-100"
7700     x-transition:leave-end="opacity-0">
7701    <!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL -->
7702<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="text-primary" width="57" height="57" role="img">
7703    <g fill="none" fill-rule="evenodd">
7704        <g transform="translate(1 1)" stroke-width="2">
7705            <circle cx="5" cy="50" r="5">
7706                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/>
7707                <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/>
7708            </circle>
7709            <circle cx="27" cy="5" r="5">
7710                <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/>
7711                <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/>
7712            </circle>
7713            <circle cx="49" cy="50" r="5">
7714                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/>
7715                <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/>
7716            </circle>
7717        </g>
7718    </g>
7719<title>loader</title></svg>
7720    <div class="ml-10 text-primary text-xl">
7721        Loading...    </div>
7722</div>
7723        </div>
7724    </template>
7725</section>
7726
7727    <!--Authentication Pop-Up-->
7728    
7728<script>
7729    function initAuthentication() {
7730        return {
7731            open: false,
7732            forceAuthentication: false,
7733            checkoutUrl: 'https://www.flooringinc.com/checkout/index/',
7734            errors: 0,
7735            hasCaptchaToken: 0,
7736            displayErrorMessage: false,
7737            errorMessages: [],
7738            setErrorMessages: function setErrorMessages(messages) {
7739                this.errorMessages = [messages];
7740                this.displayErrorMessage = this.errorMessages.length;
7741            },
7742            submitForm: function () {
7743                // Do not rename $form, the variable is expected to be declared in the recaptcha output
7744                const $form = document.querySelector('#login-form-new');
7745                
7746                if (this.errors === 0) {
7747                    this.dispatchLoginRequest($form);
7748                }
7749            },
7750            onPrivateContentLoaded: function (data) {
7751                const isLoggedIn = data.customer && data.customer.firstname;
7752                if (data.cart && !isLoggedIn) {
7753                    this.forceAuthentication = !data.cart.isGuestCheckoutAllowed;
7754                }
7755            },
7756            redirectIfAuthenticated: function (event) {
7757                if (event.detail && event.detail.url) {
7758                    this.checkoutUrl = event.detail.url;
7759                }
7760                if (!this.forceAuthentication) {
7761                    window.location.href = this.checkoutUrl;
7762                }
7763            },
7764            dispatchLoginRequest: function(form) {
7765                this.isLoading = true;
7766                const username = this.$refs['customer-email'].value;
7767                const password = this.$refs['customer-password'].value;
7768                const formKey = hyva.getFormKey();
7769                const bodyFields = {
7770                    'username': username,
7771                    'password': password,
7772                    'formKey': formKey
7773                };
7774                                const fieldName = 'g\u002Drecaptcha\u002Dresponse';
7775                const recaptchaField = fieldName && form[fieldName];
7776                if (recaptchaField) {
7777                    bodyFields[fieldName] = recaptchaField.value;
7778                }
7779                fetch('https://www.flooringinc.com/customer/ajax/login/', {
7780                        method: 'POST',
7781                        headers: {
7782                            'Content-Type': 'application/json',
7783                            'X-Requested-With': 'XMLHttpRequest'
7784                        },
7785                        body: JSON.stringify(bodyFields)
7786                    }
7787                ).then(response => {
7788                        return response.json()
7789                    }
7790                ).then(data=> {
7791                    this.isLoading = false;
7792                    if (data.errors) {
7793                        dispatchMessages([{
7794                            type: 'error',
7795                            text: data.message
7796                        }], 5000);
7797                        this.errors = 1;
7798                        this.hasCaptchaToken = 0;
7799                    } else {
7800                        window.location.href = this.checkoutUrl;
7801                    }
7802                });
7803            }
7804        }
7805    }
7806</script>
7806
7807<section id="authentication-popup"
7808         x-data="initAuthentication()"
7809         @private-content-loaded.window="onPrivateContentLoaded($event.detail.data)"
7810         @toggle-authentication.window="open = forceAuthentication; redirectIfAuthenticated(event)"
7811         @keydown.window.escape="open = false"
7812>
7813        <div role="dialog"
7814             aria-modal="true"
7815             @click.outside="open = false"
7816             class="inset-y-0 right-0 z-30 flex max-w-full"
7817             :class="{'fixed': open }" x-cloak x-show="open"
7818        >
7819            <div class="relative w-screen max-w-md pt-16 bg-container-lighter"
7820                 x-show="open"
7821                 x-cloak=""
7822                 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700"
7823                 x-transition:enter-start="translate-x-full"
7824                 x-transition:enter-end="translate-x-0"
7825                 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700"
7826                 x-transition:leave-start="translate-x-0"
7827                 x-transition:leave-end="translate-x-full"
7828            >
7829                <div
7830                    x-show="open"
7831                    x-cloak=""
7832                    x-transition:enter="ease-in-out duration-500"
7833                    x-transition:enter-start="opacity-0"
7834                    x-transition:enter-end="opacity-100"
7835                    x-transition:leave="ease-in-out duration-500"
7836                    x-transition:leave-start="opacity-100"
7837                    x-transition:leave-end="opacity-0" class="absolute top-0 right-0 flex p-2 mt-2">
7838                    <button @click="open = false;" aria-label="Close panel"
7839                            class="p-2 text-gray-300 transition duration-150 ease-in-out hover:text-black">
7840                        <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img">
7841  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
7842<title>x</title></svg>
7843                    </button>
7844                </div>
7845                <div class="flex flex-col h-full py-6 space-y-6 bg-white shadow-xl overflow-y-auto">
7846                    <div class="block-customer-login bg-container border border-container mx-4 p-4 shadow-sm">
7847                        <p id="authenticate-customer-login" class="text-lg leading-7 text-gray-900">
7848                            <strong class="font-medium">Checkout using your account</strong>
7849                        </p>
7850
7851                        <form class="form form-login"
7852                              method="post"
7853                              @submit.prevent="submitForm();"
7854                              id="login-form-new"
7855                        >
7856                                                        <div class="fieldset login">
7857                                <div class="field email required">
7858                                    <label class="label" for="form-login-username" form="login-form" >
7859                                        <span>Email Address</span>
7860                                    </label>
7861                                    <div class="control">
7862                                        <input name="username"
7863                                               id="form-login-username"
7864                                               x-ref="customer-email"
7865                                               @change="errors = 0"
7866                                               type="email"
7867                                               required
7868                                               class="form-input input-text"
7869                                        >
7870                                    </div>
7871                                </div>
7872                                <div class="field password required">
7873                                    <label for="form-login-password" class="label" form="login-form">
7874                                        <span>Password</span>
7875                                    </label>
7876                                    <div class="control">
7877                                        <input name="password"
7878                                               id="form-login-password"
7879                                               type="password"
7880                                               class="form-input input-text"
7881                                               required
7882                                               x-ref="customer-password"
7883                                               @change="errors = 0"
7884                                        >
7885                                    </div>
7886                                </div>
7887
7888                                <input name="context" type="hidden" value="checkout" />
7889                                <div class="actions-toolbar flex justify-between pt-6 pb-2 items-center">
7890                                    <button type="submit"                                            class="inline-flex btn btn-primary disabled:opacity-75"
7891                                    >
7892                                        Sign In                                    </button>
7893                                    <a href="https://www.flooringinc.com/customer/account/forgotpassword/"
7894                                    >
7895                                        Forgot Your Password?                                    </a>
7896                                </div>
7897
7898                            </div>
7899                        </form>
7900                    </div>
7901                    <div class="mx-4">
7902                                            </div>
7903                    <div class="block-new-customer bg-container border border-container mx-4 p-4 shadow-sm">
7904                        <p id="authenticate-new-customer" class="text-lg mb-2 leading-7 text-gray-900">
7905                            <strong class="font-medium">Checkout as a new customer</strong>
7906                        </p>
7907
7908                        <div class="block-content">
7909                            <p class="mb-1">
7910                                Creating an account has many benefits:                            </p>
7911                            <ul class="list-disc pl-5">
7912                                <li> See order and shipping status</li>
7913                                <li> Track order history</li>
7914                                <li> Check out faster</li>
7915                            </ul>
7916                            <div class="actions-toolbar flex justify-between mt-6 mb-2 items-center">
7917                                <a href="https://www.flooringinc.com/customer/account/create/"
7918                                   class="inline-flex btn btn-primary">
7919                                    Create an Account                                </a>
7920                            </div>
7921                        </div>
7922                    </div>
7923                </div>
7924            </div>
7925        </div>
7926</section>
7927
7928    <!--Cart Quote Drawer-->
7929    
7929<script>
7930    function initQuoteCartDrawer() {
7931        return {
7932            open: false,
7933            cartData: {},
7934            getQuoteCartData(data) {
7935                if (data.quotecart) {
7936                    this.cartData = data.quotecart
7937                    this.setCartItems();
7938                }
7939            },
7940            cartItems: [],
7941            setCartItems() {
7942                this.cartItems = this.cartData && this.cartData.items.sort(function(a,b) { return a.item_id - b.item_id }) || {}
7943            },
7944            deleteItemFromCart(itemId) {
7945                var formKey = document.querySelector('input[name=form_key]').value;
7946                fetch(BASE_URL+"amasty_quote/sidebar/removeItem/", {
7947                    "headers": {
7948                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
7949                    },
7950                    "body": "form_key="+ formKey + "&item_id="+itemId,
7951                    "method": "POST",
7952                    "mode": "cors",
7953                    "credentials": "include"
7954                }).then(function (response) {
7955                    if (response.redirected) {
7956                        window.location.href = response.url;
7957                    } else if (response.ok) {
7958                        return response.json();
7959                    } else {
7960                        typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
7961                            [{
7962                                type: "warning",
7963                                text: "Could not remove item from quote."
7964                            }], 5000
7965                        );
7966                    }
7967                }).then(function (response) {
7968                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
7969                        [{
7970                            type: response.success ? "success" : "error",
7971                            text: response.success
7972                                ? "You removed the item."
7973                                : response.error_message
7974                        }], 5000
7975                    );
7976                    var reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data");
7977                    window.dispatchEvent(reloadCustomerDataEvent);
7978                });
7979            }
7980        }
7981    }
7982</script>
7982
7983<section id="cart-quote-drawer"
7984         x-data="initQuoteCartDrawer()"
7985         @private-content-loaded.window="getQuoteCartData(event.detail.data)"
7986         @toggle-quote-cart.window="open=true;"
7987         @keydown.window.escape="open=false"
7988>
7989    <template x-if="cartData && cartData.summary_count">
7990        <div role="dialog"
7991             aria-labelledby="cart-drawer-title"
7992             aria-modal="true"
7993             @click.away="open = false"
7994             class="fixed inset-y-0 right-0 z-30 flex max-w-full">
7995            <div class="backdrop"
7996                 x-show="open"
7997                 x-transition:enter="ease-in-out duration-500"
7998                 x-transition:enter-start="opacity-0"
7999                 x-transition:enter-end="opacity-100"
8000                 x-transition:leave="ease-in-out duration-500"
8001                 x-transition:leave-start="opacity-100"
8002                 x-transition:leave-end="opacity-0"
8003                 @click="open = false"
8004                 aria-label="Close panel"></div>
8005            <div class="relative w-screen max-w-md shadow-2xl"
8006                 x-show="open"
8007                 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700"
8008                 x-transition:enter-start="translate-x-full"
8009                 x-transition:enter-end="translate-x-0"
8010                 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700"
8011                 x-transition:leave-start="translate-x-0"
8012                 x-transition:leave-end="translate-x-full"
8013            >
8014                <div
8015                    x-show="open"
8016                    x-transition:enter="ease-in-out duration-500"
8017                    x-transition:enter-start="opacity-0"
8018                    x-transition:enter-end="opacity-100"
8019                    x-transition:leave="ease-in-out duration-500"
8020                    x-transition:leave-start="opacity-100"
8021                    x-transition:leave-end="opacity-0" class="absolute top-0 right-0 flex mr-3 mt-2">
8022                    <button @click="open = false" aria-label="Close panel"
8023                            class="p-2 text-gray-300 transition duration-150 ease-in-out hover:text-black">
8024                        <svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
8025                            <path stroke-linecap="round" stroke-linejoin="round"
8026                                  stroke-width="2" d="M6 18L18 6M6 6l12 12">
8027                            </path>
8028                        </svg>
8029                    </button>
8030                </div>
8031                <div class="flex flex-col h-full py-6 space-y-6 bg-white shadow-xl">
8032                    <header class="px-4 sm:px-6">
8033                        <div id="cart-drawer-title" class="text-lg font-medium leading-7 text-gray-900">
8034                            My Quote Cart                        </div>
8035                    </header>
8036                    <div class="relative grid gap-6 px-4 py-6 overflow-y-auto bg-white border-b
8037                        sm:gap-8 sm:px-6 border-container">
8038                        <template x-for="item in cartItems">
8039                            <div class="flex items-start p-3 -m-3 space-x-4 transition duration-150
8040                                ease-in-out rounded-lg hover:bg-gray-100">
8041                                <a :href="item.product_url" class="w-1/4">
8042                                    <img
8043                                        :src="item.product_image.src"
8044                                        :width="item.product_image.width"
8045                                        :height="item.product_image.height"
8046                                        loading="lazy"
8047                                    />
8048                                </a>
8049                                <div class="w-3/4 relative">
8050                                    <div>
8051                                        <div class="text-xl">
8052                                            <a :href="item.product_url" class="hover:underline">
8053                                                <span x-html="item.qty"></span> x <span x-html="item.product_name"></span>
8054                                            </a>
8055                                        </div>
8056                                        <div class="text-sm"><span x-html="item.product_sku"></div>
8057                                    </div>
8058                                    <template x-for="option in item.options">
8059                                        <div class="pt-2">
8060                                            <p class="font-semibold" x-text="option.label + ':'"></p>
8061                                            <p class="text-secondary" x-html="option.value"></p>
8062                                        </div>
8063                                    </template>
8064                                    <div><span x-html="item.product_price"></span></div>
8065                                    <div class="pt-4">
8066                                        <a :href="item.configure_url"
8067                                           x-show="item.product_type !== 'grouped'"
8068                                            class="inline-flex p-2 mr-2 btn btn-primary">
8069                                            <svg fill="none" viewBox="0 0 24 24" stroke="currentColor"
8070                                                 size="16" class="w-5 h-5">
8071                                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
8072                                                      d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536
8073                                                      3.536L6.5 21.036H3v-3.572L16.732 3.732z">
8074                                                </path>
8075                                            </svg>
8076                                        </a>
8077                                        <button class="inline-flex p-2 btn btn-primary"
8078                                                @click="deleteItemFromCart(item.item_id)"
8079                                        >
8080                                            <svg fill="none" viewBox="0 0 24 24" stroke="currentColor"
8081                                                 size="16" class="w-5 h-5">
8082                                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
8083                                                      d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0
8084                                                      01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1
8085                                                      0 00-1 1v3M4 7h16">
8086                                                </path>
8087                                            </svg>
8088                                        </button>
8089                                    </div>
8090                                </div>
8091                            </div>
8092                        </template>
8093                    </div>
8094                    <div class="relative grid gap-6 px-4 py-6 bg-white sm:gap-8 sm:px-6">
8095                        <div class="w-full p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg
8096                            hover:bg-gray-100">
8097                            <span>Cart Subtotal:</span>
8098                            <span class="text-gray-900 font-bold" x-text="hyva.formatPrice(cartData.subtotalAmount)"></span>
8099                        </div>
8100                        <div class="w-full">
8101                            <a href="https://www.flooringinc.com/amasty_quote/cart/"
8102                               class="btn btn-secondary justify-center">
8103                                View and Edit Cart                            </a>
8104                        </div>
8105                    </div>
8106                </div>
8107            </div>
8108        </div>
8109    </template>
8110</section>
8111
8112</div>
8113
8114<div x-data="initKlaviyoCustomerTracking()"
8115     @private-content-loaded.window="sendCustomerDataToKlaviyo(event.detail.data)"></div>
8116    
8116<script>
8117        function initKlaviyoCustomerTracking() {
8118            return {
8119                sendCustomerDataToKlaviyo(data) {
8120                    window.addEventListener('init-external-scripts', () => {
8121                    const _learnq = window._learnq || [];
8122                    const customer = data.customer;
8123                    var resource = document.createElement('script');
8124                    resource.async = "true";
8125                    resource.src = "https://static.klaviyo.com/onsite/js/klaviyo.js?company_id=WAwVDg";
8126                    var script = document.getElementsByTagName('script')[0];
8127                    script.parentNode.insertBefore(resource, script);
8128
8129                    if (customer && customer.email) {
8130                        script.addEventListener('load', function() {
8131                            _learnq.push(['identify', {
8132                                $email: customer.email,
8133                                $first_name: customer.firstname ? customer.firstname : '',
8134                                $last_name: customer.lastname ? customer.lastname : ''
8135                            }]);
8136                        });
8137                    }
8138                  }, {once: true, passive: true});
8139                }
8140            }
8141        }
8142    </script>
8142
8143<a class="action skip sr-only contentarea"
8144   href="#contentarea">
8145    <span>
8146        Skip to Content    </span>
8147</a>
8148<div class="widget block block-static-block">
8149    <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div class="notification5 text-center text-size13 font-normal text-white bg-[#15324C]">		
8150		<style>#html-body [data-pb-style=W9O5WD4]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="W9O5WD4"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><center>
8151<p style="font-size: medium;">🏈 Game Day Ready - Save Up to 35% Off - Sale Ends Sunday 10/4 </p>
8152
8153</center>
8154</div></div></div></div></div></div>
8155</header><div class="top-container"><nav class="breadcrumbs order-2 w-full" aria-label="Breadcrumb">
8156    <div class="breadcrumbs-in py-8">
8157        <ol class="items list-reset rounded flex flex-wrap text-grey text-sm">
8158                            <li class="item flex home">
8159                                                    <a href="https://www.flooringinc.com/"
8160                       class="no-underline text-sm font-normal"
8161                       title="Go&#x20;to&#x20;Home&#x20;Page"
8162                    >Home</a>
8163                                </li>
8164                            <li class="item flex category1826">
8165                                    <span aria-hidden="true" class="separator text-primary-lighter px-2 text-sm font-normal">/</span>
8166                                                    <a href="https://www.flooringinc.com/shop.html"
8167                       class="no-underline text-sm font-normal"
8168                       title=""
8169                    >Flooring By Category</a>
8170                                </li>
8171                            <li class="item flex category1841">
8172                                    <span aria-hidden="true" class="separator text-primary-lighter px-2 text-sm font-normal">/</span>
8173                                                    <a href="https://www.flooringinc.com/shop/rubber-flooring.html"
8174                       class="no-underline text-sm font-normal"
8175                       title=""
8176                    >Rubber Flooring</a>
8177                                </li>
8178                            <li class="item flex category2333">
8179                                    <span aria-hidden="true" class="separator text-primary-lighter px-2 text-sm font-normal">/</span>
8180                                                    <a href=""
8181                       class="text-sm font-semibold current"
8182                       aria-current="page"
8183                    >All Rubber Flooring</a>
8184                                </li>
8185                    </ol>
8186    </div>
8187</nav>
8188</div><main id="maincontent" class="page-main"><div id="contentarea" tabindex="-1"></div>
8189<div class="page messages">
8189<script>
8190    function initMessages() {
8191        "use strict";
8192        return {
8193            messages: window.mageMessages || [],
8194            isEmpty() {
8195                return this.messages.reduce(
8196                    function (isEmpty, message) {
8197                        return isEmpty && message === undefined
8198                    }, true
8199                )
8200            },
8201            removeMessage(messageIndex) {
8202                this.messages[messageIndex] = undefined;
8203            },
8204            addMessages(messages, hideAfter) {
8205                messages.map((message) => {
8206                    /* Code to avoid multiple messages on the page */
8207					
8208					if (message.text.includes("A customer with the same email address already exists")) {
8209                        message.text = 'A customer with the same email address already exists in an associated website. If you would like to upgrade your account to a Pro Account - please <a href='+BASE_URL+'contact>contact customer service</a>.';
8210                    }
8211                    if(this.messages!="") {                        
8212                        this.messages=[];    
8213                    }
8214                    this.messages = this.messages.concat(message);
8215                    if (hideAfter) {
8216                        this.setHideTimeOut(this.messages.length -1, hideAfter);
8217                    }
8218                });
8219            },
8220            setHideTimeOut(messageIndex, hideAfter) {
8221                setTimeout((messageIndex) => {
8222                    this.removeMessage(messageIndex);
8223                }, hideAfter, messageIndex);
8224            },
8225            eventListeners: {
8226                ['@messages-loaded.window']() {
8227                   this.addMessages(event.detail.messages, event.detail.hideAfter)
8228                },
8229                ['@private-content-loaded.window'](event) {
8230                    const data = event.detail.data;
8231                    if (
8232                        data.messages &&
8233                        data.messages.messages &&
8234                        data.messages.messages.length
8235                    ) {
8236                        this.addMessages(data.messages.messages);
8237                    }
8238                },
8239                ['@clear-messages.window']() {
8240                    this.messages = [];
8241                }
8242            }
8243        }
8244    }
8245</script>
8245
8246<section id="messages"
8247         x-data="initMessages()"
8248         x-bind="eventListeners"
8249>
8250    <template x-if="!isEmpty()">
8251        <div class="w-full">
8252            <div role="alert" class="messages container">
8253                <template x-for="(message, index) in messages" :key="index">
8254                    <div>
8255                        <template x-if="message">
8256                            <div class="message" :class="message.type"
8257                                 :ui-id="'message-' + message.type"
8258                            >
8259                                <span x-html="message.text"></span>
8260                                <a href="#" class="close cursor-pointer" title="close"
8261                                   @click.prevent="removeMessage(index)">
8262                                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-white" width="18" height="18" role="img">
8263  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
8264<title>x</title></svg>
8265                                </a>
8266                            </div>
8267                        </template>
8268                    </div>
8269                </template>
8270            </div>
8271        </div>
8272    </template>
8273</section></div><div class="widget block block-static-block">
8274    <style>#html-body [data-pb-style=UYH2DF7]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</style><div class="notification2 bg-custom-blue" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="UYH2DF7"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"></div></div></div>
8275<div class="widget block block-static-block">
8276    <style>#html-body [data-pb-style=A9GJREG]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="A9GJREG"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"></div></div></div></div>
8277<div class="category-view"><div class="category-image"><picture class="image"><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/all_rubber_main.webp"><img src="https://www.flooringinc.com/media/catalog/category/all_rubber_main.jpg" alt="All&#x20;Rubber&#x20;Flooring" title="All&#x20;Rubber&#x20;Flooring" class="image" /></picture></div>    
8278</div><div class="columns"><aside class="sidebar sidebar-main">    <div class="block border border-container bg-container-darker md:border-0 md:bg-transparent"
8279         x-data="initLayeredNavigation()"
8280         x-init="checkIsMobileResolution()"
8281         @resize.window.debounce="checkIsMobileResolution()"
8282         @visibilitychange.window.debounce="checkIsMobileResolution()"
8283    >
8284        <div class="block-title flex items-center justify-between"
8285             @click="blockOpen = !blockOpen"
8286        >
8287            <h1 class="text-size28 font-semibold capitalize">
8288                All Rubber Flooring            </h1>
8289            <span class="py-1 px-1 bg-container-lighter rounded border border-container-darker hidden"
8290                  :class="{ 'block' : isMobile, 'hidden': !isMobile }">
8291                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="transition-transform transform duration-300 ease-in-out" width="24" height="24" :class="{ 'rotate-180': blockOpen }" role="img">
8292  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
8293<title>chevron-down</title></svg>
8294            </span>
8295        </div>
8296        <div class="block-content filter-content pt-3 hidden md:block" :class="{ 'hidden' : isMobile && !blockOpen }">
8297                                                                                                                                                <div id="filter-id-incstores_pim_ships_from_region" class="filter-option card my-4 px-0" x-data="{ open: false }">
8298                        <div
8299                            class="filter-options-title flex justify-between items-center cursor-pointer hover:text-secondary-darker border-container"
8300                            :class="{ 'border-b pb-4': open }"
8301                            @click="open = !open">
8302                            <span class="title text-md md:text-lg font-semibold">
8303                                Ships From Region                                </span>
8304                            <span class="py-1 px-1 rounded border border-container">
8305                                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="transition-transform transform duration-300 ease-in-out" width="24" height="24" :class="{ 'rotate-180': open }" role="img">
8306  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
8307<title>chevron-down</title></svg>
8308                            </span>
8309                        </div>
8310                        <template x-if="open">
8311                            <div class="filter-options-content pt-2">
8312                                
8313<div data-mst-nav-filter="incstores_pim_ships_from_regionA673897A" data-mst-nav-cache-key="673897" data-mst-attribute="incstores_pim_ships_from_region" class="mst-nav__label" x-data="initLabelRenderer()">
8314        <div
8315        data-holder="alphabetical"
8316        x-data="initAlphabeticalIndex(0, 5)"
8317        x-init="init()"
8318    ></div>
8319
8320    <ol class="items">
8321        
8322        
8323
8324    </ol>
8325
8326    <div class="hidden mst-clear-options-link" data-checked-count="0">
8327        <div class="mst-nav__checked-counter__wrapper flex items-center mx-2">
8328            <div class="mst-nav__checked-counter rounded px-2 bg-gray-200 mr-1">0</div>
8329            <a class="hover:underline text-2xl opacity-50" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html" data-element="filter">&#10005;</a>
8330        </div>
8331    </div>
8332            
8332<script type="text/javascript">
8333            document.getElementById("filter-id-incstores_pim_ships_from_region").style.display = "none";
8334        </script>
8334
8335     </div>
8336                            </div>
8337                        </template>
8338                    </div>
8339                                                                <div id="filter-id-incstores_pim_lf_shipping_speed" class="filter-option card my-4 px-0" x-data="{ open: false }">
8340                        <div
8341                            class="filter-options-title flex justify-between items-center cursor-pointer hover:text-secondary-darker border-container"
8342                            :class="{ 'border-b pb-4': open }"
8343                            @click="open = !open">
8344                            <span class="title text-md md:text-lg font-semibold">
8345                                Shipping Speed                                </span>
8346                            <span class="py-1 px-1 rounded border border-container">
8347                                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="transition-transform transform duration-300 ease-in-out" width="24" height="24" :class="{ 'rotate-180': open }" role="img">
8348  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
8349<title>chevron-down</title></svg>
8350                            </span>
8351                        </div>
8352                        <template x-if="open">
8353                            <div class="filter-options-content pt-2">
8354                                
8355<div data-mst-nav-filter="incstores_pim_lf_shipping_speedA404640A" data-mst-nav-cache-key="404640" data-mst-attribute="incstores_pim_lf_shipping_speed" class="mst-nav__label" x-data="initLabelRenderer()">
8356        <div
8357        data-holder="alphabetical"
8358        x-data="initAlphabeticalIndex(0, 5)"
8359        x-init="init()"
8360    ></div>
8361
8362    <ol class="items">
8363        
8364            
8365            <li data-element="filter"
8366                data-hidden="false"
8367                data-search-hidden="false"
8368                data-letter-hidden="false"
8369                class="item mst-nav__label-item _mode-checkbox    "
8370                data-value="117056"
8371                @click="handleClick"
8372                            >
8373                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_lf_shipping_speed=117056&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8374                       rel="nofollow"
8375                       aria-label="Ships&#x20;in&#x20;1-2&#x20;Business&#x20;Days"
8376                    >
8377                        
8378                        <input id="m_incstores_pim_lf_shipping_speed[117056]" type="checkbox"  />
8379
8380                        <label for="m_incstores_pim_lf_shipping_speed[117056]">
8381                            <span class="mst-nav__label-item__label">Ships in 1-2 Business Days</span>
8382                                                            <span class="count text-primary">8</span>
8383                                                    </label>
8384                    </a>
8385                            </li>
8386        
8387            
8388            <li data-element="filter"
8389                data-hidden="false"
8390                data-search-hidden="false"
8391                data-letter-hidden="false"
8392                class="item mst-nav__label-item _mode-checkbox    "
8393                data-value="117053"
8394                @click="handleClick"
8395                            >
8396                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_lf_shipping_speed=117053&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8397                       rel="nofollow"
8398                       aria-label="Ships&#x20;in&#x20;3-5&#x20;Business&#x20;Days"
8399                    >
8400                        
8401                        <input id="m_incstores_pim_lf_shipping_speed[117053]" type="checkbox"  />
8402
8403                        <label for="m_incstores_pim_lf_shipping_speed[117053]">
8404                            <span class="mst-nav__label-item__label">Ships in 3-5 Business Days</span>
8405                                                            <span class="count text-primary">27</span>
8406                                                    </label>
8407                    </a>
8408                            </li>
8409        
8410            
8411            <li data-element="filter"
8412                data-hidden="false"
8413                data-search-hidden="false"
8414                data-letter-hidden="false"
8415                class="item mst-nav__label-item _mode-checkbox    "
8416                data-value="117050"
8417                @click="handleClick"
8418                            >
8419                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_lf_shipping_speed=117050&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8420                       rel="nofollow"
8421                       aria-label="Made&#x20;to&#x20;Order&#x20;&#x28;6&#x2B;&#x20;Business&#x20;Days&#x29;"
8422                    >
8423                        
8424                        <input id="m_incstores_pim_lf_shipping_speed[117050]" type="checkbox"  />
8425
8426                        <label for="m_incstores_pim_lf_shipping_speed[117050]">
8427                            <span class="mst-nav__label-item__label">Made to Order (6+ Business Days)</span>
8428                                                            <span class="count text-primary">34</span>
8429                                                    </label>
8430                    </a>
8431                            </li>
8432        
8433        
8434
8435    </ol>
8436
8437    <div class="hidden mst-clear-options-link" data-checked-count="0">
8438        <div class="mst-nav__checked-counter__wrapper flex items-center mx-2">
8439            <div class="mst-nav__checked-counter rounded px-2 bg-gray-200 mr-1">0</div>
8440            <a class="hover:underline text-2xl opacity-50" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html" data-element="filter">&#10005;</a>
8441        </div>
8442    </div>
8443    </div>
8444                            </div>
8445                        </template>
8446                    </div>
8447                                                                                                                                                    <div id="filter-id-incstores_pim_category_filters" class="filter-option card my-4 px-0" x-data="{ open: false }">
8448                        <div
8449                            class="filter-options-title flex justify-between items-center cursor-pointer hover:text-secondary-darker border-container"
8450                            :class="{ 'border-b pb-4': open }"
8451                            @click="open = !open">
8452                            <span class="title text-md md:text-lg font-semibold">
8453                                Category                                </span>
8454                            <span class="py-1 px-1 rounded border border-container">
8455                                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="transition-transform transform duration-300 ease-in-out" width="24" height="24" :class="{ 'rotate-180': open }" role="img">
8456  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
8457<title>chevron-down</title></svg>
8458                            </span>
8459                        </div>
8460                        <template x-if="open">
8461                            <div class="filter-options-content pt-2">
8462                                
8463<div data-mst-nav-filter="incstores_pim_category_filtersA555913A" data-mst-nav-cache-key="555913" data-mst-attribute="incstores_pim_category_filters" class="mst-nav__label" x-data="initLabelRenderer()">
8464        <div
8465        data-holder="alphabetical"
8466        x-data="initAlphabeticalIndex(0, 5)"
8467        x-init="init()"
8468    ></div>
8469
8470    <ol class="items">
8471        
8472            
8473            <li data-element="filter"
8474                data-hidden="false"
8475                data-search-hidden="false"
8476                data-letter-hidden="false"
8477                class="item mst-nav__label-item _mode-checkbox    "
8478                data-value="116802"
8479                @click="handleClick"
8480                            >
8481                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116802&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8482                       rel="nofollow"
8483                       aria-label="Foam&#x20;Tiles"
8484                    >
8485                        
8486                        <input id="m_incstores_pim_category_filters[116802]" type="checkbox"  />
8487
8488                        <label for="m_incstores_pim_category_filters[116802]">
8489                            <span class="mst-nav__label-item__label">Foam Tiles</span>
8490                                                            <span class="count text-primary">1</span>
8491                                                    </label>
8492                    </a>
8493                            </li>
8494        
8495            
8496            <li data-element="filter"
8497                data-hidden="false"
8498                data-search-hidden="false"
8499                data-letter-hidden="false"
8500                class="item mst-nav__label-item _mode-checkbox    "
8501                data-value="116814"
8502                @click="handleClick"
8503                            >
8504                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116814&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8505                       rel="nofollow"
8506                       aria-label="Playground&#x20;Flooring"
8507                    >
8508                        
8509                        <input id="m_incstores_pim_category_filters[116814]" type="checkbox"  />
8510
8511                        <label for="m_incstores_pim_category_filters[116814]">
8512                            <span class="mst-nav__label-item__label">Playground Flooring</span>
8513                                                            <span class="count text-primary">13</span>
8514                                                    </label>
8515                    </a>
8516                            </li>
8517        
8518            
8519            <li data-element="filter"
8520                data-hidden="false"
8521                data-search-hidden="false"
8522                data-letter-hidden="false"
8523                class="item mst-nav__label-item _mode-checkbox    "
8524                data-value="116781"
8525                @click="handleClick"
8526                            >
8527                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116781&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8528                       rel="nofollow"
8529                       aria-label="Product&#x20;Accessories"
8530                    >
8531                        
8532                        <input id="m_incstores_pim_category_filters[116781]" type="checkbox"  />
8533
8534                        <label for="m_incstores_pim_category_filters[116781]">
8535                            <span class="mst-nav__label-item__label">Product Accessories</span>
8536                                                            <span class="count text-primary">3</span>
8537                                                    </label>
8538                    </a>
8539                            </li>
8540        
8541            
8542            <li data-element="filter"
8543                data-hidden="false"
8544                data-search-hidden="false"
8545                data-letter-hidden="false"
8546                class="item mst-nav__label-item _mode-checkbox    "
8547                data-value="116832"
8548                @click="handleClick"
8549                            >
8550                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116832&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8551                       rel="nofollow"
8552                       aria-label="Rubber&#x20;Mats"
8553                    >
8554                        
8555                        <input id="m_incstores_pim_category_filters[116832]" type="checkbox"  />
8556
8557                        <label for="m_incstores_pim_category_filters[116832]">
8558                            <span class="mst-nav__label-item__label">Rubber Mats</span>
8559                                                            <span class="count text-primary">16</span>
8560                                                    </label>
8561                    </a>
8562                            </li>
8563        
8564            
8565            <li data-element="filter"
8566                data-hidden="false"
8567                data-search-hidden="false"
8568                data-letter-hidden="false"
8569                class="item mst-nav__label-item _mode-checkbox    "
8570                data-value="116820"
8571                @click="handleClick"
8572                            >
8573                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116820&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8574                       rel="nofollow"
8575                       aria-label="Rubber&#x20;Rolls"
8576                    >
8577                        
8578                        <input id="m_incstores_pim_category_filters[116820]" type="checkbox"  />
8579
8580                        <label for="m_incstores_pim_category_filters[116820]">
8581                            <span class="mst-nav__label-item__label">Rubber Rolls</span>
8582                                                            <span class="count text-primary">22</span>
8583                                                    </label>
8584                    </a>
8585                            </li>
8586        
8587            
8588            <li data-element="filter"
8589                data-hidden="false"
8590                data-search-hidden="false"
8591                data-letter-hidden="false"
8592                class="item mst-nav__label-item _mode-checkbox    "
8593                data-value="116793"
8594                @click="handleClick"
8595                            >
8596                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116793&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8597                       rel="nofollow"
8598                       aria-label="Rubber&#x20;Tiles"
8599                    >
8600                        
8601                        <input id="m_incstores_pim_category_filters[116793]" type="checkbox"  />
8602
8603                        <label for="m_incstores_pim_category_filters[116793]">
8604                            <span class="mst-nav__label-item__label">Rubber Tiles</span>
8605                                                            <span class="count text-primary">31</span>
8606                                                    </label>
8607                    </a>
8608                            </li>
8609        
8610            
8611            <li data-element="filter"
8612                data-hidden="false"
8613                data-search-hidden="false"
8614                data-letter-hidden="false"
8615                class="item mst-nav__label-item _mode-checkbox    "
8616                data-value="116849"
8617                @click="handleClick"
8618                            >
8619                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116849&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8620                       rel="nofollow"
8621                       aria-label="Rubber&#x20;Flooring"
8622                    >
8623                        
8624                        <input id="m_incstores_pim_category_filters[116849]" type="checkbox"  />
8625
8626                        <label for="m_incstores_pim_category_filters[116849]">
8627                            <span class="mst-nav__label-item__label">Rubber Flooring</span>
8628                                                            <span class="count text-primary">64</span>
8629                                                    </label>
8630                    </a>
8631                            </li>
8632        
8633        
8634
8635    </ol>
8636
8637    <div class="hidden mst-clear-options-link" data-checked-count="0">
8638        <div class="mst-nav__checked-counter__wrapper flex items-center mx-2">
8639            <div class="mst-nav__checked-counter rounded px-2 bg-gray-200 mr-1">0</div>
8640            <a class="hover:underline text-2xl opacity-50" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html" data-element="filter">&#10005;</a>
8641        </div>
8642    </div>
8643    </div>
8644                            </div>
8645                        </template>
8646                    </div>
8647                                                                                                                                                                                <div id="filter-id-incstores_pim_primary_color_filter" class="filter-option card my-4 px-0" x-data="{ open: false }">
8648                        <div
8649                            class="filter-options-title flex justify-between items-center cursor-pointer hover:text-secondary-darker border-container"
8650                            :class="{ 'border-b pb-4': open }"
8651                            @click="open = !open">
8652                            <span class="title text-md md:text-lg font-semibold">
8653                                Color                                </span>
8654                            <span class="py-1 px-1 rounded border border-container">
8655                                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="transition-transform transform duration-300 ease-in-out" width="24" height="24" :class="{ 'rotate-180': open }" role="img">
8656  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
8657<title>chevron-down</title></svg>
8658                            </span>
8659                        </div>
8660                        <template x-if="open">
8661                            <div class="filter-options-content pt-2">
8662                                
8663<div class="swatch-attribute swatch-layered incstores_pim_primary_color_filter mst-nav__swatch"
8664     attribute-code="incstores_pim_primary_color_filter"
8665     attribute-id="4356"
8666     x-data="{...initLabelRenderer(), ...initSwatchRenderer()}"
8667>
8668    <div class="swatch-attribute-options clearfix" data-mst-nav-filter="incstores_pim_primary_color_filter">
8669        <div data-holder="alphabetical"
8670             x-data="initAlphabeticalIndex(0, 5)"
8671             x-init="init()"
8672        ></div>
8673                                
8674            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_primary_color_filter=116433&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8675               data-element="filter"
8676               data-hidden="false"
8677               data-search-hidden="false"
8678               data-letter-hidden="false"
8679               data-value="116433"
8680               rel="nofollow"
8681               aria-label="Red"
8682                              @click="handleClick"
8683               class="swatch-option-link-layered  swatch-option-link-layered swatch-option border-2 cursor-pointer bg-container-lighter shadow-sm relative select-none border-container-darker"
8684               :class="{ 'w-6 h-6' : getSwatchType('1') !== 'text' }"
8685               :style="getSwatchBackgroundStyle(
8686                    '1',
8687                    '#d42020',
8688                    ''
8689                )"
8690                                        @mouseenter.self="activeTooltipItem = {
8691                            attribute: '&#x23;d42020',
8692                            type: '1',
8693                            id: '116433',
8694                            label: 'Red',
8695                            thumb: '',
8696                            value: '&#x23;d42020'
8697                        }; tooltipPositionElement = $event.target;"
8698                    @mouseleave.self="activeTooltipItem = false"
8699            >
8700                            </a>
8701                                
8702            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_primary_color_filter=116406&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8703               data-element="filter"
8704               data-hidden="false"
8705               data-search-hidden="false"
8706               data-letter-hidden="false"
8707               data-value="116406"
8708               rel="nofollow"
8709               aria-label="Orange"
8710                              @click="handleClick"
8711               class="swatch-option-link-layered  swatch-option-link-layered swatch-option border-2 cursor-pointer bg-container-lighter shadow-sm relative select-none border-container-darker"
8712               :class="{ 'w-6 h-6' : getSwatchType('1') !== 'text' }"
8713               :style="getSwatchBackgroundStyle(
8714                    '1',
8715                    '#fc932a',
8716                    ''
8717                )"
8718                                        @mouseenter.self="activeTooltipItem = {
8719                            attribute: '&#x23;fc932a',
8720                            type: '1',
8721                            id: '116406',
8722                            label: 'Orange',
8723                            thumb: '',
8724                            value: '&#x23;fc932a'
8725                        }; tooltipPositionElement = $event.target;"
8726                    @mouseleave.self="activeTooltipItem = false"
8727            >
8728                            </a>
8729                                
8730            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_primary_color_filter=116421&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8731               data-element="filter"
8732               data-hidden="false"
8733               data-search-hidden="false"
8734               data-letter-hidden="false"
8735               data-value="116421"
8736               rel="nofollow"
8737               aria-label="Yellow"
8738                              @click="handleClick"
8739               class="swatch-option-link-layered  swatch-option-link-layered swatch-option border-2 cursor-pointer bg-container-lighter shadow-sm relative select-none border-container-darker"
8740               :class="{ 'w-6 h-6' : getSwatchType('1') !== 'text' }"
8741               :style="getSwatchBackgroundStyle(
8742                    '1',
8743                    '#f5ee25',
8744                    ''
8745                )"
8746                                        @mouseenter.self="activeTooltipItem = {
8747                            attribute: '&#x23;f5ee25',
8748                            type: '1',
8749                            id: '116421',
8750                            label: 'Yellow',
8751                            thumb: '',
8752                            value: '&#x23;f5ee25'
8753                        }; tooltipPositionElement = $event.target;"
8754                    @mouseleave.self="activeTooltipItem = false"
8755            >
8756                            </a>
8757                                
8758            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_primary_color_filter=116439&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8759               data-element="filter"
8760               data-hidden="false"
8761               data-search-hidden="false"
8762               data-letter-hidden="false"
8763               data-value="116439"
8764               rel="nofollow"
8765               aria-label="Green"
8766                              @click="handleClick"
8767               class="swatch-option-link-layered  swatch-option-link-layered swatch-option border-2 cursor-pointer bg-container-lighter shadow-sm relative select-none border-container-darker"
8768               :class="{ 'w-6 h-6' : getSwatchType('1') !== 'text' }"
8769               :style="getSwatchBackgroundStyle(
8770                    '1',
8771                    '#20e62a',
8772                    ''
8773                )"
8774                                        @mouseenter.self="activeTooltipItem = {
8775                            attribute: '&#x23;20e62a',
8776                            type: '1',
8777                            id: '116439',
8778                            label: 'Green',
8779                            thumb: '',
8780                            value: '&#x23;20e62a'
8781                        }; tooltipPositionElement = $event.target;"
8782                    @mouseleave.self="activeTooltipItem = false"
8783            >
8784                            </a>
8785                                
8786            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_primary_color_filter=116442&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8787               data-element="filter"
8788               data-hidden="false"
8789               data-search-hidden="false"
8790               data-letter-hidden="false"
8791               data-value="116442"
8792               rel="nofollow"
8793               aria-label="Blue"
8794                              @click="handleClick"
8795               class="swatch-option-link-layered  swatch-option-link-layered swatch-option border-2 cursor-pointer bg-container-lighter shadow-sm relative select-none border-container-darker"
8796               :class="{ 'w-6 h-6' : getSwatchType('1') !== 'text' }"
8797               :style="getSwatchBackgroundStyle(
8798                    '1',
8799                    '#175fbd',
8800                    ''
8801                )"
8802                                        @mouseenter.self="activeTooltipItem = {
8803                            attribute: '&#x23;175fbd',
8804                            type: '1',
8805                            id: '116442',
8806                            label: 'Blue',
8807                            thumb: '',
8808                            value: '&#x23;175fbd'
8809                        }; tooltipPositionElement = $event.target;"
8810                    @mouseleave.self="activeTooltipItem = false"
8811            >
8812                            </a>
8813                                
8814            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_primary_color_filter=116400&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8815               data-element="filter"
8816               data-hidden="false"
8817               data-search-hidden="false"
8818               data-letter-hidden="false"
8819               data-value="116400"
8820               rel="nofollow"
8821               aria-label="Purple"
8822                              @click="handleClick"
8823               class="swatch-option-link-layered  swatch-option-link-layered swatch-option border-2 cursor-pointer bg-container-lighter shadow-sm relative select-none border-container-darker"
8824               :class="{ 'w-6 h-6' : getSwatchType('1') !== 'text' }"
8825               :style="getSwatchBackgroundStyle(
8826                    '1',
8827                    '#914091',
8828                    ''
8829                )"
8830                                        @mouseenter.self="activeTooltipItem = {
8831                            attribute: '&#x23;914091',
8832                            type: '1',
8833                            id: '116400',
8834                            label: 'Purple',
8835                            thumb: '',
8836                            value: '&#x23;914091'
8837                        }; tooltipPositionElement = $event.target;"
8838                    @mouseleave.self="activeTooltipItem = false"
8839            >
8840                            </a>
8841                                
8842            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_primary_color_filter=116415&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8843               data-element="filter"
8844               data-hidden="false"
8845               data-search-hidden="false"
8846               data-letter-hidden="false"
8847               data-value="116415"
8848               rel="nofollow"
8849               aria-label="White"
8850                              @click="handleClick"
8851               class="swatch-option-link-layered  swatch-option-link-layered swatch-option border-2 cursor-pointer bg-container-lighter shadow-sm relative select-none border-container-darker"
8852               :class="{ 'w-6 h-6' : getSwatchType('2') !== 'text' }"
8853               :style="getSwatchBackgroundStyle(
8854                    '2',
8855                    '/h/o/horizontal_rectangle_black_bordered-400x300.jpg',
8856                    'https://www.flooringinc.com/media/attribute/swatch/swatch_image/30x20/h/o/horizontal_rectangle_black_bordered-400x300.jpg'
8857                )"
8858                                        @mouseenter.self="activeTooltipItem = {
8859                            attribute: '&#x2F;h&#x2F;o&#x2F;horizontal_rectangle_black_bordered-400x300.jpg',
8860                            type: '2',
8861                            id: '116415',
8862                            label: 'White',
8863                            thumb: 'https://www.flooringinc.com/media/attribute/swatch/swatch_thumb/110x90/h/o/horizontal_rectangle_black_bordered-400x300.jpg',
8864                            value: '&#x2F;h&#x2F;o&#x2F;horizontal_rectangle_black_bordered-400x300.jpg'
8865                        }; tooltipPositionElement = $event.target;"
8866                    @mouseleave.self="activeTooltipItem = false"
8867            >
8868                            </a>
8869                                
8870            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_primary_color_filter=116418&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8871               data-element="filter"
8872               data-hidden="false"
8873               data-search-hidden="false"
8874               data-letter-hidden="false"
8875               data-value="116418"
8876               rel="nofollow"
8877               aria-label="Black"
8878                              @click="handleClick"
8879               class="swatch-option-link-layered  swatch-option-link-layered swatch-option border-2 cursor-pointer bg-container-lighter shadow-sm relative select-none border-container-darker"
8880               :class="{ 'w-6 h-6' : getSwatchType('1') !== 'text' }"
8881               :style="getSwatchBackgroundStyle(
8882                    '1',
8883                    '#030303',
8884                    ''
8885                )"
8886                                        @mouseenter.self="activeTooltipItem = {
8887                            attribute: '&#x23;030303',
8888                            type: '1',
8889                            id: '116418',
8890                            label: 'Black',
8891                            thumb: '',
8892                            value: '&#x23;030303'
8893                        }; tooltipPositionElement = $event.target;"
8894                    @mouseleave.self="activeTooltipItem = false"
8895            >
8896                            </a>
8897                                
8898            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_primary_color_filter=116436&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8899               data-element="filter"
8900               data-hidden="false"
8901               data-search-hidden="false"
8902               data-letter-hidden="false"
8903               data-value="116436"
8904               rel="nofollow"
8905               aria-label="Assorted"
8906                              @click="handleClick"
8907               class="swatch-option-link-layered  swatch-option-link-layered swatch-option border-2 cursor-pointer bg-container-lighter shadow-sm relative select-none border-container-darker"
8908               :class="{ 'w-6 h-6' : getSwatchType('2') !== 'text' }"
8909               :style="getSwatchBackgroundStyle(
8910                    '2',
8911                    '/a/s/assorted.png',
8912                    'https://www.flooringinc.com/media/attribute/swatch/swatch_image/30x20/a/s/assorted.png'
8913                )"
8914                                        @mouseenter.self="activeTooltipItem = {
8915                            attribute: '&#x2F;a&#x2F;s&#x2F;assorted.png',
8916                            type: '2',
8917                            id: '116436',
8918                            label: 'Assorted',
8919                            thumb: 'https://www.flooringinc.com/media/attribute/swatch/swatch_thumb/110x90/a/s/assorted.png',
8920                            value: '&#x2F;a&#x2F;s&#x2F;assorted.png'
8921                        }; tooltipPositionElement = $event.target;"
8922                    @mouseleave.self="activeTooltipItem = false"
8923            >
8924                            </a>
8925                                
8926            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_primary_color_filter=116427&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8927               data-element="filter"
8928               data-hidden="false"
8929               data-search-hidden="false"
8930               data-letter-hidden="false"
8931               data-value="116427"
8932               rel="nofollow"
8933               aria-label="Rainbow"
8934                              @click="handleClick"
8935               class="swatch-option-link-layered  swatch-option-link-layered swatch-option border-2 cursor-pointer bg-container-lighter shadow-sm relative select-none border-container-darker"
8936               :class="{ 'w-6 h-6' : getSwatchType('2') !== 'text' }"
8937               :style="getSwatchBackgroundStyle(
8938                    '2',
8939                    '/r/a/rainbow-waves-background-free-vector.jpg',
8940                    'https://www.flooringinc.com/media/attribute/swatch/swatch_image/30x20/r/a/rainbow-waves-background-free-vector.jpg'
8941                )"
8942                                        @mouseenter.self="activeTooltipItem = {
8943                            attribute: '&#x2F;r&#x2F;a&#x2F;rainbow-waves-background-free-vector.jpg',
8944                            type: '2',
8945                            id: '116427',
8946                            label: 'Rainbow',
8947                            thumb: 'https://www.flooringinc.com/media/attribute/swatch/swatch_thumb/110x90/r/a/rainbow-waves-background-free-vector.jpg',
8948                            value: '&#x2F;r&#x2F;a&#x2F;rainbow-waves-background-free-vector.jpg'
8949                        }; tooltipPositionElement = $event.target;"
8950                    @mouseleave.self="activeTooltipItem = false"
8951            >
8952                            </a>
8953                                
8954            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_primary_color_filter=116412&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8955               data-element="filter"
8956               data-hidden="false"
8957               data-search-hidden="false"
8958               data-letter-hidden="false"
8959               data-value="116412"
8960               rel="nofollow"
8961               aria-label="Confetti"
8962                              @click="handleClick"
8963               class="swatch-option-link-layered  swatch-option-link-layered swatch-option border-2 cursor-pointer bg-container-lighter shadow-sm relative select-none border-container-darker"
8964               :class="{ 'w-6 h-6' : getSwatchType('2') !== 'text' }"
8965               :style="getSwatchBackgroundStyle(
8966                    '2',
8967                    '/c/o/confetti.jpg',
8968                    'https://www.flooringinc.com/media/attribute/swatch/swatch_image/30x20/c/o/confetti.jpg'
8969                )"
8970                                        @mouseenter.self="activeTooltipItem = {
8971                            attribute: '&#x2F;c&#x2F;o&#x2F;confetti.jpg',
8972                            type: '2',
8973                            id: '116412',
8974                            label: 'Confetti',
8975                            thumb: 'https://www.flooringinc.com/media/attribute/swatch/swatch_thumb/110x90/c/o/confetti.jpg',
8976                            value: '&#x2F;c&#x2F;o&#x2F;confetti.jpg'
8977                        }; tooltipPositionElement = $event.target;"
8978                    @mouseleave.self="activeTooltipItem = false"
8979            >
8980                            </a>
8981                                
8982            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_primary_color_filter=116397&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
8983               data-element="filter"
8984               data-hidden="false"
8985               data-search-hidden="false"
8986               data-letter-hidden="false"
8987               data-value="116397"
8988               rel="nofollow"
8989               aria-label="Gray"
8990                              @click="handleClick"
8991               class="swatch-option-link-layered  swatch-option-link-layered swatch-option border-2 cursor-pointer bg-container-lighter shadow-sm relative select-none border-container-darker"
8992               :class="{ 'w-6 h-6' : getSwatchType('1') !== 'text' }"
8993               :style="getSwatchBackgroundStyle(
8994                    '1',
8995                    '#78776f',
8996                    ''
8997                )"
8998                                        @mouseenter.self="activeTooltipItem = {
8999                            attribute: '&#x23;78776f',
9000                            type: '1',
9001                            id: '116397',
9002                            label: 'Gray',
9003                            thumb: '',
9004                            value: '&#x23;78776f'
9005                        }; tooltipPositionElement = $event.target;"
9006                    @mouseleave.self="activeTooltipItem = false"
9007            >
9008                            </a>
9009                                
9010            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_primary_color_filter=116424&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9011               data-element="filter"
9012               data-hidden="false"
9013               data-search-hidden="false"
9014               data-letter-hidden="false"
9015               data-value="116424"
9016               rel="nofollow"
9017               aria-label="Brown&#x2F;Tan"
9018                              @click="handleClick"
9019               class="swatch-option-link-layered  swatch-option-link-layered swatch-option border-2 cursor-pointer bg-container-lighter shadow-sm relative select-none border-container-darker"
9020               :class="{ 'w-6 h-6' : getSwatchType('1') !== 'text' }"
9021               :style="getSwatchBackgroundStyle(
9022                    '1',
9023                    '#8c651e',
9024                    ''
9025                )"
9026                                        @mouseenter.self="activeTooltipItem = {
9027                            attribute: '&#x23;8c651e',
9028                            type: '1',
9029                            id: '116424',
9030                            label: 'Brown&#x2F;Tan',
9031                            thumb: '',
9032                            value: '&#x23;8c651e'
9033                        }; tooltipPositionElement = $event.target;"
9034                    @mouseleave.self="activeTooltipItem = false"
9035            >
9036                            </a>
9037                                
9038            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_primary_color_filter=116493&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9039               data-element="filter"
9040               data-hidden="false"
9041               data-search-hidden="false"
9042               data-letter-hidden="false"
9043               data-value="116493"
9044               rel="nofollow"
9045               aria-label="Multi"
9046                              @click="handleClick"
9047               class="swatch-option-link-layered  swatch-option-link-layered swatch-option border-2 cursor-pointer bg-container-lighter shadow-sm relative select-none border-container-darker"
9048               :class="{ 'w-6 h-6' : getSwatchType('2') !== 'text' }"
9049               :style="getSwatchBackgroundStyle(
9050                    '2',
9051                    '/m/u/multi.png',
9052                    'https://www.flooringinc.com/media/attribute/swatch/swatch_image/30x20/m/u/multi.png'
9053                )"
9054                                        @mouseenter.self="activeTooltipItem = {
9055                            attribute: '&#x2F;m&#x2F;u&#x2F;multi.png',
9056                            type: '2',
9057                            id: '116493',
9058                            label: 'Multi',
9059                            thumb: 'https://www.flooringinc.com/media/attribute/swatch/swatch_thumb/110x90/m/u/multi.png',
9060                            value: '&#x2F;m&#x2F;u&#x2F;multi.png'
9061                        }; tooltipPositionElement = $event.target;"
9062                    @mouseleave.self="activeTooltipItem = false"
9063            >
9064                            </a>
9065            </div>
9066    <template x-if="isTooltipVisible()">
9067    <div class="absolute"
9068         :style="getTooltipPosition()"
9069    >
9070        <div class="shadow-lg">
9071            <div class="absolute top-0 left-0 z-10 min-w-20 p-2 -mt-6 text-sm leading-tight text-black
9072                    transform -translate-x-1/2 -translate-y-full bg-white rounded-lg shadow-lg text-center"
9073            >
9074            <template x-if="isVisualSwatch(activeTooltipItem.attribute, activeTooltipItem.item)">
9075                <div class="inline-block border shadow-sm border-container"
9076                     :style="getTooltipImageStyle(activeTooltipItem.attribute, activeTooltipItem.item)"
9077                ></div>
9078            </template>
9079                <span class="mx-2 text-lg font-semibold whitespace-nowrap subtitle"
9080                      x-html="getTooltipLabel()"
9081                ></span>
9082            </div>
9083            <svg class="absolute z-10 w-8 h-8 text-white transform -translate-x-1/5
9084                    -translate-y-8 fill-current stroke-current"
9085                 width="12"
9086                 height="12"
9087            >
9088                <rect x="12" y="-12" width="12" height="12" transform="rotate(45)" class="shadow-xl" />
9089            </svg>
9090        </div>
9091    </div>
9092</template>
9093    <div class="hidden mst-clear-options-link" data-checked-count="0">
9094        <div class="mst-nav__checked-counter__wrapper flex items-center mx-2">
9095            <div class="mst-nav__checked-counter rounded px-2 bg-gray-200 mr-1">0</div>
9096            <a class="hover:underline text-2xl opacity-50" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html" rel="nofollow" data-element="filter">&#10005;</a>
9097        </div>
9098    </div>
9099</div>
9100
9101                            </div>
9102                        </template>
9103                    </div>
9104                                                                <div id="filter-id-incstores_pim_lf_shipping_program" class="filter-option card my-4 px-0" x-data="{ open: false }">
9105                        <div
9106                            class="filter-options-title flex justify-between items-center cursor-pointer hover:text-secondary-darker border-container"
9107                            :class="{ 'border-b pb-4': open }"
9108                            @click="open = !open">
9109                            <span class="title text-md md:text-lg font-semibold">
9110                                Ships                                </span>
9111                            <span class="py-1 px-1 rounded border border-container">
9112                                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="transition-transform transform duration-300 ease-in-out" width="24" height="24" :class="{ 'rotate-180': open }" role="img">
9113  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
9114<title>chevron-down</title></svg>
9115                            </span>
9116                        </div>
9117                        <template x-if="open">
9118                            <div class="filter-options-content pt-2">
9119                                
9120<div data-mst-nav-filter="incstores_pim_lf_shipping_programA791808A" data-mst-nav-cache-key="791808" data-mst-attribute="incstores_pim_lf_shipping_program" class="mst-nav__label" x-data="initLabelRenderer()">
9121        <div
9122        data-holder="alphabetical"
9123        x-data="initAlphabeticalIndex(0, 5)"
9124        x-init="init()"
9125    ></div>
9126
9127    <ol class="items">
9128        
9129            
9130            <li data-element="filter"
9131                data-hidden="false"
9132                data-search-hidden="false"
9133                data-letter-hidden="false"
9134                class="item mst-nav__label-item _mode-checkbox    "
9135                data-value="116490"
9136                @click="handleClick"
9137                            >
9138                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_lf_shipping_program=116490&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9139                       rel="nofollow"
9140                       aria-label="Next&#x20;Day"
9141                    >
9142                        
9143                        <input id="m_incstores_pim_lf_shipping_program[116490]" type="checkbox"  />
9144
9145                        <label for="m_incstores_pim_lf_shipping_program[116490]">
9146                            <span class="mst-nav__label-item__label">Next Day</span>
9147                                                            <span class="count text-primary">1</span>
9148                                                    </label>
9149                    </a>
9150                            </li>
9151        
9152            
9153            <li data-element="filter"
9154                data-hidden="false"
9155                data-search-hidden="false"
9156                data-letter-hidden="false"
9157                class="item mst-nav__label-item _mode-checkbox    "
9158                data-value="116487"
9159                @click="handleClick"
9160                            >
9161                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_lf_shipping_program=116487&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9162                       rel="nofollow"
9163                       aria-label="Quick&#x20;Ship"
9164                    >
9165                        
9166                        <input id="m_incstores_pim_lf_shipping_program[116487]" type="checkbox"  />
9167
9168                        <label for="m_incstores_pim_lf_shipping_program[116487]">
9169                            <span class="mst-nav__label-item__label">Quick Ship</span>
9170                                                            <span class="count text-primary">21</span>
9171                                                    </label>
9172                    </a>
9173                            </li>
9174        
9175            
9176            <li data-element="filter"
9177                data-hidden="false"
9178                data-search-hidden="false"
9179                data-letter-hidden="false"
9180                class="item mst-nav__label-item _mode-checkbox    "
9181                data-value="116484"
9182                @click="handleClick"
9183                            >
9184                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_lf_shipping_program=116484&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9185                       rel="nofollow"
9186                       aria-label="Free&#x20;Shipping"
9187                    >
9188                        
9189                        <input id="m_incstores_pim_lf_shipping_program[116484]" type="checkbox"  />
9190
9191                        <label for="m_incstores_pim_lf_shipping_program[116484]">
9192                            <span class="mst-nav__label-item__label">Free Shipping</span>
9193                                                            <span class="count text-primary">4</span>
9194                                                    </label>
9195                    </a>
9196                            </li>
9197        
9198        
9199
9200    </ol>
9201
9202    <div class="hidden mst-clear-options-link" data-checked-count="0">
9203        <div class="mst-nav__checked-counter__wrapper flex items-center mx-2">
9204            <div class="mst-nav__checked-counter rounded px-2 bg-gray-200 mr-1">0</div>
9205            <a class="hover:underline text-2xl opacity-50" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html" data-element="filter">&#10005;</a>
9206        </div>
9207    </div>
9208    </div>
9209                            </div>
9210                        </template>
9211                    </div>
9212                                                                <div id="filter-id-incstores_pim_tf_made_in_usa" class="filter-option card my-4 px-0" x-data="{ open: false }">
9213                        <div
9214                            class="filter-options-title flex justify-between items-center cursor-pointer hover:text-secondary-darker border-container"
9215                            :class="{ 'border-b pb-4': open }"
9216                            @click="open = !open">
9217                            <span class="title text-md md:text-lg font-semibold">
9218                                Made In USA                                </span>
9219                            <span class="py-1 px-1 rounded border border-container">
9220                                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="transition-transform transform duration-300 ease-in-out" width="24" height="24" :class="{ 'rotate-180': open }" role="img">
9221  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
9222<title>chevron-down</title></svg>
9223                            </span>
9224                        </div>
9225                        <template x-if="open">
9226                            <div class="filter-options-content pt-2">
9227                                
9228<div data-mst-nav-filter="incstores_pim_tf_made_in_usaA612591A" data-mst-nav-cache-key="612591" data-mst-attribute="incstores_pim_tf_made_in_usa" class="mst-nav__label" x-data="initLabelRenderer()">
9229        <div
9230        data-holder="alphabetical"
9231        x-data="initAlphabeticalIndex(0, 5)"
9232        x-init="init()"
9233    ></div>
9234
9235    <ol class="items">
9236        
9237            
9238            <li data-element="filter"
9239                data-hidden="false"
9240                data-search-hidden="false"
9241                data-letter-hidden="false"
9242                class="item mst-nav__label-item _mode-checkbox    "
9243                data-value="116382"
9244                @click="handleClick"
9245                            >
9246                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_made_in_usa=116382&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9247                       rel="nofollow"
9248                       aria-label="Made&#x20;in&#x20;USA"
9249                    >
9250                        
9251                        <input id="m_incstores_pim_tf_made_in_usa[116382]" type="checkbox"  />
9252
9253                        <label for="m_incstores_pim_tf_made_in_usa[116382]">
9254                            <span class="mst-nav__label-item__label">Made in USA</span>
9255                                                            <span class="count text-primary">76</span>
9256                                                    </label>
9257                    </a>
9258                            </li>
9259        
9260        
9261
9262    </ol>
9263
9264    <div class="hidden mst-clear-options-link" data-checked-count="0">
9265        <div class="mst-nav__checked-counter__wrapper flex items-center mx-2">
9266            <div class="mst-nav__checked-counter rounded px-2 bg-gray-200 mr-1">0</div>
9267            <a class="hover:underline text-2xl opacity-50" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html" data-element="filter">&#10005;</a>
9268        </div>
9269    </div>
9270    </div>
9271                            </div>
9272                        </template>
9273                    </div>
9274                                                                <div id="filter-id-incstores_pim_tf_rubber_thickness" class="filter-option card my-4 px-0" x-data="{ open: false }">
9275                        <div
9276                            class="filter-options-title flex justify-between items-center cursor-pointer hover:text-secondary-darker border-container"
9277                            :class="{ 'border-b pb-4': open }"
9278                            @click="open = !open">
9279                            <span class="title text-md md:text-lg font-semibold">
9280                                Rubber Thickness                                </span>
9281                            <span class="py-1 px-1 rounded border border-container">
9282                                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="transition-transform transform duration-300 ease-in-out" width="24" height="24" :class="{ 'rotate-180': open }" role="img">
9283  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
9284<title>chevron-down</title></svg>
9285                            </span>
9286                        </div>
9287                        <template x-if="open">
9288                            <div class="filter-options-content pt-2">
9289                                
9290<div data-mst-nav-filter="incstores_pim_tf_rubber_thicknessA587373A" data-mst-nav-cache-key="587373" data-mst-attribute="incstores_pim_tf_rubber_thickness" class="mst-nav__label" x-data="initLabelRenderer()">
9291        <div
9292        data-holder="alphabetical"
9293        x-data="initAlphabeticalIndex(0, 5)"
9294        x-init="init()"
9295    ></div>
9296
9297    <ol class="items">
9298        
9299            
9300            <li data-element="filter"
9301                data-hidden="false"
9302                data-search-hidden="false"
9303                data-letter-hidden="false"
9304                class="item mst-nav__label-item _mode-checkbox    "
9305                data-value="116295"
9306                @click="handleClick"
9307                            >
9308                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_rubber_thickness=116295&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9309                       rel="nofollow"
9310                       aria-label="1&#x2F;8&quot;&#x20;&#x28;&#x7E;3mm&#x29;"
9311                    >
9312                        
9313                        <input id="m_incstores_pim_tf_rubber_thickness[116295]" type="checkbox"  />
9314
9315                        <label for="m_incstores_pim_tf_rubber_thickness[116295]">
9316                            <span class="mst-nav__label-item__label">1/8" (~3mm)</span>
9317                                                            <span class="count text-primary">5</span>
9318                                                    </label>
9319                    </a>
9320                            </li>
9321        
9322            
9323            <li data-element="filter"
9324                data-hidden="false"
9325                data-search-hidden="false"
9326                data-letter-hidden="false"
9327                class="item mst-nav__label-item _mode-checkbox    "
9328                data-value="116313"
9329                @click="handleClick"
9330                            >
9331                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_rubber_thickness=116313&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9332                       rel="nofollow"
9333                       aria-label="1&#x2F;4&quot;&#x20;&#x28;&#x7E;6mm&#x29;"
9334                    >
9335                        
9336                        <input id="m_incstores_pim_tf_rubber_thickness[116313]" type="checkbox"  />
9337
9338                        <label for="m_incstores_pim_tf_rubber_thickness[116313]">
9339                            <span class="mst-nav__label-item__label">1/4" (~6mm)</span>
9340                                                            <span class="count text-primary">17</span>
9341                                                    </label>
9342                    </a>
9343                            </li>
9344        
9345            
9346            <li data-element="filter"
9347                data-hidden="false"
9348                data-search-hidden="false"
9349                data-letter-hidden="false"
9350                class="item mst-nav__label-item _mode-checkbox    "
9351                data-value="116304"
9352                @click="handleClick"
9353                            >
9354                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_rubber_thickness=116304&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9355                       rel="nofollow"
9356                       aria-label="5&#x2F;16&quot;&#x20;&#x28;8mm&#x29;"
9357                    >
9358                        
9359                        <input id="m_incstores_pim_tf_rubber_thickness[116304]" type="checkbox"  />
9360
9361                        <label for="m_incstores_pim_tf_rubber_thickness[116304]">
9362                            <span class="mst-nav__label-item__label">5/16" (8mm)</span>
9363                                                            <span class="count text-primary">21</span>
9364                                                    </label>
9365                    </a>
9366                            </li>
9367        
9368            
9369            <li data-element="filter"
9370                data-hidden="false"
9371                data-search-hidden="false"
9372                data-letter-hidden="false"
9373                class="item mst-nav__label-item _mode-checkbox    "
9374                data-value="116310"
9375                @click="handleClick"
9376                            >
9377                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_rubber_thickness=116310&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9378                       rel="nofollow"
9379                       aria-label="3&#x2F;8&quot;&#x20;&#x28;&#x7E;9mm&#x29;"
9380                    >
9381                        
9382                        <input id="m_incstores_pim_tf_rubber_thickness[116310]" type="checkbox"  />
9383
9384                        <label for="m_incstores_pim_tf_rubber_thickness[116310]">
9385                            <span class="mst-nav__label-item__label">3/8" (~9mm)</span>
9386                                                            <span class="count text-primary">17</span>
9387                                                    </label>
9388                    </a>
9389                            </li>
9390        
9391            
9392            <li data-element="filter"
9393                data-hidden="false"
9394                data-search-hidden="false"
9395                data-letter-hidden="false"
9396                class="item mst-nav__label-item _mode-checkbox    "
9397                data-value="116298"
9398                @click="handleClick"
9399                            >
9400                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_rubber_thickness=116298&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9401                       rel="nofollow"
9402                       aria-label="1&#x2F;2&quot;&#x20;&#x28;&#x7E;12mm&#x29;"
9403                    >
9404                        
9405                        <input id="m_incstores_pim_tf_rubber_thickness[116298]" type="checkbox"  />
9406
9407                        <label for="m_incstores_pim_tf_rubber_thickness[116298]">
9408                            <span class="mst-nav__label-item__label">1/2" (~12mm)</span>
9409                                                            <span class="count text-primary">16</span>
9410                                                    </label>
9411                    </a>
9412                            </li>
9413        
9414            
9415            <li data-element="filter"
9416                data-hidden="false"
9417                data-search-hidden="false"
9418                data-letter-hidden="false"
9419                class="item mst-nav__label-item _mode-checkbox    "
9420                data-value="116307"
9421                @click="handleClick"
9422                            >
9423                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_rubber_thickness=116307&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9424                       rel="nofollow"
9425                       aria-label="3&#x2F;4&quot;&#x20;&#x28;19mm&#x29;"
9426                    >
9427                        
9428                        <input id="m_incstores_pim_tf_rubber_thickness[116307]" type="checkbox"  />
9429
9430                        <label for="m_incstores_pim_tf_rubber_thickness[116307]">
9431                            <span class="mst-nav__label-item__label">3/4" (19mm)</span>
9432                                                            <span class="count text-primary">13</span>
9433                                                    </label>
9434                    </a>
9435                            </li>
9436        
9437            
9438            <li data-element="filter"
9439                data-hidden="false"
9440                data-search-hidden="false"
9441                data-letter-hidden="false"
9442                class="item mst-nav__label-item _mode-checkbox    "
9443                data-value="116301"
9444                @click="handleClick"
9445                            >
9446                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_rubber_thickness=116301&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9447                       rel="nofollow"
9448                       aria-label="1&quot;&#x20;&#x28;&#x7E;25mm&#x29;"
9449                    >
9450                        
9451                        <input id="m_incstores_pim_tf_rubber_thickness[116301]" type="checkbox"  />
9452
9453                        <label for="m_incstores_pim_tf_rubber_thickness[116301]">
9454                            <span class="mst-nav__label-item__label">1" (~25mm)</span>
9455                                                            <span class="count text-primary">4</span>
9456                                                    </label>
9457                    </a>
9458                            </li>
9459        
9460        
9461
9462    </ol>
9463
9464    <div class="hidden mst-clear-options-link" data-checked-count="0">
9465        <div class="mst-nav__checked-counter__wrapper flex items-center mx-2">
9466            <div class="mst-nav__checked-counter rounded px-2 bg-gray-200 mr-1">0</div>
9467            <a class="hover:underline text-2xl opacity-50" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html" data-element="filter">&#10005;</a>
9468        </div>
9469    </div>
9470    </div>
9471                            </div>
9472                        </template>
9473                    </div>
9474                                                                <div id="filter-id-incstores_pim_tf_rubber_format" class="filter-option card my-4 px-0" x-data="{ open: false }">
9475                        <div
9476                            class="filter-options-title flex justify-between items-center cursor-pointer hover:text-secondary-darker border-container"
9477                            :class="{ 'border-b pb-4': open }"
9478                            @click="open = !open">
9479                            <span class="title text-md md:text-lg font-semibold">
9480                                Product Type                                </span>
9481                            <span class="py-1 px-1 rounded border border-container">
9482                                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="transition-transform transform duration-300 ease-in-out" width="24" height="24" :class="{ 'rotate-180': open }" role="img">
9483  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
9484<title>chevron-down</title></svg>
9485                            </span>
9486                        </div>
9487                        <template x-if="open">
9488                            <div class="filter-options-content pt-2">
9489                                
9490<div data-mst-nav-filter="incstores_pim_tf_rubber_formatA747845A" data-mst-nav-cache-key="747845" data-mst-attribute="incstores_pim_tf_rubber_format" class="mst-nav__label" x-data="initLabelRenderer()">
9491        <div
9492        data-holder="alphabetical"
9493        x-data="initAlphabeticalIndex(0, 5)"
9494        x-init="init()"
9495    ></div>
9496
9497    <ol class="items">
9498        
9499            
9500            <li data-element="filter"
9501                data-hidden="false"
9502                data-search-hidden="false"
9503                data-letter-hidden="false"
9504                class="item mst-nav__label-item _mode-checkbox    "
9505                data-value="116217"
9506                @click="handleClick"
9507                            >
9508                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_rubber_format=116217&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9509                       rel="nofollow"
9510                       aria-label="Playground&#x20;Mats"
9511                    >
9512                        
9513                        <input id="m_incstores_pim_tf_rubber_format[116217]" type="checkbox"  />
9514
9515                        <label for="m_incstores_pim_tf_rubber_format[116217]">
9516                            <span class="mst-nav__label-item__label">Playground Mats</span>
9517                                                            <span class="count text-primary">1</span>
9518                                                    </label>
9519                    </a>
9520                            </li>
9521        
9522            
9523            <li data-element="filter"
9524                data-hidden="false"
9525                data-search-hidden="false"
9526                data-letter-hidden="false"
9527                class="item mst-nav__label-item _mode-checkbox    "
9528                data-value="116223"
9529                @click="handleClick"
9530                            >
9531                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_rubber_format=116223&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9532                       rel="nofollow"
9533                       aria-label="Playground&#x20;Tiles"
9534                    >
9535                        
9536                        <input id="m_incstores_pim_tf_rubber_format[116223]" type="checkbox"  />
9537
9538                        <label for="m_incstores_pim_tf_rubber_format[116223]">
9539                            <span class="mst-nav__label-item__label">Playground Tiles</span>
9540                                                            <span class="count text-primary">7</span>
9541                                                    </label>
9542                    </a>
9543                            </li>
9544        
9545            
9546            <li data-element="filter"
9547                data-hidden="false"
9548                data-search-hidden="false"
9549                data-letter-hidden="false"
9550                class="item mst-nav__label-item _mode-checkbox    "
9551                data-value="116211"
9552                @click="handleClick"
9553                            >
9554                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_rubber_format=116211&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9555                       rel="nofollow"
9556                       aria-label="Rubber&#x20;Mats"
9557                    >
9558                        
9559                        <input id="m_incstores_pim_tf_rubber_format[116211]" type="checkbox"  />
9560
9561                        <label for="m_incstores_pim_tf_rubber_format[116211]">
9562                            <span class="mst-nav__label-item__label">Rubber Mats</span>
9563                                                            <span class="count text-primary">15</span>
9564                                                    </label>
9565                    </a>
9566                            </li>
9567        
9568            
9569            <li data-element="filter"
9570                data-hidden="false"
9571                data-search-hidden="false"
9572                data-letter-hidden="false"
9573                class="item mst-nav__label-item _mode-checkbox    "
9574                data-value="116220"
9575                @click="handleClick"
9576                            >
9577                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_rubber_format=116220&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9578                       rel="nofollow"
9579                       aria-label="Rubber&#x20;Mulch"
9580                    >
9581                        
9582                        <input id="m_incstores_pim_tf_rubber_format[116220]" type="checkbox"  />
9583
9584                        <label for="m_incstores_pim_tf_rubber_format[116220]">
9585                            <span class="mst-nav__label-item__label">Rubber Mulch</span>
9586                                                            <span class="count text-primary">3</span>
9587                                                    </label>
9588                    </a>
9589                            </li>
9590        
9591            
9592            <li data-element="filter"
9593                data-hidden="false"
9594                data-search-hidden="false"
9595                data-letter-hidden="false"
9596                class="item mst-nav__label-item _mode-checkbox    "
9597                data-value="116214"
9598                @click="handleClick"
9599                            >
9600                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_rubber_format=116214&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9601                       rel="nofollow"
9602                       aria-label="Rubber&#x20;Rolls"
9603                    >
9604                        
9605                        <input id="m_incstores_pim_tf_rubber_format[116214]" type="checkbox"  />
9606
9607                        <label for="m_incstores_pim_tf_rubber_format[116214]">
9608                            <span class="mst-nav__label-item__label">Rubber Rolls</span>
9609                                                            <span class="count text-primary">22</span>
9610                                                    </label>
9611                    </a>
9612                            </li>
9613        
9614            
9615            <li data-element="filter"
9616                data-hidden="false"
9617                data-search-hidden="false"
9618                data-letter-hidden="false"
9619                class="item mst-nav__label-item _mode-checkbox    "
9620                data-value="116226"
9621                @click="handleClick"
9622                            >
9623                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_rubber_format=116226&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9624                       rel="nofollow"
9625                       aria-label="Rubber&#x20;Tiles"
9626                    >
9627                        
9628                        <input id="m_incstores_pim_tf_rubber_format[116226]" type="checkbox"  />
9629
9630                        <label for="m_incstores_pim_tf_rubber_format[116226]">
9631                            <span class="mst-nav__label-item__label">Rubber Tiles</span>
9632                                                            <span class="count text-primary">28</span>
9633                                                    </label>
9634                    </a>
9635                            </li>
9636        
9637            
9638            <li data-element="filter"
9639                data-hidden="false"
9640                data-search-hidden="false"
9641                data-letter-hidden="false"
9642                class="item mst-nav__label-item _mode-checkbox    "
9643                data-value="116496"
9644                @click="handleClick"
9645                            >
9646                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_rubber_format=116496&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9647                       rel="nofollow"
9648                       aria-label="Soft&#x20;Foam"
9649                    >
9650                        
9651                        <input id="m_incstores_pim_tf_rubber_format[116496]" type="checkbox"  />
9652
9653                        <label for="m_incstores_pim_tf_rubber_format[116496]">
9654                            <span class="mst-nav__label-item__label">Soft Foam</span>
9655                                                            <span class="count text-primary">1</span>
9656                                                    </label>
9657                    </a>
9658                            </li>
9659        
9660        
9661
9662    </ol>
9663
9664    <div class="hidden mst-clear-options-link" data-checked-count="0">
9665        <div class="mst-nav__checked-counter__wrapper flex items-center mx-2">
9666            <div class="mst-nav__checked-counter rounded px-2 bg-gray-200 mr-1">0</div>
9667            <a class="hover:underline text-2xl opacity-50" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html" data-element="filter">&#10005;</a>
9668        </div>
9669    </div>
9670    </div>
9671                            </div>
9672                        </template>
9673                    </div>
9674                                                                <div id="filter-id-incstores_pim_tf_sport" class="filter-option card my-4 px-0" x-data="{ open: false }">
9675                        <div
9676                            class="filter-options-title flex justify-between items-center cursor-pointer hover:text-secondary-darker border-container"
9677                            :class="{ 'border-b pb-4': open }"
9678                            @click="open = !open">
9679                            <span class="title text-md md:text-lg font-semibold">
9680                                Sport                                </span>
9681                            <span class="py-1 px-1 rounded border border-container">
9682                                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="transition-transform transform duration-300 ease-in-out" width="24" height="24" :class="{ 'rotate-180': open }" role="img">
9683  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
9684<title>chevron-down</title></svg>
9685                            </span>
9686                        </div>
9687                        <template x-if="open">
9688                            <div class="filter-options-content pt-2">
9689                                
9690<div data-mst-nav-filter="incstores_pim_tf_sportA272596A" data-mst-nav-cache-key="272596" data-mst-attribute="incstores_pim_tf_sport" class="mst-nav__label" x-data="initLabelRenderer()">
9691        <div
9692        data-holder="alphabetical"
9693        x-data="initAlphabeticalIndex(0, 5)"
9694        x-init="init()"
9695    ></div>
9696
9697    <ol class="items">
9698        
9699            
9700            <li data-element="filter"
9701                data-hidden="false"
9702                data-search-hidden="false"
9703                data-letter-hidden="false"
9704                class="item mst-nav__label-item _mode-checkbox    "
9705                data-value="116334"
9706                @click="handleClick"
9707                            >
9708                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_sport=116334&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9709                       rel="nofollow"
9710                       aria-label="Basketball"
9711                    >
9712                        
9713                        <input id="m_incstores_pim_tf_sport[116334]" type="checkbox"  />
9714
9715                        <label for="m_incstores_pim_tf_sport[116334]">
9716                            <span class="mst-nav__label-item__label">Basketball</span>
9717                                                            <span class="count text-primary">1</span>
9718                                                    </label>
9719                    </a>
9720                            </li>
9721        
9722            
9723            <li data-element="filter"
9724                data-hidden="false"
9725                data-search-hidden="false"
9726                data-letter-hidden="false"
9727                class="item mst-nav__label-item _mode-checkbox    "
9728                data-value="116343"
9729                @click="handleClick"
9730                            >
9731                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_sport=116343&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9732                       rel="nofollow"
9733                       aria-label="CrossFit"
9734                    >
9735                        
9736                        <input id="m_incstores_pim_tf_sport[116343]" type="checkbox"  />
9737
9738                        <label for="m_incstores_pim_tf_sport[116343]">
9739                            <span class="mst-nav__label-item__label">CrossFit</span>
9740                                                            <span class="count text-primary">19</span>
9741                                                    </label>
9742                    </a>
9743                            </li>
9744        
9745            
9746            <li data-element="filter"
9747                data-hidden="false"
9748                data-search-hidden="false"
9749                data-letter-hidden="false"
9750                class="item mst-nav__label-item _mode-checkbox    "
9751                data-value="116340"
9752                @click="handleClick"
9753                            >
9754                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_sport=116340&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9755                       rel="nofollow"
9756                       aria-label="Volleyball"
9757                    >
9758                        
9759                        <input id="m_incstores_pim_tf_sport[116340]" type="checkbox"  />
9760
9761                        <label for="m_incstores_pim_tf_sport[116340]">
9762                            <span class="mst-nav__label-item__label">Volleyball</span>
9763                                                            <span class="count text-primary">1</span>
9764                                                    </label>
9765                    </a>
9766                            </li>
9767        
9768        
9769
9770    </ol>
9771
9772    <div class="hidden mst-clear-options-link" data-checked-count="0">
9773        <div class="mst-nav__checked-counter__wrapper flex items-center mx-2">
9774            <div class="mst-nav__checked-counter rounded px-2 bg-gray-200 mr-1">0</div>
9775            <a class="hover:underline text-2xl opacity-50" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html" data-element="filter">&#10005;</a>
9776        </div>
9777    </div>
9778    </div>
9779                            </div>
9780                        </template>
9781                    </div>
9782                                                                                            <div id="filter-id-incstores_pim_tf_underlayment_type" class="filter-option card my-4 px-0" x-data="{ open: false }">
9783                        <div
9784                            class="filter-options-title flex justify-between items-center cursor-pointer hover:text-secondary-darker border-container"
9785                            :class="{ 'border-b pb-4': open }"
9786                            @click="open = !open">
9787                            <span class="title text-md md:text-lg font-semibold">
9788                                Underlayment Type                                </span>
9789                            <span class="py-1 px-1 rounded border border-container">
9790                                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="transition-transform transform duration-300 ease-in-out" width="24" height="24" :class="{ 'rotate-180': open }" role="img">
9791  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
9792<title>chevron-down</title></svg>
9793                            </span>
9794                        </div>
9795                        <template x-if="open">
9796                            <div class="filter-options-content pt-2">
9797                                
9798<div data-mst-nav-filter="incstores_pim_tf_underlayment_typeA245860A" data-mst-nav-cache-key="245860" data-mst-attribute="incstores_pim_tf_underlayment_type" class="mst-nav__label" x-data="initLabelRenderer()">
9799        <div
9800        data-holder="alphabetical"
9801        x-data="initAlphabeticalIndex(0, 5)"
9802        x-init="init()"
9803    ></div>
9804
9805    <ol class="items">
9806        
9807            
9808            <li data-element="filter"
9809                data-hidden="false"
9810                data-search-hidden="false"
9811                data-letter-hidden="false"
9812                class="item mst-nav__label-item _mode-checkbox    "
9813                data-value="116232"
9814                @click="handleClick"
9815                            >
9816                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_tf_underlayment_type=116232&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9817                       rel="nofollow"
9818                       aria-label="Rubber"
9819                    >
9820                        
9821                        <input id="m_incstores_pim_tf_underlayment_type[116232]" type="checkbox"  />
9822
9823                        <label for="m_incstores_pim_tf_underlayment_type[116232]">
9824                            <span class="mst-nav__label-item__label">Rubber</span>
9825                                                            <span class="count text-primary">7</span>
9826                                                    </label>
9827                    </a>
9828                            </li>
9829        
9830        
9831
9832    </ol>
9833
9834    <div class="hidden mst-clear-options-link" data-checked-count="0">
9835        <div class="mst-nav__checked-counter__wrapper flex items-center mx-2">
9836            <div class="mst-nav__checked-counter rounded px-2 bg-gray-200 mr-1">0</div>
9837            <a class="hover:underline text-2xl opacity-50" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html" data-element="filter">&#10005;</a>
9838        </div>
9839    </div>
9840    </div>
9841                            </div>
9842                        </template>
9843                    </div>
9844                                                                                                                                                                                                            <div id="filter-id-incstores_pim_lf_features" class="filter-option card my-4 px-0" x-data="{ open: false }">
9845                        <div
9846                            class="filter-options-title flex justify-between items-center cursor-pointer hover:text-secondary-darker border-container"
9847                            :class="{ 'border-b pb-4': open }"
9848                            @click="open = !open">
9849                            <span class="title text-md md:text-lg font-semibold">
9850                                Features                                </span>
9851                            <span class="py-1 px-1 rounded border border-container">
9852                                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="transition-transform transform duration-300 ease-in-out" width="24" height="24" :class="{ 'rotate-180': open }" role="img">
9853  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
9854<title>chevron-down</title></svg>
9855                            </span>
9856                        </div>
9857                        <template x-if="open">
9858                            <div class="filter-options-content pt-2">
9859                                
9860<div data-mst-nav-filter="incstores_pim_lf_featuresA253593A" data-mst-nav-cache-key="253593" data-mst-attribute="incstores_pim_lf_features" class="mst-nav__label" x-data="initLabelRenderer()">
9861        <div
9862        data-holder="alphabetical"
9863        x-data="initAlphabeticalIndex(0, 5)"
9864        x-init="init()"
9865    ></div>
9866
9867    <ol class="items">
9868        
9869            
9870            <li data-element="filter"
9871                data-hidden="false"
9872                data-search-hidden="false"
9873                data-letter-hidden="false"
9874                class="item mst-nav__label-item _mode-checkbox    "
9875                data-value="116472"
9876                @click="handleClick"
9877                            >
9878                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_lf_features=116472&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9879                       rel="nofollow"
9880                       aria-label="Drainage"
9881                    >
9882                        
9883                        <input id="m_incstores_pim_lf_features[116472]" type="checkbox"  />
9884
9885                        <label for="m_incstores_pim_lf_features[116472]">
9886                            <span class="mst-nav__label-item__label">Drainage</span>
9887                                                            <span class="count text-primary">4</span>
9888                                                    </label>
9889                    </a>
9890                            </li>
9891        
9892            
9893            <li data-element="filter"
9894                data-hidden="false"
9895                data-search-hidden="false"
9896                data-letter-hidden="false"
9897                class="item mst-nav__label-item _mode-checkbox    "
9898                data-value="116475"
9899                @click="handleClick"
9900                            >
9901                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_lf_features=116475&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9902                       rel="nofollow"
9903                       aria-label="Mold&#x20;&amp;&#x20;Mildew&#x20;Resistant"
9904                    >
9905                        
9906                        <input id="m_incstores_pim_lf_features[116475]" type="checkbox"  />
9907
9908                        <label for="m_incstores_pim_lf_features[116475]">
9909                            <span class="mst-nav__label-item__label">Mold & Mildew Resistant</span>
9910                                                            <span class="count text-primary">40</span>
9911                                                    </label>
9912                    </a>
9913                            </li>
9914        
9915            
9916            <li data-element="filter"
9917                data-hidden="false"
9918                data-search-hidden="false"
9919                data-letter-hidden="false"
9920                class="item mst-nav__label-item _mode-checkbox    "
9921                data-value="116469"
9922                @click="handleClick"
9923                            >
9924                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_lf_features=116469&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9925                       rel="nofollow"
9926                       aria-label="Recycled&#x20;Content"
9927                    >
9928                        
9929                        <input id="m_incstores_pim_lf_features[116469]" type="checkbox"  />
9930
9931                        <label for="m_incstores_pim_lf_features[116469]">
9932                            <span class="mst-nav__label-item__label">Recycled Content</span>
9933                                                            <span class="count text-primary">48</span>
9934                                                    </label>
9935                    </a>
9936                            </li>
9937        
9938            
9939            <li data-element="filter"
9940                data-hidden="false"
9941                data-search-hidden="false"
9942                data-letter-hidden="false"
9943                class="item mst-nav__label-item _mode-checkbox    "
9944                data-value="116463"
9945                @click="handleClick"
9946                            >
9947                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_lf_features=116463&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9948                       rel="nofollow"
9949                       aria-label="UV&#x20;Stable"
9950                    >
9951                        
9952                        <input id="m_incstores_pim_lf_features[116463]" type="checkbox"  />
9953
9954                        <label for="m_incstores_pim_lf_features[116463]">
9955                            <span class="mst-nav__label-item__label">UV Stable</span>
9956                                                            <span class="count text-primary">5</span>
9957                                                    </label>
9958                    </a>
9959                            </li>
9960        
9961            
9962            <li data-element="filter"
9963                data-hidden="false"
9964                data-search-hidden="false"
9965                data-letter-hidden="false"
9966                class="item mst-nav__label-item _mode-checkbox    "
9967                data-value="116694"
9968                @click="handleClick"
9969                            >
9970                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_lf_features=116694&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
9971                       rel="nofollow"
9972                       aria-label="Vulcanized"
9973                    >
9974                        
9975                        <input id="m_incstores_pim_lf_features[116694]" type="checkbox"  />
9976
9977                        <label for="m_incstores_pim_lf_features[116694]">
9978                            <span class="mst-nav__label-item__label">Vulcanized</span>
9979                                                            <span class="count text-primary">6</span>
9980                                                    </label>
9981                    </a>
9982                            </li>
9983        
9984        
9985
9986    </ol>
9987
9988    <div class="hidden mst-clear-options-link" data-checked-count="0">
9989        <div class="mst-nav__checked-counter__wrapper flex items-center mx-2">
9990            <div class="mst-nav__checked-counter rounded px-2 bg-gray-200 mr-1">0</div>
9991            <a class="hover:underline text-2xl opacity-50" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html" data-element="filter">&#10005;</a>
9992        </div>
9993    </div>
9994    </div>
9995                            </div>
9996                        </template>
9997                    </div>
9998                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <div id="filter-id-incstores_pim_warranty_filter" class="filter-option card my-4 px-0" x-data="{ open: false }">
9999                        <div
10000                            class="filter-options-title flex justify-between items-center cursor-pointer hover:text-secondary-darker border-container"
10001                            :class="{ 'border-b pb-4': open }"
10002                            @click="open = !open">
10003                            <span class="title text-md md:text-lg font-semibold">
10004                                Warranty Filter                                </span>
10005                            <span class="py-1 px-1 rounded border border-container">
10006                                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="transition-transform transform duration-300 ease-in-out" width="24" height="24" :class="{ 'rotate-180': open }" role="img">
10007  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
10008<title>chevron-down</title></svg>
10009                            </span>
10010                        </div>
10011                        <template x-if="open">
10012                            <div class="filter-options-content pt-2">
10013                                
10014<div data-mst-nav-filter="incstores_pim_warranty_filterA514291A" data-mst-nav-cache-key="514291" data-mst-attribute="incstores_pim_warranty_filter" class="mst-nav__label" x-data="initLabelRenderer()">
10015        <div
10016        data-holder="alphabetical"
10017        x-data="initAlphabeticalIndex(0, 5)"
10018        x-init="init()"
10019    ></div>
10020
10021    <ol class="items">
10022        
10023            
10024            <li data-element="filter"
10025                data-hidden="false"
10026                data-search-hidden="false"
10027                data-letter-hidden="false"
10028                class="item mst-nav__label-item _mode-checkbox    "
10029                data-value="115295"
10030                @click="handleClick"
10031                            >
10032                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_warranty_filter=115295&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
10033                       rel="nofollow"
10034                       aria-label="5&#x20;Year"
10035                    >
10036                        
10037                        <input id="m_incstores_pim_warranty_filter[115295]" type="checkbox"  />
10038
10039                        <label for="m_incstores_pim_warranty_filter[115295]">
10040                            <span class="mst-nav__label-item__label">5 Year</span>
10041                                                            <span class="count text-primary">42</span>
10042                                                    </label>
10043                    </a>
10044                            </li>
10045        
10046            
10047            <li data-element="filter"
10048                data-hidden="false"
10049                data-search-hidden="false"
10050                data-letter-hidden="false"
10051                class="item mst-nav__label-item _mode-checkbox    "
10052                data-value="115358"
10053                @click="handleClick"
10054                            >
10055                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_warranty_filter=115358&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
10056                       rel="nofollow"
10057                       aria-label="10&#x20;Year"
10058                    >
10059                        
10060                        <input id="m_incstores_pim_warranty_filter[115358]" type="checkbox"  />
10061
10062                        <label for="m_incstores_pim_warranty_filter[115358]">
10063                            <span class="mst-nav__label-item__label">10 Year</span>
10064                                                            <span class="count text-primary">5</span>
10065                                                    </label>
10066                    </a>
10067                            </li>
10068        
10069            
10070            <li data-element="filter"
10071                data-hidden="false"
10072                data-search-hidden="false"
10073                data-letter-hidden="false"
10074                class="item mst-nav__label-item _mode-checkbox    "
10075                data-value="115355"
10076                @click="handleClick"
10077                            >
10078                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_warranty_f
10078ilter=115355&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
10079                       rel="nofollow"
10080                       aria-label="12&#x20;Year"
10081                    >
10082                        
10083                        <input id="m_incstores_pim_warranty_filter[115355]" type="checkbox"  />
10084
10085                        <label for="m_incstores_pim_warranty_filter[115355]">
10086                            <span class="mst-nav__label-item__label">12 Year</span>
10087                                                            <span class="count text-primary">2</span>
10088                                                    </label>
10089                    </a>
10090                            </li>
10091        
10092            
10093            <li data-element="filter"
10094                data-hidden="false"
10095                data-search-hidden="false"
10096                data-letter-hidden="false"
10097                class="item mst-nav__label-item _mode-checkbox    "
10098                data-value="115298"
10099                @click="handleClick"
10100                            >
10101                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_warranty_filter=115298&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
10102                       rel="nofollow"
10103                       aria-label="15&#x20;Year"
10104                    >
10105                        
10106                        <input id="m_incstores_pim_warranty_filter[115298]" type="checkbox"  />
10107
10108                        <label for="m_incstores_pim_warranty_filter[115298]">
10109                            <span class="mst-nav__label-item__label">15 Year</span>
10110                                                            <span class="count text-primary">2</span>
10111                                                    </label>
10112                    </a>
10113                            </li>
10114        
10115            
10116            <li data-element="filter"
10117                data-hidden="false"
10118                data-search-hidden="false"
10119                data-letter-hidden="false"
10120                class="item mst-nav__label-item _mode-checkbox    "
10121                data-value="115304"
10122                @click="handleClick"
10123                            >
10124                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_warranty_filter=115304&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
10125                       rel="nofollow"
10126                       aria-label="25&#x20;Year"
10127                    >
10128                        
10129                        <input id="m_incstores_pim_warranty_filter[115304]" type="checkbox"  />
10130
10131                        <label for="m_incstores_pim_warranty_filter[115304]">
10132                            <span class="mst-nav__label-item__label">25 Year</span>
10133                                                            <span class="count text-primary">4</span>
10134                                                    </label>
10135                    </a>
10136                            </li>
10137        
10138            
10139            <li data-element="filter"
10140                data-hidden="false"
10141                data-search-hidden="false"
10142                data-letter-hidden="false"
10143                class="item mst-nav__label-item _mode-checkbox    "
10144                data-value="115334"
10145                @click="handleClick"
10146                            >
10147                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_warranty_filter=115334&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
10148                       rel="nofollow"
10149                       aria-label="Lifetime"
10150                    >
10151                        
10152                        <input id="m_incstores_pim_warranty_filter[115334]" type="checkbox"  />
10153
10154                        <label for="m_incstores_pim_warranty_filter[115334]">
10155                            <span class="mst-nav__label-item__label">Lifetime</span>
10156                                                            <span class="count text-primary">1</span>
10157                                                    </label>
10158                    </a>
10159                            </li>
10160        
10161        
10162
10163    </ol>
10164
10165    <div class="hidden mst-clear-options-link" data-checked-count="0">
10166        <div class="mst-nav__checked-counter__wrapper flex items-center mx-2">
10167            <div class="mst-nav__checked-counter rounded px-2 bg-gray-200 mr-1">0</div>
10168            <a class="hover:underline text-2xl opacity-50" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html" data-element="filter">&#10005;</a>
10169        </div>
10170    </div>
10171    </div>
10172                            </div>
10173                        </template>
10174                    </div>
10175                                                                                            <div id="filter-id-incstores_pim_certifications" class="filter-option card my-4 px-0" x-data="{ open: false }">
10176                        <div
10177                            class="filter-options-title flex justify-between items-center cursor-pointer hover:text-secondary-darker border-container"
10178                            :class="{ 'border-b pb-4': open }"
10179                            @click="open = !open">
10180                            <span class="title text-md md:text-lg font-semibold">
10181                                Certifications                                </span>
10182                            <span class="py-1 px-1 rounded border border-container">
10183                                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="transition-transform transform duration-300 ease-in-out" width="24" height="24" :class="{ 'rotate-180': open }" role="img">
10184  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
10185<title>chevron-down</title></svg>
10186                            </span>
10187                        </div>
10188                        <template x-if="open">
10189                            <div class="filter-options-content pt-2">
10190                                
10191<div data-mst-nav-filter="incstores_pim_certificationsA676832A" data-mst-nav-cache-key="676832" data-mst-attribute="incstores_pim_certifications" class="mst-nav__label" x-data="initLabelRenderer()">
10192        <div
10193        data-holder="alphabetical"
10194        x-data="initAlphabeticalIndex(0, 5)"
10195        x-init="init()"
10196    ></div>
10197
10198    <ol class="items">
10199        
10200            
10201            <li data-element="filter"
10202                data-hidden="false"
10203                data-search-hidden="false"
10204                data-letter-hidden="false"
10205                class="item mst-nav__label-item _mode-checkbox    "
10206                data-value="115202"
10207                @click="handleClick"
10208                            >
10209                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_certifications=115202&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
10210                       rel="nofollow"
10211                       aria-label="Greenguard&#x20;-&#x20;Low&#x20;Chemical&#x20;Emissions"
10212                    >
10213                        
10214                        <input id="m_incstores_pim_certifications[115202]" type="checkbox"  />
10215
10216                        <label for="m_incstores_pim_certifications[115202]">
10217                            <span class="mst-nav__label-item__label">Greenguard - Low Chemical Emissions</span>
10218                                                            <span class="count text-primary">1</span>
10219                                                    </label>
10220                    </a>
10221                            </li>
10222        
10223        
10224
10225    </ol>
10226
10227    <div class="hidden mst-clear-options-link" data-checked-count="0">
10228        <div class="mst-nav__checked-counter__wrapper flex items-center mx-2">
10229            <div class="mst-nav__checked-counter rounded px-2 bg-gray-200 mr-1">0</div>
10230            <a class="hover:underline text-2xl opacity-50" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html" data-element="filter">&#10005;</a>
10231        </div>
10232    </div>
10233    </div>
10234                            </div>
10235                        </template>
10236                    </div>
10237                                                                                            <div id="filter-id-incstores_pim_installation_location" class="filter-option card my-4 px-0" x-data="{ open: false }">
10238                        <div
10239                            class="filter-options-title flex justify-between items-center cursor-pointer hover:text-secondary-darker border-container"
10240                            :class="{ 'border-b pb-4': open }"
10241                            @click="open = !open">
10242                            <span class="title text-md md:text-lg font-semibold">
10243                                Installation Location                                </span>
10244                            <span class="py-1 px-1 rounded border border-container">
10245                                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="transition-transform transform duration-300 ease-in-out" width="24" height="24" :class="{ 'rotate-180': open }" role="img">
10246  <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"/>
10247<title>chevron-down</title></svg>
10248                            </span>
10249                        </div>
10250                        <template x-if="open">
10251                            <div class="filter-options-content pt-2">
10252                                
10253<div data-mst-nav-filter="incstores_pim_installation_locationA453330A" data-mst-nav-cache-key="453330" data-mst-attribute="incstores_pim_installation_location" class="mst-nav__label" x-data="initLabelRenderer()">
10254        <div
10255        data-holder="alphabetical"
10256        x-data="initAlphabeticalIndex(0, 5)"
10257        x-init="init()"
10258    ></div>
10259
10260    <ol class="items">
10261        
10262            
10263            <li data-element="filter"
10264                data-hidden="false"
10265                data-search-hidden="false"
10266                data-letter-hidden="false"
10267                class="item mst-nav__label-item _mode-checkbox    "
10268                data-value="101297"
10269                @click="handleClick"
10270                            >
10271                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_installation_location=101297&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
10272                       rel="nofollow"
10273                       aria-label="Outdoor"
10274                    >
10275                        
10276                        <input id="m_incstores_pim_installation_location[101297]" type="checkbox"  />
10277
10278                        <label for="m_incstores_pim_installation_location[101297]">
10279                            <span class="mst-nav__label-item__label">Outdoor</span>
10280                                                            <span class="count text-primary">16</span>
10281                                                    </label>
10282                    </a>
10283                            </li>
10284        
10285            
10286            <li data-element="filter"
10287                data-hidden="false"
10288                data-search-hidden="false"
10289                data-letter-hidden="false"
10290                class="item mst-nav__label-item _mode-checkbox    "
10291                data-value="116706"
10292                @click="handleClick"
10293                            >
10294                                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_installation_location=116706&product_list_mode=list&product_list_dir=desc&product_list_order=revenue_ranking"
10295                       rel="nofollow"
10296                       aria-label="Indoor"
10297                    >
10298                        
10299                        <input id="m_incstores_pim_installation_location[116706]" type="checkbox"  />
10300
10301                        <label for="m_incstores_pim_installation_location[116706]">
10302                            <span class="mst-nav__label-item__label">Indoor</span>
10303                                                            <span class="count text-primary">4</span>
10304                                                    </label>
10305                    </a>
10306                            </li>
10307        
10308        
10309
10310    </ol>
10311
10312    <div class="hidden mst-clear-options-link" data-checked-count="0">
10313        <div class="mst-nav__checked-counter__wrapper flex items-center mx-2">
10314            <div class="mst-nav__checked-counter rounded px-2 bg-gray-200 mr-1">0</div>
10315            <a class="hover:underline text-2xl opacity-50" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html" data-element="filter">&#10005;</a>
10316        </div>
10317    </div>
10318    </div>
10319                            </div>
10320                        </template>
10321                    </div>
10322                                                                                            </div>
10323    </div>
10324    
10324<script>
10325        function initLayeredNavigation() {
10326            return {
10327                isMobile: false,
10328                blockOpen: false,
10329                checkIsMobileResolution() {
10330                    this.isMobile = window.matchMedia('(max-width: 767px)').matches;
10331                }
10332            }
10333        }
10334    </script>
10334
10335</aside><div class="column main"><div x-data="recommendedProducts_above_main_content()"
10336     x-init="initProductRecBlock()"
10337     id="recs_block_above_main_content"
10338     class="products__recommendations">
10339    <template x-if="productBanners">
10340        <div>
10341            <template x-for="banner in productBanners">
10342                <div class="product-slider" x-defer="intersect">
10343                    <section class="my-12 text-gray-700 body-font"
10344                        tabindex="0"
10345                        role="region"
10346                        aria-label="Recommended products carousel"
10347                        aria-roledescription="carousel"
10348                        @keydown.arrow-right.prevent="$refs.next.click()"
10349                        @keydown.arrow-left.prevent="$refs.prev.click()"
10350                    >
10351                        <div class="relative">
10352                        <div class="flex w-full">
10353                            <h3 x-text='banner.storefrontLabel'
10354                                class="font-semibold"></h3>
10355                        </div>
10356                        <div class="relative flex flex-nowrap w-full recommended-slider-items products_slider" data-content-type="recommended-products">
10357                            <div class="sr-only"
10358                                aria-live="polite"
10359                                x-text="'Showing ' + banner.products.length + ' recommended products'">
10360                            </div>
10361                            <div id="recommended-slider" class="overflow-x-hidden max-slide" data-role="glider-recommended">
10362                                <template x-for="product in banner.products">
10363                                    <div class="flex shrink-0 w-full js_slide md:w-1/3 lg:w-1/5 xl:w-1/6 recommended-slider-item">
10364                                        <form method="post" x-bind:action="createAddToCartUrl(product.productId)"
10365                                            @submit.prevent="addToCartRecsEvent($event.target, banner.unitId, product.productId)"
10366                                            class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full catergory_slider_content bg-white">
10367                                            <input name="form_key" type="hidden" :value="hyva.getFormKey()"/>
10368                                            <input type="hidden" name="product" x-bind:value="product.productId">
10369                                            <a :href="new URL(product.url, window.location.origin).pathname" @click="recsClickEvent(banner.unitId, product.productId, product.url)"
10370                                            class="product photo product-item-photo block cursor-pointer"
10371                                            tabindex="-1">
10372                                                <div class="product-list-image relative w-full overflow-hidden"
10373                                                     x-data="recProductImage(product)"
10374                                                     :class="{ 'is-hovered': hovered }"
10375                                                     x-on:mouseenter="onEnter()"
10376                                                     x-on:mousemove.debounce.80ms="onMove()"
10377                                                     x-on:mouseleave="onLeave()">
10378                                                    <img class="product-list-image-primary hover:shadow-sm object-contain w-full"
10379                                                         loading="eager"
10380                                                         x-bind:alt="product.image?.label"
10381                                                         x-bind:title="product.image?.label"
10382                                                         x-bind:src="primarySrc"
10383                                                         width="360"
10384                                                         height="360"
10385                                                         decoding="async"
10386                                                         fetchpriority="high"
10387                                                         style="position: static !important;">
10388                                                    <template x-if="hoverUrl && hovered">
10389                                                        <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
10390                                                             x-bind:src="hoverUrl"
10391                                                             loading="lazy"
10392                                                             decoding="async"
10393                                                             fetchpriority="low"
10394                                                             width="360"
10395                                                             height="360"
10396                                                             x-bind:alt="product.image?.label"
10397                                                             aria-hidden="true">
10398                                                    </template>
10399                                                </div>
10400                                            </a>
10401                                            <div class="product-info flex flex-col flex-grow">
10402                                                <div
10403                                                    class="items-center justify-center font-semibold ">
10404                                                    <a :href="new URL(product.url, window.location.origin).pathname" class="product-item-link text-size16 text-black font-bold no-underline relative block cursor-pointer"
10405                                                    @click="recsClickEvent(banner.unitId, product.productId, product.url)"
10406                                                    x-text="product.name"></a>
10407                                                </div>
10408
10409                                                <div class="ratings" data-nosnippet>
10410                                                    <div data-bv-show="rating_summary"
10411                                                    x-bind:data-bv-product-id="product.sku"
10412                                                    x-bind:data-bv-redirect-url="product.url">
10413                                                    </div>
10414                                                </div>
10415                                                    
10416                                                <template x-if="product.prices">
10417                                                    <div class="pt-1 text-gray-900 price-box price-final_price" x-bind:data-product-id="product.productId">
10418                                                        <span class="normal-price">
10419                                                            <span class="price-container price-final_price">
10420                                                                <!-- <span x-show="product.prices.minimum.final !== product.prices.maximum.final"
10421                                                                    class="price-start-label">Starting From:</span> -->
10422                                                                <span id="product-price" class="price-wrapper ">
10423                                                                    <!-- <span class="price" x-text="hyva.formatPrice(product.prices.minimum.final)"></span> -->
10424                                                                    <div x-data="productPricing(product)">
10425                                                                        <div :class="priceContainerClasses" 
10426                                                                            :itemprop="schema ? 'offers' : ''" 
10427                                                                            :itemscope="schema ? true : false" 
10428                                                                            :itemtype="schema ? 'http://schema.org/Offer' : ''">
10429
10430                                                                            <!-- Price Wrapper -->
10431                                                                            <span :id="priceId" 
10432                                                                                :data-label="priceDisplayLabel" 
10433                                                                                :data-price-amount="priceAmount" 
10434                                                                                :data-price-type="priceType" 
10435                                                                                :class="priceWrapperClasses">
10436                                                                                <template x-if="priceType === 'finalPrice' && product.type === 'configurable'">
10437                                                                                    <span class="price-start-label">Starting From:</span>
10438                                                                                </template>
10439
10440                                                                                <!-- Adjusted Price Logic -->
10441                                                                                <template x-if="calculatorType && (coverage > 0 || (width > 0 && length > 0 && height > 0))">
10442                                                                                    <span>
10443                                                                                        <template x-if="minPriceVolume > 0">
10444                                                                                            <span>
10445                                                                                                <template x-if="regularPrice > specialPrice && specialPrice > 0">
10446                                                                                                    <span x-text="formatCurrency(specialPrice / minPriceVolume)"></span>
10447                                                                                                </template>
10448                                                                                                <template x-if="!(regularPrice > specialPrice && specialPrice > 0)">
10449                                                                                                    <span x-text="formatCurrency(regularPrice / minPriceVolume)"></span>
10450                                                                                                </template>
10451                                                                                                <span x-text="'/' + calculatorType"></span>
10452                                                                                            </span>
10453                                                                                        </template>
10454                                                                                    </span>
10455                                                                                </template>
10456                                                                                <template x-if="!calculatorType || minPriceVolume <= 0">
10457                                                                                    <sp
10457an class="price">
10458                                                                                        <span x-text="formatCurrency(displayValue)"></span>
10459                                                                                        <span x-text="displayValueType"></span>
10460                                                                                    </span>
10461                                                                                </template>
10462                                                                            </span>
10463
10464                                                                            <!-- MRP and Discount -->
10465                                                                            <!-- <template x-if="regularPrice > specialPrice && product.type === 'configurable'">
10466                                                                                <span class="price-mrp">
10467                                                                                    <template x-if="minPriceVolume > 0 && calculatorType">
10468                                                                                        <span class="price-mrp-new">
10469                                                                                            <span x-text="formatCurrency(regularPrice / minPriceVolume)"></span>
10470                                                                                            <span x-text="'/' + calculatorType"></span>
10471                                                                                        </span>
10472                                                                                        <span class="savePrice" x-text="'Save ' + discountPercentage + '%'"></span>
10473                                                                                    </template>
10474                                                                                    <template x-if="!(minPriceVolume > 0 && calculatorType)">
10475                                                                                        <span class="price-mrp-new">
10476                                                                                            <span x-text="formatCurrency(regularPrice)"></span>
10477                                                                                            <span>/each</span>
10478                                                                                        </span>
10479                                                                                        <span class="savePrice" x-text="'Save ' + discountPercentage + '%'"></span>
10480                                                                                    </template>
10481                                                                                </span>
10482                                                                            </template> -->
10483
10484                                                                            <!-- Adjustments -->
10485                                                                            <template x-if="adjustmentsHtml">
10486                                                                                <span x-html="adjustmentsHtml"></span>
10487                                                                            </template>
10488
10489                                                                            <!-- Schema -->
10490                                                                            <template x-if="schema">
10491                                                                                <meta itemprop="price" :content="priceAmount" />
10492                                                                                <meta itemprop="priceCurrency" :content="priceCurrency" />
10493                                                                            </template>
10494                                                                        </div>
10495                                                                    </div>                                                                   
10496                                                                </span>
10497                                                            </span>
10498                                                        </span>
10499                                                    </div>
10500                                                </template>
10501                                                    <!-- End of product price -->
10502                                            </div>                                            
10503                                        </form>
10504                                    </div>
10505                                </template>
10506                            </div>
10507                            <div class="carousel-nav flex items-center justify-center">
10508                                <button aria-label="Previous" aria-controls="recommended-slider" x-ref="prev" class="glider-prev1"></button> 
10509                                <button aria-label="Next" aria-controls="recommended-slider" x-ref="next" class="glider-next1"></button>
10510                            </div>
10511                        </div>
10512                    </div>
10513                </section>
10514                </div>
10515            </template>
10516        </div>
10517    </template>
10518</div>
10519
10520<script>
10521    function recommendedProducts_above_main_content() {
10522        return {
10523            productBanners: [],
10524            pagePreconfiguredDeferred: {},
10525            bannerPlacement: 'above-main-content',
10526            allProductIds: '',
10527            initProductRecBlock: function (placement) {
10528                let self = this;
10529                window.magentoStorefrontEvents.subscribe.recsResponseReceived(function () {
10530                    let recsData = window.magentoStorefrontEvents.context.getRecommendations();
10531                    self.renderProductRecs(recsData);
10532                });
10533            },
10534            renderProductRecs: function (recsData) {
10535                let self = this;
10536                let allProductIds = [];
10537
10538                recsData.units.sort((a, b) => a.displayOrder - b.displayOrder);
10539
10540                recsData.units.forEach(function (unit, index) {
10541                    if (unit.pagePlacement === self.bannerPlacement) {
10542                        self.productBanners.push(unit);
10543
10544                        // Collect all product IDs from this unit
10545                        if (unit.products && unit.products.length > 0) {
10546                            unit.products.forEach(function(product) {
10547                                allProductIds.push(product.productId);
10548                            });
10549                        }
10550
10551                        /** @todo move event outside of recsResponseReceived event **/
10552                        window.magentoStorefrontEvents.publish.recsUnitRender(
10553                            unit.unitId, magentoStorefrontEvents.context
10554                        );
10555                    }
10556                });
10557
10558                // Store comma-separated product IDs
10559                self.allProductIds = allProductIds.join(',');
10560                
10561                // Fetch calculated prices and hover images for all products at once
10562                if (self.allProductIds) {
10563                    self.fetchAllCalculatedPrices(self.allProductIds);
10564                    if (window.matchMedia('(hover: hover) and (pointer: fine)').matches) {
10565                        self.fetchAllHoverImages(self.allProductIds);
10566                    }
10567                }
10568            },
10569            fetchAllHoverImages: function (productIds) {
10570                const baseUrl = "https\u003A\u002F\u002Fwww.flooringinc.com\u002F";
10571                const fetchUrl = baseUrl + 'hyvaproductrecommendation/product/listhoverimage/productId/' + productIds;
10572
10573                if (!window.hoverImagesCachePromise) {
10574                    window.hoverImagesCachePromise = fetch(fetchUrl)
10575                        .then(response => response.json())
10576                        .then(data => {
10577                            window.hoverImagesCache = data.success && data.hoverImages
10578                                ? data.hoverImages
10579                                : {};
10580                            return window.hoverImagesCache;
10581                        })
10582                        .catch(() => {
10583                            window.hoverImagesCache = {};
10584                            return window.hoverImagesCache;
10585                        });
10586                }
10587
10588                return window.hoverImagesCachePromise;
10589            },
10590            fetchAllCalculatedPrices: function(productIds) {
10591                var baseUrl = "https://www.flooringinc.com/";
10592                var fetchUrl = baseUrl + 'hyvaproductrecommendation/product/calculatedprice/productId/' + productIds;
10593                
10594                // Create a promise that other components can wait for
10595                if (!window.calculatedPricesCachePromise) {
10596                    window.calculatedPricesCachePromise = fetch(fetchUrl)
10597                        .then(response => response.json())
10598                        .then(data => {
10599                            // Store the price data globally so productPricing can access it
10600                            if (!window.calculatedPricesCache) {
10601                                window.calculatedPricesCache = {};
10602                            }
10603                            window.calculatedPricesCache = data;
10604                            return data;
10605                        })
10606                        .catch(error => {
10607                            console.log('Error fetching calculated prices:', error);
10608                            return {};
10609                        });
10610                }
10611                return window.calculatedPricesCachePromise;
10612            },
10613            addToCartRecsEvent: function (e, unitId, productId) {
10614                // requires recommendationsContext to be set
10615                magentoStorefrontEvents.publish.recsItemAddToCartClick(
10616                    unitId, productId, magentoStorefrontEvents.context
10617                );
10618                // Timeout to prevent submission before event has fired.
10619                setTimeout(() => e.submit(), 500);
10620            },
10621            scrollViewEvent: function (unitId) {
10622                magentoStorefrontEvents.publish.recsUnitView(
10623                    unitId, magentoStorefrontEvents.context
10624                );
10625            },
10626            recsClickEvent: function (unitId, productId, productUrl) {
10627                magentoStorefrontEvents.publish.recsItemClick(
10628                    unitId, productId, magentoStorefrontEvents.context
10629                );
10630                // Timeout to prevent submission before event has fired.
10631                //setTimeout(() => window.location.href = productUrl, 500);
10632            },
10633            createAddToCartUrl: function (productId) {
10634                const currentLocationUENC = encodeURIComponent(
10635                    this.encodeUenc(BASE_URL),
10636                );
10637                return BASE_URL +
10638                    "checkout/cart/add/uenc/" +
10639                    currentLocationUENC +
10640                    "/product/" +
10641                    productId
10642            },
10643            encodeUenc: function (value) {
10644                const regex = /=/gi;
10645                return btoa(value).replace(regex, ",");
10646            },
10647        }
10648    }
10649</script>
vendor: 1 bytes, line 10649
10649
10650<script>
10651    'use strict';
10652(() => {
10653    const initCarousels = (elements) => {
10654        if (typeof Glider === 'undefined') {
10655            console.error("Glider.js is not loaded.");
10656            return;
10657        }
10658
10659        elements.forEach((carousel) => {
10660            const gliderElement = carousel.querySelector('[data-role="glider-recommended"]');
10661            if (!gliderElement) {
10662                console.warn("Glider element not found.");
10663                return;
10664            }
10665
10666            const gliderPrev = carousel.querySelector('.glider-prev1');
10667            const gliderNext = carousel.querySelector('.glider-next1');
10668
10669            const totalSlides = gliderElement.querySelectorAll('.js_slide').length;
10670
10671            // Hide arrows if slides are 6 or less
10672            if (totalSlides <= 6) {
10673                if (gliderPrev) gliderPrev.style.display = 'none';
10674                if (gliderNext) gliderNext.style.display = 'none';
10675            } else {
10676                if (gliderPrev) gliderPrev.style.display = '';
10677                if (gliderNext) gliderNext.style.display = '';
10678            }
10679            // Initialize Glider
10680            const glider = new Glider(gliderElement, {
10681                slidesToShow: 6,
10682                slidesToScroll: 1,
10683                scrollLock: false,
10684                draggable: true,
10685                dragVelocity: 1.3,
10686                arrows: {
10687                    prev: gliderPrev,
10688                    next: gliderNext,
10689                },
10690                responsive: [
10691                    { breakpoint: 768, settings: { slidesToShow: 2, slidesToScroll: 1 } },
10692                    { breakpoint: 1024, settings: { slidesToShow: 4, slidesToScroll: 1 } },
10693                    { breakpoint: 1366, settings: { slidesToShow: 6, slidesToScroll: 1} },
10694                ],
10695            });
10696          
10697            const preventDraggingOnInputs = (gliderElement) => {
10698                gliderElement.querySelectorAll('select, input').forEach((el) => {
10699                    el.addEventListener('mousedown', (event) => {                        
10700                        event.stopPropagation(); // Prevent Glider drag from starting
10701                    });
10702
10703                    el.addEventListener('touchstart', (event) => {
10704                        event.stopPropagation(); // Prevent drag on touch devices
10705                    });
10706                });
10707            };
10708
10709            // Call this inside initCarousels after Glider initialization
10710            preventDraggingOnInputs(gliderElement);
10711            
10712            // Add event listener to handle the disabled class
10713            gliderElement.addEventListener('glider-refresh', () => {
10714                requestAnimationFrame(() => {
10715                    const hasNext = gliderElement.scrollWidth - gliderElement.scrollLeft > gliderElement.clientWidth;
10716                    const hasPrev = gliderElement.scrollLeft > 0;
10717
10718                    gliderNext.classList.toggle('disabled', !hasNext);
10719                    gliderPrev.classList.toggle('disabled', !hasPrev);
10720                    gliderNext.setAttribute('aria-disabled', !hasNext);
10721                    gliderPrev.setAttribute('aria-disabled', !hasPrev);
10722                });
10723            });
10724
10725            // Force a refresh to ensure state is accurate on initialization
10726            glider.refresh();
10727        });
10728    };
10729
10730    const loadGliderScript = (callback) => {
10731        const script = document.createElement('script');
10732        script.type = 'text/javascript';
10733        script.src = "https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Magento_PageBuilder/js/glider.min.js";
10734        script.addEventListener('load', callback);
10735        document.head.appendChild(script);
10736    };
10737
10738    const observeCarousels = () => {
10739        const observer = new MutationObserver((mutationsList) => {
10740            let found = false;
10741
10742            for (const mutation of mutationsList) {
10743            if (mutation.type === 'childList') {
10744                for (const node of mutation.addedNodes) {
10745                if (node.nodeType === 1) {
10746                    const carousels = node.querySelectorAll?.('[data-content-type="recommended-products"]');
10747                    if (carousels.length) {
10748                    found = true;
10749                    requestAnimationFrame(() => {
10750                        observer.disconnect();
10751                        initCarousels(carousels);
10752                    });
10753                    break;
10754                    }
10755                }
10756                }
10757            }
10758            if (found) break;
10759            }
10760        });
10761
10762        observer.observe(document.body, { childList: true, subtree: true });
10763    };
10764
10765    window.addEventListener('DOMContentLoaded', () => {
10766        loadGliderScript(() => {
10767            // Check if carousels are already in the DOM
10768            const carouselElements = document.querySelectorAll('[data-content-type="recommended-products"]');
10769            if (carouselElements.length > 0) {
10770                initCarousels(carouselElements);
10771            } else {
10772                // Use MutationObserver to wait for dynamic content
10773                observeCarousels();                
10774            }
10775        });
10776    });
10777})();
10778</script>
10778
10779
10780<script>
10781    function recProductImage(product) {
10782        return {
10783            hovered: false,
10784            over: false,
10785            hoverTimer: null,
10786            hoverUrl: null,
10787            isDesktopHover: window.matchMedia('(hover: hover) and (pointer: fine)').matches,
10788            primarySrc() {
10789                const url = product.image?.url || '';
10790                if (!url) {
10791                    return '';
10792                }
10793                return url + (url.includes('?') ? '&' : '?') + 'width=428&height=210';
10794            },
10795            init() {
10796                if (!this.isDesktopHover) {
10797                    return;
10798                }
10799                this.resolveHoverUrl();
10800            },
10801            resolveHoverUrl() {
10802                const id = String(product.productId);
10803                const apply = (url) => {
10804                    if (url) {
10805                        this.hoverUrl = url;
10806                    }
10807                };
10808
10809                if (window.hoverImagesCache?.[id]) {
10810                    apply(window.hoverImagesCache[id]);
10811                    return;
10812                }
10813
10814                if (window.hoverImagesCachePromise) {
10815                    window.hoverImagesCachePromise.then(() => apply(window.hoverImagesCache?.[id]));
10816                }
10817            },
10818            onEnter() {
10819                if (!this.isDesktopHover || !this.hoverUrl) {
10820                    return;
10821                }
10822                this.over = true;
10823                clearTimeout(this.hoverTimer);
10824                this.hoverTimer = setTimeout(() => {
10825                    if (this.over) {
10826                        this.hovered = true;
10827                    }
10828                }, 80);
10829            },
10830            onMove() {
10831                if (!this.isDesktopHover || !this.over || !this.hoverUrl) {
10832                    return;
10833                }
10834                this.hovered = true;
10835            },
10836            onLeave() {
10837                this.over = false;
10838                this.hovered = false;
10839                clearTimeout(this.hoverTimer);
10840            },
10841            destroy() {
10842                clearTimeout(this.hoverTimer);
10843            },
10844        };
10845    }
10846
10847    function productPricing(product) {
10848        return {
10849            // Variables
10850            regularPrice: 0,
10851            specialPrice: 0,
10852            calculatorType: '',
10853            coverage: 0,
10854            width: 0,
10855            length: 0,
10856            height: 0,
10857            minPriceVolume: 0,
10858            displayValue: 0,
10859            priceAmount: 0,
10860            priceType: 'finalPrice',
10861            priceCurrency: 'USD',
10862            discountPercentage: 0,
10863            adjustmentsHtml: '', // Placeholder for adjustment logic
10864            schema: true,
10865            displayValueType: '/each',
10866
10867            // Dynamic Classes
10868            priceContainerClasses: 'price-container',
10869            priceWrapperClasses: 'price-wrapper',
10870            priceId: '', // Add logic for dynamic IDs if needed
10871            priceDisplayLabel: '',
10872
10873            // Initialization
10874            init() {
10875                // Load product attributes
10876                //console.log("product==="+JSON.stringify(product));
10877                const attributes = product.attributes;
10878
10879                // Regular and Special Prices
10880                this.regularPrice = product.prices.minimum.regular || 0;
10881                this.specialPrice = product.prices.minimum.final || this.regularPrice;
10882
10883                // Calculator Type and Dimensions
10884                this.calculatorType = attributes.incstores_pim_calculator_type || '';
10885                this.coverage = attributes.config_coverage || 0;
10886                this.width = (attributes.incstores_pim_width_inches || 0) / 12;
10887                this.length = (attributes.incstores_pim_length_inches || 0) / 12;
10888                this.height = (attributes.incstores_pim_height_inches || 0) / 12;
10889
10890                // Calculate Price per Volume
10891                if (this.calculatorType && (this.coverage > 0 || (this.width > 0 && this.length > 0 && this.height > 0))) {
10892                    if (this.calculatorType === 'case') {
10893                        this.minPriceVolume = this.coverage;
10894                    } else {
10895                        this.minPriceVolume = this.width * this.length * this.height;
10896                    }
10897
10898                    if (this.minPriceVolume > 0) {
10899                        const pricePerUnit =
10900                            this.regularPrice > this.specialPrice && this.specialPrice > 0
10901                                ? this.specialPrice / this.minPriceVolume
10902                                : this.regularPrice / this.minPriceVolume;
10903
10904                        this.displayValue = pricePerUnit;
10905                    }
10906                } else {
10907                    this.displayValue = this.regularPrice;
10908                }
10909
10910                const productId = product.productId;
10911                const self = this;
10912
10913                // Wait for the batch price cache to be ready
10914                if (window.calculatedPricesCachePromise) {
10915                    window.calculatedPricesCachePromise.then(() => {
10916                        // Now the cache should be populated
10917                        if (window.calculatedPricesCache && window.calculatedPricesCache[productId]) {
10918                            let productData = window.calculatedPricesCache[productId];
10919                            if (productData.success && productData.priceData && productData.priceData.price) {
10920                                let customPrice = productData.priceData.price;
10921                                let calType = productData.priceData.calType;
10922                                self.displayValue = customPrice;
10923                                self.displayValueType = '/' + calType;
10924                                if (calType == 'none') {
10925                                    self.displayValueType = '';
10926                                }
10927                            }
10928                        }
10929                    });
10930                } else {
10931                    // Fallback: fetch individual product price if batch call was not initiated
10932                    var baseUrl = "https://www.flooringinc.com/";
10933                    var fetchUrl = baseUrl + 'hyvaproductrecommendation/product/calculatedprice/productId/' + productId;
10934
10935                    fetch(fetchUrl)
10936                        .then(response => response.json())
10937                        .then(data => {
10938                            if (data.success) {
10939                                let customPrice = data.priceData.price;
10940                                if (data.priceData.price) {
10941                                    let calType = data.priceData.calType;
10942                                    self.displayValue = customPrice;
10943                                    self.displayValueType = '/' + calType;
10944                                    if (calType == 'none') {
10945                                        self.displayValueType = '';
10946                                    }
10947                                }
10948                            }
10949                        })
10950                        .catch(error => {
10951                            console.log(error);
10952                        });
10953                }
10954
10955                // Calculate Discount
10956                if (this.regularPrice > this.specialPrice) {
10957                    const savePrice = this.regularPrice - this.specialPrice;
10958                    this.discountPercentage = Math.round((savePrice * 100) / this.regularPrice);
10959                }
10960            },
10961
10962            // Utility Functions
10963            formatCurrency(value) {
10964                value = Number(String(value).replace(/,/g, ''));
10965                return `$${value.toFixed(2)}`;
10966            },
10967        };
10968    }
10969</script>
vendor: 1 bytes, line 10969
10969
10970<script>
10971    document.addEventListener("DOMContentLoaded", function () {
10972        let relatedProducts = document.querySelector(".related-products-section");
10973        let recommendations = document.querySelector(".products__recommendations");
10974
10975        if (relatedProducts && recommendations) {
10976            relatedProducts.parentNode.insertBefore(recommendations, relatedProducts.nextSibling);
10977        }
10978    });
10979</script>
10979
10980
10981<div data-mst-nav-filter="" data-mst-nav-cache-key="" data-mst-attribute="" class="mst-nav__label" x-data="initLabelRenderer()">
10982 
10983    
10984        
10985        <div class="category-top-filter">
10986            <style>#html-body [data-pb-style=OW8HEGF]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=AEUFEN1],#html-body [data-pb-style=JCOT9LC],#html-body [data-pb-style=OW8HEGF],#html-body [data-pb-style=QT04T1B]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=JCOT9LC]{justify-content:flex-start;display:flex;flex-direction:column;text-align:center}#html-body [data-pb-style=AEUFEN1],#html-body [data-pb-style=QT04T1B]{align-self:stretch}#html-body [data-pb-style=AEUFEN1]{text-align:center}#html-body [data-pb-style=G4CH7L3],#html-body [data-pb-style=JUM1M5N]{display:flex;width:100%}#html-body [data-pb-style=BTU28UQ],#html-body [data-pb-style=EHKO814],#html-body [data-pb-style=G0Y3F9P],#html-body [data-pb-style=GQ75BMM],#html-body [data-pb-style=U604GN4]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=BTU28UQ],#html-body [data-pb-style=EHKO814],#html-body [data-pb-style=G0Y3F9P],#html-body [data-pb-style=U604GN4]{text-align:center;border-style:solid;border-color:#cfcfcf;border-width:1px;width:25%}#html-body [data-pb-style=WNIB8SH]{margin-left:6px;margin-right:6px}#html-body [data-pb-style=YFRLUEN]{border-style:none}#html-body [data-pb-style=A3BWEO4],#html-body [data-pb-style=BUQH3FY]{max-width:100%;height:auto}#html-body [data-pb-style=IWF33J4]{border-style:none}#html-body [data-pb-style=DRA76NK],#html-body [data-pb-style=N1TTWSC]{max-width:100%;height:auto}#html-body [data-pb-style=EPEY65U]{border-style:none}#html-body [data-pb-style=RLB69IA],#html-body [data-pb-style=TJMSJCE]{max-width:100%;height:auto}#html-body [data-pb-style=ACFWHFU]{border-style:none}#html-body [data-pb-style=FWHGEOT],#html-body [data-pb-style=WSS16CF]{max-width:100%;height:auto}@media only screen and (max-width: 768px) { #html-body [data-pb-style=ACFWHFU],#html-body [data-pb-style=EPEY65U],#html-body [data-pb-style=IWF33J4],#html-body [data-pb-style=YFRLUEN]{border-style:none} }</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="OW8HEGF"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="QT04T1B"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="G4CH7L3"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="GQ75BMM"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div style="background:#15324c;border-top:4px solid #e87722;padding:18px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;font-family:Poppins,sans-serif;color:#ffffff;"><div style="flex:1 1 240px;min-width:220px;"><h2 style="color:#ffffff;font-size:24px;font-weight:600;line-height:1.15;margin:0;">Premium Rubber Flooring</h2><p style="color:#cfd8e0;font-size:14px;margin:4px 0 0;">The Traxxon logo marks our most durable rubber flooring: the rolls, tiles, and mats built to go the distance.</p></div><div style="font-size:14px;line-height:1.9;"><span style="margin-right:18px;white-space:nowrap;"><span style="color:#f0a04b;">✓</span> Commercial-grade</span><span style="margin-right:18px;white-space:nowrap;"><span style="color:#f0a04b;">✓</span> USA-made options</span><span style="white-space:nowrap;"><span style="color:#f0a04b;">✓</span> Free samples</span></div><div style="text-align:right;"><div style="font-size:10px;letter-spacing:1.5px;color:#9fb0bf;">POWERED BY</div><div style="font-size:26px;font-weight:700;letter-spacing:2px;color:#ffffff;">TRAXXON</div><div style="font-size:10px;color:#9fb0bf;">by FlooringInc</div></div></div></div></div></div></div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div class="ml-auto" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="JCOT9LC"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="AEUFEN1"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="JUM1M5N"><div class="pagebuilder-column w-4p mx-1" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="BTU28UQ"><figure class="mx-auto my-2" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="YFRLUEN"><span data-element="filter" @click="handleClick"> <a class="special-filters" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116820&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/13389_0_1_.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/13389_0_1_.jpg" alt="" title="" fetchpriority="false" decoding="async" data-element="desktop_image" data-pb-style="A3BWEO4"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/13389_0_1_.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/13389_0_1_.jpg" alt="" title="" fetchpriority="false" decoding="async" data-element="mobile_image" data-pb-style="BUQH3FY"></picture></a></span></figure><div data-content-type="text" data-appearance="default" data-element="main"><h2><span data-element="filter" @click="handleClick"> <a class="special-filters" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116820&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking"><strong>Rubber Flooring Rolls</strong></a></span></h2></div><div class="text-size12 mb-6" data-content-type="text" data-appearance="default" data-element="main"><p id="E50KLX0"><span data-element="filter" @click="handleClick"> <a class="special-filters" tabindex="0" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116820&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking">Seamless, durable rubber rolls ideal for gyms, garages, and commercial spaces</a></span></p></div></div><div class="pagebuilder-column w-4p mx-1" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="EHKO814"><figure class="mx-auto my-2" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="IWF33J4"><span data-element="filter" @click="handleClick"> <a class="special-filters" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116793&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking" target="_blank" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/13977_2.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/13977_2.jpg" alt="" title="" fetchpriority="false" decoding="async" data-element="desktop_image" data-pb-style="N1TTWSC"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/13977_2.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/13977_2.jpg" alt="" title="" fetchpriority="false" decoding="async" data-element="mobile_image" data-pb-style="DRA76NK"></picture></a></span></figure><div data-content-type="text" data-appearance="default" data-element="main"><h2><span data-element="filter" @click="handleClick"> <a class="special-filters" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116793&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking"><strong>Rubber Floor Tiles</strong></a></span></h2></div><div class="text-size12 mb-6" data-content-type="text" data-appearance="default" data-element="main" data-pb-style="WNIB8SH"><p><span data-element="filter" @click="handleClick"> <a class="special-filters" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116793&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking">Easy-to-install interlocking rubber tiles that provide comfort, traction, and impact protection</a></span></p></div></div><div class="pagebuilder-column w-4p mx-1" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="G0Y3F9P"><figure class="mx-auto my-2" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="EPEY65U"><span data-element="filter" @click="handleClick"> <a class="special-filters" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116832&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Rubber_Floor_Mat_Gym_Mat_2.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/Rubber_Floor_Mat_Gym_Mat_2.jpg" alt="" title="" fetchpriority="false" decoding="async" data-element="desktop_image" data-pb-style="RLB69IA"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Rubber_Floor_Mat_Gym_Mat_2.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/Rubber_Floor_Mat_Gym_Mat_2.jpg" alt="" title="" fetchpriority="false" decoding="async" data-element="mobile_image" data-pb-style="TJMSJCE"></picture></a></span></figure><div data-content-type="text" data-appearance="default" data-element="main"><h2><span data-element="filter" @click="handleClick"> <a class="special-filters" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116832&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking"><strong>Rubber Mats</strong></a></span></h2></div><div class="text-size12 mb-6" data-content-type="text" data-appearance="default" data-element="main"><p><span data-element="filter" @click="handleClick"> <a class="special-filters" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116832&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking">Rubber floor mats &amp; gym mats designed for quick setup and targeted floor protection</a></span></p></div></div><div class="pagebuilder-column w-4p mx-1" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="U604GN4"><figure class="mx-auto my-2" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="ACFWHFU"><span data-element="filter" @click="handleClick"> <a class="special-filters" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116814&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/playground_rubber_tiles_1_.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/playground_rubber_tiles_1_.jpg" alt="" title="" fetchpriority="false" decoding="async" data-element="desktop_image" data-pb-style="FWHGEOT"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/playground_rubber_tiles_1_.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/playground_rubber_tiles_1_.jpg" alt="" title="" fetchpriority="false" decoding="async" data-element="mobile_image" data-pb-style="WSS16CF"></picture></a></span></figure><div data-content-type="text" data-appearance="default" data-element="main"><h2><span data-element="filter" @click="handleClick"> <a class="special-filters" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116814&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking"><strong>Playground Rubber Flooring</strong></a></span></h2></div><div class="text-size12 mb-6" data-content-type="text" data-appearance="default" data-element="main"><p><span data-element="filter" @click="handleClick"> <a class="special-filters" tabindex="0" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116814&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking">Shock-absorbing surfaces built for safety, durability, and outdoor play.</a></span></p></div></div></div></div></div></div>        </div>
10987    </div>
10988<script>
10989    const elements = document.querySelectorAll(".special-filters");
10990    elements.forEach(function(element) { 
10991        let staticBlockUrl = '';
10992        staticBlockUrl = element.getAttribute("href");
10993        element.setAttribute("data-link-url", staticBlockUrl);
10994        element.setAttribute("rel", "nofollow");
10995    });
10996</script>
10996    
10996<script>
10997
10998    
10999</script>
vendor: 2 bytes, line 10999
10999
11000<script>
11001    function samplesubmit(mainproduct,inputValue,productids,colors,spidsColors,confproname,confproid,childproids) {
11002        this.isLoading = true;
11003        const formKey = hyva.getFormKey();
11004        const postUrl = BASE_URL + 'sampleproduct/Sample/Products/';
11005        fetch(postUrl, {
11006            "headers": {
11007                "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
11008            },
11009            "body": "form_key=" + formKey + "&action_type=" + inputValue+ "&pids=" + productids+ "&colors=" + colors+ "&spidsColors=" + spidsColors+ "&confproname=" + confproname+ "&confproid=" + confproid +"&childproid=" + childproids,
11010            "method": "POST",
11011            "mode": "cors",
11012            "credentials": "include"
11013        }).then(response => {
11014            //this.isLoading = false;
11015            //window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
11016            //fetchHtmlContent(mainproduct);
11017            if (! response.ok) console.warn('GET request failed');
11018            return response.json();
11019        }).then(result => {
11020            this.isLoading = false;
11021            window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
11022            fetchHtmlContent(mainproduct,result.is_sample_added); 
11023         }); 
11024    }
11025  </script>
11025  
11026  
11026<script>
11027  function fetchHtmlContent(pid,is_sample_added) {
11028    console.log('Fetching HTML content for PID:', pid);
11029    const formKey = hyva.getFormKey();
11030    const randomString = Math.random().toString(36).substring(2, 15);
11031    const postUrl = BASE_URL + 'sampleproduct/sample/popup/?pid='+pid;
11032    fetch(postUrl)
11033      .then(response => response.text())
11034      .then(html => {
11035        console.log('Response received:', html);
11036      let myDivelements = document.getElementsByClassName('htmlcontent'+pid);
11037      var numberofelements=myDivelements.length;
11038      for(var i=0;i<numberofelements;++i){
11039        myDivelements[i].innerHTML = html;
11040      }
11041      if(is_sample_added == 1 ){ //&& window.innerWidth <= 767
11042        document.querySelector(".order-free-sample-popup .closemodal").dispatchEvent(new Event('click'));
11043        document.querySelector("#menu-cart-icon").dispatchEvent(new Event('click'));
11044      }
11045    })
11046      .catch(error => {
11047        console.error(error);
11048      });
11049  }
11050</script>
11050  
11051    
11051<script>
11052        if (window.require) {
11053            require(['jquery', 'domReady!'], function($){
11054                if ($('.mfblogunveil').length) {
11055                    require(['Magefan_Blog/js/lib/mfblogunveil'], function(){
11056                        $('.mfblogunveil').mfblogunveil();
11057                    });
11058                }
11059            });
11060        } else {
11061            /* e.g. hyva theme */
11062            document.addEventListener("DOMContentLoaded", function(){
11063                var items =  document.getElementsByClassName('mfblogunveil');
11064                var el, url;
11065                if (items.length) {
11066                    for (var i=0; i<items.length;i++) {
11067                        el = items[i];
11068                        url = el.getAttribute('data-original');
11069                        if (!url) {
11070                            continue;
11071                        }
11072                        if ('IMG' == el.tagName) {
11073                            el.src = url;
11074                        } else {
11075                            el.style.backgroundImage = "url('" + url  + "')";
11076                        }
11077                    }
11078                }
11079            });
11080        }
11081    </script>
11081
11082
11083<style>
11084    .is-loading > :not(.loader) {
11085        visibility: hidden;
11086    }
11087</style>
11088<script>
11089    function addQuoteListing() {
11090        return {
11091            postUrl: BASE_URL + 'amasty_quote/cart/add',
11092            loading: false,
11093            addToQuoteAjax(productId, el) {
11094                const self = this,
11095                    form = self._getForm(productId),
11096                    buttonElement = this.$el,
11097                    loader = document.createElement('div'),
11098                    button = el.querySelector('button');
11099
11100                loader.className = 'absolute inset-0 flex justify-center items-center loader';
11101                loader.innerHTML = `
11102                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" xml:space="preserve" width="32" height="32">
11103                    <path fill="#000" d="M73 50c0-12.7-10.3-23-23-23S27 37.3 27 50m3.9 0c0-10.5 8.5-19.1 19.1-19.1S69.1 39.5 69.1 50">
11104                        <animateTransform attributeName="transform" attributeType="XML" type="rotate" dur="1s" from="0 50 50" to="360 50 50" repeatCount="indefinite"/>
11105                    </path>
11106                </svg>`;
11107
11108                button.prepend(loader);
11109                button.classList.add('relative', 'is-loading');
11110
11111                form.onsubmit = function onSubmit(event) {
11112                    event.preventDefault();
11113                    self.getData(productId, loader, button);
11114                }
11115            },
11116            getData(productId, loader,button) {
11117                const self = this,
11118                    form = self._getForm(productId),
11119                    formData = new URLSearchParams(new FormData(form)).toString();
11120
11121                fetch(this.postUrl, {
11122                    "headers": {
11123                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
11124                    },
11125                    "body": formData,
11126                    "method": "POST",
11127                    "mode": "cors",
11128                    "credentials": "include"
11129                })
11130                .then((res) => {
11131                    return res;
11132                })
11133                .then((res) => {
11134                    loader.remove();
11135                    button.classList.remove('is-loading');
11136                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
11137                        [{
11138                            type: "success",
11139                            text: "You added product to your quote cart."
11140                        }], 5000
11141                    );
11142                    const reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data");
11143                    window.dispatchEvent(reloadCustomerDataEvent);
11144                })
11145                .finally(() => {
11146                    this.loading = false;
11147                })
11148            },
11149            _getForm(productId) {
11150                const formSelector = 'product_addtoquote_form_' + productId;
11151
11152                return document.getElementById(formSelector);
11153            }
11154        }
11155    }
11156</script>
11156
11157
11158<script>
11159(function() {
11160    'use strict';
11161    
11162    
11163    let allattributesdata = ["name","sku","description","short_description","price","special_price","special_from_date","special_to_date","cost","weight","manufacturer","meta_title","meta_keyword","meta_description","image","small_image","thumbnail","media_gallery","old_id","tier_price","news_from_date","news_to_date","gallery","status","minimal_price","visibility","custom_design","custom_design_from","custom_design_to","custom_layout_update","page_layout","category_ids","options_container","required_options","has_options","image_label","small_image_label","thumbnail_label","created_at","updated_at","country_of_manufacture","quantity_and_stock_status","custom_layout","custom_layout_update_file","url_key","url_path","price_type","sku_type","weight_type","price_view","shipment_type","msrp","msrp_display_actual_price_type","links_purchased_separately","samples_title","links_title","links_exist","giftcard_amounts","allow_open_amount","open_amount_min","open_amount_max","giftcard_type","is_redeemable","use_config_is_redeemable","lifetime","use_config_lifetime","email_template","use_config_email_template","allow_message","use_config_allow_message","related_tgtr_position_limit","related_tgtr_position_behavior","upsell_tgtr_position_limit","upsell_tgtr_position_behavior","tax_class_id","gift_message_available","gift_wrapping_available","gift_wrapping_price","is_returnable","swatch_image","hide_quote_buy_button","features","is_bestseller","min_rollcut","roll_width","shipping_and_returns","size","type","sample_product_sku","mst_search_weight","sold_qty","color_family","features_text","default_design_tile","display_corner","display_edging","pdp_bottom_features","pdp_bottom_video","planks_per_cartoon","buy_this_percentage","product_floor_type","warranty","affirm_product_mfp","affirm_product_mfp_type","affirm_product_mfp_priority","affirm_product_mfp_start_date","affirm_product_mfp_end_date","affirm_product_promo_id","roll_length","tailer_roll_width","bv_feed_include","bv_category_id","quick_ship_for_associated_product","roll_cut_type","ava_vatcode","avatax_cross_border_type","hero_message","ships_from","select_an_option","rma_allowed","sort_by_bestseller","amxnotif_hide_alert","quick_ship","incstores_banner_marketing_external","incstores_free_product","swatchimage","product_label","product_option","am_offer_item_condition","amtoolkit_canonical","amtoolkit_robots","incstores_pim_character_variation","incstores_pim_abrasion_resistance","incstores_pim_backing","incstores_pim_image_general_sku_url_1","incstores_pim_contents","incstores_pim_alt_unit_of_measure","incstores_pim_color_display_name","incstores_pim_colorfast","incstores_pim_certifications","incstores_pim_attached_underlayment","incstores_pim_cleat_safe","incstores_pim_chemical_resistant","incstores_pim_base_thickness","incstores_pim_banner_msg_ext","incstores_pim_car_jack_approved","incstores_pim_esd_min","incstores_pim_bevel","incstores_pim_document_maintenance_product_url_2","incstores_pim_coverage","incstores_pim_document_installation_product_url_1","incstores_pim_connector_type","incstores_pim_back_edge_thickness","incstores_pim_exact_length_inches","incstores_pim_document_installation_product_url_2","incstores_pim_document_msds_product_url_1","incstores_pim_feature_bullet_2","incstores_pim_fiber_treatment","incstores_pim_foot_traffic","incstores_pim_document_specifications_product_url_1","incstores_pim_drainage","incstores_pim_color_axis","incstores_pim_can_backorder","incstores_pim_calculator_type","incstores_pim_dye_method","incstores_pim_home_page_feature_flag","incstores_pim_guardian_protection","incstores_pim_core","incstores_pim_fall_height_rating","incstores_pim_image_general_product_url_9","incstores_pim_exact_height_inches","incstores_pim_face_weight","incstores_pim_image_general_product_url_8","incstores_pim_image_general_product_url_10","incstores_pim_image_general_product_url_13","incstores_pim_image_general_product_url_4","incstores_pim_document_maintenance_product_url_1","incstores_pim_exact_weight_lbs","incstores_pim_image_general_product_url_39","incstores_pim_image_general_product_url_7","incstores_pim_edge_profile","incstores_pim_esd_max","incstores_pim_image_general_product_url_6","incstores_pim_image_general_product_url_2","incstores_pim_banner_msg_int","incstores_pim_feature_bullet_3","incstores_pim_image_general_product_url_38","incstores_pim_feature_bullet_4","incstores_pim_feature_bullet_1","incstores_pim_image_general_product_url_20","incstores_pim_image_general_product_url_12","incstores_pim_finish","incstores_pim_image_general_product_url_23","incstores_pim_image_general_product_url_1","incstores_pim_image_general_product_url_16","incstores_pim_image_general_product_url_40","incstores_pim_exact_width_inches","incstores_pim_floor_speed","incstores_pim_gloss","incstores_pim_image_general_product_url_27","incstores_pim_image_general_product_url_28","incstores_pim_feature_bullet_5","incstores_pim_image_general_product_url_5","incstores_pim_fire_resistant","incstores_pim_image_general_product_url_26","incstores_pim_heat_wieldable","incstores_pim_image_general_product_url_31","incstores_pim_image_general_product_url_32","incstores_pim_image_general_product_url_30","incstores_pim_image_general_product_url_15","incstores_pim_image_general_product_url_37","incstores_pim_image_general_product_url_21","incstores_pim_image_general_product_url_3","incstores_pim_image_general_product_url_34","incstores_pim_image_general_product_url_36","incstores_pim_image_general_product_url_33","incstores_pim_image_general_product_url_19","incstores_pim_image_general_product_url_14","incstores_pim_flooring_designer","incstores_pim_image_general_product_url_35","incstores_pim_image_general_product_url_11","incstores_pim_heat_and_frost_resistant","incstores_pim_image_general_product_url_25","incstores_pim_image_general_product_url_22","incstores_pim_fiber_type","incstores_pim_has_corner_border_center","incstores_pim_image_general_product_url_24","incstores_pim_image_general_product_url_29","incstores_pim_image_general_product_url_17","incstores_pim_image_general_product_url_18","incstores_pim_installation_location","incstores_pim_installation_description","incstores_pim_leading_edge_thickness","incstores_pim_image_general_sku_url_2","incstores_pim_map_price","incstores_pim_nominal_width_inches","incstores_pim_interlock_style","incstores_pim_locking_system","incstores_pim_insulation_rating","incstores_pim_image_general_sku_url_3","incstores_pim_nom_thickness","incstores_pim_product_name","
11163incstores_pim_pdp_icon_5","incstores_pim_installation_pattern","incstores_pim_long_description","incstores_pim_shoe_style","incstores_pim_pile_thickness","incstores_pim_style_code","incstores_pim_nominal_sq_ft","incstores_pim_pdp_icon_2","incstores_pim_pdp_icon_3","incstores_pim_variant_species","incstores_pim_unit_of_measure","incstores_pim_pdp_icon_4","incstores_pim_status_product","incstores_pim_product_id","incstores_pim_pile_height","incstores_pim_pdp_icon_1","incstores_pim_percent_overage","incstores_pim_sku","incstores_pim_pdp_icon_6","incstores_pim_video_general_product_url_4","incstores_pim_nose_type","incstores_pim_variant_axis","incstores_pim_surface_type","incstores_pim_size","incstores_pim_items_per_box","incstores_pim_quick_ship","incstores_pim_qty_increment","incstores_pim_radiant_heating_approved","incstores_pim_status_color","incstores_pim_tufted_weight","incstores_pim_variant_id","incstores_pim_max_order_qty","incstores_pim_mold_and_mildew_resistant","incstores_pim_nominal_height_inches","incstores_pim_video_general_product_url_1","incstores_pim_status_variant","incstores_pim_uv_stable","incstores_pim_recycled_content","incstores_pim_shipping_description","incstores_pim_variant_display_name","incstores_pim_min_rollcut","incstores_pim_surface_texture","incstores_pim_janka_rating","incstores_pim_nominal_length_inches","incstores_pim_video_general_product_url_2","incstores_pim_max_roll_legnth","incstores_pim_video_general_product_url_3","incstores_pim_wear_layer","incstores_pim_installation","incstores_pim_tarr_rating","incstores_pim_wear_layer_rating","incstores_pim_video_general_product_url_5","incstores_pim_waterproof","incstores_pim_warranty_filter","incstores_pim_min_order_qty","incstores_pim_shipping_program","incstores_pim_maintenance_description","incstores_pim_roll_width","incstores_pim_material","incstores_pim_swatch_image_sku_url_1","incstores_pim_type_of_finish","incstores_pim_rolling_weight","incstores_pim_slip_resistant","incstores_pim_sample_id","featured_products","promise_date","product_discontinued","wesupply_estimation_display","incstores_pim_connector_magento_message_com","incstores_pim_connector_magento_date_com","incstores_pim_connector_magento_status_com","incstores_pim_promise_date","incstores_pim_variantid","incstores_pim_productid","incstores_pim_cares_assessment","incstores_pim_document_warranty_product_url_1","incstores_pim_tf_carpet_theme","incstores_pim_tf_carpet_tile_type","incstores_pim_tf_garage_tile_type","incstores_pim_tf_format","incstores_pim_tf_carpet_style","incstores_pim_tf_underlayment_type","incstores_pim_tf_turf_type","incstores_pim_tf_sport","incstores_pim_tf_rubber_format","incstores_pim_tf_trim_t
11163ype","incstores_pim_tf_rubber_thickness","incstores_pim_tf_vinyl_styles","incstores_pim_tf_made_in_usa","incstores_pim_primary_color_filter","incstores_pim_lf_features","incstores_pim_lf_shipping_program","incstores_pim_fd_swatch_sku_url_1","incstores_pim_gmc_zone_west","incstores_pim_gmc_zone_fixed","incstores_pim_gmc_zone_fl","incstores_pim_gmc_zone_free_co","incstores_pim_gmc_zone_ca","incstores_pim_gmc_shipping_weight","incstores_pim_gmc_zone_free","incstores_pim_gmc_zone_east","incstores_pim_gmc_zone_tx","incstores_pim_gmc_zone_ny","incstores_pim_fd_edge_female","incstores_pim_fd_edge_male","incstores_pim_fd_corner_edge_single_male","incstores_pim_fd_edge_universal","incstores_pim_fd_corner_edge_single_female","incstores_pim_fd_corner_edge_double_universal","incstores_pim_fd_corner_edge_single_universal","incstores_pim_fd_corner_universal","incstores_pim_ca_prop_65_warning","incstores_pim_bazaarvoice_brand","incstores_pim_warranty","incstores_pim_upc","incstores_pim_decking_style","incstores_pim_flooring_type","incstores_pim_visible_when_oos","incstores_pim_associated_product_id","incstores_pim_category_filters","ac_downloadable","ac_giftcard","revenue_ranking","incstores_pim_inventory","incstores_pim_upc_wm_2","incstores_pim_upc_amazon","incstores_pim_upc_amazon_9","incstores_pim_upc_hd_6","incstores_pim_upc_amazon_12","incstores_pim_upc_amazon_3","incstores_pim_upc_walmart","incstores_pim_upc_hd_2","incstores_pim_upc_hd_1","incstores_pim_upc_amazon_8","incstores_pim_upc_amazon_4","incstores_pim_upc_amazon2","incstores_pim_upc_amazon_5","incstores_pim_upc_hd_4","incstores_pim_upc_hd_5","incstores_pim_upc_hd_7","incstores_pim_upc_amazon_13","incstores_pim_upc_amazon_7","incstores_pim_upc_amazon_10","incstores_pim_upc_hd_3","incstores_pim_upc_amazon_11","incstores_pim_upc_amazon_6","incstores_pim_upc_amazon_14","incstores_pim_upc_wayfair","incstores_pim_upc_wayfair_5","incstores_pim_upc_wm_7","incstores_pim_upc_wm_4","incstores_pim_upc_wayfair_6","incstores_pim_upc_wayfair_3","incstores_pim_upc_wm_6","incstores_pim_upc_wayfair_2","incstores_pim_upc_wayfair_4","incstores_pim_upc_wayfair_7","incstores_pim_upc_wm_3","incstores_pim_upc_wm_5","incstores_pim_upc_wayfair_8","custom_content","pdp_custom_content","show_all_color_images","incstores_pim_image_general_sku_url_4","incstores_pim_image_general_sku_url_7","incstores_pim_image_general_sku_url_8","incstores_pim_image_general_sku_url_5","incstores_pim_image_general_sku_url_9","incstores_pim_image_general_sku_url_10","incstores_pim_image_general_sku_url_6","incstores_pim_ships_from_region","incstores_pim_lf_shipping_speed","dummy_attribute","incstores_pim_ship_region_availability","incstores_pim_available_on"];
11164    // Get ALL filtered product IDs (not just current page)
11165    function getAllFilteredProductIds() {
11166        // Try to get all product IDs from various sources
11167        let allProductIds = [];
11168        
11169        // Method 1: Try to get from all product containers (including hidden/paginated ones)
11170        const allProductElements = document.querySelectorAll('[data-product-id]');
11171        const uniqueIds = new Set();
11172        
11173        allProductElements.forEach(element => {
11174            const productId = element.getAttribute('data-product-id');
11175            if (productId && !uniqueIds.has(productId)) {
11176                uniqueIds.add(productId);
11177                allProductIds.push(productId);
11178            }
11179        });
11180        
11181        // Method 2: If we don't have enough, try to get from data attributes or other sources
11182        if (allProductIds.length < 25) {
11183            // Try to get from toolbar or other data sources
11184            const toolbarElement = document.querySelector('.toolbar, #toolbar-amount, .toolbar-amount');
11185            if (toolbarElement) {
11186                // Look for data attributes that might contain all product IDs
11187                const dataProductIds = toolbarElement.getAttribute('data-product-ids');
11188                if (dataProductIds) {
11189                    const additionalIds = dataProductIds.split(',').map(id => id.trim()).filter(id => id);
11190                    additionalIds.forEach(id => {
11191                        if (!uniqueIds.has(id)) {
11192                            uniqueIds.add(id);
11193                            allProductIds.push(id);
11194                        }
11195                    });
11196                }
11197            }
11198        }
11199        return allProductIds;
11200    }
11201    
11202    // Get toolbar count for comparison
11203    function getToolbarCount() {
11204        const toolbarElement = document.querySelector('#toolbar-amount .toolbar-number, .toolbar .amount, .toolbar-number');
11205        if (toolbarElement) {
11206            const text = toolbarElement.textContent.replace(/,/g, '');
11207            const count = parseInt(text) || 0;
11208            
11209            return count;
11210        }
11211        return 0;
11212    }
11213    
11214    // AJAX function to get product data from backend
11215    async function getProductData() {
11216        
11217        // Get ALL filtered product IDs (not just current page)
11218        const allFilteredProductIds = getAllFilteredProductIds();
11219        const toolbarCount = getToolbarCount();
11220        
11221        try {
11222            const response = await fetch('/revenueranking/ajax/productRevenue', {
11223                method: 'POST',
11224                headers: {
11225                    'Content-Type': 'application/x-www-form-urlencoded',
11226                    'X-Requested-With': 'XMLHttpRequest'
11227                },
11228                body: new URLSearchParams({
11229                    'action': 'get_product_data',
11230                    'current_url': window.location.href,
11231                    'current_page_product_ids': allFilteredProductIds.join(','),
11232                    'toolbar_count': toolbarCount
11233                })
11234            });
11235            
11236            if (!response.ok) {
11237                throw new Error(`HTTP error! status: ${response.status}`);
11238            }
11239            
11240            const data = await response.json();
11241            
11242            return data;
11243            
11244        } catch (error) {
11245            return {
11246                success: false,
11247                error: error.message
11248            };
11249        }
11250    }
11251    
11252    // Update display with AJAX data
11253    async function updateDisplay() {
11254        
11255        // Get data from backend
11256        const data = await getProductData();
11257        
11258        if (data.success) {
11259            
11260            getAllproductsIds();
11261            
11262        } else {
11263        }
11264    }
11265    
11266    // Display Buy % calculations
11267    function displayBuyPercentages(buyPercentages) {
11268        // Get current URL params
11269        const urlParams = new URLSearchParams(window.location.search);
11270        
11271        const activeFilters = getActiveFilters();
11272		// Count only non-blank values
11273		const nonBlankCount = Object.values(activeFilters)
11274		  .filter(value => value !== '' && value !== null && value !== undefined)
11275		  .length;
11276
11277        const hasActiveFilters = Object.keys(activeFilters).length > 0;
11278        
11279        let order = urlParams.get('product_list_order');
11280        let isRevenue = 0; // default = not revenue
11281
11282        if (order && order !== 'position' && order !== 'price') {
11283            isRevenue = 1;
11284        }
11285
11286        // Check if product_list_order exists and equals revenue_ranking
11287        if (nonBlankCount) {
11288        
11289            document.querySelectorAll('#m-navigation-product-list-wrapper form.form-desktop').forEach((form, index) => {
11290                
11291                const productId = parseInt(form.querySelector('input[name="product"]')?.value, 10);
11292                const productData = buyPercentages.find(item => item.product_id === productId);
11293                if (isRevenue === 1) {
11294                let bestsellerDiv = form.querySelector('.product_lebel.bestseller_label.text-size12.font-semibold.text-white.text-center');
11295                if (index < 5 && (!urlParams.has('p') || urlParams.get('p') === '1')) {
11296                    let displayIndex = index + 1;
11297                    if (productData && productData.has_revenue_data && productData.revenue > 0) {
11298                        if (!bestsellerDiv) {
11299                            // Create new if not exists
11300                            bestsellerDiv = document.createElement('span');
11301                            bestsellerDiv.className = 'product_lebel bestseller_label text-size12 font-semibold text-white text-center';
11302
11303                            // Find container where to append
11304                            const labelContainer = form.querySelector('.product_lebel_container.active');
11305                            if (labelContainer) {
11306                                labelContainer.appendChild(bestsellerDiv);
11307                            }
11308                        }
11309                        // Update text
11310                        bestsellerDiv.innerText = `# ${displayIndex} Best Seller`;
11311                    }else{
11312                        if (bestsellerDiv) {
11313                            bestsellerDiv.remove();
11314                        }
11315                    }
11316                }else{
11317                    if (bestsellerDiv) {
11318                        bestsellerDiv.remove();
11319                    }
11320                }
11321                }
11322                
11323                if (productData && productData.has_revenue_data && productData.buy_percentage > 0) {
11324                    // Check if buy_this_percentage already exists
11325                    let percentageDiv = form.querySelector('.buy_this_percentage');
11326
11327                    if (!percentageDiv) {
11328                        // Create new if not exists
11329                        percentageDiv = document.createElement('sapn');
11330                        percentageDiv.className = 'buy_this_percentage';
11331
11332                        // Find container where to append
11333                        const labelContainer = form.querySelector('.product_lebel_container.active');
11334                        if (labelContainer) {
11335                            labelContainer.appendChild(percentageDiv);
11336                        }
11337                    }
11338
11339                    // Update text
11340                    percentageDiv.innerText = `${productData.buy_percentage}% Buy This`;
11341                }else{
11342                    let percentageDiv = form.querySelector('.buy_this_percentage');
11343                    if (percentageDiv) {
11344                        percentageDiv.innerText = ``;
11345                    }
11346                }
11347            });
11348            
11349            document.querySelectorAll('#m-navigation-product-list-wrapper form.form-mob').forEach((form, index) => {
11350                
11351                const productId = parseInt(form.querySelector('input[name="product"]')?.value, 10);
11352                const productData = buyPercentages.find(item => item.product_id === productId);
11353                if (isRevenue === 1) {
11354                let bestsellerDiv = form.querySelector('.product_lebel.bestseller_label.text-size12.font-semibold.text-white.text-center');
11355                if (index < 5 && (!urlParams.has('p') || urlParam
11355s.get('p') === '1')) {
11356                    let displayIndex = index + 1;
11357                    if (productData && productData.has_revenue_data && productData.revenue > 0) {
11358                        if (!bestsellerDiv) {
11359                            // Create new if not exists
11360                            bestsellerDiv = document.createElement('span');
11361                            bestsellerDiv.className = 'product_lebel bestseller_label text-size12 font-semibold text-white text-center';
11362
11363                            // Find container where to append
11364                            const labelContainer = form.querySelector('.product_lebel_container_bestseller');
11365                            if (labelContainer) {
11366                                labelContainer.appendChild(bestsellerDiv);
11367                            }
11368                        }
11369                        // Update text
11370                        bestsellerDiv.innerText = `# ${displayIndex} Best Seller`;
11371                    }else{
11372                        if (bestsellerDiv) {
11373                            bestsellerDiv.remove();
11374                        }
11375                    }
11376                }else{
11377                    if (bestsellerDiv) {
11378                        bestsellerDiv.remove();
11379                    }
11380                }
11381                }
11382                
11383                if (productData && productData.has_revenue_data && productData.buy_percentage > 0) {
11384                    // Check if buy_this_percentage already exists
11385                    let percentageDiv = form.querySelector('.buy_this_percentage');
11386
11387                    if (!percentageDiv) {
11388                        // Create new if not exists
11389                        percentageDiv = document.createElement('sapn');
11390                        percentageDiv.className = 'buy_this_percentage';
11391
11392                        // Find container where to append
11393                        const labelContainer = form.querySelector('.product_lebel_container_buy_this_percentage');
11394                        if (labelContainer) {
11395                            labelContainer.appendChild(percentageDiv);
11396                        }
11397                    }
11398
11399                    // Update text
11400                    percentageDiv.innerText = `${productData.buy_percentage}% Buy This`;
11401                }else{
11402                    let percentageDiv = form.querySelector('.buy_this_percentage');
11403                    if (percentageDiv) {
11404                        percentageDiv.innerText = ``;
11405                    }
11406                }
11407            });
11408            
11409        } else if (isRevenue === 1 && hasActiveFilters) {
11410			document.querySelectorAll('#m-navigation-product-list-wrapper form.form-desktop').forEach((form, index) => {
11411                
11412                const productId = parseInt(form.querySelector('input[name="product"]')?.value, 10);
11413                const productData = buyPercentages.find(item => item.product_id === productId);
11414                if (isRevenue === 1) {
11415                let bestsellerDiv = form.querySelector('.product_lebel.bestseller_label.text-size12.font-semibold.text-white.text-center');
11416                if (index < 5 && (!urlParams.has('p') || urlParams.get('p') === '1')) {
11417                    let displayIndex = index + 1;
11418                    if (productData && productData.has_revenue_data && productData.revenue > 0) {
11419                        if (!bestsellerDiv) {
11420                            // Create new if not exists
11421                            bestsellerDiv = document.createElement('span');
11422                            bestsellerDiv.className = 'product_lebel bestseller_label text-size12 font-semibold text-white text-center';
11423
11424                            // Find container where to append
11425                            const labelContainer = form.querySelector('.product_lebel_container.active');
11426                            if (labelContainer) {
11427                                labelContainer.appendChild(bestsellerDiv);
11428                            }
11429                        }
11430                        // Update text
11431                        bestsellerDiv.innerText = `# ${displayIndex} Best Seller`;
11432                    }else{
11433                        if (bestsellerDiv) {
11434                            bestsellerDiv.remove();
11435                        }
11436                    }
11437                }else{
11438                    if (bestsellerDiv) {
11439                        bestsellerDiv.remove();
11440                    }
11441                }
11442                }
11443            });
11444            
11445            document.querySelectorAll('#m-navigation-product-list-wrapper form.form-mob').forEach((form, index) => {
11446                
11447                const productId = parseInt(form.querySelector('input[name="product"]')?.value, 10);
11448                const productData = buyPercentages.find(item => item.product_id === productId);
11449                if (isRevenue === 1) {
11450                let bestsellerDiv = form.querySelector('.product_lebel.bestseller_label.text-size12.font-semibold.text-white.text-center');
11451                if (index < 5 && (!urlParams.has('p') || urlParam
11451s.get('p') === '1')) {
11452                    let displayIndex = index + 1;
11453                    if (productData && productData.has_revenue_data && productData.revenue > 0) {
11454                        if (!bestsellerDiv) {
11455                            // Create new if not exists
11456                            bestsellerDiv = document.createElement('span');
11457                            bestsellerDiv.className = 'product_lebel bestseller_label text-size12 font-semibold text-white text-center';
11458
11459                            // Find container where to append
11460                            const labelContainer = form.querySelector('.product_lebel_container_bestseller');
11461                            if (labelContainer) {
11462                                labelContainer.appendChild(bestsellerDiv);
11463                            }
11464                        }
11465                        // Update text
11466                        bestsellerDiv.innerText = `# ${displayIndex} Best Seller`;
11467                    }else{
11468                        if (bestsellerDiv) {
11469                            bestsellerDiv.remove();
11470                        }
11471                    }
11472                }else{
11473                    if (bestsellerDiv) {
11474                        bestsellerDiv.remove();
11475                    }
11476                }
11477                }
11478            });
11479		}
11480		// Select all filter links inside the category-top-filter block
11481		const filterLinks = document.querySelectorAll('.category-top-filter a.special-filters');
11482
11483		filterLinks.forEach(link => {
11484			const url = new URL(link.href, window.location.origin);
11485			url.searchParams.set('product_list_dir', 'desc');
11486			url.searchParams.set('product_list_order', 'revenue_ranking');
11487			link.href = url.toString();
11488		});
11489    }
11490    
11491    async function getAllFilteredProductIdsCustom(categoryId) {
11492          const endpoint = "/graphql"; // GraphQL endpoint (relative or absolute URL)
11493          const pageSize = 100;
11494          let currentPage = 1;
11495          let allProducts = [];
11496          let totalPages = 1;
11497          
11498          // Build filters dynamically
11499          const filters = buildGraphQlFilters(categoryId);
11500		  if (filters.srsltid) {
11501			delete filters.srsltid;
11502		  }
11503		  if (filters.spotlight) {
11504			delete filters.spotlight;
11505		  }
11506		  if (filters.category_id && filters.category_id.eq === "null") {
11507			delete filters.category_id;
11508		  }
11509		  if (filters.revenue_ranking) {
11510			delete filters.revenue_ranking;
11511		  }
11512
11513          const query = `
11514    query getFilteredProducts($currentPage: Int!, $pageSize: Int!, $filters: ProductAttributeFilterInput!) {
11515      products(
11516        filter: $filters
11517        pageSize: $pageSize
11518        currentPage: $currentPage
11519      ) {
11520        items {
11521          id
11522          sku
11523          revenue_ranking
11524        }
11525        page_info {
11526          current_page
11527          total_pages
11528        }
11529      }
11530    }
11531  `;
11532
11533          do {
11534            const response = await fetch('/graphql', {
11535              method: 'POST',
11536              headers: { 'Content-Type': 'application/json' },
11537              body: JSON.stringify({
11538                query,
11539                variables: { currentPage, pageSize, filters }
11540              })
11541            });
11542
11543            const result = await response.json();
11544            const data = result.data.products;
11545
11546            if (data && data.items) {
11547              allProducts.push(...data.items);
11548              totalPages = data.page_info.total_pages;
11549            } else {
11550              break;
11551            }
11552
11553            currentPage++;
11554          } while (currentPage <= totalPages);
11555
11556          return allProducts;
11557    }
11558    
11559    function buildGraphQlFilters(categoryId) {
11560      const activeFilters = getActiveFiltersFromUrl();
11561
11562      // Start with category filter
11563      const gqlFilters = {
11564        category_id: { eq: String(categoryId) }
11565      };
11566
11567      // Add dynamic attribute filters
11568      Object.entries(activeFilters).forEach(([attribute, values]) => {
11569        gqlFilters[attribute] = { in: values.map(String) };
11570      });
11571
11572      return gqlFilters;
11573    }
11574    
11575    function getActiveFiltersFromUrl() {
11576      const params = new URLSearchParams(window.location.search);
11577      const filters = {};
11578
11579      for (const [key, value] of params.entries()) {
11580        // Skip sorting/pagination params and non-filterable attributes
11581        if ([
11582          "product_list_dir",
11583          "product_list_mode",
11584          "product_list_order",
11585          "p", // pagination
11586          "product_list_limit",
11587          "revenue_ranking", // Not a filterable attribute, used for sorting only
11588          "srsltid",
11589          "spotlight"
11590        ].includes(key)) {
11591          continue;
11592        }
11593		
11594		if (!allattributesdata.includes(key)) {
11595		  continue;
11596		}
11597
11598        // Split comma-separated values (ex: "116475,116469")
11599        const values = value.split(',').map(v => v.trim()).filter(v => v);
11600
11601        if (!filters[key]) {
11602          filters[key] = [];
11603        }
11604        filters[key].push(...values);
11605      }
11606
11607      return filters;
11608    }
11609    
11610    function getActiveFilters() {
11611        const urlParams = new URLSearchParams(window.location.search);
11612
11613        // Excluded params (not filters)
11614        const excludedParams = [
11615            'id',
11616            'p',
11617            'product_list_dir',
11618            'product_list_order',
11619            'product_list_limit',
11620            'product_list_mode'
11621        ];
11622
11623        let filterParams = {};
11624
11625        for (let [key, value] of urlParams.entries()) {
11626			if (excludedParams.includes(key)) {
11627			  continue;
11628			}
11629			if (!allattributesdata.includes(key)) {
11630			  continue;
11631			}
11632            filterParams[key] = value;
11633        }
11634
11635        return filterParams;
11636    }
11637    function getAllproductsIds() {
11638        (async () => {
11639          const categoryElement = document.querySelector('.products.wrapper');
11640          const categoryId = categoryElement ? categoryElement.getAttribute('categoryid') : null;
11641
11642          const products = await getAllFilteredProductIdsCustom(categoryId);
11643          // 🔄 Calculate total revenue
11644          const totalRevenue = products.reduce((sum, p) => sum + (parseFloat(p.revenue_ranking) || 0), 0);
11645
11646          // 🔄 Convert to buyPercentages format
11647          const buyPercentages = products.map(p => {
11648            const revenue = parseFloat(p.revenue_ranking) || 0;
11649            return {
11650              product_id: p.id,
11651              revenue: revenue,
11652              buy_percentage: totalRevenue > 0 ? ((revenue / totalRevenue) * 100).toFixed(2) : 0,
11653              has_revenue_data: revenue > 0
11654            };
11655          });
11656		  
11657		  // Select all filter links inside the category-top-filter block
11658		const filterLinks = document.querySelectorAll('.category-top-filter a.special-filters');
11659
11660		filterLinks.forEach(link => {
11661			const url = new URL(link.href, window.location.origin);
11662			url.searchParams.set('product_list_dir', 'desc');
11663			url.searchParams.set('product_list_order', 'revenue_ranking');
11664			link.href = url.toString();
11665		});
11666          
11667          displayBuyPercentages(buyPercentages);
11668        })();
11669    }
11670    
11671    function resetupdateDisplay() {
11672        // Get current URL params
11673        const urlParams = new URLSearchParams(window.location.search);
11674
11675        // Check if product_list_order exists and equals revenue_ranking
11676        if (urlParams.get('product_list_order') === 'revenue_ranking') {
11677        
11678            document.querySelectorAll('#m-navigation-product-list-wrapper form.form-desktop').forEach((form, index) => {
11679                let bestsellerDiv = form.querySelector('.product_lebel.bestseller_label.text-size12.font-semibold.text-white.text-center');
11680                if (bestsellerDiv) {
11681                    bestsellerDiv.remove();
11682                }
11683                let percentageDiv = form.querySelector('.buy_this_percentage');
11684                if (percentageDiv) {
11685                    percentageDiv.innerText = ``;
11686                }
11687            });
11688            
11689            document.querySelectorAll('#m-navigation-product-list-wrapper form.form-mob').forEach((form, index) => {
11690                let bestsellerDiv = form.querySelector('.product_lebel.bestseller_label.text-size12.font-semibold.text-white.text-center');
11691                if (bestsellerDiv) {
11692                    bestsellerDiv.remove();
11693                }
11694                let percentageDiv = form.querySelector('.buy_this_percentage');
11695                if (percentageDiv) {
11696                    percentageDiv.innerText = ``;
11697                }
11698            });
11699            
11700        }
11701    }
11702    
11703    // Setup filter change listeners
11704    function setupFilterListeners() {
11705        
11706        // Listen for Mirasvit filter events
11707        document.addEventListener('mst-nav__ajax-call', function() {
11708			// Select all filter links inside the category-top-filter block
11709			const filterLinks = document.querySelectorAll('.category-top-filter a.special-filters');
11710
11711			filterLinks.forEach(link => {
11712				const url = new URL(link.href, window.location.origin);
11713				url.searchParams.set('product_list_dir', 'desc');
11714				url.searchParams.set('product_list_order', 'revenue_ranking');
11715				link.href = url.toString();
11716			});
11717            setTimeout(resetupdateDisplay(), 100);
11718            setTimeout(updateDisplay, 1000); // Wait for content to update
11719            setTimeout(updateDisplay, 2000); // Wait for content to update
11720        });
11721        
11722        document.addEventListener('mst-nav__content-updated', function() {
11723            setTimeout(updateDisplay, 1000); // Wait for content to update
11724        });
11725        
11726        document.addEventListener('mst-nav__filter-changed', function() {
11727            setTimeout(updateDisplay, 1500); // Wait for content to update
11728        });
11729        
11730        document.addEventListener('mst-nav__filter-removed', function() {
11731            setTimeout(updateDisplay, 1500); // Wait for content to update
11732        });
11733        
11734        document.addEventListener('mst-nav__state-changed', function() {
11735            setTimeout(updateDisplay, 1500); // Wait for content to update
11736        });
11737        
11738        // Listen for URL changes (back/forward navigation)
11739        window.addEventListener('popstate', function() {
11740            setTimeout(updateDisplay, 1000);
11741        });
11742        
11743        // Listen for any click on filter elements
11744        document.addEventListener('click', function(e) {
11745            const filterElement = e.target.closest('[data-mst-nav-filter], .filter-option, .filter-item, .layered-filter');
11746            if (filterElement) {
11747                setTimeout(updateDisplay, 2000); // Wait for filter to apply
11748            }
11749        });
11750    }
11751    
11752    // Initialize when DOM is ready
11753    document.addEventListener('DOMContentLoaded', function() {
11754        
11755        const refreshBtn = document.getElementById('refresh-btn');
11756        if (refreshBtn) {
11757            refreshBtn.addEventListener('click', function() {
11758                updateDisplay();
11759            });
11760        }
11761        
11762        // Setup automatic filter listeners
11763        setupFilterListeners();
11764        
11765        // Initial update
11766        updateDisplay();
11767		
11768		// Select all filter links inside the category-top-filter block
11769		const filterLinks = document.querySelectorAll('.category-top-filter a.special-filters');
11770
11771		filterLinks.forEach(link => {
11772			const url = new URL(link.href, window.location.origin);
11773			url.searchParams.set('product_list_dir', 'desc');
11774			url.searchParams.set('product_list_order', 'revenue_ranking');
11775			link.href = url.toString();
11776		});
11777    
11778    });
11779    
11780})();
11781</script>
11781
11782
11783    <div id="m-navigation-replacer"></div><div id="m-navigation-product-list-wrapper">
11784    <section class="py-8">
11785        
11785<script>
11786    function initToolbar_6ac152907112f() {
11787        return {
11788            options: {"productListToolbarForm":{"mode":"product_list_mode","direction":"product_list_dir","order":"product_list_order","limit":"product_list_limit","modeDefault":"grid","directionDefault":"asc","orderDefault":"position","limitDefault":24,"url":"https:\/\/www.flooringinc.com\/shop\/rubber-flooring\/all-rubber-flooring.html","formKey":"3mNdp2ZYJNcyLOs5","post":false,"page":"p"}}.productListToolbarForm || {},
11789            getUrlParams: function () {
11790                let decode = window.decodeURIComponent,
11791                    urlPaths = this.options.url.split('?'),
11792                    urlParams = urlPaths[1] ? urlPaths[1].split('&') : [],
11793                    params = {},
11794                    parameters, i;
11795
11796                for (i = 0; i < urlParams.length; i++) {
11797                    parameters = urlParams[i].split('=');
11798                    params[decode(parameters[0])] = parameters[1] !== undefined ?
11799                        decode(parameters[1].replace(/\+/g, '%20')) :
11800                        '';
11801                }
11802
11803                return params;
11804            },
11805            getCurrentLimit: function () {
11806                return this.getUrlParams()[this.options.limit] || this.options.limitDefault;
11807            },
11808            getCurrentPage: function () {
11809                return this.getUrlParams()[this.options.page] || 1;
11810            },
11811            changeUrl(paramName, paramValue, defaultValue) {
11812                let urlPaths = this.options.url.split('?'),
11813                    baseUrl = urlPaths[0],
11814                    paramData = this.getUrlParams(),
11815                    currentPage = this.getCurrentPage(),
11816                    newPage;
11817
11818                /**
11819                 * calculates the page on which the first item of the current page will
11820                 * be with the new limit and sets that number as the new page
11821                 */
11822                if (currentPage > 1 && paramName === this.options.limit) {
11823                    newPage = Math.floor(this.getCurrentLimit() * (currentPage - 1) / paramValue) + 1;
11824
11825                    if (newPage > 1) {
11826                        paramData[this.options.page] = newPage;
11827                    } else {
11828                        delete paramData[this.options.page];
11829                    }
11830                }
11831
11832                paramData[paramName] = paramValue;
11833
11834                if (this.options.post) {
11835                    hyva.postForm({action: baseUrl, data: paramData});
11836                } else {
11837                    if (paramValue === defaultValue.toString()) {
11838                        delete paramData[paramName];
11839                    }
11840                    paramData = Object.keys(paramData).length === 0
11841                        ? ''
11842                        : '?' + (new URLSearchParams(paramData));
11843                    location.href = baseUrl + paramData
11844                }
11845            }
11846        }
11847    }
11848</script>
11848
11849    <div x-data="initToolbar_6ac152907112f()"
11850         class="toolbar toolbar-products overflow-hidden flex">
11851                                    
11852                <div class="modes w-20 order-1 col-span-1 sm:col-span-2 md:col-span-1 lg:col-span-2"></div>
11853    
11854
11855<p class="toolbar-amount text-sm leading-5 text-gray-700 order-4 flex items-center pl-8" id="toolbar-amount">
11856            <span class="toolbar-number">86</span><span class="toolbar-name text-lightgray1 text-size12 pl-1">products</span>    </p>
11857
11858
11859
11860
11861                
11862    <div class="field limiter flex items-center order-1 float-left w-1/2">
11863        <div class="control">
11864            <label class="text-sm label">
11865                <span class="text-size12 font-semibold pr-4">View</span>
11866
11867                <select data-role="limiter" class="form-select limiter-options"
11868                    @change="changeUrl(
11869                    'product_list_limit',
11870                    $event.currentTarget.options[$event.currentTarget.selectedIndex].value,
11871                    options.limitDefault
11872                )">
11873                                    <option value="12"
11874                        >
11875                        12                    </option>
11876                                    <option value="24"
11877                                                    selected="selected"
11878                        >
11879                        24                    </option>
11880                                    <option value="36"
11881                        >
11882                        36                    </option>
11883                                </select>
11884                <span class="text-size12 font-semibold pl-2">Products Per Page</span>
11885            </label>
11886        </div>
11887        <span class="limiter-text text-sm ml-2 sr-only">
11888        per page    </span>
11889    </div>
11890
11891<div class="toolbar-sorter sorter flex items-center order-1 col-span-3 sm:col-span-6
11892        md:col-span-3 lg:col-span-6 justify-end">
11893    <span class="sr-only sorter-label">
11894        Sort By    </span>
11895    <select data-role="sorter"
11896            class="form-select sorter-options mr-3"
11897            aria-label="Sort By"
11898            @change="changeUrl(
11899                'product_list_order',
11900                $event.currentTarget.options[$event.currentTarget.selectedIndex].value,
11901                options.orderDefault
11902            )">
11903        		                            <option value="position"
11904                                    selected="selected"
11905                                >Featured</option>
11906                        		                                    <option value="pricehigh"
11907                                >
11908                Price : High to Low
11909            </option>
11910            <option value="pricelow"
11911                                >
11912                Price : Low to High 
11913            </option>
11914                     		                                <option value="revenue_ranking"
11915                                >
11916                Best Seller            </option>           
11917                        </select>
11918    </div>
11919                        </div>
11920                       <div categoryid="2333" class="products wrapper mode-grid products-grid">
11921            <div class="mx-auto pt-4 pb-12 grid gap-4 grid-cols-1 sm:grid-cols-2 xl:grid-cols-4"
11922                x-data='{
11923                removeFromCompare: function(productId) {
11924                    var loader=document.getElementById("loading");
11925                    loader.style.display="block";
11926                    const formKey = hyva.getFormKey();
11927                    const postUrl = BASE_URL + "catalog/product_compare/remove/isAjax/true";                
11928                    const postHeaders = {
11929                        "headers": {
11930                            "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
11931                        },
11932                        "body": "form_key=" + formKey + "&product=" + productId + "&is_ajax=true&uenc=" + hyva.getUenc(),
11933                        "method": "POST",
11934                        "mode": "cors",
11935                        "credentials": "include"
11936                    };
11937
11938                    compareSidebarFetchHandler(postUrl, postHeaders);
11939                }
11940                }' x-init="getSelectedCompare();"
11941            >
11942                        <form method="post"
11943        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/294452/"
11944        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        "
11945            >
11946        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="294452"/>
11947                            <div class="catergory_slider_content bg-white ">
11948                <div class="product__label flex items-center w-full justify-between py-[13px] ">
11949                    <div class="product_lebel_container active">                        
11950                            
11951                                                                                                            <sp
11951an class="product_lebel bestseller_label text-size12 font-semibold text-white text-center">
11952                                            # 1 Best Seller
11953                                        </span>
11954                                                                        <sapn class="buy_this_percentage"></span>
11955                            
11956                    </div>
11957                                         
11958                </div> 
11959                                <a href="https://www.flooringinc.com/shop/rubber-gym-rolls-14000.html"
11960                    class="product photo product-item-photo block mx-auto w-full relative "
11961                    tabindex="-1"
11962                >
11963                    <div class="product-list-image relative w-full overflow-hidden"
11964         x-data='{
11965        over: false,
11966        hovered: false,
11967        hoverTimer: null,
11968        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_ojm4hunbcl7vb53bdchlinbr1o\/-B779-FWEBP",
11969        onEnter() {
11970            this.over = true;
11971            clearTimeout(this.hoverTimer);
11972            this.hoverTimer = setTimeout(() => {
11973                if (this.over) {
11974                    this.hovered = true;
11975                }
11976            }, 80);
11977        },
11978        onMove() {
11979            if (this.over) {
11980                this.hovered = true;
11981            }
11982        },
11983        onLeave() {
11984            this.over = false;
11985            this.hovered = false;
11986            clearTimeout(this.hoverTimer);
11987        }
11988     }'
11989     :class="hovered ? 'is-hovered' : ''"
11990     x-on:mouseenter="onEnter()"
11991     x-on:mousemove.debounce.80ms="onMove()"
11992     x-on:mouseleave="onLeave()"
11993          x-init="(new Image()).src = hoverUrl"
11994         >
11995    <img class="hover:shadow-sm object-contain w-full "
11996         x-data=""
11997         @update-gallery-294452.window="$root.src = $event.detail"
11998         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_v7nl7dt4kd5jhbbcdul019vu7a/-B779-FWEBP"
11999         loading="eager"
12000         decoding="async"
12001         fetchpriority="high"
12002         width="779"
12003         height=""
12004         alt="Rubber&#x20;Gym&#x20;Flooring&#x20;Rolls&#x20;-&#x20;4ft&#x20;Wide&#x20;&#x28;Custom&#x20;Cut&#x29;"
12005         title="Rubber&#x20;Gym&#x20;Flooring&#x20;Rolls&#x20;-&#x20;4ft&#x20;Wide&#x20;&#x28;Custom&#x20;Cut&#x29;"
12006         style="position: static !important;" />
12007            <template x-if="hovered">
12008            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
12009                 :src="hoverUrl"
12010                 loading="lazy"
12011                 decoding="async"
12012                 fetchpriority="low"
12013                 width="779"
12014                 height=""
12015                 alt="Rubber&#x20;Gym&#x20;Flooring&#x20;Rolls&#x20;-&#x20;4ft&#x20;Wide&#x20;&#x28;Custom&#x20;Cut&#x29;"
12016                 title="Rubber&#x20;Gym&#x20;Flooring&#x20;Rolls&#x20;-&#x20;4ft&#x20;Wide&#x20;&#x28;Custom&#x20;Cut&#x29;"
12017                 aria-hidden="true" />
12018        </template>
12019    </div>
12020   
12021                </a>
12022                <input type="hidden" id="product_name_294452"  name="product_name_294452" value="Rubber Gym Flooring Rolls - 4ft Wide (Custom Cut)">
12023                <input type="hidden" id="product_id_294452"  name="product_id_294452" value="294452">
12024                <input type="hidden" id="product_url_294452" name="product_url_294452" value="https://www.flooringinc.com/shop/rubber-gym-rolls-14000.html">
12025                <input type="hidden" id="image_url_294452" name="image_url_294452" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_v7nl7dt4kd5jhbbcdul019vu7a/-B779">
12026                <div class="product-info flex flex-col grow py-3 px-3">  
12027                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
12028                                       
12029                    <a href="https://www.flooringinc.com/shop/rubber-gym-rolls-14000.html">
12030                                                <div class="text-primary product-name ">
12031                            <span class="product-item-link text-size16 font-bold no-underline relative block"
12032                                title="Rubber Gym Flooring Rolls - 4ft Wide (Custom Cut)">
12033                                Rubber Gym Flooring Rolls - 4ft Wide (Custom Cut)                            </span>
12034                        
12035                        </div>
12036
12037                                                    <div class="ratings " data-nosnippet>
12038                                <div data-bv-show="rating_summary"
12039                                    data-bv-product-id="14000"
12040                                    data-bv-redirect-url="https://www.flooringinc.com/shop/rubber-gym-rolls-14000.html">
12041                                </div>
12042                            </div>
12043                        
12044                        
12045                                                
12046                    </a>
12047
12048                    <div class="priceBlock">
12049                        <div class="text-gray-900">
12050                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="294452" data-price-box="product-id-294452"><span class="normal-price">
12051    <span class="price-container price-final_price&#x20;tax&#x20;weee"
12052        >
12053
12054    <span  id="product-price-294452"                data-price-amount="3.96"
12055        data-price-type="finalPrice"
12056        class="price-wrapper "
12057    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$0.99</span> /sqft</span>
12058            <span class="price-mrp">
12059                            <span class="price-mrp-new">was 
12060                $1.52                </span>
12061                <span data-info="0.53" class="savePrice">Save 35%</span>        </span>
12062            </span>
12063</span>
12064
12065
12066</div>                        </div>
12067                    </div>
12068                    
12069                    <div class="compare-buttons flex flex-wrap">     
12070
12071                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 294452}">
12072                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
12073                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
12074                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
12075                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
12076                                    <div class="modal-content">
12077                                        <div x-html="htmlContent" class="htmlcontent294452"></div>
12078                                    </div>
12079                                </div>
12080                            </div>
12081                        
12082                        <div class="color_counts">
12083                                                            <div class="color_count text-size14 font-normal text-center">Available in 38 colors</div>
12084                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
12085                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
12086                                                    </div>
12087
12088                                                    <div class="ship-fax-plp">
12089                                <a class="ship-iconsada" title="Quick Ship" href="https://www.flooringinc.com/shop/rubber-gym-rolls-14000.html">
12090                                    <span class="text-[14px] text-[#296497] font-semibold">Quick Ship</span>
12091                                    <picture class="hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/product/quick_ship.webp"><img alt="Quick Ship" title="Quick Ship" width="160" height="51" src="https://www.flooringinc.com/media/catalog/product/quick_ship.png" class="hidden" /></picture>
12092                                </a>
12093                            </div>
12094                          
12095
12096                    </div>
12097                </div>
12098            </div>
12099        
12100    </form>
12101          <form method="post"
12102        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/305543/"
12103        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        "
12104            >
12105        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="305543"/>
12106                            <div class="catergory_slider_content bg-white ">
12107                <div class="product__label flex items-center w-full justify-between py-[13px] ">
12108                    <div class="product_lebel_container active">                        
12109                            
12110                                                                                                            <sp
12110an class="product_lebel bestseller_label text-size12 font-semibold text-white text-center">
12111                                            # 2 Best Seller
12112                                        </span>
12113                                                                        <sapn class="buy_this_percentage"></span>
12114                            
12115                    </div>
12116                                         
12117                </div> 
12118                                <a href="https://www.flooringinc.com/shop/3-8-heavy-duty-rubber-rolls-1006.html"
12119                    class="product photo product-item-photo block mx-auto w-full relative "
12120                    tabindex="-1"
12121                >
12122                    <div class="product-list-image relative w-full overflow-hidden"
12123         x-data='{
12124        over: false,
12125        hovered: false,
12126        hoverTimer: null,
12127        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_qc7660kjf509hbiokssnd3pj7g\/-B779-FWEBP",
12128        onEnter() {
12129            this.over = true;
12130            clearTimeout(this.hoverTimer);
12131            this.hoverTimer = setTimeout(() => {
12132                if (this.over) {
12133                    this.hovered = true;
12134                }
12135            }, 80);
12136        },
12137        onMove() {
12138            if (this.over) {
12139                this.hovered = true;
12140            }
12141        },
12142        onLeave() {
12143            this.over = false;
12144            this.hovered = false;
12145            clearTimeout(this.hoverTimer);
12146        }
12147     }'
12148     :class="hovered ? 'is-hovered' : ''"
12149     x-on:mouseenter="onEnter()"
12150     x-on:mousemove.debounce.80ms="onMove()"
12151     x-on:mouseleave="onLeave()"
12152          x-init="(new Image()).src = hoverUrl"
12153         >
12154    <img class="hover:shadow-sm object-contain w-full "
12155         x-data=""
12156         @update-gallery-305543.window="$root.src = $event.detail"
12157         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_0ljk07003h6q14fc1jfohkob07/-B779-FWEBP"
12158         loading="eager"
12159         decoding="async"
12160         fetchpriority="high"
12161         width="779"
12162         height=""
12163         alt="3&#x2F;8&quot;&#x20;Heavy&#x20;Duty&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;Commercial&#x20;Gym&#x20;Flooring"
12164         title="3&#x2F;8&quot;&#x20;Heavy&#x20;Duty&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;Commercial&#x20;Gym&#x20;Flooring"
12165         style="position: static !important;" />
12166            <template x-if="hovered">
12167            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
12168                 :src="hoverUrl"
12169                 loading="lazy"
12170                 decoding="async"
12171                 fetchpriority="low"
12172                 width="779"
12173                 height=""
12174                 alt="3&#x2F;8&quot;&#x20;Heavy&#x20;Duty&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;Commercial&#x20;Gym&#x20;Flooring"
12175                 title="3&#x2F;8&quot;&#x20;Heavy&#x20;Duty&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;Commercial&#x20;Gym&#x20;Flooring"
12176                 aria-hidden="true" />
12177        </template>
12178    </div>
12179   
12180                </a>
12181                <input type="hidden" id="product_name_305543"  name="product_name_305543" value="3/8" Heavy Duty Rubber Rolls | Commercial Gym Flooring">
12182                <input type="hidden" id="product_id_305543"  name="product_id_305543" value="305543">
12183                <input type="hidden" id="product_url_305543" name="product_url_305543" value="https://www.flooringinc.com/shop/3-8-heavy-duty-rubber-rolls-1006.html">
12184                <input type="hidden" id="image_url_305543" name="image_url_305543" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_0ljk07003h6q14fc1jfohkob07/-B779">
12185                <div class="product-info flex flex-col grow py-3 px-3">  
12186                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
12187                                       
12188                    <a href="https://www.flooringinc.com/shop/3-8-heavy-duty-rubber-rolls-1006.html">
12189                                                <div class="text-primary product-name ">
12190                            <span class="product-item-link text-size16 font-bold no-underline relative block"
12191                                title="3/8&quot; Heavy Duty Rubber Rolls | Commercial Gym Flooring">
12192                                3/8&quot; Heavy Duty Rubber Rolls | Commercial Gym Flooring                            </span>
12193                        
12194                        </div>
12195
12196                                                    <div class="ratings " data-nosnippet>
12197                                <div data-bv-show="rating_summary"
12198                                    data-bv-product-id="1006"
12199                                    data-bv-redirect-url="https://www.flooringinc.com/shop/3-8-heavy-duty-rubber-rolls-1006.html">
12200                                </div>
12201                            </div>
12202                        
12203                        
12204                                                
12205                    </a>
12206
12207                    <div class="priceBlock">
12208                        <div class="text-gray-900">
12209                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="305543" data-price-box="product-id-305543"><span class="normal-price">
12210    <span class="price-container price-final_price&#x20;tax&#x20;weee"
12211        >
12212
12213    <span  id="product-price-305543"                data-price-amount="6.33"
12214        data-price-type="finalPrice"
12215        class="price-wrapper "
12216    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$1.58</span> /sqft    </span>
12217            <span class="price-mrp">
12218                            <span class="price-mrp-new">was 
12219                $2.44                </span>
12220                <span data-info="0.86" class="savePrice">Save 35%</span>        </span>
12221            </span>
12222</span>
12223
12224
12225</div>                        </div>
12226                    </div>
12227                    
12228                    <div class="compare-buttons flex flex-wrap">     
12229
12230                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 305543}">
12231                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
12232                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
12233                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
12234                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
12235                                    <div class="modal-content">
12236                                        <div x-html="htmlContent" class="htmlcontent305543"></div>
12237                                    </div>
12238                                </div>
12239                            </div>
12240                        
12241                        <div class="color_counts">
12242                                                            <div class="color_count text-size14 font-normal text-center">Available in 38 colors</div>
12243                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
12244                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
12245                                                    </div>
12246
12247                                                    <div class="ship-fax-plp">
12248                                <a class="ship-iconsada" title="Quick Ship" href="https://www.flooringinc.com/shop/3-8-heavy-duty-rubber-rolls-1006.html">
12249                                    <span class="text-[14px] text-[#296497] font-semibold">Quick Ship</span>
12250                                    <picture class="hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/product/quick_ship.webp"><img alt="Quick Ship" title="Quick Ship" width="160" height="51" src="https://www.flooringinc.com/media/catalog/product/quick_ship.png" class="hidden" /></picture>
12251                                </a>
12252                            </div>
12253                          
12254
12255                    </div>
12256                </div>
12257            </div>
12258        
12259    </form>
12260          <form method="post"
12261        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/269393/"
12262        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        "
12263            >
12264        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="269393"/>
12265                            <div class="catergory_slider_content bg-white ">
12266                <div class="product__label flex items-center w-full justify-between py-[13px] ">
12267                    <div class="product_lebel_container active">                        
12268                            
12269                                                                                                            <sp
12269an class="product_lebel bestseller_label text-size12 font-semibold text-white text-center">
12270                                            # 3 Best Seller
12271                                        </span>
12272                                                                        <sapn class="buy_this_percentage"></span>
12273                            
12274                    </div>
12275                                         
12276                </div> 
12277                                <a href="https://www.flooringinc.com/shop/1-2-mega-rubber-rolls-1007.html"
12278                    class="product photo product-item-photo block mx-auto w-full relative "
12279                    tabindex="-1"
12280                >
12281                    <div class="product-list-image relative w-full overflow-hidden"
12282         x-data='{
12283        over: false,
12284        hovered: false,
12285        hoverTimer: null,
12286        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_ahhpbka48l4th8nr132jmas162\/-B779-FWEBP",
12287        onEnter() {
12288            this.over = true;
12289            clearTimeout(this.hoverTimer);
12290            this.hoverTimer = setTimeout(() => {
12291                if (this.over) {
12292                    this.hovered = true;
12293                }
12294            }, 80);
12295        },
12296        onMove() {
12297            if (this.over) {
12298                this.hovered = true;
12299            }
12300        },
12301        onLeave() {
12302            this.over = false;
12303            this.hovered = false;
12304            clearTimeout(this.hoverTimer);
12305        }
12306     }'
12307     :class="hovered ? 'is-hovered' : ''"
12308     x-on:mouseenter="onEnter()"
12309     x-on:mousemove.debounce.80ms="onMove()"
12310     x-on:mouseleave="onLeave()"
12311          x-init="(new Image()).src = hoverUrl"
12312         >
12313    <img class="hover:shadow-sm object-contain w-full "
12314         x-data=""
12315         @update-gallery-269393.window="$root.src = $event.detail"
12316         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_6j9g5b7d417s940035ituhll5s/-B779-FWEBP"
12317         loading="eager"
12318         decoding="async"
12319         fetchpriority="high"
12320         width="779"
12321         height=""
12322         alt="1&#x2F;2&quot;&#x20;Mega&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;Commercial&#x20;Gym&#x20;Flooring"
12323         title="1&#x2F;2&quot;&#x20;Mega&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;Commercial&#x20;Gym&#x20;Flooring"
12324         style="position: static !important;" />
12325            <template x-if="hovered">
12326            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
12327                 :src="hoverUrl"
12328                 loading="lazy"
12329                 decoding="async"
12330                 fetchpriority="low"
12331                 width="779"
12332                 height=""
12333                 alt="1&#x2F;2&quot;&#x20;Mega&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;Commercial&#x20;Gym&#x20;Flooring"
12334                 title="1&#x2F;2&quot;&#x20;Mega&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;Commercial&#x20;Gym&#x20;Flooring"
12335                 aria-hidden="true" />
12336        </template>
12337    </div>
12338   
12339                </a>
12340                <input type="hidden" id="product_name_269393"  name="product_name_269393" value="1/2" Mega Rubber Rolls | Commercial Gym Flooring">
12341                <input type="hidden" id="product_id_269393"  name="product_id_269393" value="269393">
12342                <input type="hidden" id="product_url_269393" name="product_url_269393" value="https://www.flooringinc.com/shop/1-2-mega-rubber-rolls-1007.html">
12343                <input type="hidden" id="image_url_269393" name="image_url_269393" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_6j9g5b7d417s940035ituhll5s/-B779">
12344                <div class="product-info flex flex-col grow py-3 px-3">  
12345                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
12346                                       
12347                    <a href="https://www.flooringinc.com/shop/1-2-mega-rubber-rolls-1007.html">
12348                                                <div class="text-primary product-name ">
12349                            <span class="product-item-link text-size16 font-bold no-underline relative block"
12350                                title="1/2&quot; Mega Rubber Rolls | Commercial Gym Flooring">
12351                                1/2&quot; Mega Rubber Rolls | Commercial Gym Flooring                            </span>
12352                        
12353                        </div>
12354
12355                                                    <div class="ratings " data-nosnippet>
12356                                <div data-bv-show="rating_summary"
12357                                    data-bv-product-id="1007"
12358                                    data-bv-redirect-url="https://www.flooringinc.com/shop/1-2-mega-rubber-rolls-1007.html">
12359                                </div>
12360                            </div>
12361                        
12362                        
12363                                                
12364                    </a>
12365
12366                    <div class="priceBlock">
12367                        <div class="text-gray-900">
12368                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="269393" data-price-box="product-id-269393"><span class="normal-price">
12369    <span class="price-container price-final_price&#x20;tax&#x20;weee"
12370        >
12371
12372    <span  id="product-price-269393"                data-price-amount="8.29"
12373        data-price-type="finalPrice"
12374        class="price-wrapper "
12375    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$2.07</span> /sqft</span>
12376            <span class="price-mrp">
12377                            <span class="price-mrp-new">was 
12378                $3.19                </span>
12379                <span data-info="1.12" class="savePrice">Save 35%</span>        </span>
12380            </span>
12381</span>
12382
12383
12384</div>                        </div>
12385                    </div>
12386                    
12387                    <div class="compare-buttons flex flex-wrap">     
12388
12389                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 269393}">
12390                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
12391                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
12392                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
12393                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
12394                                    <div class="modal-content">
12395                                        <div x-html="htmlContent" class="htmlcontent269393"></div>
12396                                    </div>
12397                                </div>
12398                            </div>
12399                        
12400                        <div class="color_counts">
12401                                                            <div class="color_count text-size14 font-normal text-center">Available in 30 colors</div>
12402                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
12403                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
12404                                                    </div>
12405
12406                                                    <div class="ship-fax-plp">
12407                                <a class="ship-iconsada" title="Quick Ship" href="https://www.flooringinc.com/shop/1-2-mega-rubber-rolls-1007.html">
12408                                    <span class="text-[14px] text-[#296497] font-semibold">Quick Ship</span>
12409                                    <picture class="hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/product/quick_ship.webp"><img alt="Quick Ship" title="Quick Ship" width="160" height="51" src="https://www.flooringinc.com/media/catalog/product/quick_ship.png" class="hidden" /></picture>
12410                                </a>
12411                            </div>
12412                          
12413
12414                    </div>
12415                </div>
12416            </div>
12417        
12418    </form>
12419          <form method="post"
12420        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/420159/"
12421        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        "
12422            >
12423        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="420159"/>
12424                            <div class="catergory_slider_content bg-white ">
12425                <div class="product__label flex items-center w-full justify-between py-[13px] ">
12426                    <div class="product_lebel_container active">                        
12427                            
12428                                                                                                            <sp
12428an class="product_lebel bestseller_label text-size12 font-semibold text-white text-center">
12429                                            # 4 Best Seller
12430                                        </span>
12431                                                                        <sapn class="buy_this_percentage"></span>
12432                            
12433                    </div>
12434                                         
12435                </div> 
12436                                <a href="https://www.flooringinc.com/shop/nextgen-xl-rubber-rolls-pro-series-14027.html"
12437                    class="product photo product-item-photo block mx-auto w-full relative "
12438                    tabindex="-1"
12439                >
12440                    <div class="product-list-image relative w-full overflow-hidden"
12441         x-data='{
12442        over: false,
12443        hovered: false,
12444        hoverTimer: null,
12445        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_amm10ualj56k344vvi37no2h5c\/-B779-FWEBP",
12446        onEnter() {
12447            this.over = true;
12448            clearTimeout(this.hoverTimer);
12449            this.hoverTimer = setTimeout(() => {
12450                if (this.over) {
12451                    this.hovered = true;
12452                }
12453            }, 80);
12454        },
12455        onMove() {
12456            if (this.over) {
12457                this.hovered = true;
12458            }
12459        },
12460        onLeave() {
12461            this.over = false;
12462            this.hovered = false;
12463            clearTimeout(this.hoverTimer);
12464        }
12465     }'
12466     :class="hovered ? 'is-hovered' : ''"
12467     x-on:mouseenter="onEnter()"
12468     x-on:mousemove.debounce.80ms="onMove()"
12469     x-on:mouseleave="onLeave()"
12470          x-init="(new Image()).src = hoverUrl"
12471         >
12472    <img class="hover:shadow-sm object-contain w-full "
12473         x-data=""
12474         @update-gallery-420159.window="$root.src = $event.detail"
12475         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_q6ghia3svl22d05llqmd9o6e59/-B779-FWEBP"
12476         loading="eager"
12477         decoding="async"
12478         fetchpriority="high"
12479         width="779"
12480         height=""
12481         alt="NextGen&#x20;XL&#x20;Rubber&#x20;Rolls&#x20;-&#x20;Pro&#x20;Series&#x20;&#x7C;&#x20;5ft&#x20;Wide,&#x20;Custom-Cut,&#x20;Commercial-Grade&#x20;Flooring"
12482         title="NextGen&#x20;XL&#x20;Rubber&#x20;Rolls&#x20;-&#x20;Pro&#x20;Series&#x20;&#x7C;&#x20;5ft&#x20;Wide,&#x20;Custom-Cut,&#x20;Commercial-Grade&#x20;Flooring"
12483         style="position: static !important;" />
12484            <template x-if="hovered">
12485            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
12486                 :src="hoverUrl"
12487                 loading="lazy"
12488                 decoding="async"
12489                 fetchpriority="low"
12490                 width="779"
12491                 height=""
12492                 alt="NextGen&#x20;XL&#x20;Rubber&#x20;Rolls&#x20;-&#x20;Pro&#x20;Series&#x20;&#x7C;&#x20;5ft&#x20;Wide,&#x20;Custom-Cut,&#x20;Commercial-Grade&#x20;Flooring"
12493                 title="NextGen&#x20;XL&#x20;Rubber&#x20;Rolls&#x20;-&#x20;Pro&#x20;Series&#x20;&#x7C;&#x20;5ft&#x20;Wide,&#x20;Custom-Cut,&#x20;Commercial-Grade&#x20;Flooring"
12494                 aria-hidden="true" />
12495        </template>
12496    </div>
12497   
12498                </a>
12499                <input type="hidden" id="product_name_420159"  name="product_name_420159" value="NextGen XL Rubber Rolls - Pro Series | 5ft Wide, Custom-Cut, Commercial-Grade Flooring">
12500                <input type="hidden" id="product_id_420159"  name="product_id_420159" value="420159">
12501                <input type="hidden" id="product_url_420159" name="product_url_420159" value="https://www.flooringinc.com/shop/nextgen-xl-rubber-rolls-pro-series-14027.html">
12502                <input type="hidden" id="image_url_420159" name="image_url_420159" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_q6ghia3svl22d05llqmd9o6e59/-B779">
12503                <div class="product-info flex flex-col grow py-3 px-3">  
12504                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/fi_shop_by_brand_fi-exclusive_3.webp"><img src="https://www.flooringinc.com/media/catalog/category/fi_shop_by_brand_fi-exclusive_3.jpg" width="120" height="45" alt="Flooring Inc. Exclusives" title="Flooring Inc. Exclusives"/></picture><span class="brand-title">Flooring Inc. Exclusives</span></div>
12505                                       
12506                    <a href="https://www.flooringinc.com/shop/nextgen-xl-rubber-rolls-pro-series-14027.html">
12507                                                <div class="text-primary product-name ">
12508                            <span class="product-item-link text-size16 font-bold no-underline relative block"
12509                                title="NextGen XL Rubber Rolls - Pro Series | 5ft Wide, Custom-Cut, Commercial-Grade Flooring">
12510                                NextGen XL Rubber Rolls - Pro Series | 5ft Wide, Custom-Cut, Commercial-Grade Flooring                            </span>
12511                        
12512                        </div>
12513
12514                                                    <div class="ratings " data-nosnippet>
12515                                <div data-bv-show="rating_summary"
12516                                    data-bv-product-id="14027"
12517                                    data-bv-redirect-url="https://www.flooringinc.com/shop/nextgen-xl-rubber-rolls-pro-series-14027.html">
12518                                </div>
12519                            </div>
12520                        
12521                        
12522                                                
12523                    </a>
12524
12525                    <div class="priceBlock">
12526                        <div class="text-gray-900">
12527                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="420159" data-price-box="product-id-420159"><span class="normal-price">
12528    <span class="price-container price-final_price&#x20;tax&#x20;weee"
12529        >
12530
12531    <span  id="product-price-420159"                data-price-amount="8.25"
12532        data-price-type="finalPrice"
12533        class="price-wrapper "
12534    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$1.65</span> /sqft    </span>
12535            <span class="price-mrp">
12536                            <span class="price-mrp-new">was 
12537                $2.54                </span>
12538                <span data-info="0.89" class="savePrice">Save 35%</span>        </span>
12539            </span>
12540</span>
12541
12542
12543</div>                        </div>
12544                    </div>
12545                    
12546                    <div class="compare-buttons flex flex-wrap">     
12547
12548                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 420159}">
12549                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
12550                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
12551                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
12552                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
12553                                    <div class="modal-content">
12554                                        <div x-html="htmlContent" class="htmlcontent420159"></div>
12555                                    </div>
12556                                </div>
12557                            </div>
12558                        
12559                        <div class="color_counts">
12560                                                            <div class="color_count text-size14 font-normal text-center">Available in 5 colors</div>
12561                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
12562                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
12563                                                    </div>
12564
12565                          
12566
12567                    </div>
12568                </div>
12569            </div>
12570        
12571    </form>
12572          <form method="post"
12573        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/327947/"
12574        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
12575            >
12576        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="327947"/>
12577                            <div class="catergory_slider_content bg-white no__product__label">
12578                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
12579                    <div class="product_lebel_container active"></div>
12580                                         
12581                </div> 
12582                                <a href="https://www.flooringinc.com/shop/next-day-rubber-rolls-14003.html"
12583                    class="product photo product-item-photo block mx-auto w-full relative "
12584                    tabindex="-1"
12585                >
12586                    <div class="product-list-image relative w-full overflow-hidden"
12587         x-data='{
12588        over: false,
12589        hovered: false,
12590        hoverTimer: null,
12591        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_u9qek9vuqt6gf9sfl3153fss35\/-B779-FWEBP",
12592        onEnter() {
12593            this.over = true;
12594            clearTimeout(this.hoverTimer);
12595            this.hoverTimer = setTimeout(() => {
12596                if (this.over) {
12597                    this.hovered = true;
12598                }
12599            }, 80);
12600        },
12601        onMove() {
12602            if (this.over) {
12603                this.hovered = true;
12604            }
12605        },
12606        onLeave() {
12607            this.over = false;
12608            this.hovered = false;
12609            clearTimeout(this.hoverTimer);
12610        }
12611     }'
12612     :class="hovered ? 'is-hovered' : ''"
12613     x-on:mouseenter="onEnter()"
12614     x-on:mousemove.debounce.80ms="onMove()"
12615     x-on:mouseleave="onLeave()"
12616         >
12617    <img class="hover:shadow-sm object-contain w-full "
12618         x-data=""
12619         @update-gallery-327947.window="$root.src = $event.detail"
12620         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_vs7c8nfvu14a58j9fqhd9hm95l/-B779-FWEBP"
12621         loading="lazy"
12622         decoding="async"
12623         fetchpriority="low"
12624         width="779"
12625         height=""
12626         alt="Next-Day&#x20;Rubber&#x20;Rolls&#x20;&#x2013;&#x20;Custom&#x20;Cut"
12627         title="Next-Day&#x20;Rubber&#x20;Rolls&#x20;&#x2013;&#x20;Custom&#x20;Cut"
12628         style="position: static !important;" />
12629            <template x-if="hovered">
12630            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
12631                 :src="hoverUrl"
12632                 loading="lazy"
12633                 decoding="async"
12634                 fetchpriority="low"
12635                 width="779"
12636                 height=""
12637                 alt="Next-Day&#x20;Rubber&#x20;Rolls&#x20;&#x2013;&#x20;Custom&#x20;Cut"
12638                 title="Next-Day&#x20;Rubber&#x20;Rolls&#x20;&#x2013;&#x20;Custom&#x20;Cut"
12639                 aria-hidden="true" />
12640        </template>
12641    </div>
12642   
12643                </a>
12644                <input type="hidden" id="product_name_327947"  name="product_name_327947" value="Next-Day Rubber Rolls – Custom Cut">
12645                <input type="hidden" id="product_id_327947"  name="product_id_327947" value="327947">
12646                <input type="hidden" id="product_url_327947" name="product_url_327947" value="https://www.flooringinc.com/shop/next-day-rubber-rolls-14003.html">
12647                <input type="hidden" id="image_url_327947" name="image_url_327947" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_vs7c8nfvu14a58j9fqhd9hm95l/-B779">
12648                <div class="product-info flex flex-col grow py-3 px-3">  
12649                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
12650                                       
12651                    <a href="https://www.flooringinc.com/shop/next-day-rubber-rolls-14003.html">
12652                                                <div class="text-primary product-name ">
12653                            <span class="product-item-link text-size16 font-bold no-underline relative block"
12654                                title="Next-Day Rubber Rolls – Custom Cut">
12655                                Next-Day Rubber Rolls – Custom Cut                            </span>
12656                        
12657                        </div>
12658
12659                                                    <div class="ratings " data-nosnippet>
12660                                <div data-bv-show="rating_summary"
12661                                    data-bv-product-id="14003"
12662                                    data-bv-redirect-url="https://www.flooringinc.com/shop/next-day-rubber-rolls-14003.html">
12663                                </div>
12664                            </div>
12665                        
12666                        
12667                                                
12668                    </a>
12669
12670                    <div class="priceBlock">
12671                        <div class="text-gray-900">
12672                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="327947" data-price-box="product-id-327947"><span class="normal-price">
12673    <span class="price-container price-final_price&#x20;tax&#x20;weee"
12674        >
12675
12676    <span  id="product-price-327947"                data-price-amount="4.76"
12677        data-price-type="finalPrice"
12678        class="price-wrapper "
12679    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$1.19</span> /sqft    </span>
12680            <span class="price-mrp">
12681                            <span class="price-mrp-new">was 
12682                $1.83                </span>
12683                <span data-info="0.64" class="savePrice">Save 35%</span>        </span>
12684            </span>
12685</span>
12686
12687
12688</div>                        </div>
12689                    </div>
12690                    
12691                    <div class="compare-buttons flex flex-wrap">     
12692
12693                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 327947}">
12694                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
12695                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
12696                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
12697                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
12698                                    <div class="modal-content">
12699                                        <div x-html="htmlContent" class="htmlcontent327947"></div>
12700                                    </div>
12701                                </div>
12702                            </div>
12703                        
12704                        <div class="color_counts">
12705                                                            <div class="color_count text-size14 font-normal text-center">Available in 4 colors</div>
12706                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
12707                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
12708                                                    </div>
12709
12710                                                    <div class="ship-fax-plp">
12711                                <a class="ship-iconsada" title="Next Day Shipping" href="https://www.flooringinc.com/shop/next-day-rubber-rolls-14003.html">
12712                                    <span class="text-[14px] text-[#296497] font-semibold">Next Day Shipping</span>
12713                                    <picture class="hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/product/next_day_shipping.webp"><img alt="Next Day Shipping" title="Next Day Shipping" width="160" height="51" src="https://www.flooringinc.com/media/catalog/product/next_day_shipping.png" class="hidden" /></picture>
12714                                </a>
12715                            </div>
12716                          
12717
12718                    </div>
12719                </div>
12720            </div>
12721        
12722    </form>
12723          <form method="post"
12724        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/420108/"
12725        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
12726            >
12727        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="420108"/>
12728                            <div class="catergory_slider_content bg-white no__product__label">
12729                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
12730                    <div class="product_lebel_container active"></div>
12731                                         
12732                </div> 
12733                                <a href="https://www.flooringinc.com/shop/goliath-xl-rubber-tiles-14025.html"
12734                    class="product photo product-item-photo block mx-auto w-full relative "
12735                    tabindex="-1"
12736                >
12737                    <div class="product-list-image relative w-full overflow-hidden"
12738         x-data='{
12739        over: false,
12740        hovered: false,
12741        hoverTimer: null,
12742        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_i1ijpthqdl6379kasvdeg18r6j\/-B779-FWEBP",
12743        onEnter() {
12744            this.over = true;
12745            clearTimeout(this.hoverTimer);
12746            this.hoverTimer = setTimeout(() => {
12747                if (this.over) {
12748                    this.hovered = true;
12749                }
12750            }, 80);
12751        },
12752        onMove() {
12753            if (this.over) {
12754                this.hovered = true;
12755            }
12756        },
12757        onLeave() {
12758            this.over = false;
12759            this.hovered = false;
12760            clearTimeout(this.hoverTimer);
12761        }
12762     }'
12763     :class="hovered ? 'is-hovered' : ''"
12764     x-on:mouseenter="onEnter()"
12765     x-on:mousemove.debounce.80ms="onMove()"
12766     x-on:mouseleave="onLeave()"
12767         >
12768    <img class="hover:shadow-sm object-contain w-full "
12769         x-data=""
12770         @update-gallery-420108.window="$root.src = $event.detail"
12771         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_i08d85b9il1gv6atc43au0l069/-B779-FWEBP"
12772         loading="lazy"
12773         decoding="async"
12774         fetchpriority="low"
12775         width="779"
12776         height=""
12777         alt="Goliath&#x20;XL&#x20;Rubber&#x20;Tiles"
12778         title="Goliath&#x20;XL&#x20;Rubber&#x20;Tiles"
12779         style="position: static !important;" />
12780            <template x-if="hovered">
12781            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
12782                 :src="hoverUrl"
12783                 loading="lazy"
12784                 decoding="async"
12785                 fetchpriority="low"
12786                 width="779"
12787                 height=""
12788                 alt="Goliath&#x20;XL&#x20;Rubber&#x20;Tiles"
12789                 title="Goliath&#x20;XL&#x20;Rubber&#x20;Tiles"
12790                 aria-hidden="true" />
12791        </template>
12792    </div>
12793   
12794                </a>
12795                <input type="hidden" id="product_name_420108"  name="product_name_420108" value="Goliath XL Rubber Tiles">
12796                <input type="hidden" id="product_id_420108"  name="product_id_420108" value="420108">
12797                <input type="hidden" id="product_url_420108" name="product_url_420108" value="https://www.flooringinc.com/shop/goliath-xl-rubber-tiles-14025.html">
12798                <input type="hidden" id="image_url_420108" name="image_url_420108" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_i08d85b9il1gv6atc43au0l069/-B779">
12799                <div class="product-info flex flex-col grow py-3 px-3">  
12800                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
12801                                       
12802                    <a href="https://www.flooringinc.com/shop/goliath-xl-rubber-tiles-14025.html">
12803                                                <div class="text-primary product-name ">
12804                            <span class="product-item-link text-size16 font-bold no-underline relative block"
12805                                title="Goliath XL Rubber Tiles">
12806                                Goliath XL Rubber Tiles                            </span>
12807                        
12808                        </div>
12809
12810                                                    <div class="ratings " data-nosnippet>
12811                                <div data-bv-show="rating_summary"
12812                                    data-bv-product-id="14025"
12813                                    data-bv-redirect-url="https://www.flooringinc.com/shop/goliath-xl-rubber-tiles-14025.html">
12814                                </div>
12815                            </div>
12816                        
12817                        
12818                                                
12819                    </a>
12820
12821                    <div class="priceBlock">
12822                        <div class="text-gray-900">
12823                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="420108" data-price-box="product-id-420108"><span class="normal-price">
12824    <span class="price-container price-final_price&#x20;tax&#x20;weee"
12825        >
12826
12827    <span  id="product-price-420108"                data-price-amount="30.11"
12828        data-price-type="finalPrice"
12829        class="price-wrapper "
12830    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$1.96</span> /sqft    </span>
12831            <span class="price-mrp">
12832                            <span class="price-mrp-new">was 
12833                $3.02                </span>
12834                <span data-info="1.06" class="savePrice">Save 35%</span>        </span>
12835            </span>
12836</span>
12837
12838
12839</div>                        </div>
12840                    </div>
12841                    
12842                    <div class="compare-buttons flex flex-wrap">     
12843
12844                                                
12845                        <div class="color_counts">
12846                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
12847                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
12848                                                    </div>
12849
12850                          
12851
12852                    </div>
12853                </div>
12854            </div>
12855        
12856    </form>
12857          <form method="post"
12858        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/308597/"
12859        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
12860            >
12861        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="308597"/>
12862                            <div class="catergory_slider_content bg-white no__product__label">
12863                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
12864                    <div class="product_lebel_container active"></div>
12865                                         
12866                </div> 
12867                                <a href="https://www.flooringinc.com/shop/3-4-rubber-gym-tiles-4067.html"
12868                    class="product photo product-item-photo block mx-auto w-full relative "
12869                    tabindex="-1"
12870                >
12871                    <div class="product-list-image relative w-full overflow-hidden"
12872         x-data='{
12873        over: false,
12874        hovered: false,
12875        hoverTimer: null,
12876        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_3lj7te31d565t8c6fng772g82o\/-B779-FWEBP",
12877        onEnter() {
12878            this.over = true;
12879            clearTimeout(this.hoverTimer);
12880            this.hoverTimer = setTimeout(() => {
12881                if (this.over) {
12882                    this.hovered = true;
12883                }
12884            }, 80);
12885        },
12886        onMove() {
12887            if (this.over) {
12888                this.hovered = true;
12889            }
12890        },
12891        onLeave() {
12892            this.over = false;
12893            this.hovered = false;
12894            clearTimeout(this.hoverTimer);
12895        }
12896     }'
12897     :class="hovered ? 'is-hovered' : ''"
12898     x-on:mouseenter="onEnter()"
12899     x-on:mousemove.debounce.80ms="onMove()"
12900     x-on:mouseleave="onLeave()"
12901         >
12902    <img class="hover:shadow-sm object-contain w-full "
12903         x-data=""
12904         @update-gallery-308597.window="$root.src = $event.detail"
12905         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_9frh11qnvl3e54fsvr44mrvo61/-B779-FWEBP"
12906         loading="lazy"
12907         decoding="async"
12908         fetchpriority="low"
12909         width="779"
12910         height=""
12911         alt="3&#x2F;4&quot;&#x20;Premium&#x20;Gym&#x20;Floor&#x20;Tiles&#x20;&#x2013;&#x20;Vulcanized&#x20;Rubber"
12912         title="3&#x2F;4&quot;&#x20;Premium&#x20;Gym&#x20;Floor&#x20;Tiles&#x20;&#x2013;&#x20;Vulcanized&#x20;Rubber"
12913         style="position: static !important;" />
12914            <template x-if="hovered">
12915            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
12916                 :src="hoverUrl"
12917                 loading="lazy"
12918                 decoding="async"
12919                 fetchpriority="low"
12920                 width="779"
12921                 height=""
12922                 alt="3&#x2F;4&quot;&#x20;Premium&#x20;Gym&#x20;Floor&#x20;Tiles&#x20;&#x2013;&#x20;Vulcanized&#x20;Rubber"
12923                 title="3&#x2F;4&quot;&#x20;Premium&#x20;Gym&#x20;Floor&#x20;Tiles&#x20;&#x2013;&#x20;Vulcanized&#x20;Rubber"
12924                 aria-hidden="true" />
12925        </template>
12926    </div>
12927   
12928                </a>
12929                <input type="hidden" id="product_name_308597"  name="product_name_308597" value="3/4" Premium Gym Floor Tiles – Vulcanized Rubber">
12930                <input type="hidden" id="product_id_308597"  name="product_id_308597" value="308597">
12931                <input type="hidden" id="product_url_308597" name="product_url_308597" value="https://www.flooringinc.com/shop/3-4-rubber-gym-tiles-4067.html">
12932                <input type="hidden" id="image_url_308597" name="image_url_308597" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_9frh11qnvl3e54fsvr44mrvo61/-B779">
12933                <div class="product-info flex flex-col grow py-3 px-3">  
12934                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
12935                                       
12936                    <a href="https://www.flooringinc.com/shop/3-4-rubber-gym-tiles-4067.html">
12937                                                <div class="text-primary product-name ">
12938                            <span class="product-item-link text-size16 font-bold no-underline relative block"
12939                                title="3/4&quot; Premium Gym Floor Tiles – Vulcanized Rubber">
12940                                3/4&quot; Premium Gym Floor Tiles – Vulcanized Rubber                            </span>
12941                        
12942                        </div>
12943
12944                                                    <div class="ratings " data-nosnippet>
12945                                <div data-bv-show="rating_summary"
12946                                    data-bv-product-id="4067"
12947                                    data-bv-redirect-url="https://www.flooringinc.com/shop/3-4-rubber-gym-tiles-406
129477.html">
12948                                </div>
12949                            </div>
12950                        
12951                        
12952                                                
12953                    </a>
12954
12955                    <div class="priceBlock">
12956                        <div class="text-gray-900">
12957                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="308597" data-price-box="product-id-308597"><span class="normal-price">
12958    <span class="price-container price-final_price&#x20;tax&#x20;weee"
12959        >
12960
12961    <span  id="product-price-308597"                data-price-amount="22.09"
12962        data-price-type="finalPrice"
12963        class="price-wrapper "
12964    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$4.45</span> /sqft</span>
12965            <span class="price-mrp">
12966                            <span class="price-mrp-new">was 
12967                $6.85                </span>
12968                <span data-info="2.4" class="savePrice">Save 35%</span>        </span>
12969            </span>
12970</span>
12971
12972
12973</div>                        </div>
12974                    </div>
12975                    
12976                    <div class="compare-buttons flex flex-wrap">     
12977
12978                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 308597}">
12979                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
12980                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
12981                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
12982                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
12983                                    <div class="modal-content">
12984                                        <div x-html="htmlContent" class="htmlcontent308597"></div>
12985                                    </div>
12986                                </div>
12987                            </div>
12988                        
12989                        <div class="color_counts">
12990                                                            <div class="color_count text-size14 font-normal text-center">Available in 5 colors</div>
12991                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
12992                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
12993                                                    </div>
12994
12995                                                    <div class="ship-fax-plp">
12996                                <a class="ship-iconsada" title="Quick Ship" href="https://www.flooringinc.com/shop/3-4-rubber-gym-tiles-4067.html">
12997                                    <span class="text-[14px] text-[#296497] font-semibold">Quick Ship</span>
12998                                    <picture class="hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/product/quick_ship.webp"><img alt="Quick Ship" title="Quick Ship" width="160" height="51" src="https://www.flooringinc.com/media/catalog/product/quick_ship.png" class="hidden" /></picture>
12999                                </a>
13000                            </div>
13001                          
13002
13003                    </div>
13004                </div>
13005            </div>
13006        
13007    </form>
13008          <form method="post"
13009        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/288551/"
13010        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
13011            >
13012        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="288551"/>
13013                            <div class="catergory_slider_content bg-white no__product__label">
13014                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
13015                    <div class="product_lebel_container active"></div>
13016                                         
13017                </div> 
13018                                <a href="https://www.flooringinc.com/shop/1-2-premium-rubber-gym-tiles-1030.html"
13019                    class="product photo product-item-photo block mx-auto w-full relative "
13020                    tabindex="-1"
13021                >
13022                    <div class="product-list-image relative w-full overflow-hidden"
13023         x-data='{
13024        over: false,
13025        hovered: false,
13026        hoverTimer: null,
13027        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_m68g5kbak51pj4tc3lb86ia62i\/-B779-FWEBP",
13028        onEnter() {
13029            this.over = true;
13030            clearTimeout(this.hoverTimer);
13031            this.hoverTimer = setTimeout(() => {
13032                if (this.over) {
13033                    this.hovered = true;
13034                }
13035            }, 80);
13036        },
13037        onMove() {
13038            if (this.over) {
13039                this.hovered = true;
13040            }
13041        },
13042        onLeave() {
13043            this.over = false;
13044            this.hovered = false;
13045            clearTimeout(this.hoverTimer);
13046        }
13047     }'
13048     :class="hovered ? 'is-hovered' : ''"
13049     x-on:mouseenter="onEnter()"
13050     x-on:mousemove.debounce.80ms="onMove()"
13051     x-on:mouseleave="onLeave()"
13052         >
13053    <img class="hover:shadow-sm object-contain w-full "
13054         x-data=""
13055         @update-gallery-288551.window="$root.src = $event.detail"
13056         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_ocur6ep4p15b3e1p27f2mlbh4k/-B779-FWEBP"
13057         loading="lazy"
13058         decoding="async"
13059         fetchpriority="low"
13060         width="779"
13061         height=""
13062         alt="1&#x2F;2&quot;&#x20;Premium&#x20;Gym&#x20;Floor&#x20;Tiles&#x20;&#x2013;&#x20;Vulcanized&#x20;Rubber"
13063         title="1&#x2F;2&quot;&#x20;Premium&#x20;Gym&#x20;Floor&#x20;Tiles&#x20;&#x2013;&#x20;Vulcanized&#x20;Rubber"
13064         style="position: static !important;" />
13065            <template x-if="hovered">
13066            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
13067                 :src="hoverUrl"
13068                 loading="lazy"
13069                 decoding="async"
13070                 fetchpriority="low"
13071                 width="779"
13072                 height=""
13073                 alt="1&#x2F;2&quot;&#x20;Premium&#x20;Gym&#x20;Floor&#x20;Tiles&#x20;&#x2013;&#x20;Vulcanized&#x20;Rubber"
13074                 title="1&#x2F;2&quot;&#x20;Premium&#x20;Gym&#x20;Floor&#x20;Tiles&#x20;&#x2013;&#x20;Vulcanized&#x20;Rubber"
13075                 aria-hidden="true" />
13076        </template>
13077    </div>
13078   
13079                </a>
13080                <input type="hidden" id="product_name_288551"  name="product_name_288551" value="1/2" Premium Gym Floor Tiles – Vulcanized Rubber">
13081                <input type="hidden" id="product_id_288551"  name="product_id_288551" value="288551">
13082                <input type="hidden" id="product_url_288551" name="product_url_288551" value="https://www.flooringinc.com/shop/1-2-premium-rubber-gym-tiles-1030.html">
13083                <input type="hidden" id="image_url_288551" name="image_url_288551" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_ocur6ep4p15b3e1p27f2mlbh4k/-B779">
13084                <div class="product-info flex flex-col grow py-3 px-3">  
13085                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
13086                                       
13087                    <a href="https://www.flooringinc.com/shop/1-2-premium-rubber-gym-tiles-1030.html">
13088                                                <div class="text-primary product-name ">
13089                            <span class="product-item-link text-size16 font-bold no-underline relative block"
13090                                title="1/2&quot; Premium Gym Floor Tiles – Vulcanized Rubber">
13091                                1/2&quot; Premium Gym Floor Tiles – Vulcanized Rubber                            </span>
13092                        
13093                        </div>
13094
13095                                                    <div class="ratings " data-nosnippet>
13096                                <div data-bv-show="rating_summary"
13097                                    data-bv-product-id="1030"
13098                                    data-bv-redirect-url="https://www.flooringinc.com/shop/1-2-premium-rubber-gym-tiles-1030.html">
13099                                </div>
13100                            </div>
13101                        
13102                        
13103                                                
13104                    </a>
13105
13106                    <div class="priceBlock">
13107                        <div class="text-gray-900">
13108                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="288551" data-price-box="product-id-288551"><span class="normal-price">
13109    <span class="price-container price-final_price&#x20;tax&#x20;weee"
13110        >
13111
13112    <span  id="product-price-288551"                data-price-amount="16.42"
13113        data-price-type="finalPrice"
13114        class="price-wrapper "
13115    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$4.05</span> /sqft</span>
13116            <span class="price-mrp">
13117                            <span class="price-mrp-new">was 
13118                $6.24                </span>
13119                <span data-info="2.19" class="savePrice">Save 35%</span>        </span>
13120            </span>
13121</span>
13122
13123
13124</div>                        </div>
13125                    </div>
13126                    
13127                    <div class="compare-buttons flex flex-wrap">     
13128
13129                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 288551}">
13130                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
13131                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
13132                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
13133                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
13134                                    <div class="modal-content">
13135                                        <div x-html="htmlContent" class="htmlcontent288551"></div>
13136                                    </div>
13137                                </div>
13138                            </div>
13139                        
13140                        <div class="color_counts">
13141                                                            <div class="color_count text-size14 font-normal text-center">Available in 9 colors</div>
13142                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
13143                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
13144                                                    </div>
13145
13146                                                    <div class="ship-fax-plp">
13147                                <a class="ship-iconsada" title="Quick Ship" href="https://www.flooringinc.com/shop/1-2-premium-rubber-gym-tiles-1030.html">
13148                                    <span class="text-[14px] text-[#296497] font-semibold">Quick Ship</span>
13149                                    <picture class="hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/product/quick_ship.webp"><img alt="Quick Ship" title="Quick Ship" width="160" height="51" src="https://www.flooringinc.com/media/catalog/product/quick_ship.png" class="hidden" /></picture>
13150                                </a>
13151                            </div>
13152                          
13153
13154                    </div>
13155                </div>
13156            </div>
13157        
13158    </form>
13159          <form method="post"
13160        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/304232/"
13161        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
13162            >
13163        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="304232"/>
13164                            <div class="catergory_slider_content bg-white no__product__label">
13165                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
13166                    <div class="product_lebel_container active"></div>
13167                                         
13168                </div> 
13169                                <a href="https://www.flooringinc.com/shop/8mm-powerlock-rubber-gym-tiles-14001.html"
13170                    class="product photo product-item-photo block mx-auto w-full relative "
13171                    tabindex="-1"
13172                >
13173                    <div class="product-list-image relative w-full overflow-hidden"
13174         x-data='{
13175        over: false,
13176        hovered: false,
13177        hoverTimer: null,
13178        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_n4ul1befvh291fvp6ohkea0r7l\/-B779-FWEBP",
13179        onEnter() {
13180            this.over = true;
13181            clearTimeout(this.hoverTimer);
13182            this.hoverTimer = setTimeout(() => {
13183                if (this.over) {
13184                    this.hovered = true;
13185                }
13186            }, 80);
13187        },
13188        onMove() {
13189            if (this.over) {
13190                this.hovered = true;
13191            }
13192        },
13193        onLeave() {
13194            this.over = false;
13195            this.hovered = false;
13196            clearTimeout(this.hoverTimer);
13197        }
13198     }'
13199     :class="hovered ? 'is-hovered' : ''"
13200     x-on:mouseenter="onEnter()"
13201     x-on:mousemove.debounce.80ms="onMove()"
13202     x-on:mouseleave="onLeave()"
13203         >
13204    <img class="hover:shadow-sm object-contain w-full "
13205         x-data=""
13206         @update-gallery-304232.window="$root.src = $event.detail"
13207         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_do5fctakqh1gl8p94kjsdc4a5k/-B779-FWEBP"
13208         loading="lazy"
13209         decoding="async"
13210         fetchpriority="low"
13211         width="779"
13212         height=""
13213         alt="PowerLock&#x20;Rubber&#x20;Gym&#x20;Floor&#x20;Tiles"
13214         title="PowerLock&#x20;Rubber&#x20;Gym&#x20;Floor&#x20;Tiles"
13215         style="position: static !important;" />
13216            <template x-if="hovered">
13217            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
13218                 :src="hoverUrl"
13219                 loading="lazy"
13220                 decoding="async"
13221                 fetchpriority="low"
13222                 width="779"
13223                 height=""
13224                 alt="PowerLock&#x20;Rubber&#x20;Gym&#x20;Floor&#x20;Tiles"
13225                 title="PowerLock&#x20;Rubber&#x20;Gym&#x20;Floor&#x20;Tiles"
13226                 aria-hidden="true" />
13227        </template>
13228    </div>
13229   
13230                </a>
13231                <input type="hidden" id="product_name_304232"  name="product_name_304232" value="PowerLock Rubber Gym Floor Tiles">
13232                <input type="hidden" id="product_id_304232"  name="product_id_304232" value="304232">
13233                <input type="hidden" id="product_url_304232" name="product_url_304232" value="https://www.flooringinc.com/shop/8mm-powerlock-rubber-gym-tiles-14001.html">
13234                <input type="hidden" id="image_url_304232" name="image_url_304232" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_do5fctakqh1gl8p94kjsdc4a5k/-B779">
13235                <div class="product-info flex flex-col grow py-3 px-3">  
13236                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
13237                                       
13238                    <a href="https://www.flooringinc.com/shop/8mm-powerlock-rubber-gym-tiles-14001.html">
13239                                                <div class="text-primary product-name ">
13240                            <span class="product-item-link text-size16 font-bold no-underline relative block"
13241                                title="PowerLock Rubber Gym Floor Tiles">
13242                                PowerLock Rubber Gym Floor Tiles                            </span>
13243                        
13244                        </div>
13245
13246                                                    <div class="ratings " data-nosnippet>
13247                                <div data-bv-show="rating_summary"
13248                                    data-bv-product-id="14001"
13249                                    data-bv-redirect-url="https://www.flooringinc.com/shop/8mm-powerlock-rubber-gym-tiles-14001.html">
13250                                </div>
13251                            </div>
13252                        
13253                        
13254                                                
13255                    </a>
13256
13257                    <div class="priceBlock">
13258                        <div class="text-gray-900">
13259                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="304232" data-price-box="product-id-304232"><span class="normal-price">
13260    <span class="price-container price-final_price&#x20;tax&#x20;weee"
13261        >
13262
13263    <span  id="product-price-304232"                data-price-amount="6.06"
13264        data-price-type="finalPrice"
13265        class="price-wrapper "
13266    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$1.65</span> /sqft    </span>
13267            <span class="price-mrp">
13268                            <span class="price-mrp-new">was 
13269                $2.54                </span>
13270                <span data-info="0.89" class="savePrice">Save 35%</span>        </span>
13271            </span>
13272</span>
13273
13274
13275</div>                        </div>
13276                    </div>
13277                    
13278                    <div class="compare-buttons flex flex-wrap">     
13279
13280                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 304232}">
13281                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
13282                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
13283                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
13284                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
13285                                    <div class="modal-content">
13286                                        <div x-html="htmlContent" class="htmlcontent304232"></div>
13287                                    </div>
13288                                </div>
13289                            </div>
13290                        
13291                        <div class="color_counts">
13292                                                            <div class="color_count text-size14 font-normal text-center">Available in 7 colors</div>
13293                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
13294                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
13295                                                    </div>
13296
13297                                                    <div class="ship-fax-plp">
13298                                <a class="ship-iconsada" title="Quick Ship" href="https://www.flooringinc.com/shop/8mm-powerlock-rubber-gym-tiles-14001.html">
13299                                    <span class="text-[14px] text-[#296497] font-semibold">Quick Ship</span>
13300                                    <picture class="hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/product/quick_ship.webp"><img alt="Quick Ship" title="Quick Ship" width="160" height="51" src="https://www.flooringinc.com/media/catalog/product/quick_ship.png" class="hidden" /></picture>
13301                                </a>
13302                            </div>
13303                          
13304
13305                    </div>
13306                </div>
13307            </div>
13308        
13309    </form>
13310          <form method="post"
13311        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/316394/"
13312        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
13313            >
13314        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="316394"/>
13315                            <div class="catergory_slider_content bg-white no__product__label">
13316                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
13317                    <div class="product_lebel_container active"></div>
13318                                         
13319                </div> 
13320                                <a href="https://www.flooringinc.com/shop/1-4-tough-rubber-rolls-1000.html"
13321                    class="product photo product-item-photo block mx-auto w-full relative "
13322                    tabindex="-1"
13323                >
13324                    <div class="product-list-image relative w-full overflow-hidden"
13325         x-data='{
13326        over: false,
13327        hovered: false,
13328        hoverTimer: null,
13329        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_n8r8qrtrml75td2j24nrhcmo2h\/-FJPG\/-B779-FWEBP",
13330        onEnter() {
13331            this.over = true;
13332            clearTimeout(this.hoverTimer);
13333            this.hoverTimer = setTimeout(() => {
13334                if (this.over) {
13335                    this.hovered = true;
13336                }
13337            }, 80);
13338        },
13339        onMove() {
13340            if (this.over) {
13341                this.hovered = true;
13342            }
13343        },
13344        onLeave() {
13345            this.over = false;
13346            this.hovered = false;
13347            clearTimeout(this.hoverTimer);
13348        }
13349     }'
13350     :class="hovered ? 'is-hovered' : ''"
13351     x-on:mouseenter="onEnter()"
13352     x-on:mousemove.debounce.80ms="onMove()"
13353     x-on:mouseleave="onLeave()"
13354         >
13355    <img class="hover:shadow-sm object-contain w-full "
13356         x-data=""
13357         @update-gallery-316394.window="$root.src = $event.detail"
13358         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_qa84sdsgn103ffmsgs892ci87b/-FJPG/-B779-FWEBP"
13359         loading="lazy"
13360         decoding="async"
13361         fetchpriority="low"
13362         width="779"
13363         height=""
13364         alt="1&#x2F;4&quot;&#x20;Tough&#x20;Rubber&#x20;Flooring&#x20;Rolls"
13365         title="1&#x2F;4&quot;&#x20;Tough&#x20;Rubber&#x20;Flooring&#x20;Rolls"
13366         style="position: static !important;" />
13367            <template x-if="hovered">
13368            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
13369                 :src="hoverUrl"
13370                 loading="lazy"
13371                 decoding="async"
13372                 fetchpriority="low"
13373                 width="779"
13374                 height=""
13375                 alt="1&#x2F;4&quot;&#x20;Tough&#x20;Rubber&#x20;Flooring&#x20;Rolls"
13376                 title="1&#x2F;4&quot;&#x20;Tough&#x20;Rubber&#x20;Flooring&#x20;Rolls"
13377                 aria-hidden="true" />
13378        </template>
13379    </div>
13380   
13381                </a>
13382                <input type="hidden" id="product_name_316394"  name="product_name_316394" value="1/4" Tough Rubber Flooring Rolls">
13383                <input type="hidden" id="product_id_316394"  name="product_id_316394" value="316394">
13384                <input type="hidden" id="product_url_316394" name="product_url_316394" value="https://www.flooringinc.com/shop/1-4-tough-rubber-rolls-1000.html">
13385                <input type="hidden" id="image_url_316394" name="image_url_316394" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_qa84sdsgn103ffmsgs892ci87b/-FJPG/-B779">
13386                <div class="product-info flex flex-col grow py-3 px-3">  
13387                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
13388                                       
13389                    <a href="https://www.flooringinc.com/shop/1-4-tough-rubber-rolls-1000.html">
13390                                                <div class="text-primary product-name ">
13391                            <span class="product-item-link text-size16 font-bold no-underline relative block"
13392                                title="1/4&quot; Tough Rubber Flooring Rolls">
13393                                1/4&quot; Tough Rubber Flooring Rolls                            </span>
13394                        
13395                        </div>
13396
13397                                                    <div class="ratings " data-nosnippet>
13398                                <div data-bv-show="rating_summary"
13399                                    data-bv-product-id="1000"
13400                                    data-bv-redirect-url="https://www.flooringinc.com/shop/1-4-tough-rubber-rolls-1000.html">
13401                                </div>
13402                            </div>
13403                        
13404                        
13405                                                
13406                    </a>
13407
13408                    <div class="priceBlock">
13409                        <div class="text-gray-900">
13410                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="316394" data-price-box="product-id-316394"><span class="normal-price">
13411    <span class="price-container price-final_price&#x20;tax&#x20;weee"
13412        >
13413
13414    <span  id="product-price-316394"                data-price-amount="4.6"
13415        data-price-type="finalPrice"
13416        class="price-wrapper "
13417    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$1.15</span> /sqft</span>
13418            <span class="price-mrp">
13419                            <span class="price-mrp-new">was 
13420                $1.77                </span>
13421                <span data-info="0.62" class="savePrice">Save 35%</span>        </span>
13422            </span>
13423</span>
13424
13425
13426</div>                        </div>
13427                    </div>
13428                    
13429                    <div class="compare-buttons flex flex-wrap">     
13430
13431                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 316394}">
13432                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
13433                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
13434                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
13435                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
13436                                    <div class="modal-content">
13437                                        <div x-html="htmlContent" class="htmlcontent316394"></div>
13438                                    </div>
13439                                </div>
13440                            </div>
13441                        
13442                        <div class="color_counts">
13443                                                            <div class="color_count text-size14 font-normal text-center">Available in 30 colors</div>
13444                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
13445                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
13446                                                    </div>
13447
13448                                                    <div class="ship-fax-plp">
13449                                <a class="ship-iconsada" title="Quick Ship" href="https://www.flooringinc.com/shop/1-4-tough-rubber-rolls-1000.html">
13450                                    <span class="text-[14px] text-[#296497] font-semibold">Quick Ship</span>
13451                                    <picture class="hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/product/quick_ship.webp"><img alt="Quick Ship" title="Quick Ship" width="160" height="51" src="https://www.flooringinc.com/media/catalog/product/quick_ship.png" class="hidden" /></picture>
13452                                </a>
13453                            </div>
13454                          
13455
13456                    </div>
13457                </div>
13458            </div>
13459        
13460    </form>
13461          <form method="post"
13462        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/275153/"
13463        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        "
13464            >
13465        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="275153"/>
13466                            <div class="catergory_slider_content bg-white ">
13467                <div class="product__label flex items-center w-full justify-between py-[13px] ">
13468                    <div class="product_lebel_container active">                        
13469                            
13470                                                                                                            <span class="product_lebel bestseller_label text-size12 font-semibold text-white text-center">
13471                                            # 5 Best Seller
13472                                        </span>
13473                                                                        <sapn class="buy_this_percentage"></span>
13474                            
13475                    </div>
13476                                         
13477                </div> 
13478                                <a href="https://www.flooringinc.com/shop/dura-lock-rubber-tiles-13369.html"
13479                    class="product photo product-item-photo block mx-auto w-full relative "
13480                    tabindex="-1"
13481                >
13482                    <div class="product-list-image relative w-full overflow-hidden"
13483         x-data='{
13484        over: false,
13485        hovered: false,
13486        hoverTimer: null,
13487        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_1q4pdi0d216kr11s41b036l20g\/-B779-FWEBP",
13488        onEnter() {
13489            this.over = true;
13490            clearTimeout(this.hoverTimer);
13491            this.hoverTimer = setTimeout(() => {
13492                if (this.over) {
13493                    this.hovered = true;
13494                }
13495            }, 80);
13496        },
13497        onMove() {
13498            if (this.over) {
13499                this.hovered = true;
13500            }
13501        },
13502        onLeave() {
13503            this.over = false;
13504            this.hovered = false;
13505            clearTimeout(this.hoverTimer);
13506        }
13507     }'
13508     :class="hovered ? 'is-hovered' : ''"
13509     x-on:mouseenter="onEnter()"
13510     x-on:mousemove.debounce.80ms="onMove()"
13511     x-on:mouseleave="onLeave()"
13512         >
13513    <img class="hover:shadow-sm object-contain w-full "
13514         x-data=""
13515         @update-gallery-275153.window="$root.src = $event.detail"
13516         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_r31a99ahn116tdsjodu0g6c04i/-B779-FWEBP"
13517         loading="lazy"
13518         decoding="async"
13519         fetchpriority="low"
13520         width="779"
13521         height=""
13522         alt="Dura&#x20;Lock&#x20;Rubber&#x20;Tiles"
13523         title="Dura&#x20;Lock&#x20;Rubber&#x20;Tiles"
13524         style="position: static !important;" />
13525            <template x-if="hovered">
13526            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
13527                 :src="hoverUrl"
13528                 loading="lazy"
13529                 decoding="async"
13530                 fetchpriority="low"
13531                 width="779"
13532                 height=""
13533                 alt="Dura&#x20;Lock&#x20;Rubber&#x20;Tiles"
13534                 title="Dura&#x20;Lock&#x20;Rubber&#x20;Tiles"
13535                 aria-hidden="true" />
13536        </template>
13537    </div>
13538   
13539                </a>
13540                <input type="hidden" id="product_name_275153"  name="product_name_275153" value="Dura Lock Rubber Tiles">
13541                <input type="hidden" id="product_id_275153"  name="product_id_275153" value="275153">
13542                <input type="hidden" id="product_url_275153" name="product_url_275153" value="https://www.flooringinc.com/shop/dura-lock-rubber-tiles-13369.html">
13543                <input type="hidden" id="image_url_275153" name="image_url_275153" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_r31a99ahn116tdsjodu0g6c04i/-B779">
13544                <div class="product-info flex flex-col grow py-3 px-3">  
13545                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
13546                                       
13547                    <a href="https://www.flooringinc.com/shop/dura-lock-rubber-tiles-13369.html">
13548                                                <div class="text-primary product-name ">
13549                            <span class="product-item-link text-size16 font-bold no-underline relative block"
13550                                title="Dura Lock Rubber Tiles">
13551                                Dura Lock Rubber Tiles                            </span>
13552                        
13553                        </div>
13554
13555                                                    <div class="ratings " data-nosnippet>
13556                                <div data-bv-show="rating_summary"
13557                                    data-bv-product-id="13369"
13558                                    data-bv-redirect-url="https://www.flooringinc.com/shop/dura-lock-rubber-tiles-13369.html">
13559                                </div>
13560                            </div>
13561                        
13562                        
13563                                                
13564                    </a>
13565
13566                    <div class="priceBlock">
13567                        <div class="text-gray-900">
13568                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="275153" data-price-box="product-id-275153"><span class="normal-price">
13569    <span class="price-container price-final_price&#x20;tax&#x20;weee"
13570        >
13571
13572    <span  id="product-price-275153"                data-price-amount="6.72"
13573        data-price-type="finalPrice"
13574        class="price-wrapper "
13575    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$1.75</span> /sqft    </span>
13576            <span class="price-mrp">
13577                            <span class="price-mrp-new">was 
13578                $2.70                </span>
13579                <span data-info="0.95" class="savePrice">Save 35%</span>        </span>
13580            </span>
13581</span>
13582
13583
13584</div>                        </div>
13585                    </div>
13586                    
13587                    <div class="compare-buttons flex flex-wrap">     
13588
13589                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 275153}">
13590                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
13591                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
13592                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
13593                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
13594                                    <div class="modal-content">
13595                                        <div x-html="htmlContent" class="htmlcontent275153"></div>
13596                                    </div>
13597                                </div>
13598                            </div>
13599                        
13600                        <div class="color_counts">
13601                                                            <div class="color_count text-size14 font-normal text-center">Available in 12 colors</div>
13602                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
13603                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
13604                                                    </div>
13605
13606                                                    <div class="ship-fax-plp">
13607                                <a class="ship-iconsada" title="Quick Ship" href="https://www.flooringinc.com/shop/dura-lock-rubber-tiles-13369.html">
13608                                    <span class="text-[14px] text-[#296497] font-semibold">Quick Ship</span>
13609                                    <picture class="hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/product/quick_ship.webp"><img alt="Quick Ship" title="Quick Ship" width="160" height="51" src="https://www.flooringinc.com/media/catalog/product/quick_ship.png" class="hidden" /></picture>
13610                                </a>
13611                            </div>
13612                          
13613
13614                    </div>
13615                </div>
13616            </div>
13617        
13618    </form>
13619          <form method="post"
13620        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/298961/"
13621        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
13622            >
13623        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="298961"/>
13624                            <div class="catergory_slider_content bg-white no__product__label">
13625                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
13626                    <div class="product_lebel_container active"></div>
13627                                         
13628                </div> 
13629                                <a href="https://www.flooringinc.com/shop/1-2-pre-cut-mega-rubber-rolls-9580.html"
13630                    class="product photo product-item-photo block mx-auto w-full relative "
13631                    tabindex="-1"
13632                >
13633                    <div class="product-list-image relative w-full overflow-hidden"
13634         x-data='{
13635        over: false,
13636        hovered: false,
13637        hoverTimer: null,
13638        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_6qfkrpkg9t4m99vi64c5s4gi1f\/-B779-FWEBP",
13639        onEnter() {
13640            this.over = true;
13641            clearTimeout(this.hoverTimer);
13642            this.hoverTimer = setTimeout(() => {
13643                if (this.over) {
13644                    this.hovered = true;
13645                }
13646            }, 80);
13647        },
13648        onMove() {
13649            if (this.over) {
13650                this.hovered = true;
13651            }
13652        },
13653        onLeave() {
13654            this.over = false;
13655            this.hovered = false;
13656            clearTimeout(this.hoverTimer);
13657        }
13658     }'
13659     :class="hovered ? 'is-hovered' : ''"
13660     x-on:mouseenter="onEnter()"
13661     x-on:mousemove.debounce.80ms="onMove()"
13662     x-on:mouseleave="onLeave()"
13663         >
13664    <img class="hover:shadow-sm object-contain w-full "
13665         x-data=""
13666         @update-gallery-298961.window="$root.src = $event.detail"
13667         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_ngrk073ao925v7861lfqmgkh67/-B779-FWEBP"
13668         loading="lazy"
13669         decoding="async"
13670         fetchpriority="low"
13671         width="779"
13672         height=""
13673         alt="1&#x2F;2&quot;&#x20;Pre-Cut&#x20;Mega&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;4&#x27;&#x20;x&#x20;15&#x27;,&#x20;25&#x27;,&#x20;or&#x20;50&#x27;"
13674         title="1&#x2F;2&quot;&#x20;Pre-Cut&#x20;Mega&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;4&#x27;&#x20;x&#x20;15&#x27;,&#x20;25&#x27;,&#x20;or&#x20;50&#x27;"
13675         style="position: static !important;" />
13676            <template x-if="hovered">
13677            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
13678                 :src="hoverUrl"
13679                 loading="lazy"
13680                 decoding="async"
13681                 fetchpriority="low"
13682                 width="779"
13683                 height=""
13684                 alt="1&#x2F;2&quot;&#x20;Pre-Cut&#x20;Mega&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;4&#x27;&#x20;x&#x20;15&#x27;,&#x20;25&#x27;,&#x20;or&#x20;50&#x27;"
13685                 title="1&#x2F;2&quot;&#x20;Pre-Cut&#x20;Mega&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;4&#x27;&#x20;x&#x20;15&#x27;,&#x20;25&#x27;,&#x20;or&#x20;50&#x27;"
13686                 aria-hidden="true" />
13687        </template>
13688    </div>
13689   
13690                </a>
13691                <input type="hidden" id="product_name_298961"  name="product_name_298961" value="1/2" Pre-Cut Mega Rubber Rolls | 4' x 15', 25', or 50'">
13692                <input type="hidden" id="product_id_298961"  name="product_id_298961" value="298961">
13693                <input type="hidden" id="product_url_298961" name="product_url_298961" value="https://www.flooringinc.com/shop/1-2-pre-cut-mega-rubber-rolls-9580.html">
13694                <input type="hidden" id="image_url_298961" name="image_url_298961" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_ngrk073ao925v7861lfqmgkh67/-B779">
13695                <div class="product-info flex flex-col grow py-3 px-3">  
13696                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
13697                                       
13698                    <a href="https://www.flooringinc.com/shop/1-2-pre-cut-mega-rubber-rolls-9580.html">
13699                                                <div class="text-primary product-name ">
13700                            <span class="product-item-link text-size16 font-bold no-underline relative block"
13701                                title="1/2&quot; Pre-Cut Mega Rubber Rolls | 4&#039; x 15&#039;, 25&#039;, or 50&#039;">
13702                                1/2&quot; Pre-Cut Mega Rubber Rolls | 4&#039; x 15&#039;, 25&#039;, or 50&#039;                            </span>
13703                        
13704                        </div>
13705
13706                                                    <div class="ratings " data-nosnippet>
13707                                <div data-bv-show="rating_summary"
13708                                    data-bv-product-id="9580"
13709                                    data-bv-redirect-url="https://www.flooringinc.com/shop/1-2-pre-cut-mega-rubber-rolls-9580.html">
13710                                </div>
13711                            </div>
13712                        
13713                        
13714                                                
13715                    </a>
13716
13717                    <div class="priceBlock">
13718                        <div class="text-gray-900">
13719                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="298961" data-price-box="product-id-298961"><span class="normal-price">
13720    <span class="price-container price-final_price&#x20;tax&#x20;weee"
13721        >
13722
13723    <span  id="product-price-298961"                data-price-amount="162"
13724        data-price-type="finalPrice"
13725        class="price-wrapper "
13726    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$2.70</span> /sq ft</span>
13727            <span class="price-mrp">
13728                            <span class="price-mrp-new">was 
13729                $4.29                </span>
13730                <span data-info="1.59" class="savePrice">Save 37%</span>        </span>
13731            </span>
13732</span>
13733
13734
13735</div>                        </div>
13736                    </div>
13737                    
13738                    <div class="compare-buttons flex flex-wrap">     
13739
13740                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 298961}">
13741                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
13742                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
13743                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
13744                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
13745                                    <div class="modal-content">
13746                                        <div x-html="htmlContent" class="htmlcontent298961"></div>
13747                                    </div>
13748                                </div>
13749                            </div>
13750                        
13751                        <div class="color_counts">
13752                                                            <div class="color_count text-size14 font-normal text-center">Available in 5 colors</div>
13753                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
13754                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
13755                                                    </div>
13756
13757                                                    <div class="ship-fax-plp">
13758                                <a class="ship-iconsada" title="Quick Ship" href="https://www.flooringinc.com/shop/1-2-pre-cut-mega-rubber-rolls-9580.html">
13759                                    <span class="text-[14px] text-[#296497] font-semibold">Quick Ship</span>
13760                                    <picture class="hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/product/quick_ship.webp"><img alt="Quick Ship" title="Quick Ship" width="160" height="51" src="https://www.flooringinc.com/media/catalog/product/quick_ship.png" class="hidden" /></picture>
13761                                </a>
13762                            </div>
13763                          
13764
13765                    </div>
13766                </div>
13767            </div>
13768        
13769    </form>
13770          <form method="post"
13771        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/289901/"
13772        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
13773            >
13774        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="289901"/>
13775                            <div class="catergory_slider_content bg-white no__product__label">
13776                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
13777                    <div class="product_lebel_container active"></div>
13778                                         
13779                </div> 
13780                                <a href="https://www.flooringinc.com/shop/jamboree-playground-tilestm-3264.html"
13781                    class="product photo product-item-photo block mx-auto w-full relative "
13782                    tabindex="-1"
13783                >
13784                    <div class="product-list-image relative w-full overflow-hidden"
13785         x-data='{
13786        over: false,
13787        hovered: false,
13788        hoverTimer: null,
13789        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_h2bqfoocat6296o7llvaqmm908\/-B779-FWEBP",
13790        onEnter() {
13791            this.over = true;
13792            clearTimeout(this.hoverTimer);
13793            this.hoverTimer = setTimeout(() => {
13794                if (this.over) {
13795                    this.hovered = true;
13796                }
13797            }, 80);
13798        },
13799        onMove() {
13800            if (this.over) {
13801                this.hovered = true;
13802            }
13803        },
13804        onLeave() {
13805            this.over = false;
13806            this.hovered = false;
13807            clearTimeout(this.hoverTimer);
13808        }
13809     }'
13810     :class="hovered ? 'is-hovered' : ''"
13811     x-on:mouseenter="onEnter()"
13812     x-on:mousemove.debounce.80ms="onMove()"
13813     x-on:mouseleave="onLeave()"
13814         >
13815    <img class="hover:shadow-sm object-contain w-full "
13816         x-data=""
13817         @update-gallery-289901.window="$root.src = $event.detail"
13818         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_te3mrkjsb970t2e49qvnm1cb5u/-B779-FWEBP"
13819         loading="lazy"
13820         decoding="async"
13821         fetchpriority="low"
13822         width="779"
13823         height=""
13824         alt="Jamboree&#x20;Rubber&#x20;Playground&#x20;Tiles&#x2122;"
13825         title="Jamboree&#x20;Rubber&#x20;Playground&#x20;Tiles&#x2122;"
13826         style="position: static !important;" />
13827            <template x-if="hovered">
13828            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
13829                 :src="hoverUrl"
13830                 loading="lazy"
13831                 decoding="async"
13832                 fetchpriority="low"
13833                 width="779"
13834                 height=""
13835                 alt="Jamboree&#x20;Rubber&#x20;Playground&#x20;Tiles&#x2122;"
13836                 title="Jamboree&#x20;Rubber&#x20;Playground&#x20;Tiles&#x2122;"
13837                 aria-hidden="true" />
13838        </template>
13839    </div>
13840   
13841                </a>
13842                <input type="hidden" id="product_name_289901"  name="product_name_289901" value="Jamboree Rubber Playground Tiles™">
13843                <input type="hidden" id="product_id_289901"  name="product_id_289901" value="289901">
13844                <input type="hidden" id="product_url_289901" name="product_url_289901" value="https://www.flooringinc.com/shop/jamboree-playground-tilestm-3264.html">
13845                <input type="hidden" id="image_url_289901" name="image_url_289901" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_te3mrkjsb970t2e49qvnm1cb5u/-B779">
13846                <div class="product-info flex flex-col grow py-3 px-3">  
13847                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/fi_shop_by_brand_jamboree_3.webp"><img src="https://www.flooringinc.com/media/catalog/category/fi_shop_by_brand_jamboree_3.jpg" width="120" height="45" alt="Jamboree" title="Jamboree"/></picture><span class="brand-title">Jamboree</span></div>
13848                                       
13849                    <a href="https://www.flooringinc.com/shop/jamboree-playground-tilestm-3264.html">
13850                                                <div class="text-primary product-name ">
13851                            <span class="product-item-link text-size16 font-bold no-underline relative block"
13852                                title="Jamboree Rubber Playground Tiles™">
13853                                Jamboree Rubber Playground Tiles™                            </span>
13854                        
13855                        </div>
13856
13857                                                    <div class="ratings " data-nosnippet>
13858                                <div data-bv-show="rating_summary"
13859                                    data-bv-product-id="3264"
13860                                    data-bv-redirect-url="https://www.flooringinc.com/shop/jamboree-playground-tilestm-3264.html">
13861                                </div>
13862                            </div>
13863                        
13864                        
13865                                                
13866                    </a>
13867
13868                    <div class="priceBlock">
13869                        <div class="text-gray-900">
13870                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="289901" data-price-box="product-id-289901"><span class="normal-price">
13871    <span class="price-container price-final_price&#x20;tax&#x20;weee"
13872        >
13873
13874    <span  id="product-price-289901"                data-price-amount="26.99"
13875        data-price-type="finalPrice"
13876        class="price-wrapper "
13877    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$6.75</span> /sqft    </span>
13878            <span class="price-mrp">
13879                            <span class="price-mrp-new">was 
13880                $10.12                </span>
13881                <span data-info="3.37" class="savePrice">Save 33%</span>        </span>
13882            </span>
13883</span>
13884
13885
13886</div>                        </div>
13887                    </div>
13888                    
13889                    <div class="compare-buttons flex flex-wrap">     
13890
13891                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 289901}">
13892                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
13893                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
13894                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
13895                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
13896                                    <div class="modal-content">
13897                                        <div x-html="htmlContent" class="htmlcontent289901"></div>
13898                                    </div>
13899                                </div>
13900                            </div>
13901                        
13902                        <div class="color_counts">
13903                                                            <div class="color_count text-size14 font-normal text-center">Available in 12 colors</div>
13904                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
13905                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
13906                                                    </div>
13907
13908                                                    <div class="ship-fax-plp">
13909                                <a class="ship-iconsada" title="Quick Ship" href="https://www.flooringinc.com/shop/jamboree-playground-tilestm-3264.html">
13910                                    <span class="text-[14px] text-[#296497] font-semibold">Quick Ship</span>
13911                                    <picture class="hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/product/quick_ship.webp"><img alt="Quick Ship" title="Quick Ship" width="160" height="51" src="https://www.flooringinc.com/media/catalog/product/quick_ship.png" class="hidden" /></picture>
13912                                </a>
13913                            </div>
13914                          
13915
13916                    </div>
13917                </div>
13918            </div>
13919        
13920    </form>
13921          <form method="post"
13922        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/290504/"
13923        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
13924            >
13925        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="290504"/>
13926                            <div class="catergory_slider_content bg-white no__product__label">
13927                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
13928                    <div class="product_lebel_container active"></div>
13929                                         
13930                </div> 
13931                                <a href="https://www.flooringinc.com/shop/regrind-rolls-9854.html"
13932                    class="product photo product-item-photo block mx-auto w-full relative "
13933                    tabindex="-1"
13934                >
13935                    <div class="product-list-image relative w-full overflow-hidden"
13936         x-data='{
13937        over: false,
13938        hovered: false,
13939        hoverTimer: null,
13940        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_im65ujqhr56bn7uim3seru7u1e\/-B779-FWEBP",
13941        onEnter() {
13942            this.over = true;
13943            clearTimeout(this.hoverTimer);
13944            this.hoverTimer = setTimeout(() => {
13945                if (this.over) {
13946                    this.hovered = true;
13947                }
13948            }, 80);
13949        },
13950        onMove() {
13951            if (this.over) {
13952                this.hovered = true;
13953            }
13954        },
13955        onLeave() {
13956            this.over = false;
13957            this.hovered = false;
13958            clearTimeout(this.hoverTimer);
13959        }
13960     }'
13961     :class="hovered ? 'is-hovered' : ''"
13962     x-on:mouseenter="onEnter()"
13963     x-on:mousemove.debounce.80ms="onMove()"
13964     x-on:mouseleave="onLeave()"
13965         >
13966    <img class="hover:shadow-sm object-contain w-full "
13967         x-data=""
13968         @update-gallery-290504.window="$root.src = $event.detail"
13969         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_392nc35btp7fn9j463a2te7o60/-B779-FWEBP"
13970         loading="lazy"
13971         decoding="async"
13972         fetchpriority="low"
13973         width="779"
13974         height=""
13975         alt="Regrind&#x20;Rubber&#x20;Rolls"
13976         title="Regrind&#x20;Rubber&#x20;Rolls"
13977         style="position: static !important;" />
13978            <template x-if="hovered">
13979            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
13980                 :src="hoverUrl"
13981                 loading="lazy"
13982                 decoding="async"
13983                 fetchpriority="low"
13984                 width="779"
13985                 height=""
13986                 alt="Regrind&#x20;Rubber&#x20;Rolls"
13987                 title="Regrind&#x20;Rubber&#x20;Rolls"
13988                 aria-hidden="true" />
13989        </template>
13990    </div>
13991   
13992                </a>
13993                <input type="hidden" id="product_name_290504"  name="product_name_290504" value="Regrind Rubber Rolls">
13994                <input type="hidden" id="product_id_290504"  name="product_id_290504" value="290504">
13995                <input type="hidden" id="product_url_290504" name="product_url_290504" value="https://www.flooringinc.com/shop/regrind-rolls-9854.html">
13996                <input type="hidden" id="image_url_290504" name="image_url_290504" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_392nc35btp7fn9j463a2te7o60/-B779">
13997                <div class="product-info flex flex-col grow py-3 px-3">  
13998                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
13999                                       
14000                    <a href="https://www.flooringinc.com/shop/regrind-rolls-9854.html">
14001                                                <div class="text-primary product-name ">
14002                            <span class="product-item-link text-size16 font-bold no-underline relative block"
14003                                title="Regrind Rubber Rolls">
14004                                Regrind Rubber Rolls                            </span>
14005                        
14006                        </div>
14007
14008                                                    <div class="ratings " data-nosnippet>
14009                                <div data-bv-show="rating_summary"
14010                                    data-bv-product-id="9854"
14011                                    data-bv-redirect-url="https://www.flooringinc.com/shop/regrind-rolls-9854.html">
14012                                </div>
14013                            </div>
14014                        
14015                        
14016                                                
14017                    </a>
14018
14019                    <div class="priceBlock">
14020                        <div class="text-gray-900">
14021                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="290504" data-price-box="product-id-290504"><span class="normal-price">
14022    <span class="price-container price-final_price&#x20;tax&#x20;weee"
14023        >
14024
14025    <span  id="product-price-290504"                data-price-amount="4.96"
14026        data-price-type="finalPrice"
14027        class="price-wrapper "
14028    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$1.24</span> /sqft</span>
14029            <span class="price-mrp">
14030                            <span class="price-mrp-new">was 
14031                $1.91                </span>
14032                <span data-info="0.67" class="savePrice">Save 35%</span>        </span>
14033            </span>
14034</span>
14035
14036
14037</div>                        </div>
14038                    </div>
14039                    
14040                    <div class="compare-buttons flex flex-wrap">     
14041
14042                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 290504}">
14043                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
14044                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
14045                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
14046                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
14047                                    <div class="modal-content">
14048                                        <div x-html="htmlContent" class="htmlcontent290504"></div>
14049                                    </div>
14050                                </div>
14051                            </div>
14052                        
14053                        <div class="color_counts">
14054                                                            <div class="color_count text-size14 font-normal text-center">Available in 2 colors</div>
14055                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
14056                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
14057                                                    </div>
14058
14059                          
14060
14061                    </div>
14062                </div>
14063            </div>
14064        
14065    </form>
14066          <form method="post"
14067        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/302564/"
14068        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
14069            >
14070        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="302564"/>
14071                            <div class="catergory_slider_content bg-white no__product__label">
14072                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
14073                    <div class="product_lebel_container active"></div>
14074                                         
14075                </div> 
14076                                <a href="https://www.flooringinc.com/shop/1-2-mega-mats-2800.html"
14077                    class="product photo product-item-photo block mx-auto w-full relative "
14078                    tabindex="-1"
14079                >
14080                    <div class="product-list-image relative w-full overflow-hidden"
14081         x-data='{
14082        over: false,
14083        hovered: false,
14084        hoverTimer: null,
14085        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_uq6r5imalp0fh2i6147gumgu7o\/-B779-FWEBP",
14086        onEnter() {
14087            this.over = true;
14088            clearTimeout(this.hoverTimer);
14089            this.hoverTimer = setTimeout(() => {
14090                if (this.over) {
14091                    this.hovered = true;
14092                }
14093            }, 80);
14094        },
14095        onMove() {
14096            if (this.over) {
14097                this.hovered = true;
14098            }
14099        },
14100        onLeave() {
14101            this.over = false;
14102            this.hovered = false;
14103            clearTimeout(this.hoverTimer);
14104        }
14105     }'
14106     :class="hovered ? 'is-hovered' : ''"
14107     x-on:mouseenter="onEnter()"
14108     x-on:mousemove.debounce.80ms="onMove()"
14109     x-on:mouseleave="onLeave()"
14110         >
14111    <img class="hover:shadow-sm object-contain w-full "
14112         x-data=""
14113         @update-gallery-302564.window="$root.src = $event.detail"
14114         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_uq6r5imalp0fh2i6147gumgu7o/-B779-FWEBP"
14115         loading="lazy"
14116         decoding="async"
14117         fetchpriority="low"
14118         width="779"
14119         height=""
14120         alt="1&#x2F;2&quot;&#x20;Mega&#x20;Gym&#x20;Mats&#x20;&#x7C;&#x20;Rubber&#x20;Mats&#x20;&amp;&#x20;Utility&#x20;Floor&#x20;Mats"
14121         title="1&#x2F;2&quot;&#x20;Mega&#x20;Gym&#x20;Mats&#x20;&#x7C;&#x20;Rubber&#x20;Mats&#x20;&amp;&#x20;Utility&#x20;Floor&#x20;Mats"
14122         style="position: static !important;" />
14123            <template x-if="hovered">
14124            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
14125                 :src="hoverUrl"
14126                 loading="lazy"
14127                 decoding="async"
14128                 fetchpriority="low"
14129                 width="779"
14130                 height=""
14131                 alt="1&#x2F;2&quot;&#x20;Mega&#x20;Gym&#x20;Mats&#x20;&#x7C;&#x20;Rubber&#x20;Mats&#x20;&amp;&#x20;Utility&#x20;Floor&#x20;Mats"
14132                 title="1&#x2F;2&quot;&#x20;Mega&#x20;Gym&#x20;Mats&#x20;&#x7C;&#x20;Rubber&#x20;Mats&#x20;&amp;&#x20;Utility&#x20;Floor&#x20;Mats"
14133                 aria-hidden="true" />
14134        </template>
14135    </div>
14136   
14137                </a>
14138                <input type="hidden" id="product_name_302564"  name="product_name_302564" value="1/2" Mega Gym Mats | Rubber Mats & Utility Floor Mats">
14139                <input type="hidden" id="product_id_302564"  name="product_id_302564" value="302564">
14140                <input type="hidden" id="product_url_302564" name="product_url_302564" value="https://www.flooringinc.com/shop/1-2-mega-mats-2800.html">
14141                <input type="hidden" id="image_url_302564" name="image_url_302564" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_uq6r5imalp0fh2i6147gumgu7o/-B779">
14142                <div class="product-info flex flex-col grow py-3 px-3">  
14143                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
14144                                       
14145                    <a href="https://www.flooringinc.com/shop/1-2-mega-mats-2800.html">
14146                                                <div class="text-primary product-name ">
14147                            <span class="product-item-link text-size16 font-bold no-underline relative block"
14148                                title="1/2&quot; Mega Gym Mats | Rubber Mats &amp; Utility Floor Mats">
14149                                1/2&quot; Mega Gym Mats | Rubber Mats &amp; Utility Floor Mats                            </span>
14150                        
14151                        </div>
14152
14153                                                    <div class="ratings " data-nosnippet>
14154                                <div data-bv-show="rating_summary"
14155                                    data-bv-product-id="2800"
14156                                    data-bv-redirect-url="https://www.flooringinc.com/shop/1-2-mega-mats-2800.html">
14157                                </div>
14158                            </div>
14159                        
14160                        
14161                                                
14162                    </a>
14163
14164                    <div class="priceBlock">
14165                        <div class="text-gray-900">
14166                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="302564" data-price-box="product-id-302564"><span class="normal-price">
14167    <span class="price-container price-final_price&#x20;tax&#x20;weee"
14168        >
14169
14170    <span  id="product-price-302564"                data-price-amount="47.49"
14171        data-price-type="finalPrice"
14172        class="price-wrapper "
14173    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$47.49</span> /each</span>
14174            <span class="price-mrp">
14175                            <span class="price-mrp-new">was 
14176                $73.06                </span>
14177                <span data-info="25.57" class="savePrice">Save 35%</span>        </span>
14178            </span>
14179</span>
14180
14181
14182</div>                        </div>
14183                    </div>
14184                    
14185                    <div class="compare-buttons flex flex-wrap">     
14186
14187                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 302564}">
14188                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
14189                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
14190                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
14191                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
14192                                    <div class="modal-content">
14193                                        <div x-html="htmlContent" class="htmlcontent302564"></div>
14194                                    </div>
14195                                </div>
14196                            </div>
14197                        
14198                        <div class="color_counts">
14199                                                            <div class="color_count text-size14 font-normal text-center">Available in 13 colors</div>
14200                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
14201                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
14202                                                    </div>
14203
14204                          
14205
14206                    </div>
14207                </div>
14208            </div>
14209        
14210    </form>
14211          <form method="post"
14212        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/292697/"
14213        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
14214            >
14215        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="292697"/>
14216                            <div class="catergory_slider_content bg-white no__product__label">
14217                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
14218                    <div class="product_lebel_container active"></div>
14219                                         
14220                </div> 
14221                                <a href="https://www.flooringinc.com/shop/8mm-strong-rubber-rolls-1005.html"
14222                    class="product photo product-item-photo block mx-auto w-full relative "
14223                    tabindex="-1"
14224                >
14225                    <div class="product-list-image relative w-full overflow-hidden"
14226         x-data='{
14227        over: false,
14228        hovered: false,
14229        hoverTimer: null,
14230        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_oua8pnbgl50j9acvaj4nscqq2d\/-B779-FWEBP",
14231        onEnter() {
14232            this.over = true;
14233            clearTimeout(this.hoverTimer);
14234            this.hoverTimer = setTimeout(() => {
14235                if (this.over) {
14236                    this.hovered = true;
14237                }
14238            }, 80);
14239        },
14240        onMove() {
14241            if (this.over) {
14242                this.hovered = true;
14243            }
14244        },
14245        onLeave() {
14246            this.over = false;
14247            this.hovered = false;
14248            clearTimeout(this.hoverTimer);
14249        }
14250     }'
14251     :class="hovered ? 'is-hovered' : ''"
14252     x-on:mouseenter="onEnter()"
14253     x-on:mousemove.debounce.80ms="onMove()"
14254     x-on:mouseleave="onLeave()"
14255         >
14256    <img class="hover:shadow-sm object-contain w-full "
14257         x-data=""
14258         @update-gallery-292697.window="$root.src = $event.detail"
14259         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_qc7660kjf509hbiokssnd3pj7g/-B779-FWEBP"
14260         loading="lazy"
14261         decoding="async"
14262         fetchpriority="low"
14263         width="779"
14264         height=""
14265         alt="8mm&#x20;Strong&#x20;Rubber&#x20;Gym&#x20;Flooring&#x20;Rolls"
14266         title="8mm&#x20;Strong&#x20;Rubber&#x20;Gym&#x20;Flooring&#x20;Rolls"
14267         style="position: static !important;" />
14268            <template x-if="hovered">
14269            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
14270                 :src="hoverUrl"
14271                 loading="lazy"
14272                 decoding="async"
14273                 fetchpriority="low"
14274                 width="779"
14275                 height=""
14276                 alt="8mm&#x20;Strong&#x20;Rubber&#x20;Gym&#x20;Flooring&#x20;Rolls"
14277                 title="8mm&#x20;Strong&#x20;Rubber&#x20;Gym&#x20;Flooring&#x20;Rolls"
14278                 aria-hidden="true" />
14279        </template>
14280    </div>
14281   
14282                </a>
14283                <input type="hidden" id="product_name_292697"  name="product_name_292697" value="8mm Strong Rubber Gym Flooring Rolls">
14284                <input type="hidden" id="product_id_292697"  name="product_id_292697" value="292697">
14285                <input type="hidden" id="product_url_292697" name="product_url_292697" value="https://www.flooringinc.com/shop/8mm-strong-rubber-rolls-1005.html">
14286                <input type="hidden" id="image_url_292697" name="image_url_292697" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_qc7660kjf509hbiokssnd3pj7g/-B779">
14287                <div class="product-info flex flex-col grow py-3 px-3">  
14288                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
14289                                       
14290                    <a href="https://www.flooringinc.com/shop/8mm-strong-rubber-rolls-1005.html">
14291                                                <div class="text-primary product-name ">
14292                            <span class="product-item-link text-size16 font-bold no-underline relative block"
14293                                title="8mm Strong Rubber Gym Flooring Rolls">
14294                                8mm Strong Rubber Gym Flooring Rolls                            </span>
14295                        
14296                        </div>
14297
14298                                                    <div class="ratings " data-nosnippet>
14299                                <div data-bv-show="rating_summary"
14300                                    data-bv-product-id="1005"
14301                                    data-bv-redirect-url="https://www.flooringinc.com/shop/8mm-strong-rubber-rolls-1005.html">
14302                                </div>
14303                            </div>
14304                        
14305                        
14306                                                
14307                    </a>
14308
14309                    <div class="priceBlock">
14310                        <div class="text-gray-900">
14311                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="292697" data-price-box="product-id-292697"><span class="normal-price">
14312    <span class="price-container price-final_price&#x20;tax&#x20;weee"
14313        >
14314
14315    <span  id="product-price-292697"                data-price-amount="5.65"
14316        data-price-type="finalPrice"
14317        class="price-wrapper "
14318    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$1.41</span> /sqft    </span>
14319            <span class="price-mrp">
14320                            <span class="price-mrp-new">was 
14321                $2.17                </span>
14322                <span data-info="0.76" class="savePrice">Save 35%</span>        </span>
14323            </span>
14324</span>
14325
14326
14327</div>                        </div>
14328                    </div>
14329                    
14330                    <div class="compare-buttons flex flex-wrap">     
14331
14332                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 292697}">
14333                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
14334                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
14335                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
14336                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
14337                                    <div class="modal-content">
14338                                        <div x-html="htmlContent" class="htmlcontent292697"></div>
14339                                    </div>
14340                                </div>
14341                            </div>
14342                        
14343                        <div class="color_counts">
14344                                                            <div class="color_count text-size14 font-normal text-center">Available in 34 colors</div>
14345                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
14346                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
14347                                                    </div>
14348
14349                                                    <div class="ship-fax-plp">
14350                                <a class="ship-iconsada" title="Quick Ship" href="https://www.flooringinc.com/shop/8mm-strong-rubber-rolls-1005.html">
14351                                    <span class="text-[14px] text-[#296497] font-semibold">Quick Ship</span>
14352                                    <picture class="hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/product/quick_ship.webp"><img alt="Quick Ship" title="Quick Ship" width="160" height="51" src="https://www.flooringinc.com/media/catalog/product/quick_ship.png" class="hidden" /></picture>
14353                                </a>
14354                            </div>
14355                          
14356
14357                    </div>
14358                </div>
14359            </div>
14360        
14361    </form>
14362          <form method="post"
14363        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/284975/"
14364        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
14365            >
14366        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="284975"/>
14367                            <div class="catergory_slider_content bg-white no__product__label">
14368                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
14369                    <div class="product_lebel_container active"></div>
14370                                         
14371                </div> 
14372                                <a href="https://www.flooringinc.com/shop/15mm-impact-rolls-designer-series-5037.html"
14373                    class="product photo product-item-photo block mx-auto w-full relative "
14374                    tabindex="-1"
14375                >
14376                    <div class="product-list-image relative w-full overflow-hidden"
14377         x-data='{
14378        over: false,
14379        hovered: false,
14380        hoverTimer: null,
14381        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_rudpul0vth5dl0gttgf9p5c155\/-B779-FWEBP",
14382        onEnter() {
14383            this.over = true;
14384            clearTimeout(this.hoverTimer);
14385            this.hoverTimer = setTimeout(() => {
14386                if (this.over) {
14387                    this.hovered = true;
14388                }
14389            }, 80);
14390        },
14391        onMove() {
14392            if (this.over) {
14393                this.hovered = true;
14394            }
14395        },
14396        onLeave() {
14397            this.over = false;
14398            this.hovered = false;
14399            clearTimeout(this.hoverTimer);
14400        }
14401     }'
14402     :class="hovered ? 'is-hovered' : ''"
14403     x-on:mouseenter="onEnter()"
14404     x-on:mousemove.debounce.80ms="onMove()"
14405     x-on:mouseleave="onLeave()"
14406         >
14407    <img class="hover:shadow-sm object-contain w-full "
14408         x-data=""
14409         @update-gallery-284975.window="$root.src = $event.detail"
14410         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_7nvi353alp0ufcakrnoa4ejh2o/-B779-FWEBP"
14411         loading="lazy"
14412         decoding="async"
14413         fetchpriority="low"
14414         width="779"
14415         height=""
14416         alt="15mm&#x20;Impact&#x20;Rubber&#x20;Rolls&#x20;-&#x20;Designer&#x20;Series"
14417         title="15mm&#x20;Impact&#x20;Rubber&#x20;Rolls&#x20;-&#x20;Designer&#x20;Series"
14418         style="position: static !important;" />
14419            <template x-if="hovered">
14420            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
14421                 :src="hoverUrl"
14422                 loading="lazy"
14423                 decoding="async"
14424                 fetchpriority="low"
14425                 width="779"
14426                 height=""
14427                 alt="15mm&#x20;Impact&#x20;Rubber&#x20;Rolls&#x20;-&#x20;Designer&#x20;Series"
14428                 title="15mm&#x20;Impact&#x20;Rubber&#x20;Rolls&#x20;-&#x20;Designer&#x20;Series"
14429                 aria-hidden="true" />
14430        </template>
14431    </div>
14432   
14433                </a>
14434                <input type="hidden" id="product_name_284975"  name="product_name_284975" value="15mm Impact Rubber Rolls - Designer Series">
14435                <input type="hidden" id="product_id_284975"  name="product_id_284975" value="284975">
14436                <input type="hidden" id="product_url_284975" name="product_url_284975" value="https://www.flooringinc.com/shop/15mm-impact-rolls-designer-series-5037.html">
14437                <input type="hidden" id="image_url_284975" name="image_url_284975" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_7nvi353alp0ufcakrnoa4ejh2o/-B779">
14438                <div class="product-info flex flex-col grow py-3 px-3">  
14439                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
14440                                       
14441                    <a href="https://www.flooringinc.com/shop/15mm-impact-rolls-designer-series-5037.html">
14442                                                <div class="text-primary product-name ">
14443                            <span class="product-item-link text-size16 font-bold no-underline relative block"
14444                                title="15mm Impact Rubber Rolls - Designer Series">
14445                                15mm Impact Rubber Rolls - Designer Series                            </span>
14446                        
14447                        </div>
14448
14449                                                    <div class="ratings " data-nosnippet>
14450                                <div data-bv-show="rating_summary"
14451                                    data-bv-product-id="5037"
14452                                    data-bv-redirect-url="https://www.flooringinc.com/shop/15mm-impact-rolls-designer-series-5037.html">
14453                                </div>
14454                            </div>
14455                        
14456                        
14457                                                
14458                    </a>
14459
14460                    <div class="priceBlock">
14461                        <div class="text-gray-900">
14462                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="284975" data-price-box="product-id-284975"><span class="normal-price">
14463    <span class="price-container price-final_price&#x20;tax&#x20;weee"
14464        >
14465
14466    <span  id="product-price-284975"                data-price-amount="25.96"
14467        data-price-type="finalPrice"
14468        class="price-wrapper "
14469    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$6.49</span> /sqft</span>
14470            <span class="price-mrp">
14471                            <span class="price-mrp-new">was 
14472                $9.99                </span>
14473                <span data-info="3.5" class="savePrice">Save 35%</span>        </span>
14474            </span>
14475</span>
14476
14477
14478</div>                        </div>
14479                    </div>
14480                    
14481                    <div class="compare-buttons flex flex-wrap">     
14482
14483                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 284975}">
14484                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
14485                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
14486                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
14487                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
14488                                    <div class="modal-content">
14489                                        <div x-html="htmlContent" class="htmlcontent284975"></div>
14490                                    </div>
14491                                </div>
14492                            </div>
14493                        
14494                        <div class="color_counts">
14495                                                            <div class="color_count text-size14 font-normal text-center">Available in 20 colors</div>
14496                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
14497                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
14498                                                    </div>
14499
14500                          
14501
14502                    </div>
14503                </div>
14504            </div>
14505        
14506    </form>
14507          <form method="post"
14508        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/281438/"
14509        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
14510            >
14511        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="281438"/>
14512                            <div class="catergory_slider_content bg-white no__product__label">
14513                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
14514                    <div class="product_lebel_container active"></div>
14515                                         
14516                </div> 
14517                                <a href="https://www.flooringinc.com/shop/impact-rolls-wood-series-5047.html"
14518                    class="product photo product-item-photo block mx-auto w-full relative "
14519                    tabindex="-1"
14520                >
14521                    <div class="product-list-image relative w-full overflow-hidden"
14522         x-data='{
14523        over: false,
14524        hovered: false,
14525        hoverTimer: null,
14526        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_17s1243u9l2jj7hdjbv1tbdk3f\/-B779-FWEBP",
14527        onEnter() {
14528            this.over = true;
14529            clearTimeout(this.hoverTimer);
14530            this.hoverTimer = setTimeout(() => {
14531                if (this.over) {
14532                    this.hovered = true;
14533                }
14534            }, 80);
14535        },
14536        onMove() {
14537            if (this.over) {
14538                this.hovered = true;
14539            }
14540        },
14541        onLeave() {
14542            this.over = false;
14543            this.hovered = false;
14544            clearTimeout(this.hoverTimer);
14545        }
14546     }'
14547     :class="hovered ? 'is-hovered' : ''"
14548     x-on:mouseenter="onEnter()"
14549     x-on:mousemove.debounce.80ms="onMove()"
14550     x-on:mouseleave="onLeave()"
14551         >
14552    <img class="hover:shadow-sm object-contain w-full "
14553         x-data=""
14554         @update-gallery-281438.window="$root.src = $event.detail"
14555         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_r4is4tdash091a4vnh3ce4su4f/-B779-FWEBP"
14556         loading="lazy"
14557         decoding="async"
14558         fetchpriority="low"
14559         width="779"
14560         height=""
14561         alt="Impact&#x20;Rubber&#x20;Flooring&#x20;Rolls&#x20;-&#x20;Wood&#x20;Grain&#x20;Vinyl&#x20;Top&#x20;Layer"
14562         title="Impact&#x20;Rubber&#x20;Flooring&#x20;Rolls&#x20;-&#x20;Wood&#x20;Grain&#x20;Vinyl&#x20;Top&#x20;Layer"
14563         style="position: static !important;" />
14564            <template x-if="hovered">
14565            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
14566                 :src="hoverUrl"
14567                 loading="lazy"
14568                 decoding="async"
14569                 fetchpriority="low"
14570                 width="779"
14571                 height=""
14572                 alt="Impact&#x20;Rubber&#x20;Flooring&#x20;Rolls&#x20;-&#x20;Wood&#x20;Grain&#x20;Vinyl&#x20;Top&#x20;Layer"
14573                 title="Impact&#x20;Rubber&#x20;Flooring&#x20;Rolls&#x20;-&#x20;Wood&#x20;Grain&#x20;Vinyl&#x20;Top&#x20;Layer"
14574                 aria-hidden="true" />
14575        </template>
14576    </div>
14577   
14578                </a>
14579                <input type="hidden" id="product_name_281438"  name="product_name_281438" value="Impact Rubber Flooring Rolls - Wood Grain Vinyl Top Layer">
14580                <input type="hidden" id="product_id_281438"  name="product_id_281438" value="281438">
14581                <input type="hidden" id="product_url_281438" name="product_url_281438" value="https://www.flooringinc.com/shop/impact-rolls-wood-series-5047.html">
14582                <input type="hidden" id="image_url_281438" name="image_url_281438" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_r4is4tdash091a4vnh3ce4su4f/-B779">
14583                <div class="product-info flex flex-col grow py-3 px-3">  
14584                                            <div class="brand_logo_listpage no_brand"></div>
14585                                       
14586                    <a href="https://www.flooringinc.com/shop/impact-rolls-wood-series-5047.html">
14587                                                <div class="text-primary product-name ">
14588                            <span class="product-item-link text-size16 font-bold no-underline relative block"
14589                                title="Impact Rubber Flooring Rolls - Wood Grain Vinyl Top Layer">
14590                                Impact Rubber Flooring Rolls - Wood Grain Vinyl Top Layer                            </span>
14591                        
14592                        </div>
14593
14594                                                    <div class="ratings " data-nosnippet>
14595                                <div data-bv-show="rating_summary"
14596                                    data-bv-product-id="5047"
14597                                    data-bv-redirect-url="https://www.flooringinc.com/shop/impact-rolls-wood-series-5047.html">
14598                                </div>
14599                            </div>
14600                        
14601                        
14602                                                
14603                    </a>
14604
14605                    <div class="priceBlock">
14606                        <div class="text-gray-900">
14607                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="281438" data-price-box="product-id-281438"><span class="normal-price">
14608    <span class="price-container price-final_price&#x20;tax&#x20;weee"
14609        >
14610
14611    <span  id="product-price-281438"                data-price-amount="55.5"
14612        data-price-type="finalPrice"
14613        class="price-wrapper "
14614    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$9.25</span> /sqft</span>
14615            <span class="price-mrp">
14616                            <span class="price-mrp-new">was 
14617                $14.23                </span>
14618                <span data-info="4.98" class="savePrice">Save 35%</span>        </span>
14619            </span>
14620</span>
14621
14622
14623</div>                        </div>
14624                    </div>
14625                    
14626                    <div class="compare-buttons flex flex-wrap">     
14627
14628                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 281438}">
14629                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
14630                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
14631                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
14632                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
14633                                    <div class="modal-content">
14634                                        <div x-html="htmlContent" class="htmlcontent281438"></div>
14635                                    </div>
14636                                </div>
14637                            </div>
14638                        
14639                        <div class="color_counts">
14640                                                            <div class="color_count text-size14 font-normal text-center">Available in 4 colors</div>
14641                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
14642                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
14643                                                    </div>
14644
14645                          
14646
14647                    </div>
14648                </div>
14649            </div>
14650        
14651    </form>
14652          <form method="post"
14653        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/301589/"
14654        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
14655            >
14656        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="301589"/>
14657                            <div class="catergory_slider_content bg-white no__product__label">
14658                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
14659                    <div class="product_lebel_container active"></div>
14660                                         
14661                </div> 
14662                                <a href="https://www.flooringinc.com/shop/1-monster-rubber-tiles-1040.html"
14663                    class="product photo product-item-photo block mx-auto w-full relative "
14664                    tabindex="-1"
14665                >
14666                    <div class="product-list-image relative w-full overflow-hidden"
14667         x-data='{
14668        over: false,
14669        hovered: false,
14670        hoverTimer: null,
14671        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_0h8kkgq34t0c31c9npu63pju45\/-B779-FWEBP",
14672        onEnter() {
14673            this.over = true;
14674            clearTimeout(this.hoverTimer);
14675            this.hoverTimer = setTimeout(() => {
14676                if (this.over) {
14677                    this.hovered = true;
14678                }
14679            }, 80);
14680        },
14681        onMove() {
14682            if (this.over) {
14683                this.hovered = true;
14684            }
14685        },
14686        onLeave() {
14687            this.over = false;
14688            this.hovered = false;
14689            clearTimeout(this.hoverTimer);
14690        }
14691     }'
14692     :class="hovered ? 'is-hovered' : ''"
14693     x-on:mouseenter="onEnter()"
14694     x-on:mousemove.debounce.80ms="onMove()"
14695     x-on:mouseleave="onLeave()"
14696         >
14697    <img class="hover:shadow-sm object-contain w-full "
14698         x-data=""
14699         @update-gallery-301589.window="$root.src = $event.detail"
14700         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_ere8ea2kpd0k9a5cbcr5i17b0h/-B779-FWEBP"
14701         loading="lazy"
14702         decoding="async"
14703         fetchpriority="low"
14704         width="779"
14705         height=""
14706         alt="1&quot;&#x20;Monster&#x20;Rubber&#x20;Tiles"
14707         title="1&quot;&#x20;Monster&#x20;Rubber&#x20;Tiles"
14708         style="position: static !important;" />
14709            <template x-if="hovered">
14710            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
14711                 :src="hoverUrl"
14712                 loading="lazy"
14713                 decoding="async"
14714                 fetchpriority="low"
14715                 width="779"
14716                 height=""
14717                 alt="1&quot;&#x20;Monster&#x20;Rubber&#x20;Tiles"
14718                 title="1&quot;&#x20;Monster&#x20;Rubber&#x20;Tiles"
14719                 aria-hidden="true" />
14720        </template>
14721    </div>
14722   
14723                </a>
14724                <input type="hidden" id="product_name_301589"  name="product_name_301589" value="1" Monster Rubber Tiles">
14725                <input type="hidden" id="product_id_301589"  name="product_id_301589" value="301589">
14726                <input type="hidden" id="product_url_301589" name="product_url_301589" value="https://www.flooringinc.com/shop/1-monster-rubber-tiles-1040.html">
14727                <input type="hidden" id="image_url_301589" name="image_url_301589" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_ere8ea2kpd0k9a5cbcr5i17b0h/-B779">
14728                <div class="product-info flex flex-col grow py-3 px-3">  
14729                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
14730                                       
14731                    <a href="https://www.flooringinc.com/shop/1-monster-rubber-tiles-1040.html">
14732                                                <div class="text-primary product-name ">
14733                            <span class="product-item-link text-size16 font-bold no-underline relative block"
14734                                title="1&quot; Monster Rubber Tiles">
14735                                1&quot; Monster Rubber Tiles                            </span>
14736                        
14737                        </div>
14738
14739                                                    <div class="ratings " data-nosnippet>
14740                                <div data-bv-show="rating_summary"
14741                                    data-bv-product-id="1040"
14742                                    data-bv-redirect-url="https://www.flooringinc.com/shop/1-monster-rubber-tiles-1040.html">
14743                                </div>
14744                            </div>
14745                        
14746                        
14747                                                
14748                    </a>
14749
14750                    <div class="priceBlock">
14751                        <div class="text-gray-900">
14752                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="301589" data-price-box="product-id-301589"><span class="normal-price">
14753    <span class="price-container price-final_price&#x20;tax&#x20;weee"
14754        >
14755
14756    <span  id="product-price-301589"                data-price-amount="35.96"
14757        data-price-type="finalPrice"
14758        class="price-wrapper "
14759    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$8.99</span> /sqft</span>
14760            <span class="price-mrp">
14761                            <span class="price-mrp-new">was 
14762                $13.83                </span>
14763                <span data-info="4.84" class="savePrice">Save 35%</span>        </span>
14764            </span>
14765</span>
14766
14767
14768</div>                        </div>
14769                    </div>
14770                    
14771                    <div class="compare-buttons flex flex-wrap">     
14772
14773                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 301589}">
14774                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
14775                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
14776                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
14777                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
14778                                    <div class="modal-content">
14779                                        <div x-html="htmlContent" class="htmlcontent301589"></div>
14780                                    </div>
14781                                </div>
14782                            </div>
14783                        
14784                        <div class="color_counts">
14785                                                            <div class="color_count text-size14 font-normal text-center">Available in 16 colors</div>
14786                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
14787                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
14788                                                    </div>
14789
14790                          
14791
14792                    </div>
14793                </div>
14794            </div>
14795        
14796    </form>
14797          <form method="post"
14798        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/304106/"
14799        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
14800            >
14801        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="304106"/>
14802                            <div class="catergory_slider_content bg-white no__product__label">
14803                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
14804                    <div class="product_lebel_container active"></div>
14805                                         
14806                </div> 
14807                                <a href="https://www.flooringinc.com/shop/3-4-olympian-rubber-rolls-14009.html"
14808                    class="product photo product-item-photo block mx-auto w-full relative "
14809                    tabindex="-1"
14810                >
14811                    <div class="product-list-image relative w-full overflow-hidden"
14812         x-data='{
14813        over: false,
14814        hovered: false,
14815        hoverTimer: null,
14816        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_phn0ll6uad2qn517dq4srcop3h\/-B779-FWEBP",
14817        onEnter() {
14818            this.over = true;
14819            clearTimeout(this.hoverTimer);
14820            this.hoverTimer = setTimeout(() => {
14821                if (this.over) {
14822                    this.hovered = true;
14823                }
14824            }, 80);
14825        },
14826        onMove() {
14827            if (this.over) {
14828                this.hovered = true;
14829            }
14830        },
14831        onLeave() {
14832            this.over = false;
14833            this.hovered = false;
14834            clearTimeout(this.hoverTimer);
14835        }
14836     }'
14837     :class="hovered ? 'is-hovered' : ''"
14838     x-on:mouseenter="onEnter()"
14839     x-on:mousemove.debounce.80ms="onMove()"
14840     x-on:mouseleave="onLeave()"
14841         >
14842    <img class="hover:shadow-sm object-contain w-full "
14843         x-data=""
14844         @update-gallery-304106.window="$root.src = $event.detail"
14845         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_9jmbeqvd8h02v0tj320h8c7957/-B779-FWEBP"
14846         loading="lazy"
14847         decoding="async"
14848         fetchpriority="low"
14849         width="779"
14850         height=""
14851         alt="3&#x2F;4&quot;&#x20;Olympian&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;Commercial&#x20;Gym&#x20;Flooring"
14852         title="3&#x2F;4&quot;&#x20;Olympian&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;Commercial&#x20;Gym&#x20;Flooring"
14853         style="position: static !important;" />
14854            <template x-if="hovered">
14855            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
14856                 :src="hoverUrl"
14857                 loading="lazy"
14858                 decoding="async"
14859                 fetchpriority="low"
14860                 width="779"
14861                 height=""
14862                 alt="3&#x2F;4&quot;&#x20;Olympian&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;Commercial&#x20;Gym&#x20;Flooring"
14863                 title="3&#x2F;4&quot;&#x20;Olympian&#x20;Rubber&#x20;Rolls&#x20;&#x7C;&#x20;Commercial&#x20;Gym&#x20;Flooring"
14864                 aria-hidden="true" />
14865        </template>
14866    </div>
14867   
14868                </a>
14869                <input type="hidden" id="product_name_304106"  name="product_name_304106" value="3/4" Olympian Rubber Rolls | Commercial Gym Flooring">
14870                <input type="hidden" id="product_id_304106"  name="product_id_304106" value="304106">
14871                <input type="hidden" id="product_url_304106" name="product_url_304106" value="https://www.flooringinc.com/shop/3-4-olympian-rubber-rolls-14009.html">
14872                <input type="hidden" id="image_url_304106" name="image_url_304106" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_9jmbeqvd8h02v0tj320h8c7957/-B779">
14873                <div class="product-info flex flex-col grow py-3 px-3">  
14874                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
14875                                       
14876                    <a href="https://www.flooringinc.com/shop/3-4-olympian-rubber-rolls-14009.html">
14877                                                <div class="text-primary product-name ">
14878                            <span class="product-item-link text-size16 font-bold no-underline relative block"
14879                                title="3/4&quot; Olympian Rubber Rolls | Commercial Gym Flooring">
14880                                3/4&quot; Olympian Rubber Rolls | Commercial Gym Flooring                            </span>
14881                        
14882                        </div>
14883
14884                                                    <div class="ratings " data-nosnippet>
14885                                <div data-bv-show="rating_summary"
14886                                    data-bv-product-id="14009"
14887                                    data-bv-redirect-url="https://www.flooringinc.com/shop/3-4-olympian-rubber-rolls-14009.html">
14888                                </div>
14889                            </div>
14890                        
14891                        
14892                                                
14893                    </a>
14894
14895                    <div class="priceBlock">
14896                        <div class="text-gray-900">
14897                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="304106" data-price-box="product-id-304106"><span class="normal-price">
14898    <span class="price-container price-final_price&#x20;tax&#x20;weee"
14899        >
14900
14901    <span  id="product-price-304106"                data-price-amount="13"
14902        data-price-type="finalPrice"
14903        class="price-wrapper "
14904    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$3.25</span> /sqft</span>
14905            <span class="price-mrp">
14906                            <span class="price-mrp-new">was 
14907                $5.00                </span>
14908                <span data-info="1.75" class="savePrice">Save 35%</span>        </span>
14909            </span>
14910</span>
14911
14912
14913</div>                        </div>
14914                    </div>
14915                    
14916                    <div class="compare-buttons flex flex-wrap">     
14917
14918                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 304106}">
14919                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
14920                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
14921                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
14922                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
14923                                    <div class="modal-content">
14924                                        <div x-html="htmlContent" class="htmlcontent304106"></div>
14925                                    </div>
14926                                </div>
14927                            </div>
14928                        
14929                        <div class="color_counts">
14930                                                            <div class="color_count text-size14 font-normal text-center">Available in 18 colors</div>
14931                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
14932                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
14933                                                    </div>
14934
14935                                                    <div class="ship-fax-plp">
14936                                <a class="ship-iconsada" title="Quick Ship" href="https://www.flooringinc.com/shop/3-4-olympian-rubber-rolls-14009.html">
14937                                    <span class="text-[14px] text-[#296497] font-semibold">Quick Ship</span>
14938                                    <picture class="hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/product/quick_ship.webp"><img alt="Quick Ship" title="Quick Ship" width="160" height="51" src="https://www.flooringinc.com/media/catalog/product/quick_ship.png" class="hidden" /></picture>
14939                                </a>
14940                            </div>
14941                          
14942
14943                    </div>
14944                </div>
14945            </div>
14946        
14947    </form>
14948          <form method="post"
14949        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/277442/"
14950        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
14951            >
14952        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="277442"/>
14953                            <div class="catergory_slider_content bg-white no__product__label">
14954                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
14955                    <div class="product_lebel_container active"></div>
14956                                         
14957                </div> 
14958                                <a href="https://www.flooringinc.com/shop/1-4-tough-mats-2803.html"
14959                    class="product photo product-item-photo block mx-auto w-full relative "
14960                    tabindex="-1"
14961                >
14962                    <div class="product-list-image relative w-full overflow-hidden"
14963         x-data='{
14964        over: false,
14965        hovered: false,
14966        hoverTimer: null,
14967        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_97ejmkkaeh2fnc3n6c5dr7t203\/-B779-FWEBP",
14968        onEnter() {
14969            this.over = true;
14970            clearTimeout(this.hoverTimer);
14971            this.hoverTimer = setTimeout(() => {
14972                if (this.over) {
14973                    this.hovered = true;
14974                }
14975            }, 80);
14976        },
14977        onMove() {
14978            if (this.over) {
14979                this.hovered = true;
14980            }
14981        },
14982        onLeave() {
14983            this.over = false;
14984            this.hovered = false;
14985            clearTimeout(this.hoverTimer);
14986        }
14987     }'
14988     :class="hovered ? 'is-hovered' : ''"
14989     x-on:mouseenter="onEnter()"
14990     x-on:mousemove.debounce.80ms="onMove()"
14991     x-on:mouseleave="onLeave()"
14992         >
14993    <img class="hover:shadow-sm object-contain w-full "
14994         x-data=""
14995         @update-gallery-277442.window="$root.src = $event.detail"
14996         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_lnh8u5vh957jd5v4ai26lmk25r/-B779-FWEBP"
14997         loading="lazy"
14998         decoding="async"
14999         fetchpriority="low"
15000         width="779"
15001         height=""
15002         alt="1&#x2F;4&quot;&#x20;Tough&#x20;Rubber&#x20;Mats&#x20;&#x7C;&#x20;Fitness&#x20;Mats&#x20;&amp;&#x20;Utility&#x20;Floor&#x20;Mats&#x20;"
15003         title="1&#x2F;4&quot;&#x20;Tough&#x20;Rubber&#x20;Mats&#x20;&#x7C;&#x20;Fitness&#x20;Mats&#x20;&amp;&#x20;Utility&#x20;Floor&#x20;Mats&#x20;"
15004         style="position: static !important;" />
15005            <template x-if="hovered">
15006            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
15007                 :src="hoverUrl"
15008                 loading="lazy"
15009                 decoding="async"
15010                 fetchpriority="low"
15011                 width="779"
15012                 height=""
15013                 alt="1&#x2F;4&quot;&#x20;Tough&#x20;Rubber&#x20;Mats&#x20;&#x7C;&#x20;Fitness&#x20;Mats&#x20;&amp;&#x20;Utility&#x20;Floor&#x20;Mats&#x20;"
15014                 title="1&#x2F;4&quot;&#x20;Tough&#x20;Rubber&#x20;Mats&#x20;&#x7C;&#x20;Fitness&#x20;Mats&#x20;&amp;&#x20;Utility&#x20;Floor&#x20;Mats&#x20;"
15015                 aria-hidden="true" />
15016        </template>
15017    </div>
15018   
15019                </a>
15020                <input type="hidden" id="product_name_277442"  name="product_name_277442" value="1/4" Tough Rubber Mats | Fitness Mats & Utility Floor Mats ">
15021                <input type="hidden" id="product_id_277442"  name="product_id_277442" value="277442">
15022                <input type="hidden" id="product_url_277442" name="product_url_277442" value="https://www.flooringinc.com/shop/1-4-tough-mats-2803.html">
15023                <input type="hidden" id="image_url_277442" name="image_url_277442" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_lnh8u5vh957jd5v4ai26lmk25r/-B779">
15024                <div class="product-info flex flex-col grow py-3 px-3">  
15025                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
15026                                       
15027                    <a href="https://www.flooringinc.com/shop/1-4-tough-mats-2803.html">
15028                                                <div class="text-primary product-name ">
15029                            <span class="product-item-link text-size16 font-bold no-underline relative block"
15030                                title="1/4&quot; Tough Rubber Mats | Fitness Mats &amp; Utility Floor Mats ">
15031                                1/4&quot; Tough Rubber Mats | Fitness Mats &amp; Utility Floor Mats                             </span>
15032                        
15033                        </div>
15034
15035                                                    <div class="ratings " data-nosnippet>
15036                                <div data-bv-show="rating_summary"
15037                                    data-bv-product-id="2803"
15038                                    data-bv-redirect-url="https://www.flooringinc.com/shop/1-4-tough-mats-2803.html">
15039                                </div>
15040                            </div>
15041                        
15042                        
15043                                                
15044                    </a>
15045
15046                    <div class="priceBlock">
15047                        <div class="text-gray-900">
15048                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="277442" data-price-box="product-id-277442"><span class="normal-price">
15049    <span class="price-container price-final_price&#x20;tax&#x20;weee"
15050        >
15051
15052    <span  id="product-price-277442"                data-price-amount="63.74"
15053        data-price-type="finalPrice"
15054        class="price-wrapper "
15055    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$63.74</span> /each</span>
15056            <span class="price-mrp">
15057                            <span class="price-mrp-new">was 
15058                $98.06                </span>
15059                <span data-info="34.32" class="savePrice">Save 35%</span>        </span>
15060            </span>
15061</span>
15062
15063
15064</div>                        </div>
15065                    </div>
15066                    
15067                    <div class="compare-buttons flex flex-wrap">     
15068
15069                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 277442}">
15070                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
15071                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
15072                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
15073                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
15074                                    <div class="modal-content">
15075                                        <div x-html="htmlContent" class="htmlcontent277442"></div>
15076                                    </div>
15077                                </div>
15078                            </div>
15079                        
15080                        <div class="color_counts">
15081                                                            <div class="color_count text-size14 font-normal text-center">Available in 10 colors</div>
15082                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
15083                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
15084                                                    </div>
15085
15086                                                    <div class="ship-fax-plp">
15087                                <a class="ship-iconsada" title="Free Shipping" href="https://www.flooringinc.com/shop/1-4-tough-mats-2803.html">
15088                                    <span class="text-[14px] text-[#296497] font-semibold">Free Shipping</span>
15089                                    <picture class="hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/product/free_shipping.webp"><img alt="Free Shipping" title="Free Shipping" width="160" height="51" src="https://www.flooringinc.com/media/catalog/product/free_shipping.png" class="hidden" /></picture>
15090                                </a>
15091                            </div>
15092                          
15093
15094                    </div>
15095                </div>
15096            </div>
15097        
15098    </form>
15099          <form method="post"
15100        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/421534/"
15101        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
15102            >
15103        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="421534"/>
15104                            <div class="catergory_slider_content bg-white no__product__label">
15105                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
15106                    <div class="product_lebel_container active"></div>
15107                                         
15108                </div> 
15109                                <a href="https://www.flooringinc.com/shop/budget-rubber-rolls-14048.html"
15110                    class="product photo product-item-photo block mx-auto w-full relative "
15111                    tabindex="-1"
15112                >
15113                    <div class="product-list-image relative w-full overflow-hidden"
15114         x-data='{
15115        over: false,
15116        hovered: false,
15117        hoverTimer: null,
15118        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_gcsrolb7412c1c0i02vs0b9i07\/-B779-FWEBP",
15119        onEnter() {
15120            this.over = true;
15121            clearTimeout(this.hoverTimer);
15122            this.hoverTimer = setTimeout(() => {
15123                if (this.over) {
15124                    this.hovered = true;
15125                }
15126            }, 80);
15127        },
15128        onMove() {
15129            if (this.over) {
15130                this.hovered = true;
15131            }
15132        },
15133        onLeave() {
15134            this.over = false;
15135            this.hovered = false;
15136            clearTimeout(this.hoverTimer);
15137        }
15138     }'
15139     :class="hovered ? 'is-hovered' : ''"
15140     x-on:mouseenter="onEnter()"
15141     x-on:mousemove.debounce.80ms="onMove()"
15142     x-on:mouseleave="onLeave()"
15143         >
15144    <img class="hover:shadow-sm object-contain w-full "
15145         x-data=""
15146         @update-gallery-421534.window="$root.src = $event.detail"
15147         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_kuq49misgh2mvavjim7qcoam1i/-B779-FWEBP"
15148         loading="lazy"
15149         decoding="async"
15150         fetchpriority="low"
15151         width="779"
15152         height=""
15153         alt="Budget&#x20;Rubber&#x20;Flooring&#x20;Rolls&#x20;-&#x20;Best&#x20;Value"
15154         title="Budget&#x20;Rubber&#x20;Flooring&#x20;Rolls&#x20;-&#x20;Best&#x20;Value"
15155         style="position: static !important;" />
15156            <template x-if="hovered">
15157            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
15158                 :src="hoverUrl"
15159                 loading="lazy"
15160                 decoding="async"
15161                 fetchpriority="low"
15162                 width="779"
15163                 height=""
15164                 alt="Budget&#x20;Rubber&#x20;Flooring&#x20;Rolls&#x20;-&#x20;Best&#x20;Value"
15165                 title="Budget&#x20;Rubber&#x20;Flooring&#x20;Rolls&#x20;-&#x20;Best&#x20;Value"
15166                 aria-hidden="true" />
15167        </template>
15168    </div>
15169   
15170                </a>
15171                <input type="hidden" id="product_name_421534"  name="product_name_421534" value="Budget Rubber Flooring Rolls - Best Value">
15172                <input type="hidden" id="product_id_421534"  name="product_id_421534" value="421534">
15173                <input type="hidden" id="product_url_421534" name="product_url_421534" value="https://www.flooringinc.com/shop/budget-rubber-rolls-14048.html">
15174                <input type="hidden" id="image_url_421534" name="image_url_421534" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_kuq49misgh2mvavjim7qcoam1i/-B779">
15175                <div class="product-info flex flex-col grow py-3 px-3">  
15176                                            <div class="brand_logo_listpage no_brand"></div>
15177                                       
15178                    <a href="https://www.flooringinc.com/shop/budget-rubber-rolls-14048.html">
15179                                                <div class="text-primary product-name ">
15180                            <span class="product-item-link text-size16 font-bold no-underline relative block"
15181                                title="Budget Rubber Flooring Rolls - Best Value">
15182                                Budget Rubber Flooring Rolls - Best Value                            </span>
15183                        
15184                        </div>
15185
15186                                                    <div class="ratings " data-nosnippet>
15187                                <div data-bv-show="rating_summary"
15188                                    data-bv-product-id="14048"
15189                                    data-bv-redirect-url="https://www.flooringinc.com/shop/budget-rubber-rolls-14048.html">
15190                                </div>
15191                            </div>
15192                        
15193                        
15194                                                
15195                    </a>
15196
15197                    <div class="priceBlock">
15198                        <div class="text-gray-900">
15199                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="421534" data-price-box="product-id-421534"><span class="normal-price">
15200    <span class="price-container price-final_price&#x20;tax&#x20;weee"
15201        >
15202
15203    <span  id="product-price-421534"                data-price-amount="3.16"
15204        data-price-type="finalPrice"
15205        class="price-wrapper "
15206    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">
15206$0.79</span> /sqft    </span>
15207            <span class="price-mrp">
15208                            <span class="price-mrp-new">was 
15209                $1.22                </span>
15210                <span data-info="0.43" class="savePrice">Save 35%</span>        </span>
15211            </span>
15212</span>
15213
15214
15215</div>                        </div>
15216                    </div>
15217                    
15218                    <div class="compare-buttons flex flex-wrap">     
15219
15220                                                
15221                        <div class="color_counts">
15222                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
15223                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
15224                                                    </div>
15225
15226                          
15227
15228                    </div>
15229                </div>
15230            </div>
15231        
15232    </form>
15233          <form method="post"
15234        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/305060/"
15235        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         avail-freeship        no__product__label"
15236            >
15237        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="305060"/>
15238                            <div class="catergory_slider_content bg-white no__product__label">
15239                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
15240                    <div class="product_lebel_container active"></div>
15241                                         
15242                </div> 
15243                                <a href="https://www.flooringinc.com/shop/8mm-strong-rubber-rolls-designer-series-1043.html"
15244                    class="product photo product-item-photo block mx-auto w-full relative "
15245                    tabindex="-1"
15246                >
15247                    <div class="product-list-image relative w-full overflow-hidden"
15248         x-data='{
15249        over: false,
15250        hovered: false,
15251        hoverTimer: null,
15252        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_136hghjjlh1cpe5o56opbteh5n\/-B779-FWEBP",
15253        onEnter() {
15254            this.over = true;
15255            clearTimeout(this.hoverTimer);
15256            this.hoverTimer = setTimeout(() => {
15257                if (this.over) {
15258                    this.hovered = true;
15259                }
15260            }, 80);
15261        },
15262        onMove() {
15263            if (this.over) {
15264                this.hovered = true;
15265            }
15266        },
15267        onLeave() {
15268            this.over = false;
15269            this.hovered = false;
15270            clearTimeout(this.hoverTimer);
15271        }
15272     }'
15273     :class="hovered ? 'is-hovered' : ''"
15274     x-on:mouseenter="onEnter()"
15275     x-on:mousemove.debounce.80ms="onMove()"
15276     x-on:mouseleave="onLeave()"
15277         >
15278    <img class="hover:shadow-sm object-contain w-full "
15279         x-data=""
15280         @update-gallery-305060.window="$root.src = $event.detail"
15281         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_0v0s0qqhp95rtds1j0hgtvpf6v/-B779-FWEBP"
15282         loading="lazy"
15283         decoding="async"
15284         fetchpriority="low"
15285         width="779"
15286         height=""
15287         alt="8mm&#x20;Strong&#x20;Rubber&#x20;Rolls&#x20;-&#x20;Designer&#x20;Series"
15288         title="8mm&#x20;Strong&#x20;Rubber&#x20;Rolls&#x20;-&#x20;Designer&#x20;Series"
15289         style="position: static !important;" />
15290            <template x-if="hovered">
15291            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
15292                 :src="hoverUrl"
15293                 loading="lazy"
15294                 decoding="async"
15295                 fetchpriority="low"
15296                 width="779"
15297                 height=""
15298                 alt="8mm&#x20;Strong&#x20;Rubber&#x20;Rolls&#x20;-&#x20;Designer&#x20;Series"
15299                 title="8mm&#x20;Strong&#x20;Rubber&#x20;Rolls&#x20;-&#x20;Designer&#x20;Series"
15300                 aria-hidden="true" />
15301        </template>
15302    </div>
15303   
15304                </a>
15305                <input type="hidden" id="product_name_305060"  name="product_name_305060" value="8mm Strong Rubber Rolls - Designer Series">
15306                <input type="hidden" id="product_id_305060"  name="product_id_305060" value="305060">
15307                <input type="hidden" id="product_url_305060" name="product_url_305060" value="https://www.flooringinc.com/shop/8mm-strong-rubber-rolls-designer-series-1043.html">
15308                <input type="hidden" id="image_url_305060" name="image_url_305060" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_0v0s0qqhp95rtds1j0hgtvpf6v/-B779">
15309                <div class="product-info flex flex-col grow py-3 px-3">  
15310                                            <div class="brand_logo_listpage"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.webp"><img src="https://www.flooringinc.com/media/catalog/category/Traxxon_Brand_Logo.jpg" width="120" height="45" alt="Traxxon Rubber Flooring" title="Traxxon Rubber Flooring"/></picture><span class="brand-title">Traxxon Rubber Flooring</span></div>
15311                                       
15312                    <a href="https://www.flooringinc.com/shop/8mm-strong-rubber-rolls-designer-series-1043.html">
15313                                                <div class="text-primary product-name ">
15314                            <span class="product-item-link text-size16 font-bold no-underline relative block"
15315                                title="8mm Strong Rubber Rolls - Designer Series">
15316                                8mm Strong Rubber Rolls - Designer Series                            </span>
15317                        
15318                        </div>
15319
15320                                                    <div class="ratings " data-nosnippet>
15321                                <div data-bv-show="rating_summary"
15322                                    data-bv-product-id="1043"
15323                                    data-bv-redirect-url="https://www.flooringinc.com/shop/8mm-strong-rubber-rolls-designer-series-1043.html">
15324                                </div>
15325                            </div>
15326                        
15327                        
15328                                                
15329                    </a>
15330
15331                    <div class="priceBlock">
15332                        <div class="text-gray-900">
15333                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="305060" data-price-box="product-id-305060"><span class="normal-price">
15334    <span class="price-container price-final_price&#x20;tax&#x20;weee"
15335        >
15336
15337    <span  id="product-price-305060"                data-price-amount="11.38"
15338        data-price-type="finalPrice"
15339        class="price-wrapper "
15340    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$2.85</span> /sqft</span>
15341            <span class="price-mrp">
15342                            <span class="price-mrp-new">was 
15343                $4.38                </span>
15344                <span data-info="1.53" class="savePrice">Save 35%</span>        </span>
15345            </span>
15346</span>
15347
15348
15349</div>                        </div>
15350                    </div>
15351                    
15352                    <div class="compare-buttons flex flex-wrap">     
15353
15354                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 305060}">
15355                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
15356                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
15357                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
15358                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
15359                                    <div class="modal-content">
15360                                        <div x-html="htmlContent" class="htmlcontent305060"></div>
15361                                    </div>
15362                                </div>
15363                            </div>
15364                        
15365                        <div class="color_counts">
15366                                                            <div class="color_count text-size14 font-normal text-center">Available in 15 colors</div>
15367                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
15368                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
15369                                                    </div>
15370
15371                          
15372
15373                    </div>
15374                </div>
15375            </div>
15376        
15377    </form>
15378          <form method="post"
15379        action="https://www.flooringinc.com/checkout/cart/add/uenc/%25uenc%25/product/304136/"
15380        class="form-desktop item product product-item product_addtocart_form flex flex-col pr-6 m-0 w-full relative align-top         not-avail-freeship        no__product__label"
15381            >
15382        <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5" />        <input type="hidden" name="product" value="304136"/>
15383                            <div class="catergory_slider_content bg-white no__product__label">
15384                <div class="product__label flex items-center w-full justify-between py-[13px] no__product__label">
15385                    <div class="product_lebel_container active"></div>
15386                                         
15387                </div> 
15388                                <a href="https://www.flooringinc.com/shop/eco-flec-rolls-9589.html"
15389                    class="product photo product-item-photo block mx-auto w-full relative "
15390                    tabindex="-1"
15391                >
15392                    <div class="product-list-image relative w-full overflow-hidden"
15393         x-data='{
15394        over: false,
15395        hovered: false,
15396        hoverTimer: null,
15397        hoverUrl: "https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_jbmrthoihd70hal0p2or66cb42\/-B779-FWEBP",
15398        onEnter() {
15399            this.over = true;
15400            clearTimeout(this.hoverTimer);
15401            this.hoverTimer = setTimeout(() => {
15402                if (this.over) {
15403                    this.hovered = true;
15404                }
15405            }, 80);
15406        },
15407        onMove() {
15408            if (this.over) {
15409                this.hovered = true;
15410            }
15411        },
15412        onLeave() {
15413            this.over = false;
15414            this.hovered = false;
15415            clearTimeout(this.hoverTimer);
15416        }
15417     }'
15418     :class="hovered ? 'is-hovered' : ''"
15419     x-on:mouseenter="onEnter()"
15420     x-on:mousemove.debounce.80ms="onMove()"
15421     x-on:mouseleave="onLeave()"
15422         >
15423    <img class="hover:shadow-sm object-contain w-full "
15424         x-data=""
15425         @update-gallery-304136.window="$root.src = $event.detail"
15426         src="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_s69k4hmkfp18r1t7gokajvef5v/-B779-FWEBP"
15427         loading="lazy"
15428         decoding="async"
15429         fetchpriority="low"
15430         width="779"
15431         height=""
15432         alt="Eco-Flec&#x20;Rubber&#x20;Rolls"
15433         title="Eco-Flec&#x20;Rubber&#x20;Rolls"
15434         style="position: static !important;" />
15435            <template x-if="hovered">
15436            <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
15437                 :src="hoverUrl"
15438                 loading="lazy"
15439                 decoding="async"
15440                 fetchpriority="low"
15441                 width="779"
15442                 height=""
15443                 alt="Eco-Flec&#x20;Rubber&#x20;Rolls"
15444                 title="Eco-Flec&#x20;Rubber&#x20;Rolls"
15445                 aria-hidden="true" />
15446        </template>
15447    </div>
15448   
15449                </a>
15450                <input type="hidden" id="product_name_304136"  name="product_name_304136" value="Eco-Flec Rubber Rolls">
15451                <input type="hidden" id="product_id_304136"  name="product_id_304136" value="304136">
15452                <input type="hidden" id="product_url_304136" name="product_url_304136" value="https://www.flooringinc.com/shop/eco-flec-rolls-9589.html">
15453                <input type="hidden" id="image_url_304136" name="image_url_304136" value="https://d2q5qaygbbwnnw.cloudfront.net/image/230444301506/image_s69k4hmkfp18r1t7gokajvef5v/-B779">
15454                <div class="product-info flex flex-col grow py-3 px-3">  
15455                                            <div class="brand_logo_listpage no_brand"></div>
15456                                       
15457                    <a href="https://www.flooringinc.com/shop/eco-flec-rolls-9589.html">
15458                                                <div class="text-primary product-name ">
15459                            <span class="product-item-link text-size16 font-bold no-underline relative block"
15460                                title="Eco-Flec Rubber Rolls">
15461                                Eco-Flec Rubber Rolls                            </span>
15462                        
15463                        </div>
15464
15465                                                    <div class="ratings " data-nosnippet>
15466                                <div data-bv-show="rating_summary"
15467                                    data-bv-product-id="9589"
15468                                    data-bv-redirect-url="https://www.flooringinc.com/shop/eco-flec-rolls-9589.html">
15469                                </div>
15470                            </div>
15471                        
15472                        
15473                                                
15474                    </a>
15475
15476                    <div class="priceBlock">
15477                        <div class="text-gray-900">
15478                            <div class="price-box price-final_price" data-role="priceBox" data-product-id="304136" data-price-box="product-id-304136"><span class="normal-price">
15479    <span class="price-container price-final_price&#x20;tax&#x20;weee"
15480        >
15481
15482    <span  id="product-price-304136"                data-price-amount="3.96"
15483        data-price-type="finalPrice"
15484        class="price-wrapper "
15485    ><span class="price-start-label">Starting From:</span>    <br/><span class="price">$0.99</span> /sqft    </span>
15486            <span class="price-mrp">
15487                            <span class="price-mrp-new">was 
15488                $1.52                </span>
15489                <span data-info="0.53" class="savePrice">Save 35%</span>        </span>
15490            </span>
15491</span>
15492
15493
15494</div>                        </div>
15495                    </div>
15496                    
15497                    <div class="compare-buttons flex flex-wrap">     
15498
15499                                                                            <div class="orderSampleContent" x-data="{showModal: false, htmlContent: '',pid: 304136}">
15500                                <button class="order_btn text-size12 font-medium text-black" type="button" x-on:click="showModal = true,fetchHtmlContent(pid), document.body.classList.add('order_active');">Order Free Sample</button>
15501                                <div class="modal order-free-sample-popup" x-show="showModal" style="display: none;">
15502                                    <div class="modal-overlay" x-on:click="showModal = false"></div>
15503                                    <button class="closemodal" type="button" x-on:click="showModal = false, document.body.classList.remove('order_active');">Close X</button>
15504                                    <div class="modal-content">
15505                                        <div x-html="htmlContent" class="htmlcontent304136"></div>
15506                                    </div>
15507                                </div>
15508                            </div>
15509                        
15510                        <div class="color_counts">
15511                                                            <div class="color_count text-size14 font-normal text-center">Available in 2 colors</div>
15512                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet1();?></div> -->
15513                                                                                        <!-- <div class="color_count text-size14 font-normal text-center"><//?php echo $product->getIncstoresPimFeatureBullet2();?></div> -->
15514                                                    </div>
15515
15516                          
15517
15518                    </div>
15519                </div>
15520            </div>
15521        
15522    </form>
15523              </div>
15524        </div>
15525        
15525<script>
15526    function initToolbar_6ac152932f064() {
15527        return {
15528            options: {"productListToolbarForm":{"mode":"product_list_mode","direction":"product_list_dir","order":"product_list_order","limit":"product_list_limit","modeDefault":"grid","directionDefault":"asc","orderDefault":"position","limitDefault":24,"url":"https:\/\/www.flooringinc.com\/shop\/rubber-flooring\/all-rubber-flooring.html","formKey":"3mNdp2ZYJNcyLOs5","post":false,"page":"p"}}.productListToolbarForm || {},
15529            getUrlParams: function () {
15530                let decode = window.decodeURIComponent,
15531                    urlPaths = this.options.url.split('?'),
15532                    urlParams = urlPaths[1] ? urlPaths[1].split('&') : [],
15533                    params = {},
15534                    parameters, i;
15535
15536                for (i = 0; i < urlParams.length; i++) {
15537                    parameters = urlParams[i].split('=');
15538                    params[decode(parameters[0])] = parameters[1] !== undefined ?
15539                        decode(parameters[1].replace(/\+/g, '%20')) :
15540                        '';
15541                }
15542
15543                return params;
15544            },
15545            getCurrentLimit: function () {
15546                return this.getUrlParams()[this.options.limit] || this.options.limitDefault;
15547            },
15548            getCurrentPage: function () {
15549                return this.getUrlParams()[this.options.page] || 1;
15550            },
15551            changeUrl(paramName, paramValue, defaultValue) {
15552                let urlPaths = this.options.url.split('?'),
15553                    baseUrl = urlPaths[0],
15554                    paramData = this.getUrlParams(),
15555                    currentPage = this.getCurrentPage(),
15556                    newPage;
15557
15558                /**
15559                 * calculates the page on which the first item of the current page will
15560                 * be with the new limit and sets that number as the new page
15561                 */
15562                if (currentPage > 1 && paramName === this.options.limit) {
15563                    newPage = Math.floor(this.getCurrentLimit() * (currentPage - 1) / paramValue) + 1;
15564
15565                    if (newPage > 1) {
15566                        paramData[this.options.page] = newPage;
15567                    } else {
15568                        delete paramData[this.options.page];
15569                    }
15570                }
15571
15572                paramData[paramName] = paramValue;
15573
15574                if (this.options.post) {
15575                    hyva.postForm({action: baseUrl, data: paramData});
15576                } else {
15577                    if (paramValue === defaultValue.toString()) {
15578                        delete paramData[paramName];
15579                    }
15580                    paramData = Object.keys(paramData).length === 0
15581                        ? ''
15582                        : '?' + (new URLSearchParams(paramData));
15583                    location.href = baseUrl + paramData
15584                }
15585            }
15586        }
15587    }
15588</script>
15588
15589    <div x-data="initToolbar_6ac152932f064()"
15590         class="toolbar toolbar-products overflow-hidden flex">
15591                    <p class="toolbar-amount text-sm leading-5 text-gray-700 order-4 flex items-center pl-8" id="toolbar-amount">
15592            <span class="toolbar-number">86</span><span class="toolbar-name text-lightgray1 text-size12 pl-1">products</span>    </p>
15593
15594
15595            
15596    
15597    
15598    <div class="flex justify-center order-2 col-span-4">
15599                    <nav class="inline-flex items-center pages" aria-label="pagination">
15600                <ol class="relative z-0 inline-flex shadow-sm items pages-items">
15601                    <li class="item pages-item-previous">
15602                                                                            <strong
15603                                class="previous relative inline-flex items-center text-sm font-medium leading-5 bg-white border border-gray-300 rounded-l-md px-3 py-2 text-gray-400
15604                                 border-gray-200"
15605                                aria-disabled="true"
15606                            >
15607                                <span
15608                                    aria-label="Previous"
15609                                ><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="20" height="20" role="img">
15610  <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/>
15611<title>chevron-left</title></svg>
15612</span>
15613                            </strong>
15614                                            </li>
15615
15616                    
15617                    
15618                                                                        <li
15619                                class="item -ml-px"
15620                                aria-label="Page 1"
15621                            >
15622                                <a
15623                                    href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html"
15624                                    class="page relative inline-flex items-center text-sm font-medium leading-5 bg-white border border-gray-300 transition duration-150 ease-in-out hover:text-gray-400 focus:z-10 focus:outline-none focus:border-primary-lighter focus:shadow-outline-blue active:bg-gray-100 active:text-gray-500 z-10 px-4 py-2 text-gray-700
15625                                     bg-gray-100 border-primary"
15626                                    aria-current="page"
15627                                >
15628                                    <span class="sr-only label">
15629                                        You&#039;re currently reading page                                    </span>
15630                                    <span>1</span>
15631                                </a>
15632                            </li>
15633                                                                                                <li class="item -ml-px">
15634                                <a
15635                                    href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?p=2"
15636                                    class="page relative inline-flex items-center text-sm font-medium leading-5 bg-white border border-gray-300 transition duration-150 ease-in-out hover:text-gray-400 focus:z-10 focus:outline-none focus:border-primary-lighter focus:shadow-outline-blue active:bg-gray-100 active:text-gray-500 px-4 py-2 text-gray-700"
15637                                >
15638                                    <span class="sr-only label">Page</span>
15639                                    <span>2</span>
15640                                </a>
15641                            </li>
15642                                                                                                <li class="item -ml-px">
15643                                <a
15644                                    href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?p=3"
15645                                    class="page relative inline-flex items-center text-sm font-medium leading-5 bg-white border border-gray-300 transition duration-150 ease-in-out hover:text-gray-400 focus:z-10 focus:outline-none focus:border-primary-lighter focus:shadow-outline-blue active:bg-gray-100 active:text-gray-500 px-4 py-2 text-gray-700"
15646                                >
15647                                    <span class="sr-only label">Page</span>
15648                                    <span>3</span>
15649                                </a>
15650                            </li>
15651                                                                                                <li class="item -ml-px">
15652                                <a
15653                                    href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?p=4"
15654                                    class="page relative inline-flex items-center text-sm font-medium leading-5 bg-white border border-gray-300 transition duration-150 ease-in-out hover:text-gray-400 focus:z-10 focus:outline-none focus:border-primary-lighter focus:shadow-outline-blue active:bg-gray-100 active:text-gray-500 px-4 py-2 text-gray-700"
15655                                >
15656                                    <span class="sr-only label">Page</span>
15657                                    <span>4</span>
15658                                </a>
15659                            </li>
15660                                            
15661                    
15662                    
15663                    <li class="item pages-item-next -ml-px">
15664                                                                                <a
15665                                href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?p=2"
15666                                class="action  next
15667                                    relative inline-flex items-center text-sm font-medium leading-5 bg-white border border-gray-300 transition duration-150 ease-in-out hover:text-gray-400 focus:z-10 focus:outline-none focus:border-primary-lighter focus:shadow-outline-blue active:bg-gray-100 active:text-gray-500 rounded-r-md px-3 py-2 text-gray-500"
15668                            >
15669                                                                    <span
15670                                        aria-label="Next"
15671                                    ><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="20" height="20" role="img">
15672  <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/>
15673<title>chevron-right</title></svg>
15674</span>
15675                                                            </a>
15676                                            </li>
15677                </ol>
15678            </nav>
15679            </div>
15680
15681    
15682    
15683            
15684    <div class="field limiter flex items-center order-1 float-left w-1/2">
15685        <div class="control">
15686            <label class="text-sm label">
15687                <span class="text-size12 font-semibold pr-4">View</span>
15688
15689                <select data-role="limiter" class="form-select limiter-options"
15690                    @change="changeUrl(
15691                    'product_list_limit',
15692                    $event.currentTarget.options[$event.currentTarget.selectedIndex].value,
15693                    options.limitDefault
15694                )">
15695                                    <option value="12"
15696                        >
15697                        12                    </option>
15698                                    <option value="24"
15699                                                    selected="selected"
15700                        >
15701                        24                    </option>
15702                                    <option value="36"
15703                        >
15704                        36                    </option>
15705                                </select>
15706                <span class="text-size12 font-semibold pl-2">Products Per Page</span>
15707            </label>
15708        </div>
15709        <span class="limiter-text text-sm ml-2 sr-only">
15710        per page    </span>
15711    </div>
15712            </div>
15713    </section>
15714<script>
15715    //var checkedArray = [];
15716    var prodArray = [];
15717    //var checkedArray = [];
15718    var prodArray = [];
15719    var compare_list = '';
15720    if (document.getElementById("compare-list")) {
15721        compare_list = document.getElementById("compare-list").value;
15722        prodArray = compare_list.split(",").map(Number);
15723    }
15724
15725    function remove(list, value, separator) {
15726        separator = separator || ",";
15727        var values = list.split(separator);
15728        for(var i = 0 ; i < values.length ; i++) {
15729            if(values[i] == value) {
15730            values.splice(i, 1);
15731            return values.join(separator);
15732            }
15733        }
15734
15735        return list;
15736    }
15737
15738    function getSelectedCompare(){
15739
15740        prodArray.forEach(function (product_id) {
15741            if(document.getElementById('compare_checkbox_'+product_id)) {
15742                document.getElementById('compare_checkbox_'+product_id).checked = true;
15743            }
15744        });
15745    }
15746
15747    function addToCompareList(product_id) {
15748        //checkedArray = [];
15749        var error_message=document.getElementById('error-message');
15750
15751        prodArray = prodArray.filter(function(productId) {
15752            return productId !== 0;
15753        });
15754        if(prodArray.length>=4){
15755            document.getElementById('compare_checkbox_'+product_id).checked = false;
15756            error_message.style.display='block';  
15757        } else {
15758            if(prodArray.indexOf(product_id) == -1) {
15759                prodArray.push(product_id);
15760            }
15761            document.getElementById("compare-list").value=prodArray;
15762
15763            var product_id=document.getElementById('product_id_'+product_id).value;
15764            var name=document.getElementById('product_name_'+product_id).value;
15765            var url=document.getElementById('product_url_'+product_id).value;
15766            var imageUrl=document.getElementById('image_url_'+product_id).value;
15767            var comparelist= document.getElementById("compare-list").value;
15768            compareListHtml(product_id,name,url,imageUrl);
15769
15770        }
15771
15772        var sidebar=document.getElementById('compare-widget');
15773        var comparebtn=document.getElementById('compare-btn');
15774
15775        if(prodArray.length>1){
15776            comparebtn.style.display='block'; 
15777        } else {
15778            comparebtn.style.display='none'; 
15779        }
15780        
15781        if(prodArray.length>0){
15782            sidebar.style.display='block';
15783        } else {
15784            sidebar.style.display='none';
15785        }
15786
15787    }   
15788
15789    function compareListHtml(product_id,name,url,imageUrl){
15790        var exsistHtml=document.getElementById("imagelist").innerHTML;
15791        html='<li class="flex items-start relative" id="sidebar_image_'+product_id+'" <a href="'+url+'"';
15792        html+= ' class="block w-full" title="'+name+'"> ';;
15793        html+= '<img class="w-full" src="'+imageUrl+'" alt="'+name+'"></a>';    
15794        html+= '<button @click.prevent="removeFromCompareList('+product_id+')" aria-label="Remove&#x20;Product" class="absolute" title="Remove&#x20;Product"></button></li>';
15795        exsistHtml+=html;
15796        document.getElementById("imagelist").innerHTML=exsistHtml;
15797    }
15798
15799    function removeFromCompareList(product_id)
15800    {
15801        const index = prodArray.indexOf(product_id);
15802        var error_message=document.getElementById('error-message');
15803        var style = window.getComputedStyle(error_message); 
15804        if(document.getElementById('compare_checkbox_'+product_id)) {
15805            document.getElementById('compare_checkbox_'+product_id).checked = false;
15806        }
15807        if (prodArray !== -1) { 
15808            prodArray.splice(index, 1); // 2nd parameter means remove one item only
15809        }
15810        document.getElementById("compare-list").value=prodArray;
15811        
15812        if(style.display === 'block') {
15813            error_message.style.display='none';               
15814        }
15815               
15816        //var comparelist= document.getElementById("compare-list").value;
15817        const element = document.getElementById("sidebar_image_"+product_id);
15818        element.remove();
15819        var comparebtn=document.getElementById('compare-btn');
15820
15821        
15822        if(prodArray.length>1){
15823            comparebtn.style.display='block'; 
15824        } else {
15825            comparebtn.style.display='none'; 
15826        }
15827        if(prodArray.length==0){
15828            var sidebar=document.getElementById('compare-widget');
15829            sidebar.style.display='none'; 
15830        }        
15831    }
15832
15833    /*document.querySelectorAll(".toolbar-products ol.items li.item").forEach(function(toolbarPager) {
15834        toolbarPager.addEventListener("click", function(){
15835            var PAGER_CONTROL_INTERVAL = setInterval(function(){
15836                // Check if element exist
15837                if(document.querySelector('.filter-option .filter-options-content .mst-nav__label .items .item')){
15838                    clearInterval(PAGER_CONTROL_INTERVAL);
15839                    
15840                }
15841            }, 500);  
15842
15843        });
15844    });*/
15845
15846    document.querySelectorAll('.pages-items .item').forEach(function(link) {
15847      link.addEventListener('click', function(event) {
15848        event.preventDefault(); // Prevent the default link behavior
15849
15850        // Scroll to the top of the page
15851        window.scrollTo({
15852          top: 0,
15853          behavior: 'auto' // You can change this to 'auto' for instant scrolling
15854        });
15855      });
15856    });
15857</script>
15857
15858
15859
15860
15861<script>
15862function makeMessagesSticky1() {
15863  var header2 = document.querySelector('#header');
15864  var messages2 = document.querySelector('.page.messages #messages');
15865  var page2 = document.querySelector('.page.messages');
15866  var breadcrumbs2 = document.querySelector('.breadcrumbs');
15867
15868  var headerRect2 = header2.getBoundingClientRect();
15869  var messagesRect2 = messages2.getBoundingClientRect();
15870  var pageRect2 = page2.getBoundingClientRect();
15871  var breadcrumbsRect2 = breadcrumbs2.getBoundingClientRect();
15872
15873  var bodyElement2 = document.querySelector('body');
15874  var isSticky2 = bodyElement2.classList.contains('sticki');
15875
15876  
15877
15878  if (isSticky2) {
15879    if (pageRect2.top <= headerRect2.bottom) {
15880        document.querySelector('.catalog-category-view .page.messages #messages').style.position = 'fixed';
15881        document.querySelector('.catalog-category-view .page.messages #messages').style.top = `${headerRect2.bottom}px`;
15882        document.querySelector('.catalog-category-view .page.messages #messages').style.width = '100%';
15883    } 
15884    else {
15885        document.querySelector('.catalog-category-view .page.messages #messages').style.position = 'static';
15886        document.querySelector('.catalog-category-view .page.messages #messages').style.top = 'auto';
15887    }
15888  } 
15889  else {
15890    if (breadcrumbsRect2.bottom <= 0) {
15891      document.querySelector('.catalog-category-view .page.messages #messages').style.position = 'fixed';
15892      document.querySelector('.catalog-category-view .page.messages #messages').style.top = '0';
15893      document.querySelector('.catalog-category-view .page.messages #messages').style.width = '100%';
15894    } else {
15895      document.querySelector('.catalog-category-view .page.messages #messages').style.position = 'static';
15896      document.querySelector('.catalog-category-view .page.messages #messages').style.top = 'auto';
15897    }
15898
15899}
15900}
15901window.addEventListener("scroll", function() {
15902    makeMessagesSticky1();
15903});
15904
15905function successMsgSticky(){
15906    var headerHeight2 = document.querySelector('header.page-header').offsetHeight;
15907    var breadcrumbsHeight2 = document.querySelector('.breadcrumbs').offsetHeight;
15908    var hHgt2 = headerHeight2 + breadcrumbsHeight2;
15909    var mesgs2 = document.querySelector('.page.messages #messages');
15910    var scrollTop = window.scrollY;
15911
15912    if (scrollTop >= hHgt2) {
15913        document.body.classList.add('scroll-reached-hHgt');
15914    } 
15915    else {
15916        document.body.classList.remove('scroll-reached-hHgt');
15917    }
15918}
15919
15920window.addEventListener("resize", successMsgSticky);
15921window.addEventListener("load", successMsgSticky);
15922</script>
15922    
15923<style>
15924    @media(max-width:1024px){
15925        .catalog-category-view.scroll-reached-hHgt .page.messages .messages.container{position: static !important;}
15926        .catalog-category-view.scroll-reached-hHgt .page.messages #messages{position: fixed !important;top: 0px !important;width: 100% !important;}
15927    }
15928</style></div> 
15928<script nonce="dW0zODRtOWZjdmJ0bDF4NXV6NmVlNHB0bTFmZWRxYTU=">
15929    function hasWebP() {
15930        var elem = document.createElement('canvas');
15931
15932        if (!!(elem.getContext && elem.getContext('2d'))) {
15933            return elem.toDataURL('image/webp').indexOf('data:image/webp') === 0;
15934        }
15935        return false;
15936    }
15937
15938    if (hasWebP()) {
15939        document.body.classList.add("webp");
15940    } else {
15941        document.body.classList.add("no-webp");
15942    }</script>
15942<script></script>
15942<div x-data="recommendedProducts_below_main_content()"
15943     x-init="initProductRecBlock()"
15944     id="recs_block_below_main_content"
15945     class="products__recommendations">
15946    <template x-if="productBanners">
15947        <div>
15948            <template x-for="banner in productBanners">
15949                <div class="product-slider" x-defer="intersect">
15950                    <section class="my-12 text-gray-700 body-font"
15951                        tabindex="0"
15952                        role="region"
15953                        aria-label="Recommended products carousel"
15954                        aria-roledescription="carousel"
15955                        @keydown.arrow-right.prevent="$refs.next.click()"
15956                        @keydown.arrow-left.prevent="$refs.prev.click()"
15957                    >
15958                        <div class="relative">
15959                        <div class="flex w-full">
15960                            <h3 x-text='banner.storefrontLabel'
15961                                class="font-semibold"></h3>
15962                        </div>
15963                        <div class="relative flex flex-nowrap w-full recommended-slider-items products_slider" data-content-type="recommended-products">
15964                            <div class="sr-only"
15965                                aria-live="polite"
15966                                x-text="'Showing ' + banner.products.length + ' recommended products'">
15967                            </div>
15968                            <div id="recommended-slider" class="overflow-x-hidden max-slide" data-role="glider-recommended">
15969                                <template x-for="product in banner.products">
15970                                    <div class="flex shrink-0 w-full js_slide md:w-1/3 lg:w-1/5 xl:w-1/6 recommended-slider-item">
15971                                        <form method="post" x-bind:action="createAddToCartUrl(product.productId)"
15972                                            @submit.prevent="addToCartRecsEvent($event.target, banner.unitId, product.productId)"
15973                                            class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full catergory_slider_content bg-white">
15974                                            <input name="form_key" type="hidden" :value="hyva.getFormKey()"/>
15975                                            <input type="hidden" name="product" x-bind:value="product.productId">
15976                                            <a :href="new URL(product.url, window.location.origin).pathname" @click="recsClickEvent(banner.unitId, product.productId, product.url)"
15977                                            class="product photo product-item-photo block cursor-pointer"
15978                                            tabindex="-1">
15979                                                <div class="product-list-image relative w-full overflow-hidden"
15980                                                     x-data="recProductImage(product)"
15981                                                     :class="{ 'is-hovered': hovered }"
15982                                                     x-on:mouseenter="onEnter()"
15983                                                     x-on:mousemove.debounce.80ms="onMove()"
15984                                                     x-on:mouseleave="onLeave()">
15985                                                    <img class="product-list-image-primary hover:shadow-sm object-contain w-full"
15986                                                         loading="eager"
15987                                                         x-bind:alt="product.image?.label"
15988                                                         x-bind:title="product.image?.label"
15989                                                         x-bind:src="primarySrc"
15990                                                         width="360"
15991                                                         height="360"
15992                                                         decoding="async"
15993                                                         fetchpriority="high"
15994                                                         style="position: static !important;">
15995                                                    <template x-if="hoverUrl && hovered">
15996                                                        <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
15997                                                             x-bind:src="hoverUrl"
15998                                                             loading="lazy"
15999                                                             decoding="async"
16000                                                             fetchpriority="low"
16001                                                             width="360"
16002                                                             height="360"
16003                                                             x-bind:alt="product.image?.label"
16004                                                             aria-hidden="true">
16005                                                    </template>
16006                                                </div>
16007                                            </a>
16008                                            <div class="product-info flex flex-col flex-grow">
16009                                                <div
16010                                                    class="items-center justify-center font-semibold ">
16011                                                    <a :href="new URL(product.url, window.location.origin).pathname" class="product-item-link text-size16 text-black font-bold no-underline relative block cursor-pointer"
16012                                                    @click="recsClickEvent(banner.unitId, product.productId, product.url)"
16013                                                    x-text="product.name"></a>
16014                                                </div>
16015
16016                                                <div class="ratings" data-nosnippet>
16017                                                    <div data-bv-show="rating_summary"
16018                                                    x-bind:data-bv-product-id="product.sku"
16019                                                    x-bind:data-bv-redirect-url="product.url">
16020                                                    </div>
16021                                                </div>
16022                                                    
16023                                                <template x-if="product.prices">
16024                                                    <div class="pt-1 text-gray-900 price-box price-final_price" x-bind:data-product-id="product.productId">
16025                                                        <span class="normal-price">
16026                                                            <span class="price-container price-final_price">
16027                                                                <!-- <span x-show="product.prices.minimum.final !== product.prices.maximum.final"
16028                                                                    class="price-start-label">Starting From:</span> -->
16029                                                                <span id="product-price" class="price-wrapper ">
16030                                                                    <!-- <span class="price" x-text="hyva.formatPrice(product.prices.minimum.final)"></span> -->
16031                                                                    <div x-data="productPricing(product)">
16032                                                                        <div :class="priceContainerClasses" 
16033                                                                            :itemprop="schema ? 'offers' : ''" 
16034                                                                            :itemscope="schema ? true : false" 
16035                                                                            :itemtype="schema ? 'http://schema.org/Offer' : ''">
16036
16037                                                                            <!-- Price Wrapper -->
16038                                                                            <span :id="priceId" 
16039                                                                                :data-label="priceDisplayLabel" 
16040                                                                                :data-price-amount="priceAmount" 
16041                                                                                :data-price-type="priceType" 
16042                                                                                :class="priceWrapperClasses">
16043                                                                                <template x-if="priceType === 'finalPrice' && product.type === 'configurable'">
16044                                                                                    <span class="price-start-label">Starting From:</span>
16045                                                                                </template>
16046
16047                                                                                <!-- Adjusted Price Logic -->
16048                                                                                <template x-if="calculatorType && (coverage > 0 || (width > 0 && length > 0 && height > 0))">
16049                                                                                    <span>
16050                                                                                        <template x-if="minPriceVolume > 0">
16051                                                                                            <span>
16052                                                                                                <template x-if="regularPrice > specialPrice && specialPrice > 0">
16053                                                                                                    <span x-text="formatCurrency(specialPrice / minPriceVolume)"></span>
16054                                                                                                </template>
16055                                                                                                <template x-if="!(regularPrice > specialPrice && specialPrice > 0)">
16056                                                                                                    <span x-text="formatCurrency(regularPrice / minPriceVolume)"></span>
16057                                                                                                </template>
16058                                                                                                <span x-text="'/' + calculatorType"></span>
16059                                                                                            </span>
16060                                                                                        </template>
16061                                                                                    </span>
16062                                                                                </template>
16063                                                                                <template x-if="!calculatorType || minPriceVolume <= 0">
16064                                                                                    <sp
16064an class="price">
16065                                                                                        <span x-text="formatCurrency(displayValue)"></span>
16066                                                                                        <span x-text="displayValueType"></span>
16067                                                                                    </span>
16068                                                                                </template>
16069                                                                            </span>
16070
16071                                                                            <!-- MRP and Discount -->
16072                                                                            <!-- <template x-if="regularPrice > specialPrice && product.type === 'configurable'">
16073                                                                                <span class="price-mrp">
16074                                                                                    <template x-if="minPriceVolume > 0 && calculatorType">
16075                                                                                        <span class="price-mrp-new">
16076                                                                                            <span x-text="formatCurrency(regularPrice / minPriceVolume)"></span>
16077                                                                                            <span x-text="'/' + calculatorType"></span>
16078                                                                                        </span>
16079                                                                                        <span class="savePrice" x-text="'Save ' + discountPercentage + '%'"></span>
16080                                                                                    </template>
16081                                                                                    <template x-if="!(minPriceVolume > 0 && calculatorType)">
16082                                                                                        <span class="price-mrp-new">
16083                                                                                            <span x-text="formatCurrency(regularPrice)"></span>
16084                                                                                            <span>/each</span>
16085                                                                                        </span>
16086                                                                                        <span class="savePrice" x-text="'Save ' + discountPercentage + '%'"></span>
16087                                                                                    </template>
16088                                                                                </span>
16089                                                                            </template> -->
16090
16091                                                                            <!-- Adjustments -->
16092                                                                            <template x-if="adjustmentsHtml">
16093                                                                                <span x-html="adjustmentsHtml"></span>
16094                                                                            </template>
16095
16096                                                                            <!-- Schema -->
16097                                                                            <template x-if="schema">
16098                                                                                <meta itemprop="price" :content="priceAmount" />
16099                                                                                <meta itemprop="priceCurrency" :content="priceCurrency" />
16100                                                                            </template>
16101                                                                        </div>
16102                                                                    </div>                                                                   
16103                                                                </span>
16104                                                            </span>
16105                                                        </span>
16106                                                    </div>
16107                                                </template>
16108                                                    <!-- End of product price -->
16109                                            </div>                                            
16110                                        </form>
16111                                    </div>
16112                                </template>
16113                            </div>
16114                            <div class="carousel-nav flex items-center justify-center">
16115                                <button aria-label="Previous" aria-controls="recommended-slider" x-ref="prev" class="glider-prev1"></button> 
16116                                <button aria-label="Next" aria-controls="recommended-slider" x-ref="next" class="glider-next1"></button>
16117                            </div>
16118                        </div>
16119                    </div>
16120                </section>
16121                </div>
16122            </template>
16123        </div>
16124    </template>
16125</div>
16126
16127<script>
16128    function recommendedProducts_below_main_content() {
16129        return {
16130            productBanners: [],
16131            pagePreconfiguredDeferred: {},
16132            bannerPlacement: 'below-main-content',
16133            allProductIds: '',
16134            initProductRecBlock: function (placement) {
16135                let self = this;
16136                window.magentoStorefrontEvents.subscribe.recsResponseReceived(function () {
16137                    let recsData = window.magentoStorefrontEvents.context.getRecommendations();
16138                    self.renderProductRecs(recsData);
16139                });
16140            },
16141            renderProductRecs: function (recsData) {
16142                let self = this;
16143                let allProductIds = [];
16144
16145                recsData.units.sort((a, b) => a.displayOrder - b.displayOrder);
16146
16147                recsData.units.forEach(function (unit, index) {
16148                    if (unit.pagePlacement === self.bannerPlacement) {
16149                        self.productBanners.push(unit);
16150
16151                        // Collect all product IDs from this unit
16152                        if (unit.products && unit.products.length > 0) {
16153                            unit.products.forEach(function(product) {
16154                                allProductIds.push(product.productId);
16155                            });
16156                        }
16157
16158                        /** @todo move event outside of recsResponseReceived event **/
16159                        window.magentoStorefrontEvents.publish.recsUnitRender(
16160                            unit.unitId, magentoStorefrontEvents.context
16161                        );
16162                    }
16163                });
16164
16165                // Store comma-separated product IDs
16166                self.allProductIds = allProductIds.join(',');
16167                
16168                // Fetch calculated prices and hover images for all products at once
16169                if (self.allProductIds) {
16170                    self.fetchAllCalculatedPrices(self.allProductIds);
16171                    if (window.matchMedia('(hover: hover) and (pointer: fine)').matches) {
16172                        self.fetchAllHoverImages(self.allProductIds);
16173                    }
16174                }
16175            },
16176            fetchAllHoverImages: function (productIds) {
16177                const baseUrl = "https\u003A\u002F\u002Fwww.flooringinc.com\u002F";
16178                const fetchUrl = baseUrl + 'hyvaproductrecommendation/product/listhoverimage/productId/' + productIds;
16179
16180                if (!window.hoverImagesCachePromise) {
16181                    window.hoverImagesCachePromise = fetch(fetchUrl)
16182                        .then(response => response.json())
16183                        .then(data => {
16184                            window.hoverImagesCache = data.success && data.hoverImages
16185                                ? data.hoverImages
16186                                : {};
16187                            return window.hoverImagesCache;
16188                        })
16189                        .catch(() => {
16190                            window.hoverImagesCache = {};
16191                            return window.hoverImagesCache;
16192                        });
16193                }
16194
16195                return window.hoverImagesCachePromise;
16196            },
16197            fetchAllCalculatedPrices: function(productIds) {
16198                var baseUrl = "https://www.flooringinc.com/";
16199                var fetchUrl = baseUrl + 'hyvaproductrecommendation/product/calculatedprice/productId/' + productIds;
16200                
16201                // Create a promise that other components can wait for
16202                if (!window.calculatedPricesCachePromise) {
16203                    window.calculatedPricesCachePromise = fetch(fetchUrl)
16204                        .then(response => response.json())
16205                        .then(data => {
16206                            // Store the price data globally so productPricing can access it
16207                            if (!window.calculatedPricesCache) {
16208                                window.calculatedPricesCache = {};
16209                            }
16210                            window.calculatedPricesCache = data;
16211                            return data;
16212                        })
16213                        .catch(error => {
16214                            console.log('Error fetching calculated prices:', error);
16215                            return {};
16216                        });
16217                }
16218                return window.calculatedPricesCachePromise;
16219            },
16220            addToCartRecsEvent: function (e, unitId, productId) {
16221                // requires recommendationsContext to be set
16222                magentoStorefrontEvents.publish.recsItemAddToCartClick(
16223                    unitId, productId, magentoStorefrontEvents.context
16224                );
16225                // Timeout to prevent submission before event has fired.
16226                setTimeout(() => e.submit(), 500);
16227            },
16228            scrollViewEvent: function (unitId) {
16229                magentoStorefrontEvents.publish.recsUnitView(
16230                    unitId, magentoStorefrontEvents.context
16231                );
16232            },
16233            recsClickEvent: function (unitId, productId, productUrl) {
16234                magentoStorefrontEvents.publish.recsItemClick(
16235                    unitId, productId, magentoStorefrontEvents.context
16236                );
16237                // Timeout to prevent submission before event has fired.
16238                //setTimeout(() => window.location.href = productUrl, 500);
16239            },
16240            createAddToCartUrl: function (productId) {
16241                const currentLocationUENC = encodeURIComponent(
16242                    this.encodeUenc(BASE_URL),
16243                );
16244                return BASE_URL +
16245                    "checkout/cart/add/uenc/" +
16246                    currentLocationUENC +
16247                    "/product/" +
16248                    productId
16249            },
16250            encodeUenc: function (value) {
16251                const regex = /=/gi;
16252                return btoa(value).replace(regex, ",");
16253            },
16254        }
16255    }
16256</script>
vendor: 1 bytes, line 16256
16256
16257<script>
16258    'use strict';
16259(() => {
16260    const initCarousels = (elements) => {
16261        if (typeof Glider === 'undefined') {
16262            console.error("Glider.js is not loaded.");
16263            return;
16264        }
16265
16266        elements.forEach((carousel) => {
16267            const gliderElement = carousel.querySelector('[data-role="glider-recommended"]');
16268            if (!gliderElement) {
16269                console.warn("Glider element not found.");
16270                return;
16271            }
16272
16273            const gliderPrev = carousel.querySelector('.glider-prev1');
16274            const gliderNext = carousel.querySelector('.glider-next1');
16275
16276            const totalSlides = gliderElement.querySelectorAll('.js_slide').length;
16277
16278            // Hide arrows if slides are 6 or less
16279            if (totalSlides <= 6) {
16280                if (gliderPrev) gliderPrev.style.display = 'none';
16281                if (gliderNext) gliderNext.style.display = 'none';
16282            } else {
16283                if (gliderPrev) gliderPrev.style.display = '';
16284                if (gliderNext) gliderNext.style.display = '';
16285            }
16286            // Initialize Glider
16287            const glider = new Glider(gliderElement, {
16288                slidesToShow: 6,
16289                slidesToScroll: 1,
16290                scrollLock: false,
16291                draggable: true,
16292                dragVelocity: 1.3,
16293                arrows: {
16294                    prev: gliderPrev,
16295                    next: gliderNext,
16296                },
16297                responsive: [
16298                    { breakpoint: 768, settings: { slidesToShow: 2, slidesToScroll: 1 } },
16299                    { breakpoint: 1024, settings: { slidesToShow: 4, slidesToScroll: 1 } },
16300                    { breakpoint: 1366, settings: { slidesToShow: 6, slidesToScroll: 1} },
16301                ],
16302            });
16303          
16304            const preventDraggingOnInputs = (gliderElement) => {
16305                gliderElement.querySelectorAll('select, input').forEach((el) => {
16306                    el.addEventListener('mousedown', (event) => {                        
16307                        event.stopPropagation(); // Prevent Glider drag from starting
16308                    });
16309
16310                    el.addEventListener('touchstart', (event) => {
16311                        event.stopPropagation(); // Prevent drag on touch devices
16312                    });
16313                });
16314            };
16315
16316            // Call this inside initCarousels after Glider initialization
16317            preventDraggingOnInputs(gliderElement);
16318            
16319            // Add event listener to handle the disabled class
16320            gliderElement.addEventListener('glider-refresh', () => {
16321                requestAnimationFrame(() => {
16322                    const hasNext = gliderElement.scrollWidth - gliderElement.scrollLeft > gliderElement.clientWidth;
16323                    const hasPrev = gliderElement.scrollLeft > 0;
16324
16325                    gliderNext.classList.toggle('disabled', !hasNext);
16326                    gliderPrev.classList.toggle('disabled', !hasPrev);
16327                    gliderNext.setAttribute('aria-disabled', !hasNext);
16328                    gliderPrev.setAttribute('aria-disabled', !hasPrev);
16329                });
16330            });
16331
16332            // Force a refresh to ensure state is accurate on initialization
16333            glider.refresh();
16334        });
16335    };
16336
16337    const loadGliderScript = (callback) => {
16338        const script = document.createElement('script');
16339        script.type = 'text/javascript';
16340        script.src = "https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Magento_PageBuilder/js/glider.min.js";
16341        script.addEventListener('load', callback);
16342        document.head.appendChild(script);
16343    };
16344
16345    const observeCarousels = () => {
16346        const observer = new MutationObserver((mutationsList) => {
16347            let found = false;
16348
16349            for (const mutation of mutationsList) {
16350            if (mutation.type === 'childList') {
16351                for (const node of mutation.addedNodes) {
16352                if (node.nodeType === 1) {
16353                    const carousels = node.querySelectorAll?.('[data-content-type="recommended-products"]');
16354                    if (carousels.length) {
16355                    found = true;
16356                    requestAnimationFrame(() => {
16357                        observer.disconnect();
16358                        initCarousels(carousels);
16359                    });
16360                    break;
16361                    }
16362                }
16363                }
16364            }
16365            if (found) break;
16366            }
16367        });
16368
16369        observer.observe(document.body, { childList: true, subtree: true });
16370    };
16371
16372    window.addEventListener('DOMContentLoaded', () => {
16373        loadGliderScript(() => {
16374            // Check if carousels are already in the DOM
16375            const carouselElements = document.querySelectorAll('[data-content-type="recommended-products"]');
16376            if (carouselElements.length > 0) {
16377                initCarousels(carouselElements);
16378            } else {
16379                // Use MutationObserver to wait for dynamic content
16380                observeCarousels();                
16381            }
16382        });
16383    });
16384})();
16385</script>
16385
16386
16387<script>
16388    function recProductImage(product) {
16389        return {
16390            hovered: false,
16391            over: false,
16392            hoverTimer: null,
16393            hoverUrl: null,
16394            isDesktopHover: window.matchMedia('(hover: hover) and (pointer: fine)').matches,
16395            primarySrc() {
16396                const url = product.image?.url || '';
16397                if (!url) {
16398                    return '';
16399                }
16400                return url + (url.includes('?') ? '&' : '?') + 'width=428&height=210';
16401            },
16402            init() {
16403                if (!this.isDesktopHover) {
16404                    return;
16405                }
16406                this.resolveHoverUrl();
16407            },
16408            resolveHoverUrl() {
16409                const id = String(product.productId);
16410                const apply = (url) => {
16411                    if (url) {
16412                        this.hoverUrl = url;
16413                    }
16414                };
16415
16416                if (window.hoverImagesCache?.[id]) {
16417                    apply(window.hoverImagesCache[id]);
16418                    return;
16419                }
16420
16421                if (window.hoverImagesCachePromise) {
16422                    window.hoverImagesCachePromise.then(() => apply(window.hoverImagesCache?.[id]));
16423                }
16424            },
16425            onEnter() {
16426                if (!this.isDesktopHover || !this.hoverUrl) {
16427                    return;
16428                }
16429                this.over = true;
16430                clearTimeout(this.hoverTimer);
16431                this.hoverTimer = setTimeout(() => {
16432                    if (this.over) {
16433                        this.hovered = true;
16434                    }
16435                }, 80);
16436            },
16437            onMove() {
16438                if (!this.isDesktopHover || !this.over || !this.hoverUrl) {
16439                    return;
16440                }
16441                this.hovered = true;
16442            },
16443            onLeave() {
16444                this.over = false;
16445                this.hovered = false;
16446                clearTimeout(this.hoverTimer);
16447            },
16448            destroy() {
16449                clearTimeout(this.hoverTimer);
16450            },
16451        };
16452    }
16453
16454    function productPricing(product) {
16455        return {
16456            // Variables
16457            regularPrice: 0,
16458            specialPrice: 0,
16459            calculatorType: '',
16460            coverage: 0,
16461            width: 0,
16462            length: 0,
16463            height: 0,
16464            minPriceVolume: 0,
16465            displayValue: 0,
16466            priceAmount: 0,
16467            priceType: 'finalPrice',
16468            priceCurrency: 'USD',
16469            discountPercentage: 0,
16470            adjustmentsHtml: '', // Placeholder for adjustment logic
16471            schema: true,
16472            displayValueType: '/each',
16473
16474            // Dynamic Classes
16475            priceContainerClasses: 'price-container',
16476            priceWrapperClasses: 'price-wrapper',
16477            priceId: '', // Add logic for dynamic IDs if needed
16478            priceDisplayLabel: '',
16479
16480            // Initialization
16481            init() {
16482                // Load product attributes
16483                //console.log("product==="+JSON.stringify(product));
16484                const attributes = product.attributes;
16485
16486                // Regular and Special Prices
16487                this.regularPrice = product.prices.minimum.regular || 0;
16488                this.specialPrice = product.prices.minimum.final || this.regularPrice;
16489
16490                // Calculator Type and Dimensions
16491                this.calculatorType = attributes.incstores_pim_calculator_type || '';
16492                this.coverage = attributes.config_coverage || 0;
16493                this.width = (attributes.incstores_pim_width_inches || 0) / 12;
16494                this.length = (attributes.incstores_pim_length_inches || 0) / 12;
16495                this.height = (attributes.incstores_pim_height_inches || 0) / 12;
16496
16497                // Calculate Price per Volume
16498                if (this.calculatorType && (this.coverage > 0 || (this.width > 0 && this.length > 0 && this.height > 0))) {
16499                    if (this.calculatorType === 'case') {
16500                        this.minPriceVolume = this.coverage;
16501                    } else {
16502                        this.minPriceVolume = this.width * this.length * this.height;
16503                    }
16504
16505                    if (this.minPriceVolume > 0) {
16506                        const pricePerUnit =
16507                            this.regularPrice > this.specialPrice && this.specialPrice > 0
16508                                ? this.specialPrice / this.minPriceVolume
16509                                : this.regularPrice / this.minPriceVolume;
16510
16511                        this.displayValue = pricePerUnit;
16512                    }
16513                } else {
16514                    this.displayValue = this.regularPrice;
16515                }
16516
16517                const productId = product.productId;
16518                const self = this;
16519
16520                // Wait for the batch price cache to be ready
16521                if (window.calculatedPricesCachePromise) {
16522                    window.calculatedPricesCachePromise.then(() => {
16523                        // Now the cache should be populated
16524                        if (window.calculatedPricesCache && window.calculatedPricesCache[productId]) {
16525                            let productData = window.calculatedPricesCache[productId];
16526                            if (productData.success && productData.priceData && productData.priceData.price) {
16527                                let customPrice = productData.priceData.price;
16528                                let calType = productData.priceData.calType;
16529                                self.displayValue = customPrice;
16530                                self.displayValueType = '/' + calType;
16531                                if (calType == 'none') {
16532                                    self.displayValueType = '';
16533                                }
16534                            }
16535                        }
16536                    });
16537                } else {
16538                    // Fallback: fetch individual product price if batch call was not initiated
16539                    var baseUrl = "https://www.flooringinc.com/";
16540                    var fetchUrl = baseUrl + 'hyvaproductrecommendation/product/calculatedprice/productId/' + productId;
16541
16542                    fetch(fetchUrl)
16543                        .then(response => response.json())
16544                        .then(data => {
16545                            if (data.success) {
16546                                let customPrice = data.priceData.price;
16547                                if (data.priceData.price) {
16548                                    let calType = data.priceData.calType;
16549                                    self.displayValue = customPrice;
16550                                    self.displayValueType = '/' + calType;
16551                                    if (calType == 'none') {
16552                                        self.displayValueType = '';
16553                                    }
16554                                }
16555                            }
16556                        })
16557                        .catch(error => {
16558                            console.log(error);
16559                        });
16560                }
16561
16562                // Calculate Discount
16563                if (this.regularPrice > this.specialPrice) {
16564                    const savePrice = this.regularPrice - this.specialPrice;
16565                    this.discountPercentage = Math.round((savePrice * 100) / this.regularPrice);
16566                }
16567            },
16568
16569            // Utility Functions
16570            formatCurrency(value) {
16571                value = Number(String(value).replace(/,/g, ''));
16572                return `$${value.toFixed(2)}`;
16573            },
16574        };
16575    }
16576</script>
vendor: 1 bytes, line 16576
16576
16577<script>
16578    document.addEventListener("DOMContentLoaded", function () {
16579        let relatedProducts = document.querySelector(".related-products-section");
16580        let recommendations = document.querySelector(".products__recommendations");
16581
16582        if (relatedProducts && recommendations) {
16583            relatedProducts.parentNode.insertBefore(recommendations, relatedProducts.nextSibling);
16584        }
16585    });
16586</script>
16586
16587</div><aside class="sidebar sidebar-additional">        
16587<script>
16588        function compareSidebarFetchHandler(postUrl, postHeaders, isSingleItem = true) {
16589            const messages = {
16590                "success": isSingleItem
16591                    ? "You removed product Product from the comparison list"
16592                    : "You removed all products from the comparison list",
16593                "warning": isSingleItem
16594                    ? "Could not remove item from compare."
16595                    : "Could not remove all item from compare.",
16596            }
16597
16598            return fetch(postUrl, postHeaders).then(function (response) {
16599                if (response.redirected) {
16600                    //window.location.href = response.url;
16601                    window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
16602                } else if (response.ok) {
16603                    window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
16604                    //return response.json();
16605                } else {
16606                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
16607                        [{ type: "warning", text: messages.warning }], 1000
16608                    );
16609                }
16610            }).then(function (response) {
16611                if (!response) return;
16612                typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
16613                    [{
16614                        type: (response.success) ? "success" : "error",
16615                        text: (response.success) ? messages.success : response.error_message
16616                    }], 1000
16617                );
16618                let reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data");
16619                window.dispatchEvent(reloadCustomerDataEvent);
16620            }).catch(function (error) {
16621                typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
16622                    [{ type: "error", text: error }], 1000
16623                );
16624            });
16625        }
16626        function initCompareSidebarClear() {
16627            return {
16628                clearCompare: function() {
16629                    const formKey = hyva.getFormKey();
16630                    this.itemCount=0;
16631                    const postUrl = BASE_URL + 'catalog/product_compare/clear/isAjax/true/';           
16632                    const postHeaders = {
16633                        "headers": {
16634                            "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
16635                        },
16636                        "body": "form_key=" + formKey + "&uenc=" 
16636+ hyva.getUenc(),
16637                        "method": "POST",
16638                        "mode": "cors",
16639                        "credentials": "include"
16640                    };
16641
16642                    compareSidebarFetchHandler(postUrl, postHeaders, isSingleItem = false);
16643                }
16644            }
16645        }
16646        </script>
16646
16647                    
16647<script>
16648                window.onload=function(){  
16649                document.getElementById("clear_all_item_compare").click();
16650                setTimeout(() => {
16651                    var checkboxes = document.getElementsByClassName('compare_checkbox');
16652                    for (var checkbox of checkboxes) {
16653                        checkbox.checked = false;
16654                    }
16655                }, 1000);
16656                document.getElementById("compare-list").value = '';
16657                };
16658            </script>
16658
16659                <div id="loading">
16660            <img id="loading-image" src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Amasty_AjaxCartHyva/images/loading-gif.gif" alt="Loading..." />
16661        </div>
16662        <div id="error-message" class="error-message" style="display:none;--tw-bg-opacity: 1;
16663        position: fixed;left: 0;width: 100%;bottom: 144px !important;background: rgb(255 70 58) !important;
16664        color: #FFFFFF !important;padding: 0.625rem 0.5rem;text-align: center;margin: 0;z-index: 999;">
16665            You've already selected the maximum number of items to compare (4)   
16666            <a href="#" data-rel="back" class="close-error" onclick="document.getElementById('error-message').style.display= 'none'"><span class="close">&times;</span></a>
16667        </div>
16668        <form id="compare_form" action="https://www.flooringinc.com/comparerestrict/compare/add/" method="POST">
16669            <input type="hidden" name="compare-list" id="compare-list"  value="">
16670            <input type="hidden" name="form_key" id="form-key-compare" value="" />
16671            <input type="hidden" name="catId" value="2333" />
16672        </form>
16673        
16673<script>
16674            function submitCompareForm(e) {
16675                //document.getElementById("compare_form").submit();
16676                var newFormKey = hyva.getFormKey();
16677                if (newFormKey) { console.log("newFormKey = "+newFormKey);
16678                    document.getElementById("form-key-compare").value = newFormKey;
16679                    document.getElementById("compare_form").submit();
16680                }
16681            }
16682        </script>
16682         
16683
16684        <div class="compare-widget hidden w-full" style="display:none" id="compare-widget">
16685            <div class="flex justify-between compare-widget-in">
16686                <div class="flex flex-wrap items-center select" x-data>
16687                    <span class="compare_restriction_text text-size16 font-normal text-white">Select 2 to 4 items to compare</span>
16688                    <button @click="submitCompareForm"
16689                        title="Compare Products" style='display:none'
16690                        id="compare-btn"
16691                        class="btn btn-secondary text-size16 font-normal text-white bg-darkyellow w-full border-0 text-center">
16692                        <span class="m-0 p-0 block w-full">Compare</span>
16693                    </button>
16694                    <button x-data="initCompareSidebarClear()"
16695                        @click.prevent="clearCompare()"
16696                        aria-label="Remove&#x20;all&#x20;Products"
16697                        class="p-1 inline-flex shrink-0 items-center justify-center text-gray-500 hover:text-primary ml-auto hidden"
16698                        id="clear_all_item_compare">
16699                        <span>Clear all</span>
16700                    </button>
16701                </div>        
16702                    <ul class="flex"  id='imagelist'>                
16703                    </ul>
16704            </div>
16705        </div>
16706    
16707    
16707<script>
16708        function initWishlistOnWishlistSidebar() {
16709            function wishlistSidebarFetchHandler(body, postUrl, isRemoveAction = true) {
16710                const messages = {
16711                    "success": isRemoveAction
16712                        ? "\u00251\u0020has\u0020been\u0020removed\u0020from\u0020your\u0020Wish\u0020List"
16713                        : "\u00251\u0020has\u0020been\u0020added\u0020to\u0020your\u0020Wish\u0020List.",
16714                    "warning": isRemoveAction
16715                        ? "Could\u0020not\u0020remove\u0020item\u0020from\u0020your\u0020Wish\u0020List"
16716                        : "Could\u0020not\u0020add\u0020item\u0020to\u0020your\u0020Wish\u0020List.",
16717                }
16718
16719                const postHeaders = {
16720                    "headers": {
16721                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
16722                    },
16723                    body: body,
16724                    "method": "POST",
16725                    "mode": "cors",
16726                    "credentials": "include"
16727                };
16728
16729                return fetch(postUrl, postHeaders).then(function (response) {
16730                    if (response.redirected) {
16731                        window.location.href = response.url;
16732                    } else if (response.ok) {
16733                        return response.json();
16734                    } else {
16735                        const message = { type: "warning", text: messages.warning };
16736                        window.dispatchMessages && window.dispatchMessages([message], 5000);
16737                    }
16738                }).then(function (response) {
16739                    if (!response) return;
16740                    const message = {
16741                        type: (response.success) ? "success" : "error",
16742                        text: (response.success) ? messages.success : response.error_message
16743                    }
16744                    window.dispatchMessages && window.dispatchMessages([message], 5000);
16745                    window.dispatchEvent(new CustomEvent("reload-customer-section-data"));
16746                }).catch(function (error) {
16747                    const message = { type: "error", text: error };
16748                    window.dispatchMessages && window.dispatchMessages([message], 5000);
16749                });
16750            }
16751
16752            return {
16753                wishlistProducts: null,
16754                itemCount: 0,
16755                wishlistCountLabel: null,
16756                wishlistItems: {},
16757                receiveWishlistData: function (data) {
16758                    if (data['wishlist']) {
16759                        this.wishlistProducts = data['wishlist'];
16760                        this.wishlistCountLabel = '(' + this.wishlistProducts.counter + ')';
16761                        this.itemCount = this.wishlistProducts.items.length;
16762                        this.wishlistItems = this.wishlistProducts.items;
16763                    }
16764                },
16765                addToCart: function (json) {
16766                    const obj = JSON.parse(json);
16767                    const postUrl = obj.action;
16768                    const body = "form_key=" + hyva.getFormKey() + "&item=" + obj.data.item + "&qty=" + obj.data.qty + "&uenc=" 
16768+ hyva.getUenc();
16769                    wishlistSidebarFetchHandler(body, postUrl, /* isRemoveAction */ false);
16770                },
16771                removeFromWishlist: function(json) {
16772                    const obj = JSON.parse(json);
16773                    const postUrl = obj.action;
16774                    const body = "form_key=" + hyva.getFormKey() + "&item=" + obj.data.item+"&uenc=" + hyva.getUenc();
16775                    wishlistSidebarFetchHandler(body, postUrl);
16776                }
16777            }
16778        }
16779
16780    </script>
16780
16781
16782    <div x-data="initWishlistOnWishlistSidebar()"
16783         @private-content-loaded.window="receiveWishlistData($event.detail.data)"
16784         class="wishlist-widget mt-8 hidden"
16785         :class="{ 'hidden': itemCount === 0 }">
16786        <div class="border-t border-container mb-6 pt-5">
16787            <strong class="title text-primary font-semibold text-lg">My Wish List</strong>
16788            <span class="counter text-xs" x-html="wishlistCountLabel"></span>
16789        </div>
16790        <template x-if="itemCount">
16791            <ul class="my-4">
16792                <template x-for="product in wishlistItems">
16793                    <li class="flex items-start mb-4">
16794                        <a :href="product.product_url"
16795                           class="block mb-3 w-10 h-10 shrink-0 mr-4"
16796                           :title="product.product_name">
16797                            <img :src="product.image.src" :alt="product.product_name" loading="lazy">
16798                        </a>
16799                        <div class="product-item-details">
16800                            <strong class="mr-2 text-sm leading-6 font-normal">
16801                                <a :href="product.product_url" :title="product.product_name" x-html="product.product_name"></a>
16802                            </strong>
16803                            <div class="mr-2 text-sm leading-6 font-bold" x-html="product.product_price"></div>
16804                            <template x-if="product.product_is_saleable_and_visible">
16805                                <div class="actions-primary my-2">
16806                                    <template x-if="!product.product_has_required_options">
16807                                        <button
16808                                            @click.prevent="addToCart(product.add_to_cart_params)"
16809                                            class="action tocart primary btn btn-primary text-sm"
16810                                            title="Add&#x20;to&#x20;Cart">
16811                                            <span>Add to Cart</span>
16812                                        </button>
16813                                    </template>
16814                                </div>
16815                            </template>
16816                        </div>
16817                        <button
16818                            @click.prevent="removeFromWishlist(product.delete_item_params)"
16819                            aria-label="Remove&#x20;Product"
16820                            class="p-1 inline-flex shrink-0 items-center justify-center text-gray-500
16821                                   hover:text-primary ml-auto"
16822                            title="Remove&#x20;Product">
16823                            <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6" width="25" height="25" role="img">
16824  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
16825<title>x</title></svg>
16826                        </button>
16827                    </li>
16828                </template>
16829            </ul>
16830        </template>
16831        <div class="flex flex-wrap items-center md:mt-5 space-x-4 text-sm">
16832            <a href="https://www.flooringinc.com/wishlist/"
16833               title="Go&#x20;to&#x20;Wish&#x20;List"
16834               class="px-4 text-sm text-gray-500 hover:text-primary">
16835                <span>Go to Wish List</span>
16836            </a>
16837        </div>
16838    </div>
16839<div class="widget block block-static-block">
16840    <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"></div></div>
16841</aside></div>
16842
16843 
16844
16845    <div class="category-bottom-content">
16846        <style>#html-body [data-pb-style=NII4XUO]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=GLATN4U]{width:100%;border-width:1px;border-color:#cecece;display:inline-block}#html-body [data-pb-style=MA5RGGP]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=R99NBQ1]{display:flex;width:100%}#html-body [data-pb-style=L4QWEUV]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:41.6667%;align-self:stretch}#html-body [data-pb-style=X7TR0NC]{border-style:none}#html-body [data-pb-style=EB32ORQ],#html-body [data-pb-style=PEQSYDU]{border-color:#fff;border-width:5px;max-width:100%;height:auto}#html-body [data-pb-style=BF6EYHN]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:58.3333%;align-self:stretch}#html-body [data-pb-style=D9KJJRF]{border-color:#fff;border-width:5px}#html-body [data-pb-style=GRIETO8]{width:100%;border-width:1px;border-color:#cecece;display:inline-block}#html-body [data-pb-style=C8TN35F]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=E1WWL2Q]{display:flex;width:100%}#html-body [data-pb-style=U9ON7WV]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:41.6667%;align-self:stretch}#html-body [data-pb-style=FHBLSKY]{border-style:none}#html-body [data-pb-style=I66S42V],#html-body [data-pb-style=RHOK5TW]{border-color:#fff;border-width:5px;max-width:100%;height:auto}#html-body [data-pb-style=C94GFNS]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:58.3333%;align-self:stretch}#html-body [data-pb-style=VEN1C25]{border-color:#fff;border-width:5px}#html-body [data-pb-style=JA6M6FM]{width:100%;border-width:1px;border-color:#cecece;display:inline-block}#html-body [data-pb-style=P9SMD4U]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=IGEEQAT]{display:flex;width:100%}#html-body [data-pb-style=ICD32YG]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:41.6667%;align-self:stretch}#html-body [data-pb-style=TLA8AWR]{border-style:none}#html-body [data-pb-style=GGV63KM],#html-body [data-pb-style=N09J8U3]{border-color:#fff;border-width:5px;max-width:100%;height:auto}#html-body [data-pb-style=AH3V5H2]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:58.3333%;align-self:stretch}#html-body [data-pb-style=LNULKXP]{border-color:#fff;border-width:5px}#html-body [data-pb-style=NH69930]{width:100%;border-width:1px;border-color:#cecece;display:inline-block}#html-body [data-pb-style=THT1SGF]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=XAYOTSB]{display:flex;width:100%}#html-body [data-pb-style=QH9YRTU]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:41.6667%;align-self:stretch}#html-body [data-pb-style=U3F2CA5]{border-style:none}#html-body [data-pb-style=R61OPFR],#html-body [data-pb-style=RENFD2V]{border-color:#fff;border-width:5px;max-width:100%;height:auto}#html-body [data-pb-style=XXIK6O0]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:58.3333%;align-self:stretch}#html-body [data-pb-style=SWVY93O]{border-color:#fff;border-width:5px}#html-body [data-pb-style=MX6QCXI]{width:100%;border-width:1px;border-color:#cecece;display:inline-block}#html-body [data-pb-style=YHXCIB1]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=CXMYH2C]{display:flex;width:100%}#html-body [data-pb-style=PPYYGI3]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:41.6667%;align-self:stretch}#html-body [data-pb-style=VE2UEYL]{border-style:none}#html-body [data-pb-style=C85HHVP],#html-body [data-pb-style=P8X7VAO]{border-color:#fff;border-width:5px;max-width:100%;height:auto}#html-body [data-pb-style=OF3YHE1]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:58.3333%;align-self:stretch}#html-body [data-pb-style=MUKWFHB]{border-color:#fff;border-width:5px}#html-body [data-pb-style=HW2LAPC]{width:100%;border-width:1px;border-color:#cecece;display:inline-block}#html-body [data-pb-style=JTBQ027]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=H7LNWFF]{display:flex;width:100%}#html-body [data-pb-style=UOS16X4]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=GMGO9MR],#html-body [data-pb-style=U9GBW2F]{width:100%;border-width:1px;border-color:#cecece;display:inline-block}#html-body [data-pb-style=SQY6TT6]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=HCEC1TP]{display:flex;width:100%}#html-body [data-pb-style=EQ1TK6C]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:41.6667%;align-self:stretch}#html-body [data-pb-style=SAXSJHC]{border-style:none}#html-body [data-pb-style=JW92ROH],#html-body [data-pb-style=U03J3U1]{border-color:#fff;border-width:5px;max-width:100%;height:auto}#html-body [data-pb-style=DSJXAPY]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:58.3333%;align-self:stretch}#html-body [data-pb-style=Y2REHT3]{border-color:#fff;border-width:5px}#html-body [data-pb-style=TENT4KD]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=YLNOWXH]{display:flex;width:100%}#html-body [data-pb-style=B9Y2OE5]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:41.6667%;align-self:stretch}#html-body [data-pb-style=NLELFT3]{border-style:none}#html-body [data-pb-style=HCEWTCU],#html-body [data-pb-style=LHRC0BO]{border-color:#fff;border-width:5px;max-width:100%;height:auto}#html-body [data-pb-style=WIHS5XV]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:58.3333%;align-self:stretch}#html-body [data-pb-style=TXMQ109]{border-color:#fff;border-width:5px}#html-body [data-pb-style=HSESM22]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=S8K6VN0]{display:flex;width:100%}#html-body [data-pb-style=R6PR0Y5]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:41.6667%;align-self:stretch}#html-body [data-pb-style=CIQGJ8M]{border-style:none}#html-body [data-pb-style=C5L3S9F],#html-body [data-pb-style=I2OBU83]{border-color:#fff;border-width:5px;max-width:100%;height:auto}#html-body [data-pb-style=WH6FR3I]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:58.3333%;align-self:stretch}#html-body [data-pb-style=S51KHAL]{border-color:#fff;border-width:5px}#html-body [data-pb-style=U4R2BJU]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=LL3W1W1]{display:flex;width:100%}#html-body [data-pb-style=ERWNRF1]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:41.6667%;align-self:stretch}#html-body [data-pb-style=DWV8QL6]{border-style:none}#html-body [data-pb-style=X97HGWM],#html-body [data-pb-style=XM2BUA4]{border-color:#fff;border-width:5px;max-width:100%;height:auto}#html-body [data-pb-style=M5JKQVU]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:58.3333%;align-self:stretch}#html-body [data-pb-style=DCJI8KE]{border-color:#fff;border-width:5px}#html-body [data-pb-style=RDO9UX2]{width:100%;border-width:1px;border-color:#cecece;display:inline-block}#html-body [data-pb-style=COACM8D]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=HGHXQMJ]{display:flex;width:100%}#html-body [data-pb-style=J3JKKMN]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:41.6667%;align-self:stretch}#html-body [data-pb-style=D0C7NHT]{border-style:none}#html-body [data-pb-style=JAHSXTB],#html-body [data-pb-style=XWYPEXW]{border-color:#fff;border-width:5px;max-width:100%;height:auto}#html-body [data-pb-style=VY7ROYJ]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:58.3333%;align-self:stretch}#html-body [data-pb-style=XONHFQE]{border-color:#fff;border-width:5px}#html-body [data-pb-style=BMT5JIQ]{display:inline-block}#html-body [data-pb-style=FQMDXRO]{text-align:center;border-color:#fff;border-width:5px}#html-body [data-pb-style=X2H6H9E]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=BRO5LX5]{display:flex;width:100%}#html-body [data-pb-style=KMD9LPL]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:41.6667%;align-self:stretch}#html-body [data-pb-style=P5MKHPM]{border-style:none}#html-body [data-pb-style=RLWNW4I],#html-body [data-pb-style=XL16HN6]{border-color:#fff;border-width:5px;max-width:100%;height:auto}#html-body [data-pb-style=V183W9F]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:58.3333%;align-self:stretch}#html-body [data-pb-style=EGGROQA]{border-color:#fff;border-width:5px}#html-body [data-pb-style=JVSMCIN]{display:inline-block}#html-body [data-pb-style=WF2WD7G]{text-align:center;border-color:#fff;border-width:5px}#html-body [data-pb-style=C0S5DOE]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=W061VQC]{display:flex;width:100%}#html-body [data-pb-style=MEFS7MF]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width
16846:41.6667%;align-self:stretch}#html-body [data-pb-style=QQNTQ5X]{border-style:none}#html-body [data-pb-style=PHREOPG],#html-body [data-pb-style=U56Y65X]{border-color:#fff;border-width:5px;max-width:100%;height:auto}#html-body [data-pb-style=LQMAFXF]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:58.3333%;align-self:stretch}#html-body [data-pb-style=O02R3H4]{border-color:#fff;border-width:5px}#html-body [data-pb-style=O7IPBCE]{display:inline-block}#html-body [data-pb-style=A6UEF8X]{text-align:center;border-color:#fff;border-width:5px}#html-body [data-pb-style=KLWXMJF]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=FKQ1V9E]{display:flex;width:100%}#html-body [data-pb-style=DABK1WW]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:41.6667%;align-self:stretch}#html-body [data-pb-style=WL5D351]{border-style:none}#html-body [data-pb-style=DQFA2AW],#html-body [data-pb-style=EP7DXCG]{border-color:#fff;border-width:5px;max-width:100%;height:auto}#html-body [data-pb-style=KCVRXYP]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:58.3333%;align-self:stretch}#html-body [data-pb-style=CDNQE9A]{border-color:#fff;border-width:5px}#html-body [data-pb-style=JB8OP4P]{display:inline-block}#html-body [data-pb-style=C2KQ25Y]{text-align:center;border-color:#fff;border-width:5px}#html-body [data-pb-style=AQCVVJO]{display:inline-block}#html-body [data-pb-style=LSVFNM5]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=CIQGJ8M],#html-body [data-pb-style=D0C7NHT],#html-body [data-pb-style=DWV8QL6],#html-body [data-pb-style=FHBLSKY],#html-body [data-pb-style=NLELFT3],#html-body [data-pb-style=P5MKHPM],#html-body [data-pb-style=QQNTQ5X],#html-body [data-pb-style=SAXSJHC],#html-body [data-pb-style=TLA8AWR],#html-body [data-pb-style=U3F2CA5],#html-body [data-pb-style=VE2UEYL],#html-body [data-pb-style=WL5D351],#html-body [data-pb-style=X7TR0NC]{border-style:none} }</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="NII4XUO"><div data-content-type="text" data-appearance="default" data-element="main"><h2 id="KTDAWDM"><strong>About Rubber Flooring</strong></h2>
16847<p>Since the early 20th century, rubber has evolved from a raw tropical sap into the backbone of the automotive industry. Today, we give these tires a second life through a high-tech recycling process. By grinding, cleaning, and bonding high-quality crumb rubber, we create the resilient, eco-friendly flooring you see today. At FlooringInc, we offer this sustainable material in various formats, like rolls, tiles, and mats, to suit everything from high-traffic commercial gyms to private garage workshops.&nbsp;</p></div><div data-content-type="divider" data-appearance="default" data-element="main"><hr data-element="line" data-pb-style="GLATN4U"></div><div data-content-type="text" data-appearance="default" data-element="main"><h2 id="HRLVNS8"><strong>Types of Rubber Flooring</strong></h2></div><div data-content-type="text" data-appearance="default" data-element="main"><p>Upgrade your space with sustainable, high-performance rubber flooring that stands the test of time. Whether you need the seamless look of rolls or the easy installation of interlocking tiles, we offer a variety of textures and thicknesses to suit every application.&nbsp;</p>
16848<h3><span style="color: rgb(35, 111, 161);"><strong><a id="IO95J96" style="color: rgb(35, 111, 161);" tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116820&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener">Rub<span style="color: rgb(35, 111, 161);">ber Rolls</span></a></strong></span></h3>
16849<p>Our rubber rolls are our most popular rubber flooring type. While rolls are the gold standard for large, open spaces, they are also easily trimmed with a utility knife to fit even the most complex room layouts, including L-shaped floor plans. Our rubber rolls are available in several thicknesses - 5mm,&nbsp;<a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116820&amp;incstores_pim_tf_rubber_thickness=116313&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener">1/4&rdquo;,</a> <a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116820&amp;incstores_pim_tf_rubber_thickness=116304&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener">8mm</a>, <a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116820&amp;incstores_pim_tf_rubber_thickness=116310&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener">3/8&rdquo;,</a> and <a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116820&amp;incstores_pim_tf_rubber_thickness=116298&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener">1/2&rdquo;.</a> With all of these thicknesses, the first question that comes to mind is: Which thickness is perfect for me? Below is a breakdown of where each thickness is most appropriate.</p>
16850<ul>
16851<li><strong><span style="color: rgb(35, 111, 161);">5mm </span>-</strong> High traffic areas - not recommended for gyms</li>
16852<li><a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116820&amp;incstores_pim_tf_rubber_thickness=116313&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener"><strong>1/4&rdquo; - </strong></a>Made for basic home gyms and exercise rooms.</li>
16853<li><strong><a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116820&amp;incstores_pim_tf_rubber_thickness=116304&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener">8mm -</a> </strong>Very durable rubber for commercial and home gyms.</li>
16854<li><strong><a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116820&amp;incstores_pim_tf_rubber_thickness=116310&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener">3/8&rdquo; -</a> </strong>Most common thickness for commercial gyms and is a millimeter thicker than our 8mm.</li>
16855<li><a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116820&amp;incstores_pim_tf_rubber_thickness=116298&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener"><strong>1/2&rdquo;-</strong></a> Ultra durable rubber designed for extreme use.</li>
16856</ul>
16857<p>Rubber rolls are easy to install. Depending on the application, our rubber rolls can be loosely laid, double-sided taped, or glued. For most home gyms, double-sided tape is more than enough to keep the rolls down. For commercial gyms, glue would be the preferred installation method. If you are using rubber rolls as flooring under stationary treadmills and stationary bikes in home gyms, you can lay the rolls. Maintenance of our rubber rolls is very easy and can be done with a broom, vacuum, or mop. When mopping, we recommend you use a mild soap and water solution and a synthetic mop head.</p></div><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="MA5RGGP"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="R99NBQ1"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="L4QWEUV"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="X7TR0NC"><a href="/shop/rubber-gym-rolls-14000.html" target="_blank" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_47_.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_47_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="desktop_image" data-pb-style="PEQSYDU"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_47_.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_47_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="mobile_image" data-pb-style="EB32ORQ"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="BF6EYHN"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="D9KJJRF"><h3><strong>Top Recommendations:</strong></h3>
16858<p>
16858<a tabindex="0" href="/shop/3-8-heavy-duty-rubber-rolls-1006.html" target="_blank" rel="noopener"><strong id="H02WOJX">&#9989;3/8" Heavy Duty Rubber Rolls</strong></a></p>
16859<p><strong><a tabindex="0" href="/shop/nextgen-xl-rubber-rolls-pro-series-14027.html" target="_blank" rel="noopener">&#9989;NextGen XL Rubber Rolls - Pro Series</a></strong></p>
16860<p><a tabindex="0" href="/shop/1-2-mega-rubber-rolls-1007.html" target="_blank" rel="noopener"><strong>&#9989;1/2" Mega Rubber Rolls</strong></a></p>
16861<p><strong><a tabindex="0" href="/shop/next-day-rubber-rolls-14003.html" target="_blank" rel="noopener">&#9989;Next-Day Rubber Rolls &ndash; Custom Cut</a></strong></p></div></div></div></div><div data-content-type="divider" data-appearance="default" data-element="main"><hr data-element="line" data-pb-style="GRIETO8"></div><div data-content-type="text" data-appearance="default" data-element="main"><h3 id="DVVYPOG"><span style="color: rgb(35, 111, 161);"><strong><a style="color: rgb(35, 111, 161);" tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116793&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener">Rubber Flooring Tiles</a></strong></span></h3>
16862<p>Rubber tiles are a versatile flooring option for many areas of any home or business. Our rubber tiles are designed for use in gyms, playgrounds, and other outdoor spaces. All of our tiles are easy to install and maintain and are backed by industry-leading warranties.</p>
16863<p>Tiles are our easiest rubber floor to install and our most popular in home gyms. No need for a contractor here; most of our rubber tiles are interlocking tiles. For specific installation instructions for the tile you select, please refer to the installation tab for that product. Rubber tiles are better for smaller spaces and are best in square-shaped rooms. Our rubber tiles come in various thicknesses, ranging from &frac14;&rdquo; to 4&rdquo;. The most common thicknesses used for gym flooring are:</p>
16864<ul>
16865<li><a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116793&amp;incstores_pim_tf_rubber_thickness=116313&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener"><strong>1/4&rdquo; -</strong> </a>Made for basic home gyms and exercise rooms.</li>
16866<li><a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116793&amp;incstores_pim_tf_rubber_thickness=116304&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener"><strong>8mm - </strong></a>Very durable rubber for commercial and home gyms.</li>
16867<li><a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116793&amp;incstores_pim_tf_rubber_thickness=116310&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener"><strong>3/8&rdquo; - </strong></a>Most common thickness for commercial gyms and is a millimeter thicker than our 8mm.</li>
16868<li><a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116793&amp;incstores_pim_tf_rubber_thickness=116298&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener"><strong>1/2&rdquo; -</strong></a> Ultra durable rubber designed for extreme use.</li>
16869<li><strong><a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116793&amp;incstores_pim_tf_rubber_thickness=116301&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener">1&rdquo; -</a> </strong>For extreme weight lifting.</li>
16870</ul>
16871<p>Gym tiles are available in both recycled and virgin rubber in a variety of colors and textures. The most common rubber tile used in home and commercial gyms is porous tiles. Non-porous tiles are more common in commercial applications and are more shock absorbent. Typically, you will see these tiles in areas where heavy dumbbells and barbells are used. Non-
16871porous tiles are preferred for heavy-duty commercial zones because they offer superior shock absorption and won't trap sweat or moisture, keeping your facility sanitary during the most intense training sessions. These tiles are very easy to install and maintain, needing only a broom, vacuum, and mop. We recommend using a mild soap and water solution when mopping the floor with a synthetic mop head.</p></div><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="C8TN35F"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="E1WWL2Q"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="U9ON7WV"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="FHBLSKY"><a href="/shop/1-monster-rubber-tiles-1040.html" target="_blank" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_48_.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_48_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="desktop_image" data-pb-style="I66S42V"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_48_.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_48_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="mobile_image" data-pb-style="RHOK5TW"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="C94GFNS"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="VEN1C25"><h3><strong>Top Recommendations:</strong></h3>
16872<p id="GRV1HDT"><a tabindex="0" href="/shop/dura-lock-rubber-tiles-13369.html" target="_blank" rel="noopener"><strong>&#9989;Dura Lock Rubber Tiles</strong></a></p>
16873<p><a tabindex="0" href="/shop/exactfit-rubber-tiles-14011.html" target="_blank" rel="noopener"><strong>&#9989;ExactFit Rubber Tiles</strong></a></p>
16874<p><a tabindex="0" href="/shop/goliath-xl-rubber-tiles-14025.html" target="_blank" rel="noopener"><strong>&#9989;Goliath XL Rubber Tiles</strong></a></p>
16875<p><a tabindex="0" href="/shop/1-monster-rubber-tiles-1040.html" target="_blank" rel="noopener"><strong>&#9989;1" Monster Rubber Tiles</strong></a></p></div></div></div></div><div data-content-type="divider" data-appearance="default" data-element="main"><hr data-element="line" data-pb-style="JA6M6FM"></div><div data-content-type="text" data-appearance="default" data-element="main"><h3><span style="color: rgb(35, 111, 161);"><strong><a style="color: rgb(35, 111, 161);" tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116832&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener">Rubber Flooring Mats</a></strong></span></h3>
16876<p>Our rubber mats have become the floor of choice for high-impact workouts. These rubber mats are very thick and provide excellent shock absorbency. These rubber horse stall mats are available in 1/4&rdquo;, 3/8&rdquo;, 1/2&rdquo;, and 3/4&rdquo; thick. Below are what these mats are great for.</p>
16877<ul>
16878<li><strong><a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116832&amp;incstores_pim_tf_rubber_thickness=116313&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener">1/4&rdquo; - </a></strong>Great for floor exercises and under treadmills and stationary bikes.</li>
16879<li><strong><a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116832&amp;incstores_pim_tf_rubber_thickness=116310&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener">3/8&rdquo; -</a></strong> Great for floor exercises, some high-impact exercises, and jump training.</li>
16880<li><strong><a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116832&amp;incstores_pim_tf_rubber_thickness=116298&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener">1/2&rdquo; -</a></strong> Great for all high-impact exercises and jump training.</li>
16881<li><strong><a tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116832&amp;incstores_pim_tf_rubber_thickness=116307&amp;product_list_dir=desc&amp;product_list_mode=list&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener">3/4&rdquo; -</a></strong> Great for all high-impact exercises and jump training.</li>
16882</ul>
16883<p>Rubber mats can be used as standalone mats or as a full room floor. These mats are very easy to clean and maintain with the use of a broom, hose, or mop. When mopping, we recommend using a mild soap and water solution with a synthetic mop head.</p></div><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="P9SMD4U"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="IGEEQAT"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="ICD32YG"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="TLA8AWR">
16883<a href="/shop/3-4-premium-extreme-mats-8946.html" target="_blank" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_49_.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_49_.jpg" alt="" title="" width="" height="" fetchpriority="" data-use-native-image-dimensions="" decoding="" data-element="desktop_image" data-pb-style="N09J8U3"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_49_.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_49_.jpg" alt="" title="" width="" height="" fetchpriority="" data-use-native-image-dimensions="" decoding="" data-element="mobile_image" data-pb-style="GGV63KM"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="AH3V5H2"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="LNULKXP"><h3><strong>Top Recommendations:</strong></h3>
16884<p><a tabindex="0" href="/shop/3-4-extreme-mats-2801.html" target="_blank" rel="noopener"><strong>&#9989;3/4" Extreme Rubber Mats</strong></a></p>
16885<p><a tabindex="0" href="/shop/3-4-premium-extreme-mats-8946.html" target="_blank" rel="noopener"><strong>&#9989;3/4" Premium Extreme Rubber Mats</strong></a></p>
16886<p><a tabindex="0" href="/shop/1-2-mega-mats-2800.html" target="_blank" rel="noopener"><strong>&#9989;1/2" Mega Gym Mats</strong></a></p>
16887<p><a tabindex="0" href="/shop/4-x-6-premium-rubber-mats-3372.html" target="_blank" rel="noopener"><strong>&#9989;4' x 6' Premium Rubber Mats</strong></a></p></div></div></div></div><div data-content-type="divider" data-appearance="default" data-element="main"><hr data-element="line" data-pb-style="NH69930"></div><div data-content-type="text" data-appearance="default" data-element="main"><h3><span style="color: rgb(35, 111, 161);"><a style="color: rgb(35, 111, 161);" tabindex="0" href="/shop/rubber-flooring/all-rubber-flooring.html?incstores_pim_category_filters=116814&amp;product_list_mode=list&amp;product_list_dir=desc&amp;product_list_order=revenue_ranking" target="_blank" rel="noopener"><strong id="KBEJFA8">Playground Rubber Flooring</strong></a></span></h3>
16888<p>Playground rubber tiles are thick, durable tiles that help keep kids safe while playing on playground equipment. These tiles range in thickness from 1&rdquo; to 4&rdquo; and are designed to absorb the shock of a kid falling from certain heights. Below is a breakdown of the thickness you will need to keep little Johnny safe while playing.</p>
16889<ul>
16890<li><strong>1&rdquo; - ideal for 1.5&rsquo; fall height -</strong> Most common thickness used for home playgrounds</li>
16891<li><strong>2.5&rdquo; - ideal for 6&rsquo; fall height -&nbsp;</strong>Most common thickness used for commercial playgrounds</li>
16892<li><strong>3.5&rdquo; - ideal for 8&rsquo; fall height -</strong> Used in commercial playgrounds</li>
16893<li><strong>4&rdquo; - ideal for 10&rsquo; fall height -&nbsp;</strong>Used in commercial playgrounds</li>
16894</ul>
16895<p>The installation of playground tiles is very dependent on the thickness. 1&rdquo; thick tiles are installed using dowels, which are little pegs. 2.5&rdquo; and 3.5&rdquo; thick tiles are installed with tile clips or quad blocks. These are little adaptors that are used to hold the feet of the tiles together. 4&rdquo; thick tiles are glued together or are glued down. Cleaning and maintenance of our playground tiles is effortless, requiring only a broom and a hose.</p></div><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="THT1SGF"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="XAYOTSB"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="QH9YRTU"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="U3F2CA5"><a href="/shop/jamboree-playground-tilestm-3264.html" target="_blank" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_54_.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_54_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="desktop_image" data-pb-style="R61OPFR"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_54_.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_54_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="mobile_image" data-pb-style="RENFD2V"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="XXIK6O0"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="SWVY93O"><h3><strong>Top Recommendations:</strong></h3>
16896<p><a tabindex="0" href="/shop/jamboree-playground-tilestm-3264.html" target="_blank" rel="noopener"><strong>&#9989;Jamboree Rubber Playground Tiles&trade;</strong></a></p>
16897<p><a tabindex="0" href="/shop/safe-play-tiles-3276.html" target="_blank" rel="noopener"><strong>&#9989;Safe-Play Rubber Playground Tiles</strong></a></p>
16898<p><a tabindex="0" href="/shop/playsafe-interlocking-playground-tiles-7969.html" target="_blank" rel="noopener"><strong>&#9989;PlaySafe Interlocking Rubber Playground Tiles</strong></a></p>
16899<p><a tabindex="0" href="/shop/playground-swing-mats-3647.html" target="_blank" rel="noopener"><strong>&#9989;Playground Swing Mats - Rubber Safety Mat</strong></a></p></div></div></div></div><div data-content-type="divider" data-appearance="default" data-element="main"><hr data-element="line" data-pb-style="MX6QCXI"></div><div data-content-type="text" data-appearance="default" data-element="main"><h3 id="IYP7NEQ"><span style="color: rgb(35, 111, 161);"><a style="color: rgb(35, 111, 161);" tabindex="0" href="/shop/rubber-flooring/outdoor-rubber-flooring.html" target="_blank" rel="noopener"><strong>Outdoor Rubber Flooring</strong></a></span></h3>
16900<p>Outdoor rubber tiles are great for outdoor patios, decks, and stables. These tiles are available in patterns that mimic 
16900natural stone pavers and bricks. Our outdoor tiles are available from 5/8&rdquo; - 1-3/4&rdquo; thick. Installation of these tiles typically requires glue, but you can also install these rubber tiles with dowels or loose-laid. Maintaining our outdoor rubber tiles is very simple and only requires a broom and a hose.</p></div><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="YHXCIB1"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="CXMYH2C"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="PPYYGI3"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="VE2UEYL"><a href="/shop/paver-tiles-west-coast-3284.html" target="_blank" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_55_.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_55_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="desktop_image" data-pb-style="P8X7VAO"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_55_.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_55_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="mobile_image" data-pb-style="C85HHVP"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="OF3YHE1"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="MUKWFHB"><h3><strong>Top Recommendations:</strong></h3>
16901<p><strong><a tabindex="0" href="/shop/deck-top-roof-tiles-5137.html" target="_blank" rel="noopener">&#9989;Rooftop Deck Tiles - Rubber Pavers</a></strong></p>
16902<p><a tabindex="0" href="/shop/interlocking-deck-top-roof-tiles-9389.html" target="_blank" rel="noopener"><strong>&#9989;Premium Interlocking Rooftop Deck Tiles - Rubber Pavers</strong></a></p>
16903<p><a tabindex="0" href="/shop/flagstone-rubber-pavers-3912.html" target="_blank" rel="noopener"><strong>&#9989;Reversible Flagstone Patio Pavers &ndash; Rubber Deck &amp; Outdoor Tiles</strong></a></p>
16904<p><a href="/shop/paver-tiles-west-coast-3284.html" target="_blank" rel="noopener"><strong>&#9989;West Coast Rubber Pavers - Patio &amp; Deck Outdoor Tiles</strong></a></p></div></div></div></div><div data-content-type="divider" data-appearance="default" data-element="main"><hr data-element="line" data-pb-style="HW2LAPC"></div><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="JTBQ027"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="H7LNWFF"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="UOS16X4"><div data-content-type="text" data-appearance="default" data-element="main"><h2><strong>How Our Rubber Gym Flooring Lines Stack Up</strong></h2>
16905<p>We don't sell one rubber floor and call it a day. We carry four distinct lines, and each one is built around a different priority. Here's how to tell them apart so you can pick the right one for your space.</p>
16906<ul>
16907<li><a href="https://www.flooringinc.com/shop/shop-by-brand/traxxon.html">Traxxon rubber flooring</a>&nbsp;is our quality mark. The logo goes only on the rubber we judge to be our most durable: commercial-grade rolls, tiles, and mats built to take dropped weights and heavy traffic for years. Start here when longevity matters most.</li>
16908<li>Need to cover a big floor with fewer seams?&nbsp;<a href="https://www.flooringinc.com/shop/nextgen-xl-rubber-rolls-pro-series-14027.html">NextGen XL 5-foot-wide rubber rolls</a>&nbsp;are a FlooringInc exclusive we developed, and we believe they're the widest rubber roll you can buy. The extra width means fewer seams and less cutting labor on large installs.</li>
16909<li><a href="https://www.flooringinc.com/blog/quick-ship-rubber-rolls">Quick Ship precut rubber rolls</a>&nbsp;trade custom sizing for speed. We cut the most popular colors and lengths ahead of time and stock them across regional warehouses, then ship from the one closest to you. That cuts freight cost and gets your floor there sooner.</li>
16910<li>For light-duty rooms and price-first projects,&nbsp;<a href="https://www.flooringinc.com/shop/budget-rubber-rolls-14048.html">Standard rubber rolls</a>&nbsp;cover the basics without the commercial-grade specs you'd pay extra for.</li>
16911</ul>
16912<p>Not sure which line fits? Order free samples or call our team, and we'll point you to the right rubber floor for your space.</p></div></div></div></div><div data-content-type="divider" data-appearance="default" data-element="main"><hr data-element="line" data-pb-style="GMGO9MR"></div><div data-content-type="text" data-appearance="default" data-element="main"><h2><strong>Rubber Flooring Delivery&nbsp;</strong></h2>
16913<p>Most rubber flooring orders are shipped through FedEx Ground. Some extremely heavy orders may ship via freight delivery. For more information on freight delivery, please contact one of our sales representatives to get the lowdown, as it varies on a case-by-case basis. Don&rsquo;t worry, though - you will not be asked to take your new rubber flooring off the truck. We cover the cost of lift-gate and curbside. You are only responsible for getting the rubber flooring inside and enjoying it!</p></div><div data-content-type="divider" data-appearance="default" data-element="main"><hr data-element="line" data-pb-style="U9GBW2F"></div><div data-content-type="text" data-appearance="default" data-element="main"><h2><strong>Customer Reviews</strong></h2></div><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="SQY6TT6"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="HCEC1TP"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="EQ1TK6C"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="SAXSJHC"><a href="/shop/5-8-evolution-rubber-tiles-3772.html" target="_blank" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_58_.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_58_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="desktop_image" data-pb-style="JW92ROH"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_58_.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_58_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="mobile_image" data-pb-style="U03J3U1"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="DSJXAPY"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="Y2REHT3"><h3><span style="color: rgb(35, 111, 161);"><a style="color: rgb(35, 111, 161);" tabindex="0" href="/shop/5-8-evolution-rubber-tiles-3772.html" target="_blank" rel="noopener"><strong>5/8" Evolution Rubber Floor Tiles</strong></a></span></h3>
16914<p>
16914"These were perfect for my garage gym application. The mats snapped together easily once soapy water was sprayed into the grommets. Sizing the mats perfectly and cutting was very easy with a sharp utility knife, which allowed me to customize the fitment. Shopping was exactly as described by FlooringInc, and I would recommend this product and FlooringInc to anyone who is on the fence regarding a purchase."</p>
16915<p>- Robert</p></div></div></div></div><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="TENT4KD"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="YLNOWXH"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="B9Y2OE5"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="NLELFT3"><a href="/shop/next-day-rubber-rolls-14003.html" target="_blank" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_57_.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_57_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="desktop_image" data-pb-style="HCEWTCU"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_57_.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_57_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="mobile_image" data-pb-style="LHRC0BO"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="WIHS5XV"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="TXMQ109"><h3><span style="color: rgb(35, 111, 161);"><strong><a id="D61T2B4" style="color: rgb(35, 111, 161);" tabindex="0" href="/shop/next-day-rubber-rolls-14003.html" target="_blank" rel="noopener">Next-Day Rubber Rolls &ndash; Custom Cut</a></strong></span></h3>
16916<p>"Purchased for a home gym. Delivered in a timely manner at a fair price. Received 4 rolls, 17-25 ft. (I think). All rubber was conforming and easy to work with. Cutting was easy - I used double-sided tape and rubber trim for a polished look. The flooring is excellent."</p>
16917<p>- Greg S.</p></div></div></div></div><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="HSESM22"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="S8K6VN0"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="R6PR0Y5"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="CIQGJ8M"><a href="/shop/4-x-6-premium-rubber-mats-3372.html" target="_blank" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_59_.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_59_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="desktop_image" data-pb-style="I2OBU83"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_59_.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_59_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="mobile_image" data-pb-style="C5L3S9F"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="WH6FR3I"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="S51KHAL"><h3><span style="color: rgb(35, 111, 161);"><a style="color: rgb(35, 111, 161);" tabindex="0" href="/shop/4-x-6-premium-rubber-mats-3372.html" target="_blank" rel="noopener"><strong>4' x 6' Premium Rubber Mats</strong></a></span></h3>
16918<p>"When looking for a rubber mat to put underneath my new incline trainer, I wanted something that would still look great in my home while protecting our hardwood floors. This product is the best! It is the perfect size and thickness, and the color fleck looks great with the room (since it had to go in our front room). I highly recommend."</p>
16919<p>- Beth</p></div></div></div></div><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="U4R2BJU"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="LL3W1W1"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="ERWNRF1"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="DWV8QL6"><a href="/shop/jamboree-playground-tilestm-3264.html" target="_blank" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_60_.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_60_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="desktop_image" data-pb-style="X97HGWM"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_60_.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_60_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="mobile_image" data-pb-style="XM2BUA4"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="M5JKQVU"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="DCJI8KE"><h3><span style="color: rgb(35, 111, 161);"><strong><a style="color: rgb(35, 111, 161);" tabindex="0" href="/shop/jamboree-playground-tilestm-3264.html" target="_blank" rel="noopener">Jamboree Rubber Playground Tiles&trade;</a></strong></span></h3>
16920<p>"We have loved our playground tiles!!! We hired a landscaper to level the ground for us. We installed the tiles ourselves. We cut the angles. Super easy!!!! The tiles have increased the playing surface for our kids to even ride their bikes! Thank you for the quick shipment!"</p>
16921<p>- David</p></div></div></div></div><div data-content-type="divider" data-appearance="default" data-element="main"><hr data-element="line" data-pb-style="RDO9UX2"></div><div data-content-type="text" data-appearance="default" data-element="main"><h2><strong>Other Helpful Rubber Flooring Content</strong></h2></div><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="COACM8D"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="HGHXQMJ"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="J3JKKMN"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="D0C7NHT"><a href="/blog/rubber-flooring-faq" target="_blank" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_51_.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_51_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="desktop_image" data-pb-style="JAHSXTB"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_51_.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_51_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="mobile_image" data-pb-style="XWYPEXW"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="VY7ROYJ"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="XONHFQE"><h3><a tabindex="0" href="/blog/rubber-flooring-faq" target="_blank" rel="noopener"><strong>Rubber Flooring FAQ: Your Questions Answered</strong></a></h3>
16922<p>Most people have never heard of rubber flooring until the time comes when they need to buy it. It&rsquo;s not exactly like buying a new toothbrush. It&rsquo;s kind of a foreign product and, of course, you want to make sure you&rsquo;re choosing the right floor.</p>
16923<p>If you&rsquo;re in the market for flooring for your gym, high-traffic space, or outdoor area, you&rsquo;ve come to the right place. Rubber flooring is an extremely versatile specialty flooring option perfect for just about any space.</p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="BMT5JIQ"><a class="pagebuilder-button-primary" href="/blog/rubber-flooring-faq" target="" data-link-type="default" data-element="link" data-pb-style="FQMDXRO"><span data-element="link_text">Learn More</span></a></div></div></div></div></div><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="X2H6H9E"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="BRO5LX5"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="KMD9LPL"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="P5MKHPM"><a href="/blog/what-is-rubber-flooring" target="_blank" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_50_.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_50_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="desktop_image" data-pb-style="XL16HN6"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_50_.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_50_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="mobile_image" data-pb-style="RLWNW4I"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="V183W9F"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="EGGROQA"><h3 id="CL3IFS9"><a tabindex="0" href="/blog/what-is-rubber-flooring" target="_blank" rel="noopener"><strong>What is Rubber Flooring: Exploring the Versatility and Benefits</strong></a></h3>
16924<p>Rubber flooring is a versatile and stylish option for various settings, from your home gym to contemporary office spaces. Before you learn about how to install rubber flooring, this guide will c
16924over its durability, versatility, and eco-friendliness. As the demand for innovative and sustainable flooring solutions grows, rubber floors meet and exceed expectations, offering a seamless blend of functionality and aesthetic appeal for our customers' diverse needs.</p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="JVSMCIN"><a class="pagebuilder-button-primary" href="/blog/what-is-rubber-flooring" target="" data-link-type="default" data-element="link" data-pb-style="WF2WD7G"><span data-element="link_text">Learn More</span></a></div></div></div></div></div><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="C0S5DOE"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="W061VQC"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="MEFS7MF"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="QQNTQ5X"><a href="/blog/how-to-install-rubber-flooring" target="_blank" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_52_.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_52_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="desktop_image" data-pb-style="U56Y65X"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_52_.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_52_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="mobile_image" data-pb-style="PHREOPG"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="LQMAFXF"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="O02R3H4"><h3><a tabindex="0" href="/blog/how-to-install-rubber-flooring" target="_blank" rel="noopener"><strong>How to Install Rubber Flooring: 11 Tips to Know</strong></a></h3>
16925<p>When it comes to transforming your space, few things rival the impact of a new floor. Rubber flooring has become a popular choice for its durability and versatility. In this comprehensive guide, we'll teach you how to install your rubber flooring, whether you're tackling it as a DIY project or considering professional services. Let's dive into what rubber flooring is and what makes it the go-to option for gyms, dance studios, and other spaces.</p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="O7IPBCE"><a class="pagebuilder-button-primary" href="/blog/how-to-install-rubber-flooring" target="" data-link-type="default" data-element="link" data-pb-style="A6UEF8X"><span data-element="link_text">Learn More</span></a></div></div></div></div></div><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="KLWXMJF"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="FKQ1V9E"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="DABK1WW"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="WL5D351"><a href="/blog/how-to-clean-rubber-gym-flooring" target="_blank" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_53_.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_53_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="desktop_image" data-pb-style="DQFA2AW"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Main_Image_53_.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/Main_Image_53_.jpg" alt="" title="" width="" height="" fetchpriority="false" data-use-native-image-dimensions="true" decoding="async" data-element="mobile_image" data-pb-style="EP7DXCG"></picture></a></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="KCVRXYP"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="CDNQE9A"><h3><a tabindex="0" href="/blog/how-to-clean-rubber-gym-flooring" target="_blank" rel="noopener"><strong>How to Clean Rubber Gym Flooring: 4 Easy Steps</strong></a></h3>
16926<p>Rubber flooring is perfect for exercise, whether it&rsquo;s your home gym or a commercial gym. But after a successful workout, have you ever noticed how dirty it can be? You need to know how to clean rubber gym flooring if you&rsquo;re going to keep your gym sanitary.</p>
16927<p>Fortunately for you, we know all about how to clean rubber floors, and we&rsquo;re going to share our wisdom! This guide will show you the best way to clean rubber gym floors, share the best rubber flooring cleaners, and even answer some FAQs.<
16927/p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="JB8OP4P"><a class="pagebuilder-button-primary" href="/blog/how-to-clean-rubber-gym-flooring" target="" data-link-type="default" data-element="link" data-pb-style="C2KQ25Y"><span data-element="link_text">Learn More</span></a></div></div></div></div></div><div data-content-type="text" data-appearance="default" data-element="main"><h3><strong>Ready to get started?</strong></h3></div><div data-content-type="text" data-appearance="default" data-element="main"><p>This page lists every rubber roll, tile, and mat we carry, from budget picks to commercial-grade workhorses. The <strong>Traxxon</strong> logo tells you which ones we rate as our best. We reserve the name for rolled rubber flooring, tiles, and mats engineered to take heavy, repeated abuse and stay flat and intact into year ten. We've sold rubber flooring since 2007, so we know which products go the distance. Shop Traxxon branded rubber flooring if you are looking for what we think are the best rubber flooring products.</p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="AQCVVJO"><a class="pagebuilder-button-primary" href="/shop/rubber-flooring/all-rubber-flooring.html" target="" data-link-type="default" data-element="link" data-pb-style="LSVFNM5"><span data-element="link_text">Shop All Rubber Flooring</span></a></div></div></div></div>    </div> 
16928    </main><footer class="page-footer"><div class="footer content">
16929<style>#html-body [data-pb-style=MQRPJ36],#html-body [data-pb-style=TCILD21]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=TCILD21]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=MQRPJ36]{align-self:stretch}#html-body [data-pb-style=L8W4GF3]{display:flex;width:100%}#html-body [data-pb-style=P3M9UW9]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:66.6667%;align-self:stretch}#html-body [data-pb-style=CJ8VT2Q]{border-style:none}#html-body [data-pb-style=CMMU4DK],#html-body [data-pb-style=SD11GJS]{max-width:100%;height:auto}#html-body [data-pb-style=PQE5PAT]{justify-content:flex-start;display:flex;flex-direction:column;width:33.3333%;align-self:stretch}#html-body [data-pb-style=O5JDDOV],#html-body [data-pb-style=PQE5PAT],#html-body [data-pb-style=S30DD27]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=S30DD27]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=O5JDDOV]{align-self:stretch}#html-body [data-pb-style=E1QMNND]{display:flex;width:100%}#html-body [data-pb-style=AGQGWH8],#html-body [data-pb-style=B6GEF9I]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=B6GEF9I]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:58.3333%}#html-body [data-pb-style=AGQGWH8]{width:41.6667%}#html-body [data-pb-style=AGQGWH8],#html-body [data-pb-style=AWDS0W8],#html-body [data-pb-style=W8FW3EE]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=W8FW3EE]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=AWDS0W8]{align-self:stretch}#html-body [data-pb-style=PHW76I9]{display:flex;width:100%}#html-body [data-pb-style=HVOCS1N],#html-body [data-pb-style=TPKYLUC]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}@media only screen and (max-width: 768px) { #html-body [data-pb-style=CJ8VT2Q]{border-style:none} }</style><div class="footer_top bg-white pb-2" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="TCILD21"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="MQRPJ36"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="L8W4GF3"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="P3M9UW9"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="CJ8VT2Q"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/flooring_logo.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/flooring_logo.png" alt="Logo" title="Logo" width="266" height="80" loading="lazy" data-element="desktop_image" data-pb-style="SD11GJS" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/flooring_logo.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/flooring_logo.png" alt="Logo" title="Logo" width="189" height="56" loading="lazy" data-element="mobile_image" data-pb-style="CMMU4DK" loading="lazy"></picture></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="PQE5PAT"><div data-content-type="text" data-appearance="default" data-element="main"><ul>
16930<li><a tabindex="0" href="https://www.facebook.com/rubberflooringinc" target="_blank" rel="noopener"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon1.webp"><img id="BTPM32X" style="width: 10px; height: 20px;" src="https://www.flooringinc.com/media/wysiwyg/footer-icon1.png" alt="Facebook" width="10" height="20" loading="lazy" loading="lazy"></picture></a></li>
16931<li><a tabindex="0" href="https://www.instagram.com/flooring_inc/" target="_blank" rel="noopener"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon2.webp"><img id="PXIY4FF" style="width: 21px; height: 20px;" src="https://www.flooringinc.com/media/wysiwyg/footer-icon2.png" alt="Twitter" width="21" height="20" loading="lazy" loading="lazy"></picture></a></li>
16932<li><a tabindex="0" href="https://www.pinterest.com/flooringinc/" target="_blank" rel="noopener"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon3.webp">
16932<img style="width: 20px; height: 20px;" src="https://www.flooringinc.com/media/wysiwyg/footer-icon3.png" alt="print" width="20" height="20" loading="lazy" loading="lazy"></picture></a></li>
16933<li><a tabindex="0" href="https://www.youtube.com/user/flooringincvideos" target="_blank" rel="noopener"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/youtube-icon.webp"><img id="I49QFU6" style="width: 25px; height: 18px;" src="https://www.flooringinc.com/media/wysiwyg/youtube-icon.png" alt="Youtube" width="25" height="18" loading="lazy" loading="lazy"></picture></a></li>
16934</ul></div></div></div></div></div><div class="footer_middle bg-white pb-2" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="S30DD27"><div class="pagebuilder-column-group footer-wrap" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="O5JDDOV"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="E1QMNND"><div class="pagebuilder-column footer_middle_lft" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="B6GEF9I"><div data-content-type="block" data-appearance="default" data-element="main"><div class="widget block block-static-block">
16935    <style>#html-body [data-pb-style=CISRX33],#html-body [data-pb-style=K247IQ3]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=K247IQ3]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=CISRX33]{align-self:stretch}#html-body [data-pb-style=GV5A1RW]{display:flex;width:100%}#html-body [data-pb-style=IE3QT2M],#html-body [data-pb-style=K294VVH],#html-body [data-pb-style=N7Q79IV]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:33.3333%;align-self:stretch}</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="K247IQ3"><div class="pagebuilder-column-group footer_middle_left" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="CISRX33"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="GV5A1RW"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="N7Q79IV"><h4 class="text-lg font-medium text-black mb-2" data-content-type="heading" data-appearance="default" data-element="main">Company info</h4><div data-content-type="text" data-appearance="default" data-element="main"><ul>
16936<li style="line-height: 10px;"><a id="T6SH02B" tabindex="0" href="/contact">Contact Us</a></li>
16937<li style="line-height: 10px;"><a tabindex="0" href="/about">About Us</a></li>
16938<li style="line-height: 10px;"><a id="EHRBRCU" tabindex="0" href="/careers">Careers</a></li>
16939<li style="line-height: 10px;"><a tabindex="0" href="/privacy-policy">Privacy Policy</a></li>
16940<li style="line-height: 10px;"><a tabindex="0" href="/affirm">Affirm</a></li>
16941<li style="line-height: 10px;"><a tabindex="0" href="/our-commitment-accessibility">Accessibility</a></li>
16942<li style="line-height: 10px;"><a tabindex="0" href="/terms-and-conditions">Terms &amp; Conditions</a></li>
16943</ul></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="K294VVH"><h4 class="text-lg font-medium text-black mb-2" data-content-type="heading" data-appearance="default" data-element="main">Customer Service</h4><div data-content-type="text" data-appearance="default" data-element="main"><ul>
16944<li><a tabindex="0" href="/shipping-info">Shipping</a></li>
16945<li><a id="ER5IYQ2" tabindex="0" href="/sales/guest/form">Track Order</a></li>
16946<li><a tabindex="0" href="/returns-exchanges">Returns &amp; Exchanges</a></li>
16947<li><a tabindex="0" href="/moneybackguarantee">Money Back Guarantee</a></li>
16948<li id="W8TRHHE"><a tabindex="0" href="/pro-advantage">Pro Advantage</a></li>
16949<li><a href="/dor-sites">Sales &amp; Use Tax</a></li>
16950</ul></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="IE3QT2M"><h4 class="text-lg font-medium text-black mb-2" data-content-type="heading" data-appearance="default" data-element="main">Quick Links</h4><div data-content-type="text" data-appearance="default" data-element="main"><ul>
16951<li><a tabindex="0" href="/knowledge-base">FAQs</a></li>
16952<li><a tabindex="0" href="/sample-request">Samples</a></li>
16953<li><a tabindex="0" href="https://flooringinc.cashstar.com/store/recipient?locale=en-us">Gift Cards</a></li>
16954<li><a href="/promotions-disclaimer">Promotions</a></li>
16955</ul></div></div></div></div></div></div></div>
16956</div></div><div class="pagebuilder-column pl-6 footer_middle_rgt" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="AGQGWH8"><div data-content-type="block" data-appearance="default" data-element="main"><div class="widget block block-static-block">
16957    <style>#html-body [data-pb-style=KSEJOAX]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=H19I5XA]{display:flex;width:100%}#html-body [data-pb-style=F8YKO2R],#html-body [data-pb-style=L0EMJM5]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:41.6667%;align-self:stretch}#html-body [data-pb-style=L0EMJM5]{width:58.3333%}#html-body [data-pb-style=K1G3B6J]{text-align:right}</style><div class="pagebuilder-column-group footer_middle_right" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="KSEJOAX"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="H19I5XA"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="F8YKO2R"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div class="w-full">
16958    <form class="form subscribe" action="https://www.flooringinc.com/newsletter/subscriber/new/" method="post" x-data="initNewsletterForm()" @submit.prevent="submitForm(
16958)" id="newsletter-validate-detail">
16959        <div class="mb-3 text-sm font-medium tracking-widest text-gray-900 uppercase title-font">
16960            <h4 class="text-lg font-medium text-black mb-1 capitalize">Get Ready To Be Floored!</h4>
16961            <p calss="sub_heading capitalize">Join our insider's club</p>
16962        </div>
16963        <div class="flex flex-wrap justify-center gap-2 md:justify-start">
16964            <label for="newsletter-subscribe" class="sr-only">
16965                Email Address            </label>
16966            <input name="email" type="email" required id="newsletter-subscribe" class="form-input inline-flex w-full" placeholder="Enter email address">
16967            <input name="form_key" type="hidden" value="3mNdp2ZYJNcyLOs5">                        <button class="btn btn-primary">
16968                Subscribe Now            </button>
16969        </div>
16970        <div>
16971            <template x-if="displayErrorMessage">
16972                <p class="flex items-center text-red">
16973                    <span class="inline-block w-8 h-8 mr-3">
16974                        <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img">
16975  <path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
16976<title>exclamation-circle</title></svg>
16977                    </span>
16978                    <template x-for="errorMessage in errorMessages">
16979                        <span x-html="errorMessage"></span>
16980                    </template>
16981                </p>
16982            </template>
16983        </div>
16984    </form>
16985    <div class="w-full">
16986            </div>
16987    
16987<script>
16988        function initNewsletterForm() {
16989            return {
16990                errors: 0,
16991                hasCaptchaToken: 0,
16992                displayErrorMessage: false,
16993                errorMessages: [],
16994                setErrorMessages(messages) {
16995                    this.errorMessages = [messages]
16996                    this.displayErrorMessage = this.errorMessages.length
16997                },
16998                submitForm() {
16999                    // Do not rename $form, the variable is expected to be declared in the recaptcha output
17000                    const $form = document.querySelector('#newsletter-validate-detail');
17001                    
17002                    if (this.errors === 0) {
17003                        $form.submit();
17004                    }
17005                }
17006            }
17007        }
17008    </script>
17008
17009</div>
17010
17011<div class="pr-4 lg:w-1/4 md:w-1/2">
17012
17013</div>    </div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="L0EMJM5"><h4 class="text-lg font-medium text-black mb-6" data-content-type="heading" data-appearance="default" data-element="main" data-pb-style="K1G3B6J">Flooring Inc.</h4><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: right;">1958 Almaville Road Suite #110</p></div><div data-content-type="text" data-appearance="default" data-element="main"><p id="JM1KPUH" style="text-align: right;">Smyrna, TN 37167</p></div><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: right;">p. <a tabindex="0" href="tel:8664166388">(866) 416-6388</a></p></div><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: right;">e. <a id="H0FVHR7" tabindex="0" href="/contact">[email protected]</a></p></div><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: right;"><strong>Hours (All times ET)</strong></p></div><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: right;">Mon - Fri &nbsp; 9 am - 6 pm</p></div><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: right;">Saturday 9 am - 5 pm <strong>(Sales Chat Only)</strong></p></div></div></div></div></div>
17014</div></div></div></div></div><div class="footer_bottom bg-white" data-content-type="row" data-appearance="full-bleed" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="main" data-pb-style="W8FW3EE"><div class="pagebuilder-column-group footer-wrap" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="AWDS0W8"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="PHW76I9"><div class="pagebuilder-column footer_bottom_lft" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="TPKYLUC"><div data-content-type="text" data-appearance="default" data-element="main"><p>&copy; Copyright 2010-2026 IncStores LLC. | All rights reserved.</p></div></div><div class="pagebuilder-column footer_bottom_rgt" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="HVOCS1N"><div data-content-type="block" data-appearance="default" data-element="main"><div class="widget block block-static-block">
17015    <style>#html-body [data-pb-style=UD4KGT3]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=QSS87SS]{display:flex;width:100%}#html-body [data-pb-style=IC77K1S],#html-body [data-pb-style=O5JWPM0]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}</style><div class="pagebuilder-column-group footer_bottom_right" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="UD4KGT3"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="QSS87SS"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="IC77K1S"><div data-content-type="text" data-appearance="default" data-element="main"><ul>
17016<li><a title="Better Business Bureau - Flooring Inc." href="https://www.bbb.org/us/az/phoenix/profile/retail-floor-materials/flooringinccom-1126-97031168" target="_blank" rel="noopener"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-bbb.webp"><img id="BQMJYDJ" style="width: 129px; height: 35px;" src="https://www.flooringinc.com/media/wysiwyg/footer-bbb.png" alt="" width="125" height="34" loading="lazy" loading="lazy"></picture></a></li>
17017<li>Checks <picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon5.webp"><img style="width: 12px; height: 12px;" src="https://www.flooringinc.com/media/wysiwyg/footer-icon5.png" alt="" width="12" height="12" loading="lazy" loading="lazy"></picture> accepted by mail</li>
17018</ul></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="O5JWPM0"><div data-content-type="text" data-appearance="default" data-element="main"><ul>
17019<li><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon6.webp"><img src="https://www.flooringinc.com/media/wysiwyg/footer-icon6.png" alt="" width="33" height="25" loading="lazy" loading="lazy"></picture></li>
17020<li><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon7.webp"><img src="https://www.flooringinc.com/media/wysiwyg/footer-icon7.png" alt="" width="30" height="19" loading="lazy" loading="lazy"></picture></li>
17021<li><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon8.webp"><img src="https://www.flooringinc.com/media/wysiwyg/footer-icon8.png" alt="" width="34" height="26" loading="lazy" loading="lazy"></picture></li>
17022<li><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon9.webp"><img src="https://www.flooringinc.com/media/wysiwyg/footer-icon9.png" alt="" width="33" height="21" loading="lazy" loading="lazy"></picture></li>
17023<li><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon10.webp"><img src="https://www.flooringinc.com/media/wysiwyg/footer-icon10.png" alt="" width="39" height="26" loading="lazy" loading="lazy"></picture></li>
17024<li><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon11.webp"><img src="https://www.flooringinc.com/media/wysiwyg/footer-icon11.png" alt="" width="39" height="26" loading="lazy" loading="lazy"></picture></li>
17025<li><button id="uw-widget-custom-trigger" class="uw-widget-custom-trigger" aria-label="Accessibility Widget" data-uw-ignore-s25="true" data-uw-trigger="true" aria-haspopup="dialog"></button></li>
17026</ul></div></div></div></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style>
17027.checkout-cart-index .summary-cart .cart-discount{display:block;}
17028.page-with-filter .products.wrapper.mode-list.products-list .item.product .catergory_slider_content .compare-buttons .compare-buttons-mobile{order:2;}
17029.checkout-payment-method .payment-method .payment-method-title.field.choice input#paypal_express+label{display:block;}.catalog-product-view .youMayAlso.products_slider a.priceBlock, .catalog-product-view .youMayAlso.products_slider .price-box{min-height: 95px;align-items: flex-start;}
17030@media(min-width:1280px){.mega_menu_banner img{max-width: 239px !important;}}
17031.cms-home .catergory_slider_content .product-item-link{font-size: .875rem;line-height: 1.313rem;}
17032@media(min-width: 768px){
17033.catergory_slider_content .compare-buttons .qty_fields{width:auto;order: 2;}.catergory_slider_content .compare-buttons .ship-fax-plp{width:100%;order: 1;border-bottom:1px solid rgb(178,178,178);}
17033.catergory_slider_content .compare-buttons .orderSampleContent{order:3;}
17034.catergory_slider_content .compare-buttons .ship-fax-plp .ship-iconsada{display: block;}
17035.page-products #maincontent .products.mode-grid .catergory_slider_content .compare-buttons .orderSampleContent{order: 3;}
17036   .category_banner .pagebuilder-column-group .pagebuilder-column-line .pagebuilder-column figure picture{height: 100% !important;object-fit:cover;}
17037[data-content-type=products][data-appearance=carousel] [data-role=glider-content] .item.product{min-width: 370px;width: 370px;max-width: 370px;}[data-content-type=products][data-appearance=carousel] [data-role=glider-content]{display: flex;flex-wrap: nowrap;overflow-x: auto;}
17038.cms-home [data-content-type=products][data-appearance=carousel] [data-role=glider-content] .item.product:not(.glider-slide){min-width: 370px;}
17039[data-content-type=products][data-appearance=carousel] [data-role=glider-content]:not(.glider)::-webkit-scrollbar{width: 10px;}
17040[data-content-type=products][data-appearance=carousel] [data-role=glider-content]:not(.glider)::-webkit-scrollbar-track {background: #ffffff !important;}
17041[data-content-type=products][data-appearance=carousel] [data-role=glider-content]:not(.glider)::-webkit-scrollbar-thumb {background: #ffffff !important;}
17042}
17043@media(min-width: 768px){
17044  .featured_partners .swiper-container:not(.swiper-initialized){display: flex;overflow-x: auto;flex-wrap: nowrap;width: 100%;max-width: 100%;min-width: 100%;transform: inherit;}
17045  .featured_partners .swiper-container:not(.swiper-initialized) .swiper-slide{width: 16%;}
17046  .featured_partners .swiper-container:not(.swiper-initialized)::-webkit-scrollbar{width: 10px;}
17047  .featured_partners .swiper-container:not(.swiper-initialized)::-webkit-scrollbar-track {background: #ffffff !important;}
17048  .featured_partners .swiper-container:not(.swiper-initialized)::-webkit-scrollbar-thumb {background: #ffffff !important;}
17049  .featured_partners .swiper-container:not(.swiper-initialized)::-webkit-scrollbar-thumb:hover {background: #ffffff !important;}
17050}
17051@media(max-width:767px){.page-products #maincontent .toolbar.toolbar-products .pages-items{justify-content: center;gap: 10px;box-shadow: none;}}
17052</style></div></div>
17053</div></div></div></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true">
17053<script>
17054    document.addEventListener('DOMContentLoaded', function () {
17055        const gallery = document.querySelector('#gallery');
17056        const header = document.querySelector('#header');
17057        if (!gallery || !header) return;
17058        const stickyTop = header.offsetHeight;
17059        // parent/container where sticky should stop
17060        const parent = gallery.parentElement;
17061        function checkSticky() {
17062            const rect = gallery.getBoundingClientRect();
17063            const parentRect = parent.getBoundingClientRect();
17064            // sticky active only while parent still has space
17065            const isSticky =
17066                rect.top <= stickyTop &&
17067                parentRect.bottom > rect.height + stickyTop;
17068            document.body.classList.toggle('gallery-sticky', isSticky);
17069        }
17070        checkSticky();
17071        window.addEventListener('scroll', checkSticky);
17072        window.addEventListener('resize', checkSticky);
17073    });
17074</script>
17074
17075<style>
17076@media (min-width: 1200px) {
17077    .megamenu_items:hover>.megamenu {
17078        max-width: 1440px;
17079    }
17080}
17081.products__recommendations .products_slider .catergory_slider_content .color_counts{margin-bottom: 15px;}
17082html.order_active .page-header #header{z-index: -1;}
17083html.order_active{overflow: hidden !important;}
17084@media(min-width: 768px){.checkout-cart-index #shopping-cart-table .cart.item .item-info td{flex-wrap: nowrap;}}
17085</style>
17086<style>
17087.cms-home .order-free-sample-popup{display: none;}
17088.cms-home.order_active .order-free-sample-popup{display: flex;}
17089@media(min-width:768px){
17090.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons{flex-wrap: wrap;}
17091.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons .ship-fax-plp{order:1;}
17092.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons .compare-buttons-mobile{width: 100%;order: 2;display: flex;justify-content: space-between;}
17093.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons .orderSampleContent .order_btn{margin-top: 10px;}
17094.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons{border-top: 0px;padding-top:0px;margin-top: 0px;}
17095.catalog-product-view .products_slider .compare-buttons .qty_fields .btn_cart{width:110px}
17096}
17097@media(max-width:767px){
17098.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons{flex-wrap: wrap;}
17099.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons .ship-fax-plp{order:1;width: 100%;}
17100.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons .compareBtn{order:2;justify-content: flex-start;width: auto;margin-top: 10px;}
17101.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons .orderSampleContent{order:3;margin-top: 10px;}
17102.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons .compare-buttons-mobile{order:2;width: 100%;display: flex;justify-content: space-between;}
17103}
17104#related_cart_slider .js_slides{margin-right: 0;margin-left: 0;}
17105@media (min-width: 1024px) {
17106.container {
17107    max-width: 1440px !important;
17108}
17109}
17110.page-with-filter .product-item .product-info .price-box .price-container .price-wrapper span.price{font-size: 20px !important;color: #1e1e1e !important;}
17111.page-with-filter .product-item .product-info .price-box .price-container .price-wrapper{font-size: 20px !important;line-height: 20px !important}
17112.brand_logo_listpage img, div.brand_logo_listpage img{max-width:100px}
17113.catalog-product-view .product-item .product-info .price-box .price-container .price-wrapper{color: rgb(52 174 74 / var(--tw-text-opacity)) !important;line-height: 19px !important;}
17114
17115.catalog-product-view .product-info-main .quickship_swatch_option.incstores_pim_color_axis .color_swatches .swatch-attribute-options .selectOptionColor .select-none.swatch-option{display: none;}
17116
17117@media(max-width: 767px){
17118   .related_products_list_view .glider-track{width: 100% !important;flex-wrap: nowrap;align-items: flex-start;}
17119   .related_products_list_view .related_products_list_view_content{width: 100% !important;min-width: 280px;max-width: 280px;}
17120}
17121
17122.dcw-share-cart .space-y-4>:not([hidden])~:not([hidden]) {
17123    --tw-space-y-reverse: 0;
17124    margin-top: calc(1rem * (1 - var(--tw-space-y-reverse)));
17125    margin-bottom: calc(1rem * var(--tw-space-y-reverse));
17126}
17127.dcw-share-cart .bg-black\/50 {
17128    background-color: #00000080;
17129}
17130.dcw-share-cart .z-\[999\] {
17131    z-index: 999;
17132}
17133</style></div></div>
17134<script>
17135    window.addEventListener('init-external-scripts', () => {
17136        const klaviyoScript = document.createElement('script');
17137        klaviyoScript.src = '//static.klaviyo.com/onsite/js/klaviyo.js?company_id=WAwVDg';
17138        klaviyoScript.type = 'text/javascript';
17139        klaviyoScript.async = true;
17140        document.head.append(klaviyoScript);
17141    }, {once: true, passive: true});
17142</script>
vendor: 1 bytes, line 17142
17142
17143<script>
17144    document.addEventListener('DOMContentLoaded', function() {
17145        const buttons = document.querySelectorAll('.cms-home .order_btn');
17146        buttons.forEach(button => {
17147            button.addEventListener('click', function() {
17148                const modal = this.closest('.orderSampleContent').querySelector('.order-free-sample-popup');
17149                if (modal) {
17150                    modal.style.display = 'block';
17151                }
17152            });
17153        });
17154
17155        // Handle closing the modal
17156        document.querySelectorAll('.cms-home .order-free-sample-popup .closemodal').forEach(closeBtn => {
17157            closeBtn.addEventListener('click', function() {
17158                const modal = this.closest('.order-free-sample-popup');
17159                if (modal) {
17160                    modal.style.display = 'none';
17161                }
17162            });
17163        });
17164    });
17165</script>
17165
17166
17167<script>
17168    document.addEventListener('DOMContentLoaded', function () {
17169        function updateRatingsClass(ratingEl) {
17170            const hasReviews = ratingEl.querySelector('.bv_numReviews_component_container');
17171            ratingEl.classList.toggle('no-reviews', !hasReviews);
17172        }
17173        document.querySelectorAll('.ratings').forEach(ratingEl => {        
17174            updateRatingsClass(ratingEl);        
17175            const observer = new MutationObserver(() => {
17176                updateRatingsClass(ratingEl);
17177            });
17178            observer.observe(ratingEl, {
17179                childList: true,
17180                subtree: true
17181            });
17182        });
17183    });
17184</script>
17184
17185
17186<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/css/poppins.min.css" media="print" onload="this.media='all'"/>
17187<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/css/print.min.css" media="print" onload="this.media='all'"/>
17188<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/css/admin.min.css" media="print" onload="this.media='all'"/>
17189<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Bss_SocialLogin/css/jquery.fancybox.min.css" media="print" onload="this.media='all'"/>
17190<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Hyva_MirasvitLayeredNavigation/css/lib/nouislider.min.css" media="print" onload="this.media='all'"/>
17191<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Astound_Affirm/affirm-promo.min.css" media="print" onload="this.media='all'"/>
17192<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Dcw_CircularDesignerTool/css/base-global-header-footer.min.css" media="print" onload="this.media='all'"/>
17193<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Dcw_CircularDesignerTool/css/matdesigner.min.css" media="print" onload="this.media='all'"/>
17194<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Magefan_Blog/css/comments.min.css" media="print" onload="this.media='all'"/>
17195<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Plumrocket_GlobalPrivacyControl/css/gpc.min.css" media="print" onload="this.media='all'"/></div></footer>
17196<script>
17197    function dataServicesShoppingCartContextData()
17198    {
17199        return {
17200            initContext(cartData) {
17201                let contextCartItems = [];
17202
17203                cartData.items.forEach(function (item){
17204                    contextCartItems.push({
17205                        id: item.item_id,
17206                        formattedPrice: parseFloat(item.product_price_value ? item.product_price_value : 0),
17207                        quantity: item.qty,
17208                        product: {
17209                            productType: item.product_type,
17210                            productId: item.product_id,
17211                            name: item.product_name,
17212                            sku: item.product_sku,
17213                            mainImageUrl : item.product_image.src
17214                        },
17215                        prices: {
17216                            price: {
17217                                value: parseFloat(item.product_price_value ? item.product_price_value : 0)
17218                            }
17219                        }
17220                    })
17221                });
17222
17223                magentoStorefrontEvents.context.setShoppingCart({
17224                    id: cartData.dsCartId,
17225                    totalQuantity: cartData.summary_count,
17226                    prices: {
17227                        subtotalExcludingTax: {
17228                            value: parseFloat(cartData.subtotalAmountExclTax ? cartData.subtotalAmountExclTax : 0)
17229                        },
17230                        subtotalIncludingTax: {
17231                            value: parseFloat(cartData.subtotalAmount ? cartData.subtotalAmount : 0)
17232                        }
17233                    },
17234                    items: contextCartItems,
17235                    possibleOnepageCheckout: cartData.possible_onepage_checkout,
17236                    giftMessageSelected : false,
17237                    giftWrappingSelected : false
17238                });
17239
17240                window.dispatchEvent(new Event("shoppingCartContextSet"));
17241            }
17242        }
17243    }
17244</script>
17244
17245<div x-data="dataServicesShoppingCartContextData()"
17246     @private-content-loaded.window="initContext($event.detail.data.cart)"></div>
17247
17248    
17249<script>
17250    (function () {
17251        'use strict';
17252
17253        /**
17254         * Config to determine which element is responsible for the form submission
17255         *
17256         * @type {[{elementSelector: undefined|string, submitAttribute: string}]}
17257         */
17258        const formWrapperConfig = [{"elementSelector":null,"submitAttribute":"submit"},{"elementSelector":"[type=\"submit\"]","submitAttribute":"click"}];
17259
17260        /**
17261         * Replace protected forms submit with amRecaptchaModel.execute($event) method.
17262         * Call original submit on amrecaptcha-callback event after successful captcha validation.
17263         *
17264         * @return {void}
17265         */
17266        const wrapFormSubmit = function () {
17267            document.addEventListener("DOMContentLoaded", function () {
17268                const formsSelector = window.amRecaptchaModel?.formsToProtect || '';
17269                if (formsSelector.length === 0) {
17270                    return;
17271                }
17272
17273                document.querySelectorAll(formsSelector)?.forEach(formElement => {
17274                    if (!formElement) {
17275                        return;
17276                    }
17277
17278                    const { elementToWrap, attributeNameToWrap } = resolveElementWrapping(formElement);
17279                    if (!elementToWrap || !attributeNameToWrap) {
17280                        return;
17281                    }
17282
17283                    setElementAttributes(formElement, elementToWrap, attributeNameToWrap);
17284                });
17285            });
17286        };
17287
17288        /**
17289         * Find submit event and DOM element that has this event using formWrapperConfig.
17290         *
17291         * @param {HTMLElement} formElement
17292         * @return {{elementToWrap: undefined|string, attributeNameToWrap: undefined|string}}
17293         */
17294        const resolveElementWrapping = function (formElement) {
17295            let result = {
17296                elementToWrap: undefined,
17297                attributeNameToWrap: undefined
17298            };
17299
17300            formWrapperConfig.forEach(({ elementSelector, submitAttribute }) => {
17301                const elementToWrap = !!elementSelector ? formElement.querySelector(elementSelector) : formElement;
17302                if (!elementToWrap) {
17303                    return;
17304                }
17305
17306                const attributeNameToWrap = elementToWrap.getAttributeNames().find(
17307                    (elementAttribute) => {
17308                        /** @type {string[]} */
17309                        const submitAttributeVariations = ['@', 'x-on:'].map(variation => variation + submitAttribute);
17310
17311                        return submitAttributeVariations.some(
17312                            (submitAttributeVariation) => elementAttribute.startsWith(submitAttributeVariation)
17313                        )
17314                    }
17315                );
17316                if (!attributeNameToWrap) {
17317                    return;
17318                }
17319
17320                result.elementToWrap = elementToWrap;
17321                result.attributeNameToWrap = attributeNameToWrap;
17322            });
17323
17324            return result;
17325        }
17326
17327        /**
17328         *  Set attribute to wrap original submit, add eventListeners for captcha callbacks
17329         *
17330         * @param {HTMLElement} formElement
17331         * @param {HTMLElement} elementToWrap
17332         * @param {string} attributeNameToWrap
17333         */
17334        const setElementAttributes = function (formElement, elementToWrap, attributeNameToWrap) {
17335            const originalSubmit = elementToWrap.getAttribute(attributeNameToWrap);
17336            elementToWrap.removeAttribute(attributeNameToWrap);
17337
17338            /**
17339             * To properly set submit attribute - we need to replace '@' with 'x-on:'
17340             * and add preventDefault behaviour
17341             */
17342            elementToWrap.setAttribute(
17343                attributeNameToWrap.replace(/^@/, 'x-on:').replace(/.prevent$/, '') + '.prevent',
17344                'amRecaptchaModel.execute($event)'
17345            );
17346            elementToWrap.setAttribute(
17347                'x-on:amrecaptcha-executable-callback',
17348                originalSubmit
17349            );
17350        }
17351
17352        wrapFormSubmit();
17353    })(window.amRecaptchaModel = window.amRecaptchaModel || {});
17354</script>
17354
17355
17356<script>
17357    function initAuthenticationBss() {
17358        return {
17359            open: false,
17360            openLogin : false,
17361            openRegister : false,
17362            openForgot : false,
17363            openCreate : true,
17364            passwordsMatching: true,
17365            openMessage: false,
17366            errors: 0,
17367            message: "",
17368            hasCaptchaToken: 0,
17369            openButtonLogin : false,
17370            openButtonRegister : false,
17371            openSuccessMessage : false,
17372            checkUseReCaptcha: 1,
17373            recaptchaLoading: null,
17374            initSocial() {
17375                if (!this.checkUseReCaptcha) {
17376                    return Promise.resolve();
17377                }
17378                if (this.recaptchaLoading) {
17379                    return this.recaptchaLoading;
17380                }
17381                if (typeof window.grecaptcha !== 'undefined') {
17382                    this.recaptchaLoading = Promise.resolve();
17383                    return this.recaptchaLoading;
17384                }
17385                this.recaptchaLoading = new Promise((resolve, reject) => {
17386                    const recaptchaUrl = `https://www.google.com/recaptcha/api.js?render=6LdQFsgqAAAAAFaiT_SQ7C9UmCcxWxpMd6pIMAEO&hl=en`;
17387                    const script = document.createElement('script');
17388                    script.setAttribute('type', 'text/javascript');
17389                    script.setAttribute('src', recaptchaUrl);
17390                    script.onload = () => resolve();
17391                    script.onerror = () => reject(new Error('Failed to load reCAPTCHA'));
17392                    document.head.appendChild(script);
17393                });
17394                return this.recaptchaLoading;
17395            },
17396            loadRecaptchaOnInteraction() {
17397                if (!this.checkUseReCaptcha) {
17398                    return;
17399                }
17400                // Avoid scroll/mousemove/wheel — they fire on load / DevTools / trackpads.
17401                const events = ['pointerdown', 'keydown', 'touchstart'];
17402                const load = () => {
17403                    events.forEach((eventName) => {
17404                        window.removeEventListener(eventName, load, { capture: true });
17405                    });
17406                    this.initSocial();
17407                };
17408                events.forEach((eventName) => {
17409                    window.addEventListener(eventName, load, { once: true, passive: true, capture: true });
17410                });
17411            },
17412            checkPasswordsMatch() {
17413                if (document.getElementById('password').value ===
17414                    document.getElementById('password-confirmation').value) {
17415                    this.passwordsMatching = true;
17416                    return true;
17417                }
17418                this.passwordsMatching = false;
17419                return false;
17420            },
17421            submitForm: function () {
17422                const $form = document.querySelector('#login-form');
17423                if (this.errors === 0) {
17424                    this.dispatchLoginRequest($form);
17425                }
17426            },
17427            submitForgotForm : function () {
17428                const $form = document.querySelector('#fotgot-form');
17429                if (this.errors === 0) {
17430                    this.dispatchForgotRequest($form);
17431                }
17432            },
17433            submitRegisterForm : function () {
17434                const $form = document.querySelector('#create-form');
17435                if (this.errors === 0) {
17436                    this.dispatchRegisterRequest($form);
17437                }
17438            },
17439            validateCaptcha : async function () {
17440                await this.initSocial();
17441                return new Promise((resolve, reject) => {
17442                    if (typeof window.grecaptcha === 'undefined') {
17443                        return reject(new Error('reCAPTCHA is not available'));
17444                    }
17445                    grecaptcha.ready(function () {
17446                        grecaptcha.execute('6LdQFsgqAAAAAFaiT_SQ7C9UmCcxWxpMd6pIMAEO', {action: 'submit'}).then(function (token) {
17447                            return resolve(token);
17448                        }).catch(reject);
17449                    });
17450                });
17451            },
17452            dispatchLoginRequest:async function (form) {
17453                if (this.checkUseReCaptcha) {
17454                    let token = await this.validateCaptcha();
17455                    if(token)
17456                    {
17457                        document.getElementById("g-recaptcha-response").setAttribute('value',token);
17458                    }
17459                }
17460                const username = this.$refs['customer-email'].value;
17461                const password = this.$refs['customer-password'].value;
17462                const recaptchaValue = document.getElementById("g-recaptcha-response").value;
17463                const postUrl = "https://www.flooringinc.com/sociallogin/popup/login/";
17464                fetch(postUrl, {
17465                    headers: {
17466                        contentType: "application/x-www-form-urlencoded; charset=UTF-8",
17467                    },
17468                    body: new URLSearchParams({
17469                        username: username,
17470                        password: password,
17471                        ['g-recaptcha-response']: recaptchaValue,
17472                        form_key: hyva.getFormKey(),
17473                    }),
17474                    method: "POST",
17475                    mode: "cors",
17476                    credentials: "include",
17477                }).then(response => {
17478                        return response.json()
17479                    }
17480                ).then(data => {
17481                    this.isLoading = false;
17482                    if (data.error) {
17483                        this.message = data.message;
17484                        this.openMessage = true;
17485                        this.errors = 1;
17486                        this.hasCaptchaToken = 0;
17487                    } else {
17488                        this.message = data.message;
17489                        this.openMessage = false;
17490                        this.openSuccessMessage = true;
17491                        if (data.redirect !== '' && data.redirect != null) {
17492                            window.location.href = data.redirect;
17493                        } else {
17494                            location.reload(true);
17495                        }
17496                    }
17497                });
17498            },
17499            dispatchForgotRequest:async function (form) {
17500                if (this.checkUseReCaptcha) {
17501                    let token = await this.validateCaptcha();
17502                    if(token)
17503                    {
17504                        document.getElementById("g-recaptcha-response").setAttribute('value',token);
17505                    }
17506                }
17507                const email = form.querySelector("#email_address").value;
17508                const recaptchaValue = document.getElementById("g-recaptcha-response").value;
17509                const postUrl = "https://www.flooringinc.com/sociallogin/popup/forgot/";
17510                fetch(postUrl, {
17511                    headers: {
17512                        contentType: "application/x-www-form-urlencoded; charset=UTF-8",
17513                    },
17514                    body: new URLSearchParams({
17515                        email: email,
17516                        ['g-recaptcha-response']: recaptchaValue,
17517                        form_key: hyva.getFormKey(),
17518                    }),
17519                    method: "POST",
17520                    mode: "cors",
17521                    credentials: "include",
17522                }).then(response => {
17523                        return response.json()
17524                    }
17525                ).then(data => {
17526                    this.isLoading = false;
17527                    if (data.error) {
17528                        this.message = data.message;
17529                        this.openMessage = true;
17530                        this.errors = 1;
17531                        this.hasCaptchaToken = 0;
17532                    } else {
17533                        if (data.redirect !== '' && data.redirect != null) {
17534                            window.location.href = data.redirect;
17535                        } else {
17536                            location.reload(true);
17537                        }
17538                    }
17539                });
17540            },
17541            dispatchRegisterRequest:async function (form) {
17542                if (this.checkUseReCaptcha) {
17543                    let token = await this.validateCaptcha();
17544                    if(token)
17545                    {
17546                        document.getElementById("g-recaptcha-response").setAttribute('value',token);
17547                    }
17548                }
17549                const firstname = form.querySelector("#firstname").value;
17550                const lastname = form.querySelector("#lastname").value;
17551                const email = form.querySelector("#email_address").value;
17552                const password = form.querySelector("#password").value;
17553                const passwordConfirmation = form.querySelector("#password-confirmation").value;
17554                const recaptchaValue = document.getElementById("g-recaptcha-response").value;
17555                const postUrl = "https://www.flooringinc.com/sociallogin/popup/create/";
17556                fetch(postUrl, {
17557                    headers: {
17558                        contentType: "application/x-www-form-urlencoded; charset=UTF-8",
17559                    },
17560                    body: new URLSearchParams({
17561                        ['g-recaptcha-response']: recaptchaValue,
17562                        firstname: firstname,
17563                        lastname: lastname,
17564                        email: email,
17565                        password: password,
17566                        password_confirmation: passwordConfirmation,
17567                        form_key: hyva.getFormKey(),
17568                    }),
17569                    method: "POST",
17570                    mode: "cors",
17571                    credentials: "include",
17572                }).then(response => {
17573                        return response.json()
17574                    }
17575                ).then(data => {
17576                    this.isLoading = false;
17577                    if (data.error) {
17578                        this.message = data.message;
17579                        this.openMessage = true;
17580                        this.hasCaptchaToken = 0;
17581                    } else {
17582                        this.message = data.message;
17583                        this.openMessage = false;
17584                        this.openSuccessMessage = true;
17585                        if (data.redirect !== '' && data.redirect != null) {
17586                            window.location.href = data.redirect;
17587                        } else {
17588                            location.reload(true);
17589                        }
17590                    }
17591                });
17592            },
17593            eventListeners: {
17594                ['@popup-register.window']($event) {
17595                    this.open = true;
17596                    this.openRegister = $event.detail.openRegister;
17597                    this.openLogin = $event.detail.openLogin;
17598                    this.openCreate = $event.detail.openCreate;
17599                    this.openButtonLogin = $event.detail.openButtonLogin;
17600                    this.openButtonRegister = $event.detail.openButtonRegister;
17601                    this.initSocial();
17602                }
17603            }
17604        }
17605    }
17606</script>
17606
17607
17608<section id="authentication-popup-bss"
17609         x-data="initAuthenticationBss()" x-init="loadRecaptchaOnInteraction()"
17610         @keydown.window.escape="open = false"
17611<div role="dialog"
17612     aria-modal="true"
17613     class="hidden inset-y-0 right-0 z-30 flex max-w-full"
17614     :class="{ 'hidden': !open, 'fixed': open }"
17615     x-bind="eventListeners"
17616>
17617    <div class="relative bg-container-lighter bss_login_popup"
17618         x-show="open"
17619         @click.outside="open = false"
17620         x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700"
17621         x-transition:enter-start="translate-x-full"
17622         x-transition:enter-end="translate-x-0"
17623         x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700"
17624         x-transition:leave-start="translate-x-0"
17625         x-transition:leave-end="translate-x-full"
17626    >
17627        <div
17628            x-show="open"
17629            x-transition:enter="ease-in-out duration-500"
17630            x-transition:enter-start="opacity-0"
17631            x-transition:enter-end="opacity-100"
17632            x-transition:leave="ease-in-out duration-500"
17633            x-transition:leave-start="opacity-100"
17634            x-transition:leave-end="opacity-0" class="absolute flex close_icon" style="width: 11px;height: 11px;background: transparent;">
17635            <button @click="open = false;" aria-label="Close panel"
17636                    class="transition duration-150 ease-in-out text-black cursor-pointer">
17637                <picture><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/Close--icon.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/Close--icon.png" alt="Close--icon" width="11" height="11" /></picture>
17638            </button>
17639        </div>
17640        <div class="flex h-full flex-col bss_login_popup_in overflow-y-auto" >
17641            <div class="message mx-4 message-error" x-show="openMessage">
17642                <div>
17643                    <span x-html="message"></span>
17644                </div>
17645                <div class="cursor-pointer" title="close" @click="openMessage = false">
17646                    <svg class="fill-current text-white" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
17647                        <path d="M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47
17648                                                4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z">
17649                        </path>
17650                    </svg>
17651                </div>
17652            </div>
17653            <div class="message mx-4 message-error success" x-show="openSuccessMessage">
17654                <div>
17655                    <span x-html="message"></span>
17656                </div>
17657                <div class="cursor-pointer" title="close" @click="openSuccessMessage = false">
17658                    <svg class="fill-current text-white" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
17659                        <path d="M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47
17660                                                4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z">
17661                        </path>
17662                    </svg>
17663                </div>
17664            </div>
17665                        <div class="block-customer-login for_got" x-show="openForgot">
17666    <h2 id="authenticate-customer-login" class="text-size18 font-medium text-darkblack">
17667        Forgot Password    </h2>
17668    <form class="form form-fotgotpassword"
17669          method="post"
17670          @submit.prevent="submitForgotForm();"
17671          id="fotgot-form">
17672        <fieldset class="fieldset">
17673            <div class="text-size14 font-normal text-black mb-4">Please enter your email address below to receive a password reset link.</div>
17674            <div class="field email required">
17675                <label for="email_address" class="label"><span>Email</span></label>
17676                <div class="control">
17677                    <input type="email" name="email" alt="email" id="email_address" class="form-input" required
17678                           value="">
17679                </div>
17680            </div>
17681        </fieldset>
17682        <div class="actions-toolbar">
17683            <div class="primary">
17684                <button type="submit" class="action submit primary"><span>Reset My Password</span></button>
17685            </div>
17686            <div class="secondary ml-4 self-center">
17687                <a class="action back cursor-pointer"
17688                   @click ="openForgot = false,openLogin = true,
17689                   openButtonLogin = true"
17690                >
17691                    <span class="text-size14 font-medium text-black">
17692                        Back                    </span>
17693                </a>
17694            </div>
17695        </div>
17696    </form>
17697</div>
17698
17699
17700            
17701            <div class="w-full">
17702                <input id="g-recaptcha-response" type="hidden" value=""/>
17703            </div>
17704            <div class="block-new-customer social_login"
17705                 x-show="openButtonLogin">
17706                <h2 id="authenticate-new-customer" class="text-size18 font-semibold text-darkblack">
17707                    Log In                </h2>
17708                <div class="block-content">
17709                                                <div id="add_button_login_byclass" x-data="bssButtonSocial()" x-ref="registerSocialButton">
17710                                <div class="">
17711                                    <div class="sociallogin-buttons" x-ref="loginSocialButton">
17712                                        <ul class="sociallogin-clearfix flex flex-wrap">
17713                                                                                            <li class="w-full text-size14 font-medium text-darkblack relative sociallogin-button
17714                                                    googleplus"  title="Login with Google">
17715                                                    <a class="sociallogin-button-link sociallogin-button-click" id="sociallogin-button-click" 
17716                                                       href="javascript:void(0);" data-href="https://accounts.google.com/o/oauth2/auth?response_type=code&redirect_uri=https%3A%2F%2Fwww.flooringinc.com%2Fsociallogin%2Faccount%2Flogin%2Ftype%2Fgoogleplus%2F&client_id=900046866587-mph1s7dsg2dcau694j9ukb0m26hukidu.apps.googleusercontent.com&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&state=&access_type=offline&approval_prompt=auto"
17717                                                       data-width="630"
17718                                                       data-height="650"
17719                                                       x-ref="googleplus"
17720                                                       @click="popupSocial($refs.googleplus)">
17721                                                         <span class="sociallogin-button-auto">
17722                                                            <span class="sociallogin-button-icon">
17723                                                                                                                            </span>
17724                                                                                                                            <span class="sociallogin-button-text">Login with Google</span>
17725                                                                                                                    </span>
17726                                                    </a>
17727                                                </li>
17728                                                                                                                                        </ul>
17729                                                                            </div>
17730
17731                                </div>
17732                                <div style="clear: both;"></div>
17733                            </div>
17734                                    </div>
17735            </div>
17736            <div class="block-customer-login" x-show="openLogin" x-data="{ show: false }">
17737    <span class="or-label text-size14 font-normal text-darkblack"> Or</span>
17738
17739    <form class="form form-login"
17740          method="post"
17741          @submit.prevent="submitForm();"
17742          id="login-form"
17743    >
17744                <div class="fieldset login">
17745            <div class="field email required">
17746                <label class="label hidden" for="customer-email">
17747                    <span>Email Address</span>
17748                </label>
17749                <div class="control">
17750                    <input name="username"
17751                           x-ref="customer-email"
17752                           @change="errors = 0"
17753                           type="email"
17754                           required
17755                           class="form-input input-text" id="customer-email" placeholder="Email address" 
17756                    >
17757                </div>
17758            </div>
17759            <div class="field password required" >
17760                <label for="pass" class="label hidden">
17761                    <span>Password</span>
17762                </label>
17763                <div class="control">
17764                    <input name="password"
17765                           type="password" 
17766                           class="form-input input-text" id="pass" placeholder="Password" 
17767                           required
17768                           x-ref="customer-password"
17769                           @change="errors = 0"
17770                    >
17771                </div>
17772            </div>
17773
17774            <input name="context" type="hidden" value="checkout"/>
17775             
17776            <div class="actions-toolbar flex justify-between items-center" >
17777                <div class="flex items-center">
17778                    <input type="checkbox" name="show-password" @click="showPassword()" id="show-password" value="" class="checkbox">
17779                    <label class="cursor-pointer text-size12 font-normal text-darkblack" style="margin:0;" for="show-password">Show password</label>                    
17780                    <!-- <span class="cursor-pointer text-size12 font-normal text-darkblack" @click="showPasswordForLable()" id="show-password-label" >
17781                        Show Password 
17782                    </span> -->
17783                </div>    
17784                   <span class="cursor-pointer text-size12 font-normal text-darkblack" @click="openForgot = true,openLogin = false,openButtonLogin = false">
17785                        Forgot Your Password?                    </span>
17786                    
17787            
17788            </div>
17789            <div class="actions-toolbar flex justify-between items-center">
17790                 <button type="submit" class="inline-flex btn btn-primary login_btn">
17791                        Log In                    </button>
17792            </div>       
17793        </div>
17794    </form>
17795</div>
17796
17797<script>
17798     function showPassword(){
17799        var showPwd=document.getElementById("show-password");
17800        var password=document.getElementById("pass");
17801        if(showPwd.checked==true) {
17802            password.type="text";
17803        } else {
17804           password.type="password";
17805        }
17806    }    
17807    function showPasswordForLable(){
17808        var password=document.getElementById("pass");
17809        if (password.type === "password") {
17810            password.type = "text";
17811        } else {
17812            password.type = "password";
17813        }
17814    } 
17815</script>
17815 
17816            <div class="block-new-customer new_customer text-center" x-show ="openCreate">
17817                <h2 id="authenticate-new-customer" class="text-size13 font-normal text-darkblack">
17818                    New Customer?                </h2>
17819                <div class="block-content">
17820                    <div class="actions-toolbar">
17821                        <a class="block btn btn-primary cursor-pointer text-size18 font-semibold text-custom-blue"
17822                        href="https://www.flooringinc.com/customer/account/create/"  >
17823                            Sign Up Now                        </a>
17824                    </div>
17825                    <div class="block-new-customer">
17826                        <h3 class="text-size16 font-normal text-black">
17827                            <a class="block underline"
17828                            href="https://www.flooringinc.com/pro-advantage/"
17829                            >
17830                                Become a Pro                            </a>
17831                        </h3>
17832                    </div>
17833                </div>
17834            </div>
17835            <div class="block-new-customer social_login margin" x-show="openButtonRegister">
17836                <h2 id="authenticate-new-customer" class="text-size18 font-medium text-darkblack">
17837                    Social Register                </h2>
17838                <div class="block-content">
17839                                                <div id="add_button_register_byclass" x-data="bssButtonSocial()" x-ref="registerSocialButton">
17840                                <div class="">
17841                                    <div class="sociallogin-buttons">
17842                                        <ul class="sociallogin-clearfix flex flex-wrap">
17843                                                                                            <li class="w-full text-size14 font-medium text-darkblack relative sociallogin-button googleplus"   title="Register with Google">
17844                                                    <a class="sociallogin-button-link sociallogin-button-click" id="sociallogin-button-click" 
17845                                                       href="javascript:void(0);" data-href="https://accounts.google.com/o/oauth2/auth?response_type=code&redirect_uri=https%3A%2F%2Fwww.flooringinc.com%2Fsociallogin%2Faccount%2Flogin%2Ftype%2Fgoogleplus%2F&client_id=900046866587-mph1s7dsg2dcau694j9ukb0m26hukidu.apps.googleusercontent.com&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&state=&access_type=offline&approval_prompt=auto"
17846                                                       data-width="630"
17847                                                       data-height="650"
17848                                                       x-ref="googleplus"
17849                                                       @click="popupSocial($refs.googleplus)">
17850                                                        <span class="sociallogin-button-auto">
17851                                                            <span class="sociallogin-button-icon">
17852                                                                                                                            </span>
17853                                                                                                                            <span class="sociallogin-button-text">Register with Google</span>
17854                                                                                                                    </span>
17855                                                    </a>
17856                                                </li>
17857                                                                                                                                        </ul>
17858                                                                            </div>
17859                                </div>
17860                                <div style="clear: both;"></div>
17861                            </div>
17862                                    </div>
17863            </div>          
17864        </div>
17865    </div>
17866</div>
17867</section>
17868<script>
17869        var classLogin = [".checkout-container .opc-wrapper"];
17870        var classRegister = [""];
17871    classLogin = classLogin[0].trim().split(/\s+/);
17872    classRegister = classRegister[0].trim().split(/\s+/);
17873    if(classLogin && classLogin.length > 0 && classLogin[0]){
17874        classLogin.forEach(element => {
17875            var classLoginElement = document.querySelector(element);
17876            var loginSocialButton = document.getElementById('add_button_login_byclass');
17877            if (classLoginElement && loginSocialButton) {
17878                const cloneLoginSocialButton = loginSocialButton.cloneNode(true);
17879                classLoginElement.appendChild(cloneLoginSocialButton);
17880                cloneLoginSocialButton.style.display='block';
17881            }
17882        });
17883    }
17884
17885    if(classRegister && classRegister.length > 0 && classRegister[0]){
17886        classRegister.forEach(element => {
17887            var classRegisterElement = document.querySelector(element);
17888            var registerSocialButton = document.getElementById('add_button_register_byclass');
17889            if (classRegisterElement && registerSocialButton) {
17890                const cloneRegisterSocialButton = registerSocialButton.cloneNode(true);
17891                classRegisterElement.appendChild(cloneRegisterSocialButton);
17892                cloneRegisterSocialButton.style.display='block';
17893            }
17894        });
17895    }
17896
17897    function bssButtonSocial() {
17898        return {
17899            renderShowmore : function (element) {
17900                var socialButton = element.querySelector('.sociallogin-clearfix').getElementsByTagName("li");
17901                for (let i = 0; i <= socialButton.length - 1; i++) {
17902                    socialButton[i].style.display = 'block';
17903                }
17904                element.querySelector('.sociallogin-showmore').style.display = 'none';
17905            },
17906            popupSocial: function (element) {
17907                var href = element.getAttribute('data-href');
17908                var width = element.getAttribute('data-width');
17909                var height = element.getAttribute('data-height');
17910                var popup_window = null;
17911                if (!width) {
17912                    width = 650;
17913                }
17914
17915                if(!height) {
17916                    height = 350;
17917                }
17918
17919                var left = parseInt((window.innerWidth- width) / 2);
17920                var top = parseInt((window.innerHeight - height) / 2);
17921
17922                var params = [
17923                    'resizable=yes',
17924                    'scrollbars=no',
17925                    'toolbar=no',
17926                    'menubar=no',
17927                    'location=no',
17928                    'directories=no',
17929                    'status=yes',
17930                    'width='+ width,
17931                    'height='+ height,
17932                    'left='+ left,
17933                    'top='+ top
17934                ];
17935
17936                if(popup_window) {
17937                    popup_window.close();
17938                }
17939
17940                if(href) {
17941                    popup_window = window.open(href,'',params.join(','));
17942                    popup_window.focus();
17943
17944                }else{
17945                    alert('This Login Application was not configured correctly. Please contact our customer support.');
17946                }
17947                return false;
17948            }
17949        }
17950    }
17951
17952</script>
17952
17953
17954
17955
17956    
17956<script>
17957        (() => {
17958            function changeNoCookieDomain() {
17959                const categoryKey = "marketing";
17960                if (! prCookieConsentApi.isAllowedCategory(categoryKey)) {
17961                    return;
17962                }
17963
17964                let iframes = document.querySelectorAll('iframe'),
17965                    youtubeNoCookieIframes = Array.from(iframes)
17966                        .filter((iframe) => iframe.src.indexOf('youtube-nocookie.com') !== -1);
17967
17968                youtubeNoCookieIframes.forEach((iframe) => {
17969                    iframe.src = iframe.src.replace('youtube-nocookie.com', 'youtube.com');
17970                });
17971            }
17972
17973            if (prCookieConsentApi) {
17974                changeNoCookieDomain();
17975                return;
17976            }
17977
17978            document.addEventListener('pr-cookie-consent-api:configured', changeNoCookieDomain);
17979        })();
17980    </script>
17980
17981
17982<script>
17983    'use strict';
17984
17985    (() => {
17986        window.addEventListener('DOMContentLoaded', () => {
17987            if (document.querySelectorAll('lite-youtube').length > 0) {
17988                const link = document.createElement('link'),
17989                      script = document.createElement('script');
17990
17991                link.rel = 'stylesheet';
17992                link.type = 'text/css';
17993                link.href = 'https\u003A\u002F\u002Fwww.flooringinc.com\u002Fstatic\u002Fversion1789462004\u002Ffrontend\u002FDcw\u002Fhyvadesktop\u002Fen_US\u002FMageQuest_LiteYouTube\u002Fcss\u002Flite\u002Dyt\u002Dembed.min.css';
17994                document.head.appendChild(link);
17995
17996                script.type = 'text/javascript';
17997                script.src = 'https\u003A\u002F\u002Fwww.flooringinc.com\u002Fstatic\u002Fversion1789462004\u002Ffrontend\u002FDcw\u002Fhyvadesktop\u002Fen_US\u002FMageQuest_LiteYouTube\u002Fjs\u002Flite\u002Dyt\u002Dembed.min.js';
17998                document.head.appendChild(script);
17999            }
18000        });
18001    })();
18002</script>
vendor: 1 bytes, line 18002
18002
18003<script data-mfmofile="true">
18004    document.addEventListener("DOMContentLoaded", function() {
18005        if (document.querySelectorAll('.mf-ytw-wrapper').length || document.querySelectorAll('[data-mf-ytw-youtube-link]').length) {
18006            !function (f, b, e, v, t, s) {
18007                if(f.mfytwcss)return;
18008                f.mfytwcss=1;
18009                t = b.createElement(e);
18010                t.rel = 'stylesheet';
18011                t.type = 'text/css';
18012                t.href = v;
18013                s = b.getElementsByTagName('HEAD')[0];
18014                s.appendChild(t)
18015            }(window, document, 'link', 'https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Magefan_YouTubeWidget/css/youtubewidget.min.css');
18016        }
18017        if (document.querySelectorAll('.mf-ytw-wrapper').length) {
18018            !function (f, b, e, v, t, s) {
18019                if(f.mfytwjs)return;
18020                f.mfytwjs=1;
18021                t = b.createElement(e);
18022                t.type = 'text/javascript';
18023                t.src = v;
18024                s = b.getElementsByTagName('HEAD')[0];
18025                s.appendChild(t)
18026            }(window, document, 'script', 'https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Magefan_YouTubeWidget/js/iframe.min.js');
18027        }
18028        if (document.querySelectorAll('[data-mf-ytw-youtube-link]').length) {
18029            !function (f, b, e, v, t) {
18030                if(f.mflinkjs)return;
18031                f.mflinkjs=1;
18032                t = b.createElement(e);
18033                t.type = 'text/javascript';
18034                t.src = v;
18035                s = b.getElementsByTagName('HEAD')[0];
18036                s.appendChild(t)
18037            }(window, document, 'script', 'https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Magefan_YouTubeWidget/js/link.min.js');
18038        }
18039    });
18040</script>
18040
18041
18042    <div id="pr-gpc-notification-modal" style="display: none;">
18043        <div class="pr-gpc-notification-wrap">
18044    <h2>Your Opt-Out Preferences Honored</h2>
18045<p>Your browser's privacy preference (GPC) has been detected.</p>
18046<p class="pr-gpc-text-with-icon"><picture><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Plumrocket_GlobalPrivacyControl/images/check_circle.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Plumrocket_GlobalPrivacyControl/images/check_circle.png" alt="GPC Icon" width="18" height="18"></picture> Non-essential cookies have been disabled on our website.</p>
18047</div>    </div>
18048
18049    
18049<script type="text/x-magento-init"  nonce="dW0zODRtOWZjdmJ0bDF4NXV6NmVlNHB0bTFmZWRxYTU=">
18050        {
18051            "#pr-gpc-notification-modal": {
18052                "Plumrocket_GlobalPrivacyControl/js/opt-out-notification": {}
18053            }
18054        }
18055    </script>
18055
18056
18057
18058<script>
18059    (() => {
18060        function src_default(Alpine) {
18061            Alpine.directive("intersect", (el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {
18062                let evaluate = evaluateLater(expression);
18063                let options = {
18064                    rootMargin: getRootMargin(modifiers),
18065                    threshold: getThreshhold(modifiers)
18066                };
18067                let observer = new IntersectionObserver((entries) => {
18068                    entries.forEach((entry) => {
18069                        if (entry.isIntersecting === (value === "leave"))
18070                            return;
18071                        evaluate();
18072                        modifiers.includes("once") && observer.disconnect();
18073                    });
18074                }, options);
18075                observer.observe(el);
18076                cleanup(() => {
18077                    observer.disconnect();
18078                });
18079            });
18080        }
18081        function getThreshhold(modifiers) {
18082            if (modifiers.includes("full"))
18083                return 0.99;
18084            if (modifiers.includes("half"))
18085                return 0.5;
18086            if (!modifiers.includes("threshold"))
18087                return 0;
18088            let threshold = modifiers[modifiers.indexOf("threshold") + 1];
18089            if (threshold === "100")
18090                return 1;
18091            if (threshold === "0")
18092                return 0;
18093            return Number(`.${threshold}`);
18094        }
18095        function getLengthValue(rawValue) {
18096            let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/);
18097            return match ? match[1] + (match[2] || "px") : void 0;
18098        }
18099        function getRootMargin(modifiers) {
18100            const key = "margin";
18101            const fallback = "0px 0px 0px 0px";
18102            const index = modifiers.indexOf(key);
18103            if (index === -1)
18104                return fallback;
18105            let values = [];
18106            for (let i = 1; i < 5; i++) {
18107                values.push(getLengthValue(modifiers[index + i] || ""));
18108            }
18109            values = values.filter((v) => v !== void 0);
18110            return values.length ? values.join(" ").trim() : fallback;
18111        }
18112
18113        document.addEventListener("alpine:init", () => {
18114            window.Alpine.plugin(src_default);
18115        });
18116    })();
18117</script>
vendor: 1 bytes, line 18117
18117
18118<script>
18119    for (const [selector, deferUntil] of Object.entries({".product-slider section[x-data]":"intersect",".product-info [x-data]":"intersect","#filters-content [x-data]":"intersect","#review_form":"intersect","section[x-data^=initRecentlyViewedProductsComponent]":"intersect","div[x-data^=initBundleOptions]":"intersect","#product_addtocart_form [x-data]":"intersect","#notice-cookie-block":"intersect"})) {
18120        document.querySelectorAll(selector).forEach(el => el.setAttribute('x-defer', `${deferUntil}`));
18121    }
18122</script>
vendor: 1 bytes, line 18122
18122
18123<script>
18124    (function () {
18125        "use strict";
18126
18127        const hasAlpine = new Promise(resolve => {
18128            window.addEventListener('alpine:initialized', resolve, {once: true, passive: true});
18129        });
18130
18131        const hasInteract = new Promise(resolve => {
18132            (events => {
18133                const onInteract = () => {
18134                    resolve();
18135                    events.forEach(type => window.removeEventListener(type, onInteract));
18136                }
18137                events.forEach(type => window.addEventListener(type, onInteract, {once: true, passive: true}))
18138            })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown'])
18139        });
18140
18141        const onIntersect = (el) => {
18142            return new Promise(resolve => {
18143                const observer = new IntersectionObserver(entries => {
18144                    for (const entry of entries) {
18145                        if (entry.isIntersecting) {
18146                            observer.disconnect()
18147                            resolve();
18148                        }
18149                    }
18150                }, {});
18151                observer.observe(el);
18152            });
18153        }
18154
18155        function runComponent(el) {
18156            hasAlpine.then(() => {
18157                el.removeAttribute('x-ignore');
18158                queueMicrotask(() => Alpine.initTree(el));
18159            });
18160        }
18161
18162        function initDeferredComponents() {
18163            document.querySelectorAll('[x-data][x-defer]').forEach(el => {
18164                el.setAttribute('x-ignore', '');
18165                const deferUntil = (el.getAttribute('x-defer') || '').trim();
18166                switch (deferUntil) {
18167                    case 'interact':
18168                        hasInteract.then(() => runComponent(el));
18169                        break;
18170                    case 'intersect':
18171                        onIntersect(el).then(() => runComponent(el))
18172                        break;
18173                    case 'idle':
18174                        window.requestIdleCallback
18175                            ? window.requestIdleCallback(() => runComponent(el), {timeout: 4000})
18176                            : setTimeout(() => runComponent(el), 4000);
18177                        break;
18178                    case 'eager':
18179                        runComponent(el);
18180                        break;
18181                    default:
18182                        if (deferUntil.startsWith('event:') && deferUntil.length > 6) {
18183                            window.addEventListener(deferUntil.substring(6), () => runComponent(el), {once: true, passive: true});
18184                        }
18185                }
18186            });
18187        }
18188
18189        window.addEventListener('alpine:init', initDeferredComponents, {once: true, passive: true});
18190    })()
18191</script>
18191
18192
18193<script type="module"
18194        src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Hyva_Theme/js/alpine3.min.js"
18195        defer
18196        crossorigin
18197></script>
vendor: 1 bytes, line 18197
18197
18198<script>
18199    'use strict';
18200    function dispatchMessages(messages, hideAfter) {
18201        const messagesEvent = new CustomEvent("messages-loaded", {
18202            detail: {
18203                messages: messages,
18204                hideAfter: hideAfter
18205            }
18206        });
18207        window.dispatchEvent(messagesEvent);
18208    }
18209
18210    if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) {
18211        console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script");
18212    }
18213
18214    (function( hyva, undefined ) {
18215
18216        hyva.initFormKey = () => {
18217            const inputSelector = 'input[name="form_key"]',
18218                formKey = hyva.getFormKey();
18219
18220            Array.from(document.querySelectorAll(inputSelector)).map(function (input) {
18221                input.value = formKey
18222            });
18223        }
18224
18225        hyva.initMessages = () => {
18226            try {
18227                const messages = hyva.getCookie('mage-messages');
18228                window.mageMessages = messages ? JSON.parse(decodeURIComponent(messages).replace(/\+/g, ' ')) : [];
18229
18230                dispatchMessages(window.mageMessages);
18231
18232                                // empty `mage-messages` cookie
18233                const skipSetDomain = true;
18234                hyva.setCookie('mage-messages','', -1, skipSetDomain);
18235
18236            } catch (error) {
18237                console.warn('Error parsing Cookie Messages:', error);
18238            }
18239        }
18240
18241        window.addEventListener('DOMContentLoaded', hyva.initFormKey);
18242        hyva.alpineInitialized(hyva.initMessages)
18243
18244    }( window.hyva = window.hyva || {} ));
18245</script>
vendor: 1 bytes, line 18245
18245
18246<script>
18247    'use strict';
18248    {
18249        const private_content_key = 'mage-cache-storage';
18250        const private_content_expire_key = 'mage-cache-timeout';
18251        const private_content_version_key = 'private_content_version';
18252        const section_data_ids_key = 'section_data_ids';
18253        const mage_cache_session_id_key = 'mage-cache-sessid';
18254        const last_visited_store_key = 'last_visited_store';
18255
18256        const ttl = 3600;
18257
18258        if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) {
18259            console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script");
18260        }
18261
18262        function loadSectionData () {
18263            const browserStorage = hyva.getBrowserStorage();
18264            if (!browserStorage) {
18265                typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
18266                    [{
18267                        type: "warning",
18268                        text: "Please enable LocalStorage in your browser."
18269                    }]
18270                );
18271                return;
18272            }
18273            try {
18274                let isInvalid = false;
18275
18276                if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) {
18277                    isInvalid = true;
18278                }
18279                hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false);
18280
18281                if (!hyva.getCookie(mage_cache_session_id_key)) {
18282                    isInvalid = true;
18283                    browserStorage.removeItem(private_content_key);
18284                    const skipSetDomain = true;
18285                    const days = false;
18286                    hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain)
18287                }
18288
18289                const cookieVersion = hyva.getCookie(private_content_version_key);
18290                const storageVersion = browserStorage.getItem(private_content_version_key);
18291
18292                if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) {
18293                    isInvalid = true;
18294                }
18295
18296                const privateContentExpires = browserStorage.getItem(private_content_expire_key);
18297                if (privateContentExpires && new Date(privateContentExpires) < new Date()) {
18298                    browserStorage.removeItem(private_content_key);
18299                }
18300
18301                if (isInvalid && cookieVersion) {
18302                    fetchPrivateContent([]);
18303                } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) {
18304                    const privateContent = JSON.parse(browserStorage.getItem(private_content_key));
18305                    if (
18306                        privateContent &&
18307                        privateContentExpires &&
18308                        privateContent.cart &&
18309                        privateContent.customer
18310                    ) {
18311                        dispatchPrivateContent(privateContent);
18312                    } else {
18313                        fetchPrivateContent([]);
18314                    }
18315                } else {
18316                    if (document.getElementById('default-section-data')) {
18317                        const privateContent = JSON.parse(document.getElementById('default-section-data').innerText.trim());
18318                        dispatchPrivateContent(privateContent);
18319                    } else {
18320                        dispatchPrivateContent({});
18321                    }
18322                }
18323
18324            } catch (error) {
18325                console.warn('Error retrieving Private Content:', error);
18326            }
18327        }
18328
18329        hyva.alpineInitialized(loadSectionData)
18330        window.addEventListener('reload-customer-section-data', loadSectionData);
18331
18332        function dispatchPrivateContent(data) {
18333            const privateContentEvent = new CustomEvent("private-content-loaded", {
18334                detail: {
18335                    data: data
18336                }
18337            });
18338            window.dispatchEvent(privateContentEvent);
18339        }
18340
18341        function fetchPrivateContent(sections) {
18342            fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, {
18343                method: 'GET',
18344                headers: {
18345                    'Content-Type': 'application/json',
18346                    'X-Requested-With': 'XMLHttpRequest'
18347                }
18348            })
18349                .then(response => response.json())
18350                .then(
18351                    data => {
18352                        if (data) {
18353                            try {
18354                                const browserStorage = hyva.getBrowserStorage();
18355
18356                                // merge new data preserving non-invalidated sections
18357                                const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}') || {};
18358
18359                                if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) {
18360                                    delete oldSectionData['checkout-data'];
18361                                }
18362                                const newSectionData = Object.assign(oldSectionData, data);
18363
18364                                dispatchPrivateContent(newSectionData);
18365
18366                                // don't persist messages, they've been dispatched already
18367                                if (newSectionData.messages && newSectionData.messages.messages ) {
18368                                    newSectionData.messages.messages = [];
18369                                }
18370
18371                                browserStorage.setItem(private_content_key, JSON.stringify(newSectionData));
18372
18373                                const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString();
18374                                browserStorage.setItem(private_content_expire_key, expiresAt);
18375
18376                                const newCookieVersion = hyva.getCookie(private_content_version_key);
18377                                browserStorage.setItem(private_content_version_key, newCookieVersion);
18378
18379                                // We don't need the section_data_ids in Hyvä, but we store them for compatibility
18380                                // with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout
18381                                hyva.setCookie(
18382                                    section_data_ids_key,
18383                                    JSON.stringify(
18384                                        Object.keys(data).reduce((sectionDataIds, sectionKey) => {
18385                                            sectionDataIds[sectionKey] = data[sectionKey]['data_id'];
18386                                            return sectionDataIds;
18387                                        }, {})
18388                                    ),
18389                                    false,
18390                                    true
18391                                );
18392                            } catch (error) {
18393                                console.warn("Couldn't store privateContent", error);
18394                            }
18395                        }
18396                    }
18397                );
18398        }
18399    }
18400</script>
vendor: 1 bytes, line 18400
18400
18401<script>
18402    (() => {
18403        document.addEventListener('submit', event => event.target.action = event.target.action.replace('%25uenc%25', hyva.getUenc()));
18404    })()
18405</script>
vendor: 1 bytes, line 18405
18405
18406<script>
18407    (events => {
18408        const dispatchUserInteractionEvent = () => {
18409            events.forEach(type => window.removeEventListener(type, dispatchUserInteractionEvent))
18410            window.dispatchEvent(new Event('init-external-scripts'))
18411        };
18412        events.forEach(type => window.addEventListener(type, dispatchUserInteractionEvent, {once: true, passive: true}))
18413    })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown'])
18414</script>
18414
18415<style>
18416[data-bv-show=inline_rating] .bv_sub_container .bv_numReviews_component_container .bv_text{margin: -2px 0 0 0 !important;display: flex !important;}
18417@media(max-width: 767px){
18418[data-bv-show=inline_rating] .bv_sub_container .bv_numReviews_component_container .bv_text{margin: 4px 0 0 0 !important;}
18419}
18420@media screen and (min-width: 768px) and (max-width: 1440px) {
18421    .product-item .product-info .price-box .price-container .price-wrapper span.price{font-size: 18px !important;}
18422    .product-item .product-info .price-box .price-container .price-wrapper{font-size: 18px;}
18423}
18424@media(max-width: 1550px){
18425.products__recommendations .product-slider .glider-track .recommended-slider-item{min-width:auto;}
18426}
18427.page-products .spot-light .catergory_slider_content{border-radius: 10px;}
18428.page-header .panel.wrapper .header_top .header_left_notification a.email_icon:before{background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="%2315324c" version="1.1" id="Capa_1" width="800px" height="800px" viewBox="0 0 388.424 388.424" xml:space="preserve"><g><path d="M384.202,59.111H4.209C1.888,59.111,0,61,0,63.33v261.766c0,2.33,1.888,4.217,4.209,4.217h379.993 c2.317,0,4.222-1.887,4.222-4.217V63.33C388.424,61,386.52,59.111,384.202,59.111z M319.937,92.888L194.212,185.09L68.485,92.888 H319.937z M354.647,295.535H33.779V109.328l157.935,115.82c1.494,1.089,3.508,1.089,5.004,0l157.934-115.82v186.207H354.647z"/></g></svg>');background-size: 22px 22px;}
18429@media(max-width: 767px){
18430.page-products .spot-light .catergory_slider_content .product-info{padding-left: 0 !important;padding-right: 0px !important;}
18431}
18432.page-products .spot-light .spot-bottom .order_btn{height: 35px;width: auto;color: rgb(255 255 255 / var(--tw-text-opacity))  !important;background: #296497 !important;border-radius: .375rem;padding: 0 1.25rem !important;text-align: center;text-decoration: none !important;    vertical-align: middle;font-size: .75rem;line-height: 1rem;font-weight: 400;transition-duration: .15s;line-height: 35px;display: block;
18433}
18434.page-products .spot-light .spot-bottom .order_btn:hover{background: #15324c  !important;transition-duration: .15s;}
18435.page-products .spot-light .catergory_slider_content .color_counts .color_count{font-size: 12px;color: rgb(127 127 127 / var(--tw-text-opacity)}
18436
18437
18438.category-top-filter .pagebuilder-column h3 span, .category-top-filter .pagebuilder-column h3 span a, .category-top-filter .pagebuilder-column h3 a{display: block;}
18439.checkout-payment-method .payment-method .payment-method-title.field.choice input#paypal_express+label {display: block;}
18440.catalog-product-view .product-info-main .color_swatches .swatch-attribute-options .select_none.swatch-option{display: none;}
18441@media(min-width: 768px){
18442   .checkout-cart-index #shopping-cart-table .cart.item .item-info td.col.item{flex-wrap: nowrap;}
18443}
18444@media(min-width: 1500px){
18445    .checkout-cart-index #shopping-cart-table .col.qty{min-width: 169px;max-width: 169px;width: 169px;}
18446}
18447@media only screen and (max-width: 1340px) and (min-width: 1000px){
18448    .checkout-cart-index #maincontent #shopping-cart-table .product-item-details{max-width: 40%;}
18449}
18450</style>
18451<script>
18452document.addEventListener('DOMContentLoaded', function() {
18453  if (window.innerWidth <= 767) {
18454    document.querySelectorAll('.page-with-filter.page-products .sidebar .filter-content .card .filter-options-title').forEach(function(title) {
18455      const span = title.querySelector('span');
18456      if (span && span.textContent.trim().includes('Revenue Ranking')) {
18457        const parentCard = title.closest('.card');
18458        if (parentCard && !parentCard.id) {
18459          parentCard.id = 'filter-id-revenue_ranking';
18460        }
18461      }
18462    });
18463  }
18464});
18465</script>
18465
18466<style>
18467.page-with-filter.page-products .sidebar .filter-content .card#filter-id-revenue_ranking{display: none;}
18468.checkout-index-index .kl_sms_phone_number-field{margin-bottom: 20px;}
18469@media(min-width: 768px){
18470 .catalog-product-view .modal.order-free-sample-popup .right .order-free-sample-prod-info .product-info:after{right: -10px;top: -10px;}
18471}
18472@media(max-width: 767px){
18473  .catalog-product-view .order-free-sample-popup .border .product-info:after{left: 35px;}
18474}
18475.checkout-index-index .notification4 {display: none}
18476   #related_cart_slider .js_slides{margin-right: 0;margin-left: 0;}
18477</style>
18478<script>
18479    function initConfigurableOptions(productId, optionConfig) {
18480
18481        function findPathParam(key) {
18482                        const baseUrl = (BASE_URL.substr(0, 2) === '//' ? 'http:' : '') + BASE_URL;
18483            const baseUrlParts = (new URL(baseUrl)).pathname.replace(/\/$/, '').split('/');
18484            const pathParts = window.location.pathname.split('/').slice(baseUrlParts.length + 3);
18485            for (let i = 0; i < pathParts.length; i += 2) {
18486                if (pathParts[i] === key && pathParts.length > i) {
18487                    return pathParts[i + 1];
18488                }
18489            }
18490        }
18491
18492        return {
18493            optionConfig,
18494            productId,
18495            attributeCode:'',
18496            itemId: (new URLSearchParams(window.location.search)).get('id') || findPathParam('id'),
18497            ssrGalleryChildId: 0,
18498            allowedAttributeOptions: [],
18499            selectedValues: [],
18500            init() {
18501                this.checkIsFirst();
18502                this.findAllowedAttributeOptions();
18503                this.$nextTick(() => {
18504                    if (typeof this.optionConfig.defaultValues === 'object') {
18505                        for (const [optionId, value] of Object.entries(this.optionConfig.defaultValues)) {
18506                            this.changeOption(optionId, value + '');
18507                        }
18508                    }
18509                });
18510            },
18511            checkIsFirst() {
18512                this.isLoadedFirst = true;
18513                setTimeout(() => {
18514                    this.isLoadedFirst = false;
18515                }, "3000");
18516            },
18517            findSimpleIndex() {
18518                                this.productIndex = this.calculateSimpleIndexForPartialSelection(this.selectedValues);
18519            },
18520            calculateSimpleIndexForPartialSelection(selectedValues) {
18521                if (selectedValues.length === 0) return 0;
18522                let productIndexIds = Object.keys(this.optionConfig.index);
18523                Object.keys(this.optionConfig.attributes).forEach((attribute) => {
18524                                        const productsWithAttributeMatch = selectedValues[attribute]
18525                        ? productIndexIds.filter((productIndex) => {
18526                            return this.optionConfig.index[productIndex][attribute] === this.selectedValues[attribute]
18527                        })
18528                        : [];
18529
18530                                        productIndexIds = productsWithAttributeMatch.length ? productsWithAttributeMatch : productIndexIds
18531                })
18532                return productIndexIds[0];
18533            },
18534            calculateSimpleIndexForFullSelection(selectedValues) {
18535                const productIndexes = this.optionConfig.index;
18536                return Object.keys(productIndexes).find(productIndex => {
18537                    const productCandidateOptions = productIndexes[productIndex];
18538
18539                    for (const productOption in productCandidateOptions) {
18540                        if (
18541                            ! selectedValues[productOption] ||
18542                            selectedValues[productOption] !== productCandidateOptions[productOption]
18543                        ) {
18544                            return false;
18545                        }
18546                    }
18547                    return productIndex;
18548                });
18549            },
18550            productIndex: 0,
18551            findAllowedAttributeOptions() {
18552                                this.allowedAttributeOptions = this.calculateAllowedAttributeOptions(this.selectedValues);
18553            },
18554            calculateAllowedAttributeOptions(selectedValues) {
18555                const allAttributes = this.optionConfig.attributes;
18556                const allAttributesSorted = Object.values(allAttributes).sort((a,b) => {
18557                    return a.position - b.position
18558                });
18559
18560                const selectionWithoutAttr = attrId => {
18561                                        return Object.keys(selectedValues).reduce((acc, id) => {
18562                        if (id !== attrId) acc[id] = selectedValues[id];
18563                        return acc;
18564                    }, {})
18565                }
18566
18567                const newAllowedAttributeOptions = [];
18568
18569                allAttributesSorted.forEach(attribute => {
18570                    const availableIndexes = this.calculateAvailableProductIndexes(selectionWithoutAttr(attribute.id));
18571					if (attribute?.code === 'incstores_pim_color_axis') {
18572					    newAllowedAttributeOptions[attribute.id] =
18573						    allAttributes[attribute.id].options
18574							    .filter(option => {
18575                                    return !!option.products.find(product => availableIndexes.includes(product));
18576                                })
18577							    .sort((a, b) => {
18578								    const cheapestA = this.findCheapestProductForPartialSelectionForSort({
18579									    ...selectedValues,
18580									    [attribute.id]: a.id
18581								    });
18582
18583								    const cheapestB = this.findCheapestProductForPartialSelectionForSort({
18584									    ...selectedValues,
18585									    [attribute.id]: b.id
18586								    });
18587
18588								    if (!cheapestA && !cheapestB) return 0;
18589								    if (!cheapestA) return 1;
18590								    if (!cheapestB) return -1;
18591
18592								    const priceA = this.optionConfig.optionPrices[cheapestA].customPrice.amount;
18593                                    const priceB = this.optionConfig.optionPrices[cheapestB].customPrice.amount;
18594
18595								    return priceA - priceB;
18596							    });
18597					} else {
18598                    newAllowedAttributeOptions[attribute.id] = allAttributes[attribute.id].options.filter(option => {
18599                        return !!option.products.find(product => {
18600                            //====== For Custom Design link - fetch child product id on page load  START ======
18601                            if(document.querySelector('input[name="selected_option_child_id"]')){
18602                                if(document.querySelector('input[name="selected_option_child_id"]').value == ''){
18603                                    document.querySelector('input[name="selected_option_child_id"]').value = product;
18604                                }
18605                            }
18606                            //====== For Custom Design link - fetch child product id on page load END ======
18607                            return availableIndexes.includes(product);
18608                        })
18609                    });
18610                    }
18611                });
18612                return newAllowedAttributeOptions;
18613            },
18614            calculateAvailableProductIndexes(selectedOptions) {
18615                if (Object.keys(selectedOptions).length === 0) {
18616                                        return Object.keys(this.optionConfig.index);
18617                }
18618
18619                                const selectedIds = Object.keys(selectedOptions);
18620                if (Object.values(this.optionConfig.salable || {}).length) {
18621                                        const selectedOptionIndexes = selectedIds.map(attrId => {
18622                        const optionValue = selectedOptions[attrId];
18623                        return this.optionConfig.salable[attrId] && this.optionConfig.salable[attrId][optionValue] || []
18624                    })
18625                                        return selectedOptionIndexes.reduce((acc, optionIndexes) => {
18626                        return acc.filter(index => optionIndexes.includes(index));
18627                    });
18628                } else {
18629                                        const productIndexes = this.optionConfig.index;
18630                    return Object.keys(productIndexes).filter(index => {
18631                        return selectedIds.find(
18632                                                attrId => productIndexes[index][attrId] === `${selectedOptions[attrId]}`
18633                                                )
18634                    });
18635                }
18636            },
18637            findAttributeByOptionId(optionId) {
18638                for (const attributeId in this.optionConfig.attributes) {
18639                    const attributeOptions = this.optionConfig.attributes[attributeId].options || [];
18640                    if (attributeOptions.find(option => option.id === optionId)) {
18641                        return attributeId;
18642                    }
18643                }
18644            },
18645            getAllowedAttributeOptions(attributeId) {
18646                return this.allowedAttributeOptions[attributeId] || []
18647            },
18648            getProductIdsForOption(option) {
18649                const attributeId = this.findAttributeByOptionId(option.id);
18650                const allOptions = this.optionConfig.attributes[attributeId];
18651                const opt = (allOptions && allOptions.options || []).find(o => o.id === option.id);
18652                return opt && opt.products
18653                    ? opt.products
18654                    : [];
18655            },
18656            findProductIdsForPartialSelection(optionSelection) {
18657                const candidateProducts = Object.values(optionSelection).reduce((candidates, optionId) => {
18658                    const newCandidates = this.getProductIdsForOption({id: optionId});
18659                    return candidates === null
18660                        ? newCandidates
18661                        : candidates.filter(productId => newCandidates.includes(productId));
18662                }, null);
18663                return candidateProducts || [];
18664            },
18665            findCheapestProductForPartialSelection(optionSelection) {
18666                const candidateProducts = this.findProductIdsForPartialSelection(optionSelection);
18667                return candidateProducts.reduce((cheapest, simpleIdx) => {
18668                    // in the first iteration we start with simpleIdx as the currently cheapest product
18669                    if (! this.optionConfig.optionPrices[cheapest]) return simpleIdx;
18670                    const knownCheapestPrice = this.optionConfig.optionPrices[cheapest].finalPrice.amount;
18671                    return knownCheapestPrice > this.optionConfig.optionPrices[simpleIdx].finalPrice.amount
18672                        ? simpleIdx
18673                        : cheapest;
18674                }, 0)
18675            },
18676			findCheapestProductForPartialSelectionForSort(optionSelection) {
18677                const candidateProducts = this.findProductIdsForPartialSelection(optionSelection);
18678                return candidateProducts.reduce((cheapest, simpleIdx) => {
18679                    // in the first iteration we start with simpleIdx as the currently cheapest product
18680                    if (! this.optionConfig.optionPrices[cheapest]) return simpleIdx;
18681                    const knownCheapestPrice = this.optionConfig.optionPrices[cheapest].customPrice.amount;
18682                    return knownCheapestPrice > this.optionConfig.optionPrices[simpleIdx].customPrice.amount
18683                        ? simpleIdx
18684                        : cheapest;
18685                }, 0)
18686            },
18687            findProductIdToUseForOptionPrice(option) {
18688                // try to find a product for a complete selection
18689                const attributeId = this.findAttributeByOptionId(option.id);
18690                const optionSelection = Object.assign({}, this.selectedValues, {[attributeId]: option.id});
18691                const matchingSimpleIndex = this.calculateSimpleIndexForFullSelection(optionSelection);
18692                // if there is no complete selection, use the cheapest product for the option
18693                return matchingSimpleIndex || this.findCheapestProductForPartialSelection(optionSelection);
18694            },
18695            getAttributeOptionLabel(option) {
18696                const optionProduct = this.findProductIdToUseForOptionPrice(option);
18697                if ((! optionProduct) || (optionProduct === this.productIndex)) {
18698                    return option.label;
18699                }
18700
18701                const currentPrice = this.getOptionPriceAdjustmentBasePrice();
18702
18703                if (this.optionConfig.optionPrices[optionProduct]) {
18704                    const optionPrice = this.optionConfig.optionPrices[optionProduct].finalPrice.amount;
18705                    if (optionPrice !== currentPrice){
18706                        return option.label + ' ' + hyva.formatPrice(optionPrice - currentPrice, true);
18707                    }
18708                }
18709                return option.label;
18710            },
18711            getOptionPriceAdjustmentBasePrice() {
18712                if (this.optionConfig.optionPrices[this.productIndex]) {
18713                    return this.optionConfig.optionPrices[this.productIndex].finalPrice.amount
18714                }
18715                const cheapestForSelection = this.findCheapestProductForPartialSelection(this.selectedValues);
18716                return this.optionConfig.optionPrices[cheapestForSelection]
18717                    ? this.optionConfig.optionPrices[cheapestForSelection].finalPrice.amount
18718                    : this.optionConfig.prices.finalPrice.amount; // default price if no option selection
18719            },
18720            changeOption(optionId, value) {
18721                if (value !== ''
18722                    && typeof this.optionIsEnabled === 'function'
18723                    && !this.optionIsEnabled(optionId, value)) {
18724                    return;
18725                }
18726                var checkbox = document.getElementById('overage_percent');
18727                if(checkbox){
18728                    checkbox.checked = true; // Check the checkbox
18729                }
18730                var galleryImgOpacity = document.querySelector('#gallery .prod_slider img.first-image');
18731                if (galleryImgOpacity) {
18732                    galleryImgOpacity.classList.add('opacity-0');
18733                }
18734                if (value === '') {
18735                    // create new array so the length property is reset if no option is selected (avoiding delete)
18736                    this.selectedValues = this.selectedValues.reduce((newSelection, val, opt) => {
18737                        if (opt !== optionId) {
18738                            newSelection[opt] = val;
18739                        }
18740                        return newSelection;
18741                    }, []);
18742                } else {
18743                    const currentUrl = window.location.href;
18744                    // Create a URL object
18745                    const url = new URL(currentUrl);
18746                    // Use searchParams to get the color option
18747                    const colorOption = url.searchParams.get('color-option');
18748                    const variantOption = url.searchParams.get('variant-option');
18749                    if(colorOption!==null && variantOption!==null){
18750                        if(this.optionConfig.attributes[optionId]['code'] == 'incstores_pim_color_axis')
18751                        {
18752                            this.selectedValues[optionId] = colorOption;
18753                        }
18754                        if(this.optionConfig.attributes[optionId]['code'] == 'incstores_pim_variant_axis')
18755                        {
18756                            this.selectedValues[optionId] = variantOption;
18757                        }
18758                    }
18759                    else if(colorOption!==null){
18760                        if(this.optionConfig.attributes[optionId]['code'] == 'incstores_pim_color_axis')
18761                        {
18762                            this.selectedValues[optionId] = colorOption;
18763                        }
18764
18765                    }
18766                    else if(this.isLoadedFirst == true && (0 > 0 || 0 > 0))
18767                    {
18768                        if(this.optionConfig.attributes[optionId]['code'] == 'incstores_pim_color_axis')
18769                        {
18770                            this.selectedValues[optionId] = '0';
18771                        }
18772                        if(this.optionConfig.attributes[optionId]['code'] == 'incstores_pim_variant_axis')
18773                        {
18774                            this.selectedValues[optionId] = '0';
18775                        }
18776                    }
18777                    else
18778                    {
18779                        this.selectedValues[optionId] = value;
18780                    }
18781
18782                    var addToCartButton = document.querySelector('.pdp-addtocart-btn');
18783                    if (addToCartButton) {
18784                        if (!addToCartButton.classList.contains('pointer-events-none')) {
18785                            addToCartButton.classList.add('pointer-events-none');
18786                            addToCartButton.classList.add('opacity-50');
18787                        }
18788                    }
18789
18790                    var productId = this.findProductIdsForPartialSelection(this.selectedValues)[0];
18791                    var baseUrl = "https://www.flooringinc.com/";
18792					
18793					if (typeof productId === 'undefined') {
18794					   let attributeCode = this.optionConfig.attributes[optionId]['code'];
18795					   setTimeout(() => {
18796						   if (attributeCode == 'incstores_pim_color_axis') {
18797							if (typeof this.autoSelectCompatibleOtherOption === 'function') {
18798								this.autoSelectCompatibleOtherOption(optionId);
18799							}
18800						} else if (attributeCode == 'incstores_pim_variant_axis'
18801                            || attributeCode == 'product_option') {
18802							if (typeof this.autoSelectCompatibleColorOption === 'function') {
18803								this.autoSelectCompatibleColorOption(optionId);
18804							}
18805						}
18806                    }, 300);
18807					} else {
18808                    var fetchUrl = baseUrl+'customattribute/index/index/productId/'+productId;
18809
18810                    fetch(fetchUrl)
18811                    .then(response => response.json())
18812                    .then(data => {
18813
18814                        if (document.getElementById('dimensions-attributes')) {
18815                            document.getElementById('dimensions-attributes').innerHTML= data.detailsHtml.dimensionsHtml;
18816                        }
18817
18818                        if (document.getElementById('details-attributes')) {
18819                            document.getElementById('details-attributes').innerHTML= data.detailsHtml.productDetails;
18820                        }
18821
18822                        if (document.getElementById('ship-to-text')) {
18823                            document.getElementById('ship-to-text').value= data.shipToText;
18824                        }
18825
18826                        var addToCartButton = document.querySelector('.pdp-addtocart-btn');
18827                        if (addToCartButton) {
18828                            addToCartButton.classList.remove('pointer-events-none');
18829                            addToCartButton.classList.remove('opacity-50');
18830                        }
18831                    })
18832                    .catch(error => {
18833                        console.log(error);
18834                    });
18835					}
18836
18837                }
18838                this.findSimpleIndex();
18839                this.findAllowedAttributeOptions();
18840                this.updateCalculatorType();// custom coding
18841                this.updateMinRollcut();// custom coding
18842                this.updateMaxRollLengthRestriction();// custom coding
18843                this.updateTileSizeArea(); // custom coding
18844                this.updateExactWidth(); // custom coding
18845                this.updateExactLength(); // custom coding
18846                this.updateExactHeight(); // custom coding
18847                this.updateCoveragePerCase(); // custom coding
18848                this.updateTileMinQty(); // custom coding
18849                this.updateShippingDetails(); // custom coding
18850                this.updatePrices();
18851                this.updateSquareFootage();
18852
18853                //If the page loads first time it will stop the gallery change, so configurable product image will display
18854                if (!this.isLoadedFirst) {
18855                    this.updateGallery();
18856                }
18857
18858                //====== For Custom Design link - fetch child product id when option clicked  START ======
18859                if(document.querySelector('input[name="selected_option_child_id"]')){
18860                    document.querySelector('input[name="selected_option_child_id"]').value = this.productIndex;
18861                }
18862                if(document.querySelector('input[name="custom_length"]') && document.getElementById('roll_length')){
18863                    document.querySelector('input[name="custom_length"]').value = document.getElementById('roll_length').value;
18864                }
18865                //====== For Custom Design link - fetch child product id when option clicked END ======
18866                window.dispatchEvent(
18867                    new CustomEvent(
18868                        'configurable-selection-changed',
18869                        {
18870                            detail: {
18871                                productId: this.productId,
18872                                optionId: optionId,
18873                                value: value,
18874                                productIndex: this.productIndex,
18875                                selectedValues: this.selectedValues,
18876                                attributeCode: this.optionConfig.attributes[optionId]['code'],
18877                                candidates: this.findProductIdsForPartialSelection(this.selectedValues),
18878                            }
18879                        }
18880                    )
18881                );
18882
18883                /* =============================== disabled product option checking & remove  START =============== */
18884                if (!this.optionConfig?.ship_region_enabled
18885                    && document.querySelector('.swatch-attribute .selectOptionColor')
18886                ) {
18887                    var quickship_lebel_should_show;
18888                    var quickship_active_color_option_exist = 0;
18889                    setTimeout(() => {
18890                        document.querySelectorAll('.swatch-attribute .selectOptionColor').forEach(function(option_box) {
18891                            if (!option_box.querySelector('div, label')) {
18892                                option_box.remove();
18893                            }
18894                        });
18895
18896                    }, 300);
18897                }
18898                /* ===============================  disabled product option checking & remove END =============== */
18899				
18900				/* ========== remove validation when click on available color start =============== */
18901                if(document.querySelector('.normal_color_swatch_option .selectOptionColor') ){
18902                    setTimeout(() => {
18903                        const colorBoxes = document.querySelectorAll(
18904							'.normal_color_swatch_option .selectOptionColor'
18905						);
18906						var colorNotAvailable = 0;
18907						const colorerrorDiv = document.getElementById('normal-color-swatch-option-error-msg');
18908
18909						colorBoxes.forEach((colorBox) => {
18910							if (colorBox.querySelector('.select_none label.checked')) {
18911								colorNotAvailable = 1;
18912							}
18913						});
18914						if (!colorNotAvailable){
18915							colorerrorDiv.textContent = '';
18916							colorerrorDiv.style.display = 'none';
18917						}
18918
18919                    }, 300);
18920                }
18921                /* ========== remove validation when click on available color end =============== */
18922
18923                /* =============================== color label show / hide if color option not showing  END =============== */
18924
18925                /* =============================== other label show / hide if the option not showing  START =============== */
18926                if (typeof this.syncOtherSwatchOptionVisibility === 'function') {
18927                    this.syncOtherSwatchOptionVisibility();
18928                } else {
18929                    const swatchAttribute = document.querySelector('.swatch-attribute.other_swatch_option');
18930                    if (swatchAttribute) {
18931                        setTimeout(() => {
18932                            const selectOptionColors = swatchAttribute.querySelectorAll('.selectOptionColor');
18933                            if (selectOptionColors.length > 1) {
18934                                swatchAttribute.style.display = 'block';
18935                            } else {
18936                                swatchAttribute.style.display = 'none';
18937                            }
18938                        }, 300);
18939                    }
18940                }
18941                /* =============================== other label show / hide if the option not showing  END =============== */
18942
18943            },
18944            calculateIsMinimalPrice() {
18945                return (
18946                    this.selectedValues.filter(value => !!value).length <
18947                        Object.keys(this.optionConfig.attributes).length
18948                );
18949            },
18950            updatePrices() {
18951                const value = this.productIndex ?
18952                    this.optionConfig.optionPrices[this.productIndex] :
18953                    this.optionConfig.prices;
18954
18955                window.dispatchEvent(
18956                    new CustomEvent(
18957                        "update-prices-" + this.productId,
18958                        {
18959                            detail: Object.assign(
18960                                value,
18961                                {
18962                                    isMinimalPrice: this.calculateIsMinimalPrice(),
18963                                    calculatorType: this.optionConfig?.calculator_type?.[this.productIndex] ?? '',
18964                                    getIncstoresPimCoverage: this.optionConfig?.coverage_per_case?.[this.productIndex] ?? '',
18965                                    unitOfMeasure: this.optionConfig?.unit_of_measure?.[this.productIndex] ?? '',
18966                                    altUnitOfMeasure: this.optionConfig?.alt_unit_of_measure?.[this.productIndex] ?? 'sqft',
18967                                    availableQuantity: this.optionConfig?.available_quantity?.[this.productIndex] ?? '',
18968                                }
18969                            )
18970                        }
18971                    )
18972                );
18973                setTimeout(() => {
18974                    var calculatorType = this.optionConfig.calculator_type[this.productIndex];
18975                    var priceElement = document.querySelector('div.items-baseline .final-price .price');
18976                    
18977                    if (priceElement && calculatorType != 'none' && calculatorType != 'pre_cut_roll') {
18978                        var customOptionPrice = priceElement.childNodes[0].nodeValue.trim();
18979                        let priceLabelElement = document.querySelector('.final-price .price-label');
18980                        var priceLabel = "";
18981
18982                        if (priceLabelElement) {
18983                            priceLabel = priceLabelElement.textContent.trim();
18984                        }
18985
18986                        document.querySelectorAll('.display-option-price').forEach(el => {
18987                            el.textContent = "("+customOptionPrice+priceLabel+")";
18988                        });
18989                    } else if (calculatorType == 'none') {
18990                        //None type
18991                        var priceElement = document.querySelector('.none .final-price .price');
18992                        var customOptionPrice = "";
18993
18994                        if (priceElement) {
18995                            customOptionPrice = priceElement.childNodes[0].nodeValue.trim();
18996                        }
18997                        document.querySelectorAll('.display-option-price').forEach(el => {
18998                            el.textContent = "("+customOptionPrice+")";
18999                        });
19000                    } else if (calculatorType == 'pre_cut_roll') {
19001						let priceLabelElement = document.querySelector('.final-price .price-label');
19002                        var priceLabel = "";
19003
19004                        if (priceLabelElement) {
19005                            priceLabel = priceLabelElement.textContent.trim();
19006                        }
19007                        var priceElement = document.querySelector('.pre_cut_roll .final-price .price');
19008                        var customOptionPrice = "";
19009
19010                        if (priceElement) {
19011                            customOptionPrice = priceElement.childNodes[0].nodeValue.trim();
19012                        }
19013                        document.querySelectorAll('.display-option-price').forEach(el => {
19014                            el.textContent = "("+customOptionPrice+priceLabel+")";
19015                        });
19016                    }
19017                }, "500");
19018            },
19019            updateTileSizeArea() {
19020                const overage_percent = this.optionConfig.overage_percent[this.productIndex];
19021                const coverage_per_case = this.optionConfig.coverage_per_case[this.productIndex];
19022                const exact_width = this.optionConfig.exact_width[this.productIndex];
19023                const exact_length = this.optionConfig.exact_length[this.productIndex];
19024                window.dispatchEvent(
19025                    new CustomEvent(
19026                        "update-tile-size-area-" + this.productId,
19027                        {
19028                            detail: {
19029                            overage_percent: overage_percent,
19030                            coverage_per_case: coverage_per_case,
19031                            exact_width: exact_width,
19032                            exact_length: exact_length,
19033                            calculator_type: this.optionConfig.calculator_type[this.productIndex],
19034                            }
19035                        }
19036                    )
19037                );
19038            },
19039            updateExactWidth() {
19040                const exact_width = this.optionConfig.exact_width[this.productIndex];
19041                window.dispatchEvent(
19042                    new CustomEvent(
19043                        "update-exact-width-" + this.productId,
19044                        {detail: exact_width}
19045                    )
19046                );
19047            },
19048            updateExactLength() {
19049                const exact_length = this.optionConfig.exact_length[this.productIndex];
19050                window.dispatchEvent(
19051                    new CustomEvent(
19052                        "update-exact-length-" + this.productId,
19053                        {detail: exact_length}
19054                    )
19055                );
19056            },
19057            updateExactHeight() {
19058                const exact_height = this.optionConfig.exact_height[this.productIndex];
19059                window.dispatchEvent(
19060                    new CustomEvent(
19061                        "update-exact-height-" + this.productId,
19062                        {detail: exact_height}
19063                    )
19064                );
19065            },
19066            updateCoveragePerCase() {
19067                const coverage_per_case = this.optionConfig.coverage_per_case[this.productIndex];
19068                //const tile_size_area = "";
19069                window.dispatchEvent(
19070                    new CustomEvent(
19071                        "update-coverage-per-case-" + this.productId,
19072                        {detail: coverage_per_case}
19073                    )
19074                );
19075            },
19076            updateTileMinQty() {
19077                const min_tile_quantity = this.optionConfig.min_tile_quantity[this.productIndex];
19078                window.dispatchEvent(
19079                    new CustomEvent(
19080                        "update-min-tile-quantity-" + this.productId,
19081                        {detail: min_tile_quantity}
19082                    )
19083                );
19084            },
19085			getAttributeIdByCode(attributeCode) {
19086                let attributes = this.optionConfig.attributes;
19087
19088				for (let id in attributes) {
19089					if (attributes[id].code === attributeCode) {
19090						return id;
19091					}
19092				}
19093
19094				return null;
19095            },
19096            updateCalculatorType() {
19097                const has_corner_border_center = this.optionConfig.has_corner_border_center[this.productIndex];
19098                const calculator_type = this.optionConfig.calculator_type[this.productIndex];
19099                if(calculator_type == 'sqft' && has_corner_border_center !=1){
19100                    var cbcelements = document.querySelectorAll('.cbc');
19101                    cbcelements.forEach(function(element) {
19102                    element.style.display = 'none';
19103                    });
19104                    var noneelements = document.querySelectorAll('.none');
19105                    noneelements.forEach(function(element) {
19106                    element.style.display = 'none';
19107                    });
19108                    var rollelements = document.querySelectorAll('.roll');
19109                    rollelements.forEach(function(element) {
19110                    element.style.display = 'none';
19111                    });
19112                    var cbcelements = document.querySelectorAll('.case');
19113                    cbcelements.forEach(function(element) {
19114                    element.style.display = 'none';
19115                    });
19116                    var elements = document.querySelectorAll('.sqft');
19117                    elements.forEach(function(element) {
19118                    element.style.display = 'block';
19119                    });
19120
19121                    var elements = document.querySelectorAll('.pre_cut_roll');
19122                    elements.forEach(function(element) {
19123                    element.style.display = 'none';
19124                    });
19125                    const button = document.getElementById("product-addtocart-button-fake");
19126                    if (button && button.getAttribute("data-flooring-handler") !== "addToCartClickVerify") {
19127                        button.setAttribute("data-flooring-handler", "addToCartClickVerify");
19128                    }
19129                } else if(calculator_type == 'sqft' && has_corner_border_center ==1){
19130                    var sqftelements = document.querySelectorAll('.sqft');
19131                    sqftelements.forEach(function(element) {
19132                    element.style.display = 'none';
19133                    });
19134                    var caseelements = document.querySelectorAll('.case');
19135                    caseelements.forEach(function(element) {
19136                    element.style.display = 'none';
19137                    });
19138                    var rollelements = document.querySelectorAll('.roll');
19139                    rollelements.forEach(function(element) {
19140                    element.style.display = 'none';
19141                    });
19142                    var noneelements = document.querySelectorAll('.none');
19143                    noneelements.forEach(function(element) {
19144                    element.style.display = 'none';
19145                    });
19146                    var elements = document.querySelectorAll('.cbc');
19147                    elements.forEach(function(element) {
19148                    element.style.display = 'block';
19149                    });
19150                    var elements = document.querySelectorAll('.price-details .sqft');
19151                    elements.forEach(function(element) {
19152                    element.style.display = 'none';
19153                    });
19154
19155                    var elements = document.querySelectorAll('.pre_cut_roll');
19156                    elements.forEach(function(element) {
19157                    element.style.display = 'none';
19158                    });
19159                    const button = document.getElementById("product-addtocart-button-fake");
19160                    if (button && button.getAttribute("data-flooring-handler") !== "addToCartClickVerify") {
19161                        button.setAttribute("data-flooring-handler", "addToCartClickVerify");
19162                    }
19163                }else if(calculator_type == 'case'){
19164                    var sqftelements = document.querySelectorAll('.sqft');
19165                    sqftelements.forEach(function(element) {
19166                    element.style.display = 'none';
19167                    });
19168                    var cbcelements = document.querySelectorAll('.cbc');
19169                    cbcelements.forEach(function(element) {
19170                    element.style.display = 'none';
19171                    });
19172                    var noneelements = document.querySelectorAll('.none');
19173                    noneelements.forEach(function(element) {
19174                    element.style.display = 'none';
19175                    });
19176                    var rollelements = document.querySelectorAll('.roll');
19177                    rollelements.forEach(function(element) {
19178                    element.style.display = 'none';
19179                    });
19180                    var elements = document.querySelectorAll('.case');
19181                    elements.forEach(function(element) {
19182                    element.style.display = 'block';
19183                    });
19184
19185                    var elements = document.querySelectorAll('.pre_cut_roll');
19186                    elements.forEach(function(element) {
19187                    element.style.display = 'none';
19188                    });
19189                    const button = document.getElementById("product-addtocart-button-fake");
19190                    if (button && button.getAttribute("data-flooring-handler") !== "addToCartClickVerify") {
19191                        button.setAttribute("data-flooring-handler", "addToCartClickVerify");
19192                    }
19193                } else if(calculator_type == 'roll'){
19194                    var sqftelements = document.querySelectorAll('.sqft');
19195                    sqftelements.forEach(function(element) {
19196                    element.style.display = 'none';
19197                    });
19198                    var cbcelements = document.querySelectorAll('.cbc');
19199                    cbcelements.forEach(function(element) {
19200                    element.style.display = 'none';
19201                    });
19202                    var caseelements = document.querySelectorAll('.case');
19203                    caseelements.forEach(function(element) {
19204                    element.style.display = 'none';
19205                    });
19206                    var noneelements = document.querySelectorAll('.none');
19207                    noneelements.forEach(function(element) {
19208                    element.style.display = 'none';
19209                    });
19210                    var elements = document.querySelectorAll('.roll');
19211                    elements.forEach(function(element) {
19212                    element.style.display = 'block';
19213                    });
19214                    const button = document.getElementById("product-addtocart-button-fake");
19215                    if (button && button.getAttribute("data-flooring-handler") !== "addToCartClickVerify") {
19216                        button.setAttribute("data-flooring-handler", "addToCartClickVerify");
19217                    }
19218
19219                    var elements = document.querySelectorAll('.pre_cut_roll');
19220                    elements.forEach(function(element) {
19221                    element.style.display = 'none';
19222                    });
19223                } else if(calculator_type == 'pre_cut_roll'){
19224                    var sqftelements = document.querySelectorAll('.sqft');
19225                    sqftelements.forEach(function(element) {
19226                        element.style.display = 'none';
19227                    });
19228                    var cbcelements = document.querySelectorAll('.cbc');
19229                    cbcelements.forEach(function(element) {
19230                        element.style.display = 'none';
19231                    });
19232                    var caseelements = document.querySelectorAll('.case');
19233                    caseelements.forEach(function(element) {
19234                        element.style.display = 'none';
19235                    });
19236                    var noneelements = document.querySelectorAll('.none');
19237                    noneelements.forEach(function(element) {
19238                        element.style.display = 'none';
19239                    });
19240                    var elements = document.querySelectorAll('.roll');
19241                    elements.forEach(function(element) {
19242                        element.style.display = 'none';
19243                    });
19244                    var elements = document.querySelectorAll('.pre_cut_roll');
19245                    elements.forEach(function(element) {
19246                        element.style.display = 'block';
19247                    });
19248                    const button = document.getElementById("product-addtocart-button-fake");
19249                    if (button && button.getAttribute("data-flooring-handler") !== "addToCartClickforPreCutRoll") {
19250                        button.setAttribute("data-flooring-handler", "addToCartClickforPreCutRoll");
19251                    }
19252                } else {
19253                    var sqftelements = document.querySelectorAll('.sqft');
19254                    sqftelements.forEach(function(element) {
19255                        element.style.display = 'none';
19256                    });
19257                    var cbcelements = document.querySelectorAll('.cbc');
19258                    cbcelements.forEach(function(element) {
19259                        element.style.display = 'none';
19260                    });
19261                    var caseelements = document.querySelectorAll('.case');
19262                    caseelements.forEach(function(element) {
19263                        element.style.display = 'none';
19264                    });
19265                    var rollelements = document.querySelectorAll('.roll');
19266                    rollelements.forEach(function(element) {
19267                        element.style.display = 'none';
19268                    });
19269                    var cbcelements = document.querySelectorAll('.case');
19270                    cbcelements.forEach(function(element) {
19271                        element.style.display = 'none';
19272                    });
19273                    var elements = document.querySelectorAll('.none');
19274                    elements.forEach(function(element) {
19275                        element.style.display = 'block';
19276                    });
19277                    const noneButton = document.getElementById("product-addtocart-button-fake");
19278                    if (noneButton && noneButton.getAttribute("data-flooring-handler") !== "addToCartClickforNone") {
19279                        noneButton.setAttribute("data-flooring-handler", "addToCartClickforNone");
19280                    }
19281
19282                    var elements = document.querySelectorAll('.pre_cut_roll');
19283                    elements.forEach(function(element) {
19284                        element.style.display = 'none';
19285                    });
19286                }
19287            },
19288           updateMinRollcut() {
19289                const min_rollcut = this.optionConfig.min_rollcut[this.productIndex];
19290				var exactlength = '';
19291                window.dispatchEvent(
19292                    new CustomEvent(
19293                        "update-min-rollcut-" + this.productId,
19294                        {detail: min_rollcut}
19295                    )
19296                );
19297            },
19298
19299            updateMaxRollLengthRestriction() {
19300                const max_roll_length_restriction = this.optionConfig.max_roll_length_restriction[this.productIndex];
19301                const exact_width = this.optionConfig.exact_width[this.productIndex];
19302                const exact_length = this.optionConfig.exact_length[this.productIndex];
19303                const min_rollcut = this.optionConfig.min_rollcut[this.productIndex];
19304
19305                window.dispatchEvent(
19306                    new CustomEvent(
19307                        "update-max-roll-length-restriction-" + this.productId,
19308                        {
19309                            detail: {
19310                            max_roll_length_restriction: max_roll_length_restriction,
19311                            min_rollcut: min_rollcut,
19312                            exact_width: exact_width,
19313                            exact_length: exact_length,
19314                            }
19315                        }
19316                    )
19317                );
19318            },
19319            updateShippingDetails() {
19320                const pdp_shipping_text = this.optionConfig.pdp_shipping_text[this.productIndex];
19321                const expected_days_ship = this.optionConfig.expected_days_ship[this.productIndex];
19322                window.dispatchEvent(
19323                    new CustomEvent(
19324                        "update-shipping-details-" + this.productId,
19325                        {
19326                            detail: {
19327                            pdp_shipping_text: pdp_shipping_text,
19328                            expected_days_ship: expected_days_ship,
19329                            }
19330                        }
19331                    )
19332                );
19333            },
19334            updateGallery () {
19335                if (this.isLoadedFirst && this.ssrGalleryChildId > 0) {
19336                    return;
19337                }
19338
19339                if (this.productIndex) {
19340                    const images = this.optionConfig.images[this.productIndex];
19341                    images && window.dispatchEvent(new CustomEvent(
19342                        "update-gallery",
19343                        { detail: this.sortImagesByPosition(images) }
19344                    ));
19345                } else {
19346                    window.dispatchEvent(new Event("reset-gallery"));
19347                }
19348            },
19349            updateSquareFootage () {
19350                let squareFootageElement = document.getElementsByName('square_footage');
19351                
19352                if (squareFootageElement.length > 0) {
19353                    var squareFootage = squareFootageElement[0].value;
19354
19355                    if (squareFootage) {
19356                        // Trigger the 'keyup' event
19357                        var event = new KeyboardEvent('keyup', {
19358                            'key': 'Enter', // You can set this to any key, like 'Enter'
19359                            'bubbles': true,
19360                            'cancelable': true
19361                        });
19362
19363                        squareFootageElement[0].dispatchEvent(event);
19364                    }
19365                }
19366            },
19367            sortImagesByPosition(images) {
19368                return images.sort((x, y) => {
19369                    return x.position === y.position ? 0 : (parseInt(x.position) > parseInt(y.position) ? 1 : -1)
19370                });
19371            },
19372            onGetCartData(data) {
19373                this.preselectCartItems(data);
19374                this.preselectQuerystringItems();
19375                this.preselectLocationHashItems();
19376            },
19377            preselectCartItems(data) {
19378                // pre-select options based on cart data for current (quote) itemId
19379                const cart = data && data.cart;
19380                if (cart && cart.items) {
19381                    const cartItem = cart.items.find((item) => {
19382                        return (
19383                            item.item_id === this.itemId
19384                            && item.product_id === this.productId
19385                        )
19386                    });
19387                    if (cartItem && cartItem.options && cartItem.options.length) {
19388                        cartItem.options.map(option => {
19389                            this.changeOption(option.option_id, option.option_value);
19390                        })
19391                    }
19392                }
19393            },
19394            preselectQuerystringItems() {
19395                // pre-select option like ?size=167
19396                const urlQueryParams = new URLSearchParams(window.location.search.replace('?',''));
19397                Object.values(this.optionConfig.attributes).map(attribute => {
19398                    urlQueryParams.get(attribute.code) &&
19399                    this.changeOption(attribute.id, urlQueryParams.get(attribute.code));
19400                });
19401            },
19402            preselectLocationHashItems() {
19403                // pre-select option like #144=167
19404                const urlHashParams = new URLSearchParams(window.location.hash.replace('#',''));
19405                Object.values(this.optionConfig.attributes).map(attribute => {
19406                    urlHashParams.get(attribute.id) &&
19407                    this.changeOption(attribute.id, urlHashParams.get(attribute.id));
19408                });
19409            }
19410        }
19411    }
19412
19413    function isOptionVisible(element) {
19414        const computedStyle = window.getComputedStyle(element);
19415        return computedStyle.display !== 'none' && computedStyle.visibility !== 'hidden';
19416    }
19417</script>
vendor: 1 bytes, line 19417
19417
19418<script>
19419    function initCompareOnProductList() {
19420        return {
19421            addToCompare(productId) {
19422                const formKey = hyva.getFormKey();
19423                const postUrl = BASE_URL + 'catalog/product_compare/add/';
19424
19425                fetch(postUrl, {
19426                    "headers": {
19427                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
19428                    },
19429                    "body": "form_key=" + formKey + "&product=" + productId + "&uenc=" + hyva.getUenc(),
19430                    "method": "POST",
19431                    "mode": "cors",
19432                    "credentials": "include"
19433                }).then(function (response) {
19434                    if (response.redirected) {
19435                        window.location.href = response.url;
19436                    }
19437                }).catch(function (error) {
19438                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
19439                        [{
19440                            type: "error",
19441                            text: error
19442                        }], 5000
19443                    );
19444                });
19445            }
19446        };
19447    }
19448</script>
vendor: 1 bytes, line 19448
19448
19449<script>
19450    function initWishlist() {
19451        return {
19452            addToWishlist(productId) {
19453                const formKey = hyva.getFormKey();
19454                const postUrl = BASE_URL + 'wishlist/index/add/';
19455
19456                fetch(postUrl, {
19457                    "headers": {
19458                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
19459                    },
19460                    "body": "form_key=" + formKey + "&product=" + productId + "&uenc=" + hyva.getUenc(),
19461                    "method": "POST",
19462                    "mode": "cors",
19463                    "credentials": "include"
19464                }).then(function (response) {
19465                    if (response.redirected) {
19466                        window.location.href = response.url;
19467                    } else if (response.ok) {
19468                        return response.json();
19469                    } else {
19470                        typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
19471                            [{
19472                                type: "warning",
19473                                text: "Could not add item to wishlist."
19474                            }], 5000
19475                        );
19476                    }
19477                }).then(function (response) {
19478                    if (!response) { return }
19479                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
19480                        [{
19481                            type: (response.success) ? "success" : "error",
19482                            text: (response.success)
19483                                ? "Product has been added to your Wish List."
19484                                : response.error_message
19485                        }], 5000
19486                    );
19487                    const reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data");
19488                    window.dispatchEvent(reloadCustomerDataEvent);
19489                }).catch(function (error) {
19490                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
19491                        [{
19492                            type: "error",
19493                            text: error
19494                        }], 5000
19495                    );
19496                });
19497            }
19498        }
19499    }
19500</script>
vendor: 1 bytes, line 19500
19500
19501<script>
19502    function initSwatchOptions(swatchConfig, swatchLabelValues = null) {
19503        const normalizedSwatchLabelValues = (
19504            swatchLabelValues
19505            && typeof swatchLabelValues === 'object'
19506            && !Array.isArray(swatchLabelValues)
19507        ) ? swatchLabelValues : {};
19508
19509        return {
19510            swatchConfig,
19511            swatchLabelValues: normalizedSwatchLabelValues,
19512            resolveSwatchLabel(attributeId, optionId) {
19513                if (optionId === undefined || optionId === null || optionId === '') {
19514                    return '';
19515                }
19516
19517                const optionKey = String(optionId);
19518                const labels = (
19519                    this.swatchLabelValues
19520                    && typeof this.swatchLabelValues === 'object'
19521                    && !Array.isArray(this.swatchLabelValues)
19522                ) ? this.swatchLabelValues : {};
19523                const flatLabel = labels[optionKey] ?? labels[optionId];
19524                if (flatLabel !== undefined && flatLabel !== null && flatLabel !== '') {
19525                    return String(flatLabel);
19526                }
19527
19528                const attrConfig = this.swatchConfig?.[attributeId] ?? this.swatchConfig?.[String(attributeId)];
19529                const attrLabels = attrConfig?.swatchLabelValues;
19530                if (attrLabels) {
19531                    const attrLabel = attrLabels[optionKey] ?? attrLabels[optionId];
19532                    if (attrLabel !== undefined && attrLabel !== null && attrLabel !== '') {
19533                        return String(attrLabel);
19534                    }
19535                }
19536
19537                const swatchOption = attrConfig?.[optionKey] ?? attrConfig?.[optionId];
19538                if (swatchOption?.label) {
19539                    return String(swatchOption.label);
19540                }
19541
19542                return this.getOptionLabelFromOptionConfig(attributeId, optionId) || '';
19543            },
19544            getAttributeSwatchData(attributeId) {
19545                const attributeKey = String(attributeId);
19546                const rawConfig = this.swatchConfig?.[attributeId] ?? this.swatchConfig?.[attributeKey];
19547                const labels = (
19548                    this.swatchLabelValues
19549                    && typeof this.swatchLabelValues === 'object'
19550                    && !Array.isArray(this.swatchLabelValues)
19551                ) ? this.swatchLabelValues : {};
19552                if (!rawConfig) {
19553                    return {details: {}, swatchLabelValues: labels};
19554                }
19555                const swatchConfig = Object.assign({}, rawConfig);
19556                if (swatchConfig['additional_data']) {
19557                    try {
19558                        swatchConfig['details'] = JSON.parse(swatchConfig['additional_data']);
19559                    } catch (error) {
19560                        swatchConfig['details'] = {};
19561                    }
19562                } else {
19563                    swatchConfig['details'] = swatchConfig['details'] ?? {};
19564                }
19565                swatchConfig['swatchLabelValues'] = labels;
19566
19567                return swatchConfig;
19568            },
19569            getAllAttributeOptions(attributeId) {
19570                return (
19571                    this.optionConfig.attributes[attributeId] &&
19572                    this.optionConfig.attributes[attributeId].options
19573                ) || []
19574            },
19575            optionIsActive(attributeId, optionId) {
19576                const optionKey = String(optionId);
19577                return !!this.getAllowedAttributeOptions(attributeId).find(
19578                    option => String(option.id) === optionKey
19579                );
19580            },
19581            optionIsEnabled(attributeId, optionId) {
19582                const attributeKey = String(attributeId);
19583                const optionKey = String(optionId);
19584                const index = this.optionConfig?.index || {};
19585                for (const productId in index) {
19586                    const productOptions = index[productId] || {};
19587                    if (
19588                        String(productOptions[attributeKey]) === optionKey
19589                        || String(productOptions[attributeId]) === optionKey
19590                    ) {
19591                        return true;
19592                    }
19593                }
19594                const attributeOptions = (
19595                    this.optionConfig?.attributes?.[attributeId]?.options
19596                    || this.optionConfig?.attributes?.[attributeKey]?.options
19597                    || []
19598                );
19599                const match = attributeOptions.find((option) => String(option.id) === optionKey);
19600                if (!match?.products?.length) {
19601                    return false;
19602                }
19603                return match.products.some((childId) => {
19604                    const key = String(childId);
19605                    return Object.prototype.hasOwnProperty.call(index, key)
19606                        || Object.prototype.hasOwnProperty.call(index, childId);
19607                });
19608            },
19609            mapSwatchTypeNumberToTypeCode(typeNumber) {
19610                switch ("" + typeNumber) {
19611                    case "1":
19612                        return "color"
19613                    case "2":
19614                        return "image"
19615                    case "3":
19616                        return "empty"
19617                    case "0":
19618                    default:
19619                        return "text"
19620                }
19621            },
19622            getTypeOfFirstOption(attributeId) {
19623                for (const optionId in this.swatchConfig[attributeId]) {
19624                    const option = this.swatchConfig[attributeId][optionId];
19625                    if (typeof option.type !== 'undefined') {
19626                        return this.mapSwatchTypeNumberToTypeCode(option.type);
19627                    }
19628                }
19629            },
19630            getVisualSwatchType(attributeId, targetOptionId) {
19631                // If a type configuration is present for the given option id, use it
19632                const config = this.swatchConfig[attributeId];
19633                if (config[targetOptionId] && typeof config[targetOptionId].type !== 'undefined') {
19634                    return this.mapSwatchTypeNumberToTypeCode(config[targetOptionId].type);
19635                }
19636
19637                // Otherwise - if no config is present for the target option - use the type of the first option
19638                // with a type property from the attribute, thus assuming its the same type as the target option.
19639                // (This edge case condition can occur on single swatch products if some options are not salable)
19640                return this.getTypeOfFirstOption(attributeId);
19641            },
19642            getSwatchType(attributeId, optionId) {
19643                // Deserialize the attribute details the first time they are used
19644                if (this.swatchConfig[attributeId] && ! this.swatchConfig[attributeId].details) {
19645                    this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId);
19646                }
19647                const type =  this.swatchConfig[attributeId] &&
19648                    this.swatchConfig[attributeId].details &&
19649                    this.swatchConfig[attributeId].details.swatch_input_type ||
19650                    "empty";
19651                return type === 'visual' ? this.getVisualSwatchType(attributeId, optionId) : type;
19652            },
19653            isTextSwatch(attributeId, optionId) {
19654                return this.getSwatchType(attributeId, optionId) === 'text';
19655            },
19656            isVisualSwatch(attributeId, optionId) {
19657                const type = this.getSwatchType(attributeId, optionId);
19658
19659                return ['image', 'color'].includes(type);
19660            },
19661            getSwatchBackgroundStyle(attributeId, optionId) {
19662                const config = this.getSwatchConfig(attributeId, optionId);
19663                const type = this.getSwatchType(attributeId, optionId);
19664
19665                if (type === "color") {
19666                        return 'background-color:' + config.value;
19667                } else if (type === "image") {
19668                        return "background: #ffffff url('" + config.value + "') no-repeat center";
19669                } else {
19670                    return '';
19671                }
19672            },
19673			getSwatchText(attributeId, optionId) {
19674                return this.resolveSwatchLabel(attributeId, optionId);
19675            },
19676            getLegacyColorSwatchImageHtml(attributeId, optionId) {
19677                const map = this._legacyColorSwatchImages || {};
19678                return this.getSwatchTextUrl(attributeId, optionId, map);
19679            },
19680            getSwatchTextUrl(attributeId, optionId, childSwatch) {
19681                const config = this.getSwatchConfig(attributeId, optionId);
19682                const optionKey = String(optionId);
19683                const swatchMap = (
19684                    childSwatch
19685                    && typeof childSwatch === 'object'
19686                    && !Array.isArray(childSwatch)
19687                ) ? childSwatch : {};
19688                const swatchUrl = swatchMap[optionKey] ?? swatchMap[optionId];
19689                if(swatchUrl != "" && swatchUrl != null && isValidURL(swatchUrl)){
19690					return "<img loading='lazy' src="+swatchUrl+" title="+swatchUrl+" alt="+swatchUrl+"/>";
19691				} else if(config && config.value!="" && config.value!= null && isValidURL(config.value)){
19692					return "<img loading='lazy' src="+config.value+" title="+config.value+" alt="+config.value+"/>";
19693				} else {
19694					 var placeHoldernew = BASE_URL+'media/catalog/product/placeholder/default/swatch_placeholder.png';
19695
19696					return "<img  width= '60px' height='60px' src="+placeHoldernew+" title="+placeHoldernew+" alt="+placeHoldernew+"/>";
19697				}
19698			},
19699            getOptionLabelFromOptionConfig(attributeId, optionId) {
19700                const optionKey = String(optionId);
19701                const option = this.getAllAttributeOptions(attributeId).find(
19702                    (entry) => String(entry.id) === optionKey
19703                );
19704                return option?.label || '';
19705            },
19706            getSwatchConfig(attributeId, optionId) {
19707                const attrConfig = this.swatchConfig[attributeId] ?? this.swatchConfig[String(attributeId)];
19708                if (!attrConfig) {
19709                    return false;
19710                }
19711                return attrConfig[optionId] ?? attrConfig[String(optionId)] ?? false;
19712            },
19713            activeTooltipItem: false,
19714            tooltipPositionElement: false,
19715            isTooltipVisible() {
19716                return this.activeTooltipItem &&
19717                    this.getSwatchConfig(
19718                        this.activeTooltipItem.attribute,
19719                        this.activeTooltipItem.item
19720                    );
19721            },
19722            getTooltipImageStyle(attributeId, optionId) {
19723                const config = this.getSwatchConfig(attributeId, optionId);
19724                const type = this.getSwatchType(attributeId, optionId);
19725
19726                if (type === "color") {
19727                    return 'background-color:' + config.value + '; width: 110px; height: 90px;';
19728                } else if (type === "image") {
19729                    return "background: #ffffff url('" + config.thumb +
19730                        "') center center no-repeat; width: 110px; height: 90px;";
19731                } else {
19732                    return 'display:none';
19733                }
19734            },
19735            getTooltipPosition() {
19736                if (!this.tooltipPositionElement) {
19737                    return '';
19738                }
19739                const rect = this.tooltipPositionElement.getBoundingClientRect();
19740                const elementWidth = rect.width;
19741                const elementHeight = rect.height;
19742                const container = document.querySelector('.swatch___render');
19743                if (!container) {
19744                    return '';
19745                }
19746                const containerRect = container.getBoundingClientRect();
19747                const topPosition = rect.top - containerRect.top + 10;
19748                const leftPosition = rect.left - containerRect.left;
19749
19750                return `                    
19751                    top: ${topPosition}px;
19752                    left: ${leftPosition}px;
19753                `;
19754            },
19755            getSwatchConfigLabel(attributeId, optionId) {
19756                const label = this.resolveSwatchLabel(attributeId, optionId);
19757                return label !== '' ? label : false;
19758            },
19759            getTooltipLabel() {
19760                return this.getSwatchConfigLabel(this.activeTooltipItem.attribute, this.activeTooltipItem.item);
19761                //return this.getSwatchConfig(this.activeTooltipItem.attribute, this.activeTooltipItem.item).label
19762            },
19763            focusedLabel: false,
19764            focusLabel(optionId) {
19765                this.focusedLabel = optionId;
19766            },
19767            blurLabel() {
19768                this.focusedLabel = false;
19769            },
19770            showSwatches: true,
19771            initShowSwatchesIntersect() {
19772                this.showSwatches = true;
19773            },
19774
19775            quickShipValidation(attributeCode, attributeId, optionId){
19776               if (optionId === undefined || optionId === null || optionId === '') {
19777                   return 0;
19778               }
19779               var is_quick_ship_color = 0;
19780                var optionConfigObj = this.optionConfig;
19781                if (!optionConfigObj || typeof optionConfigObj !== 'object') {
19782                    return 0;
19783                }
19784                if(attributeCode == 'incstores_pim_color_axis'){
19785                    var attributes = optionConfigObj.attributes;
19786                    if (!attributes || !attributes[attributeId] || !attributes[attributeId]['options']) {
19787                        return 0;
19788                    }
19789                    var quickShipColorIds = optionConfigObj.quick_ship_color_ids || [];
19790                    if (quickShipColorIds.length) {
19791                        return quickShipColorIds.some(function (id) {
19792                            return String(id) === String(optionId);
19793                        }) ? 1 : 0;
19794                    }
19795                    var quickShipMap = optionConfigObj.quick_ship;
19796                    if (!quickShipMap) {
19797                        return 0;
19798                    }
19799                    var attributes_options = attributes[attributeId]['options'];
19800
19801                    attributes_options.forEach(function(option_details) {
19802                        if(option_details['id'] == optionId){
19803                            option_details['products'].forEach(function(child_product_id) {
19804                                if(quickShipMap[String(child_product_id)] == 1 || quickShipMap[child_product_id] == 1){
19805                                    is_quick_ship_color = 1;
19806                                    return false;
19807                                }
19808                            });
19809                        }
19810                    });
19811                }
19812                return is_quick_ship_color;
19813            },
19814
19815            hasQuickShipColorOptions(attributeCode, attributeId) {
19816                if (!this.optionConfig?.attributes?.[attributeId]?.options?.length) {
19817                    return false;
19818                }
19819                if (this.selectedValues) {
19820                    Object.keys(this.selectedValues).forEach(function (key) {
19821                        void this.selectedValues[key];
19822                    }.bind(this));
19823                }
19824                var colorIds = this.optionConfig.quick_ship_color_ids || [];
19825                var options = this.optionConfig.attributes[attributeId].options;
19826                for (var i = 0; i < options.length; i++) {
19827                    var optionId = options[i].id;
19828                    var isQuick = colorIds.length
19829                        ? colorIds.some(function (id) { return String(id) === String(optionId); })
19830                        : (this.quickShipValidation(attributeCode, attributeId, optionId) === 1);
19831                    if (!isQuick) {
19832                        continue;
19833                    }
19834                    if (!this.optionIsEnabled(attributeId, optionId)) {
19835                        continue;
19836                    }
19837                    if (!this.optionIsActive(attributeId, optionId)) {
19838                        continue;
19839                    }
19840                    return true;
19841                }
19842                return false;
19843            },
19844
19845            hasNormalColorOptions(attributeCode, attributeId) {
19846                if (!this.optionConfig?.attributes?.[attributeId]?.options?.length) {
19847                    return false;
19848                }
19849                if (this.shipRegionZipActive && this.customerRegionCode) {
19850                    return false;
19851                }
19852                var colorIds = this.optionConfig.quick_ship_color_ids || [];
19853                var options = this.optionConfig.attributes[attributeId].options;
19854                for (var i = 0; i < options.length; i++) {
19855                    var optionId = options[i].id;
19856                    var isQuick = colorIds.length
19857                        ? colorIds.some(function (id) { return String(id) === String(optionId); })
19858                        : (this.quickShipValidation(attributeCode, attributeId, optionId) === 1);
19859                    if (!isQuick) {
19860                        if (!this.optionIsEnabled(attributeId, optionId)) {
19861                            continue;
19862                        }
19863                        if (!this.optionIsActive(attributeId, optionId)) {
19864                            continue;
19865                        }
19866                        return true;
19867                    }
19868                }
19869                return false;
19870            },
19871
19872            shouldShowQuickShipSection(attributeCode, attributeId) {
19873                if (this.shipRegionZipActive && this.customerRegionCode) {
19874                    return false;
19875                }
19876                return this.hasQuickShipColorOptions(attributeCode, attributeId);
19877            },
19878
19879            getOtherSwatchAttributeId(section = null) {
19880                const target = section || document.querySelector('.swatch-attribute.other_swatch_option');
19881                if (!target || !this.optionConfig?.attributes) {
19882                    return null;
19883                }
19884                for (const key in this.optionConfig.attributes) {
19885                    const code = this.optionConfig.attributes[key]?.code;
19886                    if (code && code !== 'incstores_pim_color_axis' && target.classList.contains(code)) {
19887                        return parseInt(key, 10);
19888                    }
19889                }
19890                for (const key in this.optionConfig.attributes) {
19891                    const code = this.optionConfig.attributes[key]?.code;
19892                    if (code && code !== 'incstores_pim_color_axis') {
19893                        return parseInt(key, 10);
19894                    }
19895                }
19896                return null;
19897            },
19898
19899            /**
19900             * Count salable/enabled options only. Disabled Magento variants stay out of the UI.
19901             * Hide "Select An Option" when fewer than two enabled options remain.
19902             */
19903            countEnabledOtherSwatchOptions(attrId) {
19904                if (!attrId) {
19905                    return 0;
19906                }
19907                const options = this.optionConfig?.attributes?.[attrId]?.options || [];
19908                return options.filter((option) => this.optionIsEnabled(attrId, option.id)).length;
19909            },
19910
19911            countVisibleOtherSwatchOptions() {
19912                return this.countEnabledOtherSwatchOptions(this.getOtherSwatchAttributeId());
19913            },
19914
19915            syncOtherSwatchOptionVisibility() {
19916                const sections = document.querySelectorAll('.swatch-attribute.other_swatch_option');
19917                if (!sections.length) {
19918                    return;
19919                }
19920                const self = this;
19921                const applyVisibility = () => {
19922                    sections.forEach((variantSection) => {
19923                        const attrId = self.getOtherSwatchAttributeId(variantSection);
19924                        if (!attrId) {
19925                            return;
19926                        }
19927                        const optionCount = self.countEnabledOtherSwatchOptions(attrId);
19928                        const shouldShow = optionCount > 1;
19929                        variantSection.classList.toggle('dcw-single-option-hidden', !shouldShow);
19930                        // Theme CSS defaults other_swatch_option to display:none — force block/none.
19931                        variantSection.style.setProperty(
19932                            'display',
19933                            shouldShow ? 'block' : 'none',
19934                            'important'
19935                        );
19936                        if (!shouldShow && optionCount === 1) {
19937                            const options = self.optionConfig?.attributes?.[attrId]?.options || [];
19938                            const enabledOption = options.find((option) => self.optionIsEnabled(attrId, option.id));
19939                            const optionId = enabledOption?.id;
19940                            if (optionId !== undefined
19941                                && String(self.selectedValues[attrId]) !== String(optionId)
19942                                && typeof self.changeOption === 'function') {
19943                                self.changeOption(attrId, optionId);
19944                            }
19945                        }
19946                    });
19947                };
19948                applyVisibility();
19949                window.setTimeout(applyVisibility, 300);
19950            },
19951
19952            /**
19953             * After color selection only (including disabled colors): if current variant/option
19954             * is incompatible, auto-select the cheapest compatible one. Never run on variant clicks.
19955             */
19956            autoSelectCompatibleOtherOption(colorAttrId) {
19957                if (!colorAttrId || !this.optionConfig?.attributes) {
19958                    return;
19959                }
19960                const selectedColor = this.selectedValues[colorAttrId];
19961                if (!selectedColor) {
19962                    return;
19963                }
19964
19965                let otherAttrId = null;
19966                if (typeof this.getAttributeIdByCode === 'function') {
19967                    otherAttrId = this.getAttributeIdByCode('incstores_pim_variant_axis')
19968                        || this.getAttributeIdByCode('product_option');
19969                }
19970                if (!otherAttrId) {
19971                    const section = document.querySelector('.swatch-attribute.other_swatch_option');
19972                    otherAttrId = this.getOtherSwatchAttributeId(section);
19973                }
19974                if (!otherAttrId || !this.optionConfig.attributes[otherAttrId]) {
19975                    return;
19976                }
19977
19978                const currentOther = this.selectedValues[otherAttrId];
19979                const isCurrentCompatible = currentOther
19980                    && typeof this.optionIsActive === 'function'
19981                    && this.optionIsActive(otherAttrId, currentOther);
19982
19983                if (isCurrentCompatible) {
19984                    return;
19985                }
19986
19987                const options = this.optionConfig.attributes[otherAttrId].options || [];
19988                let lowestPrice = null;
19989                let lowestOptionId = null;
19990
19991                options.forEach((option) => {
19992                    if (typeof this.optionIsEnabled === 'function'
19993                        && !this.optionIsEnabled(otherAttrId, option.id)) {
19994                        return;
19995                    }
19996                    const productIds = option.products || [];
19997                    productIds.forEach((productId) => {
19998                        const product = this.optionConfig.index[productId]
19999                            || this.optionConfig.index[String(productId)];
20000                        if (!product || String(product[colorAttrId]) !== String(selectedColor)) {
20001                            return;
20002                        }
20003                        const priceData = this.optionConfig.optionPrices[productId]
20004                            || this.optionConfig.optionPrices[String(productId)];
20005                        if (!priceData) {
20006                            return;
20007                        }
20008                        const price = priceData.finalPrice.amount;
20009                        if (lowestPrice === null || price < lowestPrice) {
20010                            lowestPrice = price;
20011                            lowestOptionId = option.id;
20012                        }
20013                    });
20014                });
20015
20016                if (lowestOptionId === null
20017                    || String(this.selectedValues[otherAttrId]) === String(lowestOptionId)) {
20018                    return;
20019                }
20020
20021                if (typeof this.changeOption === 'function') {
20022                    this.changeOption(otherAttrId, lowestOptionId);
20023                    return;
20024                }
20025
20026                const el = document.querySelector(
20027                    'input[name="super_attribute[' + otherAttrId + ']"][value="' + lowestOptionId + '"]'
20028                );
20029                if (el) {
20030                    el.click();
20031                }
20032            },
20033
20034            /**
20035             * After variant / Select An Option change: if current color is unavailable,
20036             * auto-select the cheapest compatible color. Never run on color clicks.
20037             */
20038            autoSelectCompatibleColorOption(otherAttrId) {
20039                if (!otherAttrId || !this.optionConfig?.attributes) {
20040                    return;
20041                }
20042                const selectedOther = this.selectedValues[otherAttrId];
20043                if (!selectedOther) {
20044                    return;
20045                }
20046
20047                let colorAttrId = null;
20048                if (typeof this.getAttributeIdByCode === 'function') {
20049                    colorAttrId = this.getAttributeIdByCode('incstores_pim_color_axis');
20050                }
20051                if (!colorAttrId && typeof this.getShipRegionColorAttributeId === 'function') {
20052                    colorAttrId = this.getShipRegionColorAttributeId();
20053                }
20054                if (!colorAttrId || !this.optionConfig.attributes[colorAttrId]) {
20055                    return;
20056                }
20057
20058                const currentColor = this.selectedValues[colorAttrId];
20059                const isCurrentCompatible = currentColor
20060                    && typeof this.optionIsActive === 'function'
20061                    && this.optionIsActive(colorAttrId, currentColor);
20062
20063                if (isCurrentCompatible) {
20064                    return;
20065                }
20066
20067                const options = this.optionConfig.attributes[colorAttrId].options || [];
20068                let lowestPrice = null;
20069                let lowestOptionId = null;
20070
20071                options.forEach((option) => {
20072                    if (typeof this.optionIsEnabled === 'function'
20073                        && !this.optionIsEnabled(colorAttrId, option.id)) {
20074                        return;
20075                    }
20076                    const productIds = option.products || [];
20077                    productIds.forEach((productId) => {
20078                        const product = this.optionConfig.index[productId]
20079                            || this.optionConfig.index[String(productId)];
20080                        if (!product || String(product[otherAttrId]) !== String(selectedOther)) {
20081                            return;
20082                        }
20083                        const priceData = this.optionConfig.optionPrices[productId]
20084                            || this.optionConfig.optionPrices[String(productId)];
20085                        if (!priceData) {
20086                            return;
20087                        }
20088                        const price = priceData.finalPrice.amount;
20089                        if (lowestPrice === null || price < lowestPrice) {
20090                            lowestPrice = price;
20091                            lowestOptionId = option.id;
20092                        }
20093                    });
20094                });
20095
20096                if (lowestOptionId === null
20097                    || String(this.selectedValues[colorAttrId]) === String(lowestOptionId)) {
20098                    return;
20099                }
20100
20101                if (typeof this.changeOption === 'function') {
20102                    this.changeOption(colorAttrId, lowestOptionId);
20103                    return;
20104                }
20105
20106                const el = document.querySelector(
20107                    'input[name="super_attribute[' + colorAttrId + ']"][value="' + lowestOptionId + '"]'
20108                );
20109                if (el) {
20110                    el.click();
20111                }
20112            },
20113
20114            syncNormalColorSwatchQuickShipVisibility() {
20115                if (this.shipRegionZipActive && this.customerRegionCode) {
20116                    return;
20117                }
20118                if (typeof this.quickShipValidation !== 'function') {
20119                    if (typeof this.syncNormalColorSwatchSectionVisibility === 'function') {
20120                        this.syncNormalColorSwatchSectionVisibility();
20121                    }
20122                    return;
20123                }
20124                const self = this;
20125                document.querySelectorAll('.normal_color_swatch_option .selectOptionColor').forEach(function (el) {
20126                    const input = el.querySelector('input.product-option-value-input[name^="super_attribute"]');
20127                    if (!input) {
20128                        return;
20129                    }
20130                    const nameMatch = input.name.match(/super_attribute\[(\d+)\]/);
20131                    if (!nameMatch) {
20132                        return;
20133                    }
20134                    const attributeId = parseInt(nameMatch[1], 10);
20135                    const optionId = input.value;
20136                    const attributeCode = input.getAttribute('data-attributecode') || 'incstores_pim_color_axis';
20137                    if (self.quickShipValidation(attributeCode, attributeId, optionId) === 1) {
20138                        el.classList.add('hidden');
20139                        el.style.display = 'none';
20140                    } else {
20141                        el.classList.remove('hidden');
20142                        el.style.display = '';
20143                    }
20144                });
20145                if (typeof this.syncNormalColorSwatchSectionVisibility === 'function') {
20146                    this.syncNormalColorSwatchSectionVisibility();
20147                }
20148            },
20149
20150            getColorAttributeId() {
20151                if (typeof this.getAttributeIdByCode === 'function') {
20152                    const id = this.getAttributeIdByCode('incstores_pim_color_axis');
20153                    return id ? parseInt(String(id), 10) : null;
20154                }
20155                if (!this.optionConfig?.attributes) {
20156                    return null;
20157                }
20158                for (const key in this.optionConfig.attributes) {
20159                    if (this.optionConfig.attributes[key]?.code === 'incstores_pim_color_axis') {
20160                        return parseInt(key, 10);
20161                    }
20162                }
20163                return null;
20164            },
20165
20166            /**
20167             * Hide entire "Select A Color" block when every color is Quick Ship (or none left).
20168             */
20169            syncNormalColorSwatchSectionVisibility() {
20170                const sections = document.querySelectorAll('.normal_color_swatch_option');
20171                if (!sections.length) {
20172                    return;
20173                }
20174                const colorAttrId = this.getColorAttributeId();
20175                const shouldShow = colorAttrId
20176                    && typeof this.hasNormalColorOptions === 'function'
20177                    && this.hasNormalColorOptions('incstores_pim_color_axis', colorAttrId);
20178
20179                sections.forEach((section) => {
20180                    if (!shouldShow) {
20181                        section.classList.add('hidden');
20182                        section.style.setProperty('display', 'none', 'important');
20183                    } else {
20184                        section.classList.remove('hidden', 'sr-only');
20185                        section.style.setProperty('display', 'block', 'important');
20186                    }
20187                });
20188            }
20189        }
20190    }
20191
20192	function isValidURL(url) {
20193    // Regular expression for URL validation
20194    var pattern = /^(https?:\/\/)?([\w.]+)\.([a-z]{2,})(\/[\w\.-]*)*\/?$/i;
20195    return pattern.test(url);
20196}
20197</script>
vendor: 1 bytes, line 20197
20197
20198<script>
20199    'use strict';
20200
20201    (function () {
20202        const modals = [];
20203        const excludedFromFocusTrapping = new Set();
20204
20205        function trapFocusInNextModalWithOverlay() {
20206            for (let idx = modals.length -1; idx >= 0; idx--) {
20207                const nextOnStack = modals[idx];
20208                const nextDialogElement = nextOnStack.instance.$refs[nextOnStack.name];
20209                if (! isOverlayDisabled(nextDialogElement)) {
20210                    hyva.trapFocus(nextDialogElement);
20211                    break;
20212                }
20213            }
20214        }
20215
20216        function focusables(dialogElement) {
20217            const selector = 'button, [href], input, textarea, select, details, [tabindex]:not([tabindex="-1"])';
20218            return Array.from(dialogElement.querySelectorAll(selector))
20219                .filter(el => !el.hasAttribute('disabled'));
20220        }
20221
20222        function firstVisible(elements) {
20223            const a = Array.from(elements);
20224            for (let i = 0; i < a.length; i++) {
20225                if (a[i].offsetWidth || a[i].offsetHeight || a[i].getClientRects().length) return a[i];
20226            }
20227            return null;
20228        }
20229
20230        function isInViewport(element) {
20231            const rect = element && element.getBoundingClientRect();
20232            return rect &&
20233                rect.top >= 0 &&
20234                rect.left >= 0 &&
20235                rect.right <= window.innerWidth &&
20236                rect.bottom <= window.innerHeight;
20237        }
20238
20239        function setFocusAfterTransition(dialogElement, duration) {
20240                        const nested = Array.from(dialogElement.querySelectorAll('[role="dialog"]'));
20241            const candidates = Array.from(dialogElement.querySelectorAll('[x-focus-first]'));
20242            next: for (let candidate of candidates) {
20243                for (let child of nested) {
20244                    if (child.contains(candidate)) continue next;
20245                }
20246                setTimeout(() => candidate.focus(), 50);
20247                break;
20248            }
20249            window.setTimeout(() => {
20250                const focusElement = firstVisible(dialogElement.querySelectorAll('[x-focus-first]')) ||
20251                    focusables(dialogElement)[0] ||
20252                    null;
20253                focusElement && isInViewport(focusElement) && focusElement.focus();
20254            }, Math.max(1, duration));
20255        }
20256
20257        function determineTrigger($refs, dialog, trigger) {
20258                        if (typeof trigger === 'undefined' && typeof dialog === 'object' && dialog.target instanceof HTMLElement) {
20259                return dialog.target;
20260            }
20261                        if (typeof dialog === 'string' && typeof trigger === 'object' && trigger.target instanceof HTMLElement) {
20262                return trigger.target;
20263            }
20264                        if (typeof trigger === 'string') {
20265                try {
20266                    return $refs[trigger] || document.querySelector(trigger)
20267                } catch (e) {}
20268            }
20269                        if (trigger instanceof Element) {
20270                return trigger;
20271            }
20272
20273                        return null;
20274        }
20275
20276        function isOverlayDisabled(dialog) {
20277            return dialog && dialog.hasAttribute('x-no-overlay')
20278        }
20279
20280        function areRemainingModalsWithoutOverlay(modals)
20281        {
20282            const overflowDisabled = modals.map(modal => modal.instance.$refs[modal.name]).filter(isOverlayDisabled);
20283
20284            return overflowDisabled.length === modals.length;
20285        }
20286
20287        window.hyva.modal = function(options) {
20288
20289            const config = Object.assign({
20290                dialog: 'dialog',                 duration: 300,                 transitionEnter: 'transition ease-out duration-300',
20291                transitionEnterStart: 'opacity-0',
20292                transitionEnterEnd: 'opacity-100',
20293                transitionLeave: 'transition ease-in duration-300',
20294                transitionLeaveStart: 'opacity-100',
20295                transitionLeaveEnd: 'opacity-0',
20296            }, options);
20297            let lastHide = 0;
20298
20299            return {
20300                opened: {},
20301                show(dialog, trigger) {
20302                    const focusTargetAfterHide = determineTrigger(this.$refs, dialog, trigger);
20303                    const name = typeof dialog === 'string' ? dialog : config.dialog;
20304                    const dialogElement = this.$refs[name];
20305                    if (! dialogElement) {
20306                                                return;
20307                    }
20308                    const useOverlay = ! dialogElement.hasAttribute('x-no-overlay');
20309
20310                    dialogElement.scrollTop = 0;
20311
20312                                        if (this.opened[name]) {
20313                        return;
20314                    }
20315
20316                    if (focusTargetAfterHide) {
20317                        focusTargetAfterHide.setAttribute('aria-expanded', 'true');
20318                    }
20319
20320                    this.opened[name] = true;
20321                    useOverlay && this.$nextTick(() => hyva.trapFocus(dialogElement));
20322                    setFocusAfterTransition(dialogElement, config.duration);
20323
20324                    const frame = {name, instance: this, focusTarget: focu
20324sTargetAfterHide, time: Date.now()};
20325
20326                    modals.push(frame);
20327                    if (useOverlay) {
20328                        document.body.classList.add('overflow-hidden');
20329                    }
20330                    return new Promise(resolve => frame.resolve = resolve);
20331                },
20332                cancel() {
20333                    this.hide(false);
20334                },
20335                ok() {
20336                    this.hide(true);
20337                },
20338                hide(value) {
20339                                        if (Date.now() - lastHide < config.duration) {
20340                        return;
20341                    }
20342                    lastHide = Date.now();
20343
20344                    const modal = modals.pop() || {};
20345                    const name = modal.name;
20346                    this.opened[name] = false;
20347                    hyva.releaseFocus(modal.instance.$refs[modal.name])
20348                    trapFocusInNextModalWithOverlay();
20349
20350                    const nextFocusAfterHide = modal.focusTarget;
20351                    nextFocusAfterHide && setTimeout(() => {
20352                        nextFocusAfterHide.setAttribute('aria-expanded', 'false');
20353                        nextFocusAfterHide.focus()
20354                    }, config.duration);
20355
20356                    if (modals.length === 0 || areRemainingModalsWithoutOverlay(modals)) {
20357                        document.body.classList.remove('overflow-hidden');
20358                    }
20359
20360                    modal.resolve(value);
20361                },
20362                overlay(dialog) {
20363                    const name = typeof dialog === 'string' ? dialog : config.dialog;
20364                    return {
20365                        ['x-show']() {
20366                            return this.opened[name]
20367                        },
20368                        ['x-transition:enter']: config.transitionEnter,
20369                        ['x-transition:enter-start']: config.transitionEnterStart,
20370                        ['x-transition:enter-end']: config.transitionEnterEnd,
20371                        ['x-transition:leave']: config.transitionLeave,
20372                        ['x-transition:leave-start']: config.transitionLeaveStart,
20373                        ['x-transition:leave-end']: config.transitionLeaveEnd,
20374                        ['@hyva-modal-show.window'](event) {
20375                            event.detail && event.detail.dialog === name && this.show(name, event.detail.focusAfterHide)
20376                        }
20377                    };
20378                }
20379            };
20380        }
20381
20382        window.hyva.modal.peek = () => modals.length > 0 && modals[modals.length -1]
20383
20384        window.hyva.modal.pop = function () {
20385            if (modals.length > 0) {
20386                const modal = modals[modals.length -1];
20387                modal.instance.hide();
20388            }
20389        }
20390
20391        window.hyva.modal.excludeSelectorsFromFocusTrap = function (selectors) {
20392            typeof selectors === 'string' || selectors instanceof String
20393                ? excludedFromFocusTrapping.add(selectors)
20394                : selectors.map(selector => excludedFromFocusTrapping.add(selector));
20395        }
20396
20397        window.hyva.modal.eventListeners = {
20398            keydown: event => {
20399                if (event.key === 'Escape') {
20400                    window.hyva.modal.pop();
20401                }
20402            },
20403                        click: event => {
20404                if (modals.length > 0) {
20405                    const modal = modals[modals.length -1];
20406                    const dialog = modal.instance.$refs[modal.name];
20407                    if (modal.time + 50 < Date.now() && // if last click processing is more than 50ms ago
20408                        ! isOverlayDisabled(dialog) && // if dialog has overlay
20409                        ! dialog.contains(event.target)) { // if click is outside of dialog
20410                        modal.instance.hide();
20411                    }
20412                }
20413            }
20414        };
20415
20416        document.addEventListener('keydown', window.hyva.modal.eventListeners.keydown);
20417
20418        document.addEventListener('click', window.hyva.modal.eventListeners.click);
20419    })();
20420</script>
vendor: 1 bytes, line 20420
20420
20421<script>
20422    'use strict';
20423
20424    (() => {
20425        const equalizeButtonWidths = (buttons) => {
20426            const buttonList = buttons.querySelectorAll('[data-element="link"], [data-element="empty_link"]');
20427            let buttonMinWidth = 0;
20428
20429            buttonList.forEach(button => {
20430                const buttonWidth = button.offsetWidth;
20431
20432                if (buttonWidth > buttonMinWidth) {
20433                    buttonMinWidth = buttonWidth;
20434                }
20435            });
20436
20437            buttonList.forEach(button => {
20438                button.style.minWidth = `${buttonMinWidth}px`;
20439            });
20440        };
20441
20442        window.addEventListener('DOMContentLoaded', () => {
20443            document.querySelectorAll('[data-content-type="buttons"][data-same-width="true"]').forEach(buttons => {
20444                equalizeButtonWidths(buttons);
20445            });
20446        });
20447    })();
20448</script>
vendor: 1 bytes, line 20448
20448
20449<script>
20450    'use strict';
20451
20452    (() => {
20453        const initCarousels = (elements) => {
20454            if (!Glider) {
20455                return;
20456            }
20457
20458            const initProductCarousel = (carousel) => {
20459                const gliderElement = carousel.querySelector('[data-role="glider-content"]');
20460
20461                if (!gliderElement) {
20462                    return;
20463                }
20464
20465                const gliderDots = carousel.querySelector('.glider-dots');
20466                const gliderPrev = carousel.querySelector('.glider-prev');
20467                const gliderNext = carousel.querySelector('.glider-next');
20468
20469                const glider = new Glider(gliderElement, {
20470                    slidesToShow: 1.2,
20471                    slidesToScroll: 2,
20472                    scrollLock: true,
20473                    draggable: true,
20474                    dragVelocity: 2.5,
20475                    dots: gliderDots,
20476                    arrows: {
20477                        prev: gliderPrev,
20478                        next: gliderNext,
20479                    },
20480                    responsive: [
20481                        {
20482                            breakpoint: 768,
20483                            settings: {
20484                                slidesToShow: 3,
20485                                slidesToScroll: 3,
20486                            }
20487                        },
20488                        {
20489                            breakpoint: 1024,
20490                            settings: {
20491                                slidesToShow: 4,
20492                                slidesToScroll: 4,
20493                            }
20494                        },
20495                        {
20496                            breakpoint: 1200,
20497                            settings: {
20498                                slidesToShow: 5,
20499                                slidesToScroll: 5,
20500                            }
20501                        }
20502                    ],
20503                });
20504
20505                carousel.classList.remove('overflow-x-scroll');
20506                gliderPrev.classList.remove('hidden');
20507                gliderNext.classList.remove('hidden');
20508
20509                if (carousel.dataset.autoplay !== 'false') {
20510                    gliderAutoplay(
20511                        glider,
20512                        carousel.dataset.autoplaySpeed,
20513                        carousel.dataset.infiniteLoop
20514                    );
20515                }
20516            };
20517
20518            const initSliderCarousel = (slider) => {
20519                slider.innerHTML = `<div data-role="glider-content">${slider.innerHTML}</div>`;
20520                slider.classList.add('glider-contain');
20521
20522                slider.insertAdjacentHTML(
20523                    'beforeend',
20524                    '\u000A\u003Cdiv\u0020class\u003D\u0022carousel\u002Dnav\u0020flex\u0020items\u002Dcenter\u0020justify\u002Dcenter\u0020flex\u002D1\u0020p\u002D4\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020aria\u002Dlabel\u003D\u0022Previous\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020class\u003D\u0022glider\u002Dprev\u0020w\u002D8\u0020h\u002D8\u0020mr\u002D1\u0020text\u002Dblack\u0020rounded\u002Dfull\u0020outline\u002Dnone\u0020focus\u003Aoutline\u002Dnone\u0020hidden\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020fill\u003D\u0022none\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020stroke\u002Dwidth\u003D\u00222\u0022\u0020stroke\u003D\u0022currentColor\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u
20524003D\u0022img\u0022\u003E\u000A\u0020\u0020\u003Cpath\u0020stroke\u002Dlinecap\u003D\u0022round\u0022\u0020stroke\u002Dlinejoin\u003D\u0022round\u0022\u0020d\u003D\u0022M15\u002019l\u002D7\u002D7\u00207\u002D7\u0022\u002F\u003E\u000A\u003Ctitle\u003Echevron\u002Dleft\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u0020\u0020\u0020\u0020\u003Cdiv\u0020role\u003D\u0022navigation\u0022\u0020class\u003D\u0022glider\u002Ddots\u0020select\u002Dnone\u0020flex\u0020flex\u002Dwrap\u0020mx\u002D1\u0020justify\u002Dcenter\u0020p\u002D0\u0020focus\u003Aoutline\u002Dnone\u0022\u003E\u003C\u002Fdiv\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020aria\u002Dlabel\u003D\u0022Next\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020class\u003D\u0022glider\u002Dnext\u0020w\u002D8\u0020h\u002D8\u0020ml\u002D1\u0020text\u002Dblack\u0020rounded\u002Dfull\u0020outline\u002Dnone\u0020focus\u003Aoutline\u002Dnone\u0020hidden\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020fill\u003D\u0022none\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020stroke\u002Dwidth\u003D\u00222\u0022\u0020stroke\u003D\u0022currentColor\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u
20524003D\u0022img\u0022\u003E\u000A\u0020\u0020\u003Cpath\u0020stroke\u002Dlinecap\u003D\u0022round\u0022\u0020stroke\u002Dlinejoin\u003D\u0022round\u0022\u0020d\u003D\u0022M9\u00205l7\u00207\u002D7\u00207\u0022\u002F\u003E\u000A\u003Ctitle\u003Echevron\u002Dright\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u003C\u002Fdiv\u003E\u000A'
20525                );
20526
20527                const gliderElement = slider.querySelector('[data-role="glider-content"]');
20528                const gliderDots = slider.querySelector('.glider-dots');
20529                const gliderPrev = slider.querySelector('.glider-prev');
20530                const gliderNext = slider.querySelector('.glider-next');
20531
20532                const glider = new Glider(gliderElement, {
20533                    slidesToShow: 1,
20534                    slidesToScroll: 1,
20535                    scrollLock: true,
20536                    scrollLockDelay: 250,
20537                    draggable: true,
20538                    dragVelocity: 2.5,
20539                    dots: gliderDots,
20540                    arrows: {
20541                        prev: gliderPrev,
20542                        next: gliderNext,
20543                    },
20544                });
20545
20546                slider.classList.add('glider-initialized');
20547                if (slider.dataset.showArrows === 'true') {
20548                    gliderPrev.classList.remove('hidden');
20549                    gliderNext.classList.remove('hidden');
20550                }
20551
20552                if (slider.dataset.autoplay !== 'false') {
20553                    gliderAutoplay(
20554                        glider,
20555                        slider.dataset.autoplaySpeed,
20556                        slider.dataset.infiniteLoop
20557                    );
20558                }
20559            };
20560
20561            const gliderAutoplay = (glider, milliseconds, loop) => {
20562                const pagesCount = glider.track.childElementCount;
20563                let slideTimeout = null;
20564                let nextIndex = 1;
20565                let paused = false;
20566
20567                const slide = () => {
20568                    slideTimeout = setTimeout(
20569                        () => {
20570                            if (loop && nextIndex >= pagesCount) {
20571                                nextIndex = 0;
20572                            }
20573                            glider.scrollItem(nextIndex);
20574                        },
20575                        parseInt(milliseconds)
20576                    );
20577                };
20578
20579                glider.ele.addEventListener('glider-animated', () => {
20580                    nextIndex = glider.slide + glider.opt.slidesToScroll;
20581                    window.clearInterval(slideTimeout);
20582                    if (!paused && (loop || nextIndex < pagesCount)) {
20583                        slide();
20584                    }
20585                });
20586
20587                const pause = () => {
20588                    if (!paused) {
20589                        clearInterval(slideTimeout);
20590                        paused = true;
20591                    }
20592                };
20593
20594                const unpause = () => {
20595                    if (paused) {
20596                        slide();
20597                        paused = false;
20598                    }
20599                };
20600
20601                glider.ele.parentElement.addEventListener('mouseover', pause, {passive: true});
20602                glider.ele.parentElement.addEventListener('touchstart', pause, {passive: true});
20603                glider.ele.parentElement.addEventListener('mouseout', unpause, {passive: true});
20604                glider.ele.parentElement.addEventListener('touchend', unpause, {passive: true});
20605
20606                slide();
20607            };
20608
20609            elements.forEach(element => {
20610                if (element.dataset.contentType === 'products') {
20611                    initProductCarousel(element);
20612                }
20613                if (element.dataset.contentType === 'slider') {
20614                    initSliderCarousel(element);
20615                }
20616            });
20617        };
20618
20619        window.addEventListener('DOMContentLoaded', () => {
20620            const carouselElements = document.querySelectorAll(
20621                `[data-content-type="products"][data-appearance="carousel"],
20622                [data-content-type="slider"]`
20623            );
20624
20625            if (carouselElements.length > 0) {
20626                const script = document.createElement('script');
20627                script.type = 'text/javascript';
20628
20629                script.addEventListener('load', () => {
20630                    initCarousels(carouselElements);
20631                });
20632
20633                window.addEventListener('init-external-scripts', () => {
20634                    script.src = 'https\u003A\u002F\u002Fwww.flooringinc.com\u002Fstatic\u002Fversion1789462004\u002Ffrontend\u002FDcw\u002Fhyvadesktop\u002Fen_US\u002FMagento_PageBuilder\u002Fjs\u002Fglider.min.js';
20635                }, {once: true, passive: true});
20636                document.head.appendChild(script);
20637            }
20638        });
20639    })();
20640</script>
vendor: 1 bytes, line 20640
20640
20641<script>
20642    'use strict';
20643
20644    (() => {
20645        const initMaps = (elements) => {
20646            const renderMap = (element) => {
20647                const dataLocations = element.dataset.locations;
20648
20649                // Hide map if no locations set
20650                if (!dataLocations || dataLocations === '[]') {
20651                    element.classList.add('hidden');
20652                    return;
20653                }
20654
20655                const map = new google.maps.Map(
20656                    element,
20657                    getMapOptions(
20658                        element.dataset.showControls !== 'true',
20659                        element.dataset.showControls === 'true'
20660                    )
20661                );
20662                const locations = JSON.parse(dataLocations);
20663                const latitudeLongitudeBounds = new google.maps.LatLngBounds();
20664                const bounds = [];
20665
20666                locations.forEach(location => {
20667                    const position = {
20668                        lat: parseFloat(location.position.latitude),
20669                        lng: parseFloat(location.position.longitude),
20670                    };
20671                    bounds.push(position);
20672
20673                    const infowindow = new google.maps.InfoWindow({
20674                        content: getInfoWindowContent(location),
20675                    });
20676                    const marker = new google.maps.Marker({
20677                        position: position,
20678                        map,
20679                        title: location.location_name,
20680                    });
20681
20682                    marker.addListener('click', () => {
20683                        infowindow.open(map, marker);
20684                    });
20685                });
20686
20687                // Set bounds if multiple locations
20688                if (bounds.length > 1) {
20689                    bounds.forEach(function (bound) {
20690                        latitudeLongitudeBounds.extend(bound);
20691                    });
20692                    map.fitBounds(latitudeLongitudeBounds);
20693                }
20694
20695                // Center if single location
20696                if (bounds.length === 1) {
20697                    map.setCenter(bounds[0]);
20698                }
20699            };
20700
20701            const getMapOptions = (disableDefaultUI, mapTypeControl) => {
20702                const style = '';
20703                return {
20704                    zoom: 8,
20705                    scrollwheel: false,
20706                    disableDoubleClickZoom: false,
20707                    mapTypeControlOptions: {
20708                        style: google.maps.MapTypeControlStyle.DEFAULT,
20709                    },
20710                    styles: style ? JSON.parse(style) : [],
20711                    disableDefaultUI: disableDefaultUI,
20712                    mapTypeControl: mapTypeControl,
20713                };
20714            };
20715
20716            const getInfoWindowContent = (location) => {
20717                const title = location.location_name ?
20718                    `<h3 class="text-2xl font-medium text-gray-900 title-font">${location.location_name}</h3>` : '';
20719                const comment = location.comment ? `<p class="px-1 pt-3 text-primary">${location.comment}</p>` : '';
20720                const phone = location.phone ? `<p class="px-1 pt-3 text-primary">Phone: ${location.phone}</p>` : '';
20721                const street = location.address ? `${location.address}<br/>` : '';
20722                const city = location.city ? `${location.city}<br/>` : '';
20723                const state = location.state ? `${location.state}<br/>` : '';
20724                const zipCode = location.zipcode ? `${location.zipcode}<br/>` : '';
20725                const country = location.country ? location.country : '';
20726
20727                return `<div>
20728                            ${title}
20729                            ${comment}
20730                            ${phone}
20731                            <p class="px-1 pt-3 text-primary">
20732                                ${street}
20733                                ${city}
20734                                ${state}
20735                                ${zipCode}
20736                                ${country}
20737                            </p>
20738                        </div>`;
20739            };
20740
20741            const hideAllMaps = () => {
20742                document.querySelectorAll('[data-content-type="map"]').forEach(element => {
20743                    element.classList.add('hidden');
20744                });
20745            };
20746
20747            window.gm_authFailure = () => {
20748                hideAllMaps();
20749            };
20750
20751            if (typeof google.maps === 'undefined') {
20752                hideAllMaps();
20753                return;
20754            }
20755
20756            elements.forEach(element => {
20757                if (element.dataset.contentType === 'map') {
20758                    renderMap(element);
20759                }
20760            });
20761        };
20762
20763        window.addEventListener('DOMContentLoaded', () => {
20764            const mapElements = document.querySelectorAll('[data-content-type="map"]');
20765
20766            if (mapElements.length > 0) {
20767                const script = document.createElement('script');
20768                script.type = 'text/javascript';
20769
20770                script.addEventListener('load', () => {
20771                    initMaps(mapElements);
20772                });
20773
20774                script.src = 'https\u003A\u002F\u002Fmaps.googleapis.com\u002Fmaps\u002Fapi\u002Fjs\u003Fv\u003D3\u0026key\u003D';
20775                document.head.appendChild(script);
20776            }
20777        });
20778    })();
20779</script>
vendor: 1 bytes, line 20779
20779
20780<script>
20781    'use strict';
20782
20783    (() => {
20784        const initParallaxImage = (element) => {
20785            if (!window.jarallax) {
20786                return;
20787            }
20788
20789            element.classList.add('jarallax');
20790            element.dataset.jarallax = '';
20791            const parallaxSpeed = parseFloat(element.dataset.parallaxSpeed) || 0.5;
20792            const elementStyle = window.getComputedStyle(element);
20793
20794            window.jarallax(element, {
20795                imgPosition: elementStyle.backgroundPosition || '50% 50%',
20796                imgRepeat: elementStyle.backgroundRepeat || 'no-repeat',
20797                imgSize: elementStyle.backgroundSize || 'cover',
20798                speed: parallaxSpeed,
20799            });
20800        };
20801
20802        const initVideoBackground = (element) => {
20803            if (!window.jarallax) {
20804                return;
20805            }
20806
20807            let slider = null;
20808
20809            if (element.classList.contains('pagebuilder-slide-wrapper')) {
20810                const viewportElement = document.createElement('div');
20811                slider = element.closest('[data-content-type=slider]');
20812                viewportElement.classList.add('jarallax-viewport-element');
20813                element.dataset.elementInViewport = '.jarallax-viewport-element';
20814                element.appendChild(viewportElement);
20815            }
20816
20817            element.classList.add('jarallax');
20818            element.dataset.jarallax = '';
20819            const parallaxSpeed = parseFloat(element.dataset.parallaxSpeed) || 0.5;
20820
20821            window.jarallax(element, {
20822                imgSrc: element.dataset.videoFallbackSrc,
20823                speed: parallaxSpeed,
20824                videoLoop: element.dataset.videoLoop,
20825                videoPlayOnlyVisible: element.dataset.videoPlayOnlyVisible,
20826                videoLazyLoading: element.dataset.videoLazyLoad,
20827                disableVideo: false,
20828                elementInViewport: element.dataset.elementInViewport &&
20829                    element.querySelector(element.dataset.elementInViewport),
20830            });
20831
20832            if (slider) {
20833                if (slider.dataset.afterChangeIsSet) {
20834                    return;
20835                }
20836
20837                slider.addEventListener('glider-loaded', () => {
20838                    slider.querySelectorAll('.jarallax').forEach(videoSlide => {
20839                        videoSlide.jarallax && videoSlide.jarallax.onScroll();
20840                    });
20841                });
20842
20843                slider.addEventListener('glider-animated', () => {
20844                    slider.querySelectorAll('.jarallax').forEach(videoSlide => {
20845                        videoSlide.jarallax && videoSlide.jarallax.onScroll();
20846                    });
20847                });
20848
20849                slider.dataset.afterChangeIsSet = true;
20850            }
20851        };
20852
20853        window.addEventListener('DOMContentLoaded', () => {
20854            const parallaxImageElements = document.querySelectorAll(
20855                `[data-content-type="row"][data-background-type="image"][data-enable-parallax="1"],
20856                [data-content-type="row"] > [data-background-type="image"][data-enable-parallax="1"]`
20857            );
20858
20859            const videoBackgroundsElements = document.querySelectorAll(
20860                `[data-content-type="row"][data-background-type="video"][data-enable-parallax="1"],
20861                [data-content-type="row"] > [data-background-type="video"][data-enable-parallax="1"],
20862                [data-content-type="banner"] [data-background-type="video"],
20863                [data-content-type="slide"] [data-background-type="video"]`
20864            );
20865
20866            if (parallaxImageElements.length > 0 || videoBackgroundsElements.length > 0) {
20867                const jarallaxScript = document.createElement('script');
20868                jarallaxScript.type = 'text/javascript';
20869
20870                jarallaxScript.addEventListener('load', () => {
20871                    parallaxImageElements.forEach(row => {
20872                        initParallaxImage(row);
20873                    });
20874
20875                    const jarallaxVideoScript = document.createElement('script');
20876                    jarallaxVideoScript.type = 'text/javascript';
20877
20878                    jarallaxVideoScript.addEventListener('load', () => {
20879                        videoBackgroundsElements.forEach(element => {
20880                            initVideoBackground(element);
20881                        });
20882                    });
20883
20884                    jarallaxVideoScript.src = 'https\u003A\u002F\u002Fwww.flooringinc.com\u002Fstatic\u002Fversion1789462004\u002Ffrontend\u002FDcw\u002Fhyvadesktop\u002Fen_US\u002FMagento_PageBuilder\u002Fjs\u002Fjarallax\u002Dvideo.min.js';
20885                    document.head.appendChild(jarallaxVideoScript);
20886                });
20887
20888                jarallaxScript.src = 'https\u003A\u002F\u002Fwww.flooringinc.com\u002Fstatic\u002Fversion1789462004\u002Ffrontend\u002FDcw\u002Fhyvadesktop\u002Fen_US\u002FMagento_PageBuilder\u002Fjs\u002Fjarallax.min.js';
20889                document.head.appendChild(jarallaxScript);
20890            }
20891        });
20892    })();
20893</script>
vendor: 1 bytes, line 20893
20893
20894<script>
20895    'use strict';
20896
20897    (() => {
20898        const applyShowOnHover = (element) => {
20899            const showOverlayOnHover = (element) => {
20900                const overlay = element.querySelector('.pagebuilder-overlay');
20901                const color = overlay.dataset.overlayColor;
20902
20903                element.addEventListener('mouseover', () => {
20904                    overlay.style.backgroundColor = color;
20905                });
20906                element.addEventListener('mouseout', () => {
20907                    overlay.style.backgroundColor = 'transparent';
20908                });
20909            };
20910
20911            const showButtonOnHover = (element) => {
20912                const button = element.querySelector('.pagebuilder-banner-button');
20913
20914                element.addEventListener('mouseover', () => {
20915                    button.style.opacity = '1';
20916                    button.style.visibility = 'visible';
20917                });
20918                element.addEventListener('mouseout', () => {
20919                    button.style.opacity = '0';
20920                    button.style.visibility = 'hidden';
20921                });
20922            };
20923
20924            if (element.dataset.showOverlay === 'hover') {
20925                showOverlayOnHover(element);
20926            }
20927            if (element.dataset.showButton === 'hover') {
20928                showButtonOnHover(element);
20929            }
20930        };
20931
20932        window.addEventListener('DOMContentLoaded', () => {
20933            document.querySelectorAll('[data-content-type="banner"],[data-content-type="slider"]').forEach(element => {
20934                applyShowOnHover(element);
20935            });
20936        });
20937    })();
20938</script>
vendor: 1 bytes, line 20938
20938
20939<script>
20940    'use strict';
20941
20942    (() => {
20943        document.querySelectorAll('[data-content-type="tab-item"]').forEach(tabItem => {
20944            tabItem.setAttribute('x-show', `tab === '${tabItem.id}'`);
20945        });
20946
20947        document.querySelectorAll('[data-content-type="tabs"]').forEach(tab => {
20948            const defaultActiveTab = parseInt(tab.dataset.activeTab) || 0;
20949
20950            tab.querySelectorAll('.tab-header').forEach((tabHeader, index) => {
20951                const tabLink = tabHeader.querySelector('a');
20952                const tabId = tabLink.getAttribute('href').replace('#', '');
20953
20954                tabHeader.setAttribute(':class', `{ 'active': tab === '${tabId}' }`);
20955                tabLink.setAttribute('x-on:click.prevent', `tab = '${tabId}'`);
20956
20957                if (index === defaultActiveTab) {
20958                    tab.setAttribute('x-data', `{ tab: '${tabId}' }`);
20959                }
20960            });
20961        });
20962    })();
20963</script>
vendor: 1 bytes, line 20963
20963
20964<script>
20965    'use strict';
20966
20967    const grecaptchaV2LoadCallbacks = [];
20968
20969    function executeRecaptchaLoadCallbacks () {
20970        while (window.grecaptcha && grecaptchaV2LoadCallbacks.length > 0) {
20971            const callback = grecaptchaV2LoadCallbacks.pop();
20972            typeof callback === 'string' ? window[callback]() : callback();
20973        }
20974    }
20975
20976    (function() {
20977        const loadRecaptchaScript = (event) => {
20978
20979            if (window.grecaptcha || !event.target.form) {
20980                return;
20981            }
20982
20983            const url = 'https://www.google.com/recaptcha/api.js?onload=executeRecaptchaLoadCallbacks';
20984            const siteKey = '6LdQFsgqAAAAAFaiT_SQ7C9UmCcxWxpMd6pIMAEO';
20985            const script = document.createElement('script');
20986            script.type = 'text/javascript';
20987            script.src = siteKey ? `${url}&render=${siteKey}` : `${url}&render=explicit`;
20988            script.async = true;
20989            document.head.appendChild(script);
20990
20991            script.addEventListener('load', () => {
20992                Array.from(document.querySelectorAll('button[data-recaptcha-btn]:disabled')).forEach(btn => btn.removeAttribute('disabled'));
20993            });
20994        }
20995
20996        window.forceLoadRecaptchaScript = (form) => {
20997            loadRecaptchaScript({target: {form: form || 'dummy'}});
20998            executeRecaptchaLoadCallbacks();
20999        };
21000
21001        document.body.addEventListener('input', loadRecaptchaScript, { once: true });
21002        document.body.addEventListener('focus', loadRecaptchaScript, { once: true });
21003
21004    }());
21005
21006</script>
vendor: 1 bytes, line 21006
21006
21007<script>
21008    window.addEventListener("scroll", function() {
21009        var header = document.querySelector('header.page-header');
21010        var body = document.querySelector("body");
21011        const header_top = document.querySelector('.header_top');
21012        const notification4 = document.querySelector('.notification4');
21013        var top_1 = document.querySelector("header.page-header > .panel.wrapper");
21014        var content = document.getElementById("textContent");
21015
21016
21017        if(header_top && notification4){
21018            if ((header_top.textContent.length > 10) && (notification4.textContent.length > 10)) {
21019                if (window.pageYOffset > 76) {
21020                    //document.querySelector("#header").style.cssText = "position:fixed;left:0;top:0;width:100%;transition: all ease-in-out 0.5s";
21021                    //document.querySelector(".page-wrapper").style.cssText = "padding-top:112px";
21022                    document.querySelector('body').classList.add('sticki');
21023                } else {
21024                    //document.querySelector("#header").style.cssText = "position:static;transition: all ease-in-out 0.5s";
21025                    //document.querySelector(".page-wrapper").style.cssText = "padding-top:0px";
21026                    document.querySelector('body').classList.remove('sticki');
21027                }
21028            }
21029        }
21030
21031        if(header_top && notification4){
21032            if ((header_top.textContent.length > 10) && (notification4.textContent.length < 10)) {
21033                if (window.pageYOffset > 36) {
21034                    //document.querySelector("#header").style.cssText = "position:fixed;left:0;top:0;width:100%;transition: all ease-in-out 0.5s";
21035                    //document.querySelector(".page-wrapper").style.cssText = "padding-top:112px";
21036                    document.querySelector('body').classList.add('sticki');
21037                } else {
21038                    //document.querySelector("#header").style.cssText = "position:static;transition: all ease-in-out 0.5s";
21039                    //document.querySelector(".page-wrapper").style.cssText = "padding-top:0px";
21040                    document.querySelector('body').classList.remove('sticki');
21041                }
21042            }
21043        }
21044
21045        if(header_top && !notification4){
21046            if (header_top.textContent.length > 10) {
21047                if (window.pageYOffset > 36) {
21048                    //document.querySelector("#header").style.cssText = "position:fixed;left:0;top:0;width:100%;transition: all ease-in-out 0.5s";
21049                    //document.querySelector(".page-wrapper").style.cssText = "padding-top:112px";
21050                    document.querySelector('body').classList.add('sticki');
21051                } else {
21052                    //document.querySelector("#header").style.cssText = "position:static;transition: all ease-in-out 0.5s";
21053                    //document.querySelector(".page-wrapper").style.cssText = "padding-top:0px";
21054                    document.querySelector('body').classList.remove('sticki');
21055                }
21056            }
21057        }
21058    });
21059
21060    window.addEventListener("DOMContentLoaded", function() {
21061        window.addEventListener("scroll", function() {
21062            // scroll for plp content sticky
21063            anchor_scroll();
21064        });
21065        function anchor_scroll() {
21066            var anchor_scroll = document.querySelector('.anchor-scroll');
21067            if (!anchor_scroll) {
21068                return; // Exit if the element is not found
21069            }
21070            let sticky = anchor_scroll.offsetTop;
21071
21072            if (window.pageYOffset > sticky) {
21073                anchor_scroll.classList.add("scroll-fixed");
21074            } else {
21075                anchor_scroll.classList.remove("scroll-fixed");
21076            }
21077        }
21078
21079        document.querySelectorAll('.anchor-scroll a[href^="."], .at-glance-content a[href^="."]').forEach(anchor => {
21080            anchor.addEventListener('click', function (e) {
21081                e.preventDefault();
21082
21083                const targetClass = this.getAttribute('href').substring(1);
21084                const targetElement = document.querySelector(`.${targetClass}`);
21085                let anchor_scroll = document.querySelector('.anchor-scroll > div');
21086                var header_off = document.querySelector('#header').offsetHeight;
21087                if (anchor_scroll) {
21088                    var header_off = document.querySelector('#header').offsetHeight + anchor_scroll.offsetHeight;
21089                } else {
21090                    var header_off = document.querySelector('#header').offsetHeight;
21091                }
21092
21093                if (targetElement) {
21094                    const offset = header_off;
21095                    const bodyRect = document.body.getBoundingClientRect().top;
21096                    const elementRect = targetElement.getBoundingClientRect().top;
21097                    const elementPosition = elementRect - bodyRect;
21098                    const offsetPosition = elementPosition - offset;
21099
21100                    window.scrollTo({
21101                        top: offsetPosition,
21102                        behavior: 'smooth'
21103                    });
21104                }
21105            });
21106        });
21107    });
21108</script>
21108
21109
21110
21111    <section x-cloak x-data="{isLoading: false}"
21112             @amcaptcha-loading-start.window="isLoading = true" @amcaptcha-loading-stop.window="isLoading = false">
21113        <div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50"
21114     style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);"
21115     x-show="isLoading"
21116     x-transition:enter="ease-out duration-200"
21117     x-transition:enter-start="opacity-0"
21118     x-transition:enter-end="opacity-100"
21119     x-transition:leave="ease-in duration-200"
21120     x-transition:leave-start="opacity-100"
21121     x-transition:leave-end="opacity-0">
21122    <!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL -->
21123<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="text-primary" width="57" height="57" role="img">
21124    <g fill="none" fill-rule="evenodd">
21125        <g transform="translate(1 1)" stroke-width="2">
21126            <circle cx="5" cy="50" r="5">
21127                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/>
21128                <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/>
21129            </circle>
21130            <circle cx="27" cy="5" r="5">
21131                <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/>
21132                <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/>
21133            </circle>
21134            <circle cx="49" cy="50" r="5">
21135                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/>
21136                <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/>
21137            </circle>
21138        </g>
21139    </g>
21140<title>loader</title></svg>
21141    <div class="ml-10 text-primary text-xl">
21142        Loading...    </div>
21143</div>
21144    </section>
21145
21146<script>
21147    'use strict';
21148
21149    function responseSerialize(response) {
21150        if (response.redirected) {
21151            window.location.href = response.url;
21152        } else if (response.ok) {
21153            return response.json();
21154        } else {
21155            // Check if result is Promise then throw to new Error
21156            let defaultErrMsg = 'Something went wrong. Please contact the website admin for more information.',
21157                result;
21158            result = response.text();
21159            if (typeof result?.then === 'function') {
21160                result.then(res => {
21161                    let errorMessage;
21162                    try {
21163                        errorMessage = JSON.parse(res);
21164                        errorMessage = errorMessage?.message ? errorMessage.message : defaultErrMsg;
21165                    } catch (e) {
21166                        errorMessage = defaultErrMsg;
21167                    }
21168                    window.dispatchMessages([
21169                        {
21170                            type: 'error',
21171                            text: errorMessage
21172                        }
21173                    ], 3000);
21174                });
21175            } else {
21176                throw new Error(defaultErrMsg);
21177            }
21178        }
21179    }
21180
21181    if (typeof window.buildRestAPIUrl !== 'function') {
21182        window.buildRestAPIUrl = function (url, params = {}) {
21183            const method = 'rest',
21184                storeCode = 'default',
21185                version = 'V1',
21186                serviceUrl = ':method/:storeCode/:version';
21187
21188            let urlParts;
21189
21190            params.method = method;
21191            params.storeCode = storeCode;
21192            params.version = version;
21193
21194            url = serviceUrl + url;
21195
21196            urlParts = url.split('/');
21197            urlParts = urlParts.filter(Boolean);
21198
21199            Object.entries(urlParts).forEach (entry => {
21200                let [key, part] = entry;
21201                part = part.replace(':', '');
21202
21203                if (params[part] !== undefined) {
21204                    urlParts[key] = params[part];
21205                }
21206            });
21207
21208            return urlParts.join('/');
21209        }
21210    }
21211
21212    if (typeof window.isObjectEmpty !== 'function') {
21213        window.isObjectEmpty = function (obj) {
21214            return (
21215                Object.prototype.toString.call(obj) === '[object Object]' &&
21216                JSON.stringify(obj) === '{}'
21217            );
21218        }
21219    }
21220
21221    if (typeof window.mergeDeep !== 'function') {
21222        /**
21223         * Deep merge two objects.
21224         *
21225         * @param target
21226         * @param sources
21227         * @returns {*}
21228         */
21229        window.mergeDeep = (target, ...sources) => {
21230            /**
21231             * Simple object check.
21232             *
21233             * @param item
21234             * @returns {boolean}
21235             */
21236            const isObject = (item) => {
21237                return (item && typeof item === 'object' && !Array.isArray(item));
21238            };
21239
21240            if (!sources.length) return target;
21241            const source = sources.shift();
21242
21243            if (isObject(target) && isObject(source)) {
21244                for (const key in source) {
21245                    if (isObject(source[key])) {
21246                        if (!target[key]) Object.assign(target, { [key]: {} });
21247                        mergeDeep(target[key], source[key]);
21248                    } else {
21249                        Object.assign(target, { [key]: source[key] });
21250                    }
21251                }
21252            }
21253
21254            return mergeDeep(target, ...sources);
21255        }
21256    }
21257</script>
21257
21258
21259<div x-data="{...hyva.modal(), ...initAmcartDialogPopup()}"
21260     x-init="initDialogPopup($dispatch)"
21261     x-spread="eventListeners"
21262     x-bind="eventListeners">
21263    <div x-cloak x-spread="overlay('amcart-dialog-popup')" x-bind="overlay('amcart-dialog-popup')"
21264         class="fixed inset-0 flex items-center justify-center text-left bg-black bg-opacity-50 z-30">
21265        <div x-ref="amcart-dialog-popup" role="dialog" aria-labelledby="amcart-dialog-popup-content"
21266             class="flex flex-col max-h-screen max-w-4xl overflow-auto bg-amcart-background shadow-xl rounded-lg p-4">
21267            <div class="flex justify-between pb-4 border-b">
21268                <div x-text="title" class="text-2xl font-extrabold text-amcart-text"></div>
21269                <button @click="$dispatch('amcart-close-dialog-popup')"
21270                        aria-label="Close"
21271                        class="text-gray-300 transition hover:text-black hover:drop-shadow-md">
21272                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="h-6 w-6" width="24" height="24" role="img">
21273  <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/>
21274<title>x</title></svg>
21275                </button>
21276            </div>
21277            <div id="amcart-dialog-popup-content" class="amcart-dialog-popup-content"></div>
21278            <div class="flex flex-row pt-3 border-t">
21279                <template x-for="(button, index) in buttons" :key="index">
21280                    <button class="btn mr-4 last:mr-0 text-amcart-button hover:brightness-105 hover:shadow-lg"
21281                            :class="{
21282                                'bg-amcart-continue-btn hover:bg-amcart-continue-btn': index === 0,
21283                                'bg-amcart-view-cart-btn hover:bg-amcart-view-cart-btn': index === 1
21284                            }"
21285                            :aria-label="button.name"
21286                            x-html="button.name"
21287                            @click="dispatchButtonAction(button.action.name, button.action.payload)"></button>
21288                </template>
21289            </div>
21290        </div>
21291    </div>
21292</div>
21293
21294<script>
21295    'use strict';
21296
21297    function initAmcartDialogPopup() {
21298        const dialogPopupName = 'amcart-dialog-popup';
21299        const selectors = {
21300            addToCartForm: '.amcart-product-info #amcart_product_addtocart_form',
21301            ratingSummarySelector: '.amcart-product-info .rating-summary'
21302        }
21303
21304        return {
21305            eventListeners: {
21306                ['@amcart-open-dialog-popup.window']({detail: popupData}) {
21307                    // Close any existing modal before opening
21308                    window.hyva.modal.pop();
21309
21310                    this.initPopupWithData(popupData);
21311                    this.$nextTick(() => {
21312                        this.show(dialogPopupName);
21313                    });
21314                },
21315                ['@amcart-close-dialog-popup']() {
21316                    this.hide(dialogPopupName);
21317                },
21318                ['@amcart-dialog-submit']({ detail: actionToDispatch }) {
21319                    const form = document.querySelector(selectors.addToCartForm);
21320
21321                    if (form.checkValidity()) {
21322                        this.dispatch(actionToDispatch, form);
21323                        this.hide(dialogPopupName);
21324                    } else {
21325                        form.reportValidity();
21326                    }
21327                },
21328                ['@amcart-hide-popup']() {
21329                    this.hide(dialogPopupName);
21330                }
21331            },
21332            title: '',
21333            buttons: [],
21334            message: '',
21335            selected_options: null,
21336            dispatch: null,
21337
21338            /**
21339             * @param {Object} $dispatch
21340             * @return {void}
21341             */
21342            initDialogPopup: function ($dispatch) {
21343                this.dispatch = $dispatch;
21344            },
21345
21346            /**
21347             * @param {CartResponse} popupData
21348             * @return {void}
21349             */
21350            initPopupWithData: function (popupData) {
21351                this.title = popupData.title;
21352                this.buttons = popupData.buttons;
21353                this.selected_options = popupData.selected_options;
21354                hyva.replaceDomElement('#amcart-dialog-popup-content', this.preprocessMessage(popupData.message));
21355                this.$nextTick(() => {
21356                    this.postProcessPopupContent();
21357                });
21358            },
21359
21360            /**
21361             * @param {string} message
21362             * @return {string}
21363             */
21364            preprocessMessage: function (message) {
21365                /**
21366                 * Disable labels for input inside popup due to the possibility of their duplication on the page.
21367                 * Because this can lead to unexpected behaviour.
21368                 *
21369                 * Make form id unique for popup
21370                 */
21371                return message
21372                    .replaceAll(':for=', 'for-data=')
21373                    .replaceAll('product_addtocart_form', 'amcart_product_addtocart_form');
21374            },
21375
21376            /**
21377             * @return {void}
21378             */
21379            postProcessPopupContent: function () {
21380                this.disableRatingSummary();
21381                this.clickSelectedOptions();
21382            },
21383
21384            /**
21385             * @return {void}
21386             */
21387            disableRatingSummary: function () {
21388                const ratingSummaryElement = document.querySelector(selectors.ratingSummarySelector);
21389
21390                if (!!ratingSummaryElement) {
21391                    ratingSummaryElement.removeAttribute('onClick');
21392                    ratingSummaryElement.classList.remove('cursor-pointer');
21393                }
21394            },
21395
21396            /**
21397             * @return {void}
21398             */
21399            clickSelectedOptions: function () {
21400                if (!this.selected_options) {
21401                    return;
21402                }
21403
21404                for(const [attributeId, attributeValue] of Object.entries(this.selected_options)) {
21405                    const swatchOptionTemplate =  document.querySelector(
21406                        `.amcart-product-info template[x-for*="attributes[${attributeId}]"]`
21407                    );
21408
21409                    if (!!swatchOptionTemplate && !!swatchOptionTemplate.parentElement) {
21410                        const swatchInput = swatchOptionTemplate.parentElement
21411                            .querySelector(`input[value="${attributeValue}"]`);
21412                        swatchInput && swatchInput.click();
21413                    }
21414                }
21415            },
21416
21417            /**
21418             * @param {string} name
21419             * @param {string|undefined} payload
21420             * @return {void}
21421             */
21422            dispatchButtonAction: function (name, payload) {
21423                this.dispatch(name, payload);
21424            }
21425        };
21426    }
21427</script>
21427
21428
21429<script>
21430    (function () {
21431        'use strict';
21432
21433        const addToCartProductListFormSelector = '.product_addtocart_form';
21434        const addToCartProductPageFormSelector = '#product_addtocart_form';
21435        const setFormsEvent = function () {
21436            const productListForms = document.querySelectorAll(addToCartProductListFormSelector);
21437            const productPageForm = document.querySelector(addToCartProductPageFormSelector);
21438
21439            productPageForm && addDispatcher(productPageForm);
21440            productListForms.forEach((form) => {
21441                // disable html5 validation
21442                form.setAttribute('novalidate', '');
21443                addDispatcher(form);
21444            });
21445        }
21446
21447        const addDispatcher = function(form) {
21448            form.removeAttribute('@submit');
21449            form.removeAttribute('@submit.prevent');
21450            form.setAttribute('x-data', '');
21451            form.setAttribute('x-on:submit.prevent', '$dispatch(\'amcart-add-to-cart-action\', $el)');
21452        }
21453
21454        setFormsEvent();
21455
21456        window.addEventListener('amcart-set-forms-event', setFormsEvent);
21457    })();
21458</script>
21458
21459
21460<script>
21461    (function () {
21462        'use strict';
21463
21464        /**
21465         * @typedef {Object} CartResponse
21466         *
21467         * Popup common props
21468         * @property {[
21469         *     name: string,
21470         *     action: {
21471         *         name: string,
21472         *         payload: string|undefined
21473         *     }
21474         * ]|undefined} buttons
21475         * @property {string|undefined} popup_action
21476         * @property {string|undefined} message
21477         * @property {string|undefined} title
21478         *
21479         * DialogPopup props
21480         * @property {string|null|undefined} selected_options
21481         *
21482         * ConfirmationPopup props
21483         * @property {string|undefined} align
21484         * @property {string|undefined} checkout
21485         * @property {string|undefined} product_id
21486         * @property {string|undefined} product_sku
21487         * @property {string|undefined} related
21488         * @property {number|undefined} timer
21489         *
21490         * Redirect props
21491         * @property {string|undefined} redirect url to redirect
21492         */
21493
21494        let globalActionName;
21495
21496        const addToCartAction = ({detail: form}) => {
21497            const isProductForm = form.id === 'product_addtocart_form';
21498
21499            globalActionName = getCartAction(form);
21500
21501            if (isProductForm) {
21502                window.dispatchEvent(new CustomEvent('amcart-trigger-grouped-form-validate'));
21503
21504                if (form.checkValidity()) {
21505                    performRequest(form, isProductForm);
21506                }
21507            } else {
21508                performRequest(form, isProductForm)
21509            }
21510        };
21511
21512        const performRequest = function (form, isProductForm) {
21513            const cartUrl = `${BASE_URL}amasty_cart/cart/${getCartAction(form)}`;
21514            const isProductPage = document.body.classList.contains('catalog-product-view');
21515            const headers = {
21516                'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
21517            };
21518            const formData = new FormData(form);
21519            formData.set('product_page', isProductPage && isProductForm);
21520            formData.set('last_category_id', hyva.getBrowserStorage().getItem('last_category_id'));
21521            formData.set('form_key', hyva.getFormKey());
21522            !formData.get('id') && formData.get('item') && formData.set('id', formData.get('item'));
21523
21524            const body = new URLSearchParams(formData);
21525
21526            window.dispatchEvent(new CustomEvent('amcart-loading-start'));
21527            window.dispatchEvent(new CustomEvent('amcart-add-start', { detail: form }));
21528
21529            fetch(cartUrl, {headers: {...headers}, body: body, method: 'POST'})
21530                .then(response => response.json())
21531                .then((result) => {
21532                    resultActionResolver.resolve(result);
21533                    const relatedProductDialog = document.querySelector('.related-product-dialog-wrapper');
21534                    const cartLink = document.getElementById('menu-cart-icon');
21535                    const isRelatedProductForm = form.closest('.related-products-pdp-section');
21536                    if (relatedProductDialog && !isRelatedProductForm) {
21537                        setTimeout(() => {
21538                            window.dispatchEvent(
21539                                new CustomEvent('hyva-modal-show', { detail: { dialog: 'related-product-slider-dialog' } })
21540                            );
21541                        }, 2000);
21542                    } else if (cartLink) {
21543                        cartLink.click();
21544                    }
21545                }).catch((error) => {
21546                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
21547                        [{
21548                            type: "error",
21549                            text: error
21550                        }], 5000
21551                    );
21552                }).finally(() => {
21553                    window.dispatchEvent(new CustomEvent('amcart-loading-stop'));
21554                });
21555        };
21556
21557        const getCartAction = function(formNode) {
21558            return formNode.action.includes('updateItemOptions')
21559                ? `UpdateItemOptions`
21560                : 'add';
21561        };
21562
21563        const resultActionResolver = {
21564            /**
21565             * @param {CartResponse} result
21566             */
21567            resolve: function (result) {
21568				
21569				if(typeof result.is_add_to_cart != "undefined"){
21570					var msg = result.message;
21571					/*if($($.parseHTML(result.message)).filter(".message.error").text()){
21572						msg =  $($.parseHTML(result.message)).filter(".message.error").text(); 
21573					}*/
21574
21575                    var parser = new DOMParser();
21576                    var doc = parser.parseFromString(result.message, 'text/html');
21577                    var errorMsg = doc.querySelector('.message.error') ? doc.querySelector('.message.error').textContent : '';
21578
21579                    if (errorMsg) {
21580                        msg = errorMsg;
21581                    }
21582
21583					window.dispatchMessages && window.dispatchMessages([{
21584                        type: 'error',
21585                        text: msg
21586                    }]);
21587					
21588				}
21589                switch (true) {
21590                    case !!result.popup_action:
21591                    var parser = new DOMParser();
21592                    var doc = parser.parseFromString(result.message, 'text/html');
21593                    var errorMsg = doc.querySelector('.message.error') ? doc.querySelector('.message.error').textContent : '';
21594                    if (errorMsg) {
21595                        msg = errorMsg;
21596                        window.dispatchMessages && window.dispatchMessages([{
21597                            type: 'error',
21598                            text: msg
21599                        }]);
21600                    } else {
21601                        window.dispatchEvent(new CustomEvent(result.popup_action, {detail: result}));
21602                        window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
21603
21604                        if (globalActionName == 'UpdateItemOptions') {
21605                           window.location.href = `${BASE_URL}checkout/cart`;
21606                        }
21607                    }
21608                        break;
21609                    case !!result.redirect:
21610                        window.location.href = result.redirect;
21611                        break;
21612                }
21613            }
21614        }
21615
21616        if (document.body.classList.contains('catalog-category-view')) {
21617            hyva.getBrowserStorage().setItem(
21618                'last_category_id',
21619                '2333'
21620            );
21621        }
21622
21623        const groupedOptions = document.querySelector('div[x-data^=initGroupedOptions]');
21624
21625        if (!!groupedOptions) {
21626            groupedOptions.setAttribute('x-on:amcart-trigger-grouped-form-validate.window', 'validateForm()');
21627        }
21628
21629        window.addEventListener('amcart-add-to-cart-action', addToCartAction);
21630    })();
21631</script>
21631<script>
21632    (function () {
21633        'use strict';
21634
21635        const addToQuoteButtonSelector = '.amquote-addto-button:not(.amasty-quote-login):not(.amasty-quote-link)';
21636        document.querySelectorAll(addToQuoteButtonSelector).forEach((button) => {
21637            if (!button.hasAttribute('x-data')) {
21638                button.setAttribute('x-data', '');
21639            }
21640
21641            button.removeAttribute('@click.prevent');
21642            button.setAttribute(
21643                'x-on:click.prevent',
21644                '$dispatch(\'amcart-add-to-quote-action\', $el)');
21645        });
21646    })();
21647</script>
vendor: 1 bytes, line 21647
21647
21648<script>
21649    (function () {
21650        'use strict';
21651
21652        const addToQuoteAction = ({ detail: element }) => {
21653            const formNode = element.nodeName === 'FORM'
21654                ? element
21655                : element.form ?? element.closest('form');
21656
21657            window.dispatchEvent(new CustomEvent('amcart-trigger-grouped-form-validate'));
21658            if (!formNode || !formNode.checkValidity()) {
21659                return formNode?.reportValidity();
21660            }
21661
21662            performRequest(formNode);
21663        }
21664
21665        const performRequest = (formNode) => {
21666            const url = `${BASE_URL}amasty_cart/quote/${getAction(formNode)}`;
21667            const headers = {
21668                'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
21669            };
21670            const formData = new FormData(formNode);
21671            const isProductPage = formNode.id === 'product_addtocart_form'
21672                && document.body.classList.contains('catalog-product-view');
21673            formData.set('product_page', isProductPage);
21674            formData.set('last_category_id', hyva.getBrowserStorage().getItem('last_category_id'));
21675            formData.set('id', formData.get('item'));
21676
21677            window.dispatchEvent(new CustomEvent('amcart-loading-start'));
21678            window.dispatchEvent(new CustomEvent('amcart-add-start', { detail: formNode }));
21679
21680            fetch(url, { headers: { ...headers }, body: new URLSearchParams(formData), method: 'POST' })
21681                .then(response => response.json())
21682                .then((result) => {
21683                    switch (true) {
21684                        case !!result.popup_action:
21685                            window.dispatchEvent(new CustomEvent(result.popup_action, { detail: result }));
21686                            window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
21687                            break;
21688                        case !!result.redirect:
21689                            window.location.href = result.redirect;
21690                            break;
21691                    }
21692                }).catch((error) => {
21693                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
21694                        [{
21695                            type: "error",
21696                            text: error
21697                        }], 5000
21698                    );
21699                }).finally(() => {
21700                    window.dispatchEvent(new CustomEvent('amcart-loading-stop'));
21701                });
21702        };
21703
21704        const getAction = (formNode) => {
21705            return (formNode.action.includes('amasty_quote') && formNode.action.includes('updateItemOptions'))
21706                ? 'updateItemOptions'
21707                : 'add';
21708        };
21709
21710        window.addEventListener('amcart-add-to-quote-action', addToQuoteAction);
21711    })();
21712</script>
21712
21713
21714
21715    
21715<script>
21716        'use strict';
21717
21718        (function () {
21719            const initCompareFunctions = ['initCompareOnProductList', 'initCompareOnProductView'];
21720
21721            initCompareFunctions.forEach(compareFunction => {
21722                window[compareFunction] = function () {
21723                    return {
21724                        addToCompare: function (productId) {
21725                            var loader=document.getElementById('loading');
21726                            console.log("11111111");
21727                            loader.style.display='block';
21728                            console.log("Add To compare amasty ajax cart qqqqq");
21729                                                        const postUrl = BASE_URL + 'catalog/product_compare/add/';
21730                            const headers = {
21731                                "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
21732                            };
21733                            const body = new URLSearchParams({
21734                                form_key: hyva.getFormKey(),
21735                                product: productId,
21736                                is_ajax: true
21737                            });
21738
21739                            fetch(postUrl, {headers: headers, body: body, method: 'POST'}).then((response) => {
21740                                                                if (response.redirected) {
21741                                    window.location.href = response.url;
21742                                } else if (response.ok) {
21743                                    window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
21744                                } else {
21745                                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
21746                                        [{
21747                                            type: "warning",
21748                                            text: "Could not add item to the comparison list."
21749                                        }],
21750                                        1000
21751                                    );
21752                                }
21753                            }).catch((error) => {
21754                                typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
21755                                    [{
21756                                        type: 'error',
21757                                        text: error
21758                                    }],
21759                                    1000
21760                                );
21761                            });
21762                        }
21763                    };
21764                };
21765            });
21766        })();
21767    </script>
21767
21768
21769
21770
21771
21772
21773<section x-data="{isLoading: false}" x-cloak
21774         @amcart-loading-start.window="isLoading = true"
21775         @amcart-loading-stop.window="isLoading = false">
21776    </section>
21777
21778<div x-data="prDataPrivacyCheckboxDetailModalComponent.create()"
21779     @set-is-show-modal.window="isShowModal = $event.detail"
21780     @keydown.escape="closeModal"
21781>
21782    <div x-ref="pr-data-privacy-checkbox-detail" x-show="isShowModal" x-cloak>
21783        <div class="inset-0 fixed z-50">
21784            <div class="relative z-10 max-w-3xl sm:my-10 ml-10 sm:mx-auto bg-white p-7 h-full max-h-full sm:h-auto sm:max-h-[90%] flex rounded shadow-md"
21785                 x-show="isShowModal" x-transition
21786            >
21787                <span class="absolute top-3 right-3 cursor-pointer hover:text-gray-700 p-1" @click="closeModal">
21788                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" width="20" height="20" role="img">
21789  <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/>
21790<title>x</title></svg>
21791                </span>
21792                <template x-if="data.checkbox">
21793    <div id="prgdpr-consent-checkboxes-modal" class="flex flex-col">
21794        <div class="modal-header flex flex-col flex-shrink-0 flex-grow-0 mb-5">
21795            <h2 class="text-xl lg:text-2lx pb-3 mb-1 border-container border-b" x-html="data.checkbox.policy.title"></h2>
21796            <a data-contentid="prgdpr-print-content"
21797               class="ml-auto text-sm text-blue-600 hover:underline"
21798               href="#"
21799               @click.prevent="print()"
21800            >
21801                Print            </a>
21802        </div>
21803        <div class="prgdpr-consent-checkboxes-item-content overflow-y-auto mb-5" id="prgdpr-print-content">
21804            <div class="prose max-w-none" x-html="data.checkbox.policy.content"></div>
21805        </div>
21806        <div class="modal-footer flex-shrink-0 flex-grow-0 pt-5 mt-auto border-container border-t">
21807            <button type="button"
21808                    class="action iagree btn btn-primary"
21809                    @click="data.checkbox.checked = data.checkbox.isAlreadyChecked = true; $dispatch('prgdpr-checkbox-agree', 'checkbox' + data.checkbox.consentId); closeModal();"
21810            >
21811                I agree            </button>
21812        </div>
21813    </div>
21814</template>
21815            </div>
21816
21817            <div class="bg-gray-800 opacity-50 absolute inset-0" @click="closeModal"></div>
21818        </div>
21819    </div>
21820</div>
21821
21822<script>
21823    const prDataPrivacyCheckboxDetailModalComponent = {
21824        data: null,
21825        isShowModal: false,
21826        create: function () {
21827            this.data = Alpine.reactive({checkbox: null});
21828            return this;
21829        },
21830        setCheckbox: function (checkbox) {
21831            this.data.checkbox = checkbox;
21832        },
21833        showModal: function () {
21834            this.isShowModal = true;
21835        },
21836        closeModal() {
21837            this.isShowModal = false;
21838        },
21839        print: function () {
21840            let printWindow = window.open('', 'Print', 'height=600,width=800');
21841            printWindow.document.write(
21842                `<html><head><title>${this.data.checkbox.policy.title}</title><link rel="next" href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html?p=2" />
21843</head><body>${this.data.checkbox.policy.content}</body></html`
21844            );
21845            printWindow.document.close();
21846            printWindow.focus();
21847            printWindow.print();
21848            printWindow.onafterprint = function () {
21849                printWindow.close();
21850            };
21851
21852            return true;
21853        }
21854    };
21855</script>
21855
21856
21857<script>
21858    window.addEventListener('load', function () {
21859        magentoStorefrontEvents.context.setPage({
21860            pageType: "Category"
21861        });
21862        magentoStorefrontEvents.context.setContext("pageExtended", {
21863            action: "category-view"
21864        });
21865        magentoStorefrontEvents.context.setCategory({"name":"All Rubber Flooring","urlKey":"all-rubber-flooring","urlPath":"shop\/rubber-flooring\/all-rubber-flooring"});
21866    });
21867
21868    window.addEventListener('productAddToCart', function () {
21869        const browserStorage = hyva.getBrowserStorage();
21870        let dataServicesProductContext = JSON.parse(browserStorage.getItem('dataservices_product_context'));
21871
21872        if (dataServicesProductContext){
21873            magentoStorefrontEvents.context.setProduct(dataServicesProductContext);
21874            magentoStorefrontEvents.publish.addToCart();
21875        }
21876    });
21877
21878    function dataServicesAddToCartTracking() {
21879        return {
21880            checkIfProductIsAddedToBasket: function (data) {
21881                const browserStorage = hyva.getBrowserStorage();
21882
21883                if (browserStorage && data.cart) {
21884                    let cartSummaryCount = data.cart.summary_count;
21885                    let storageSummaryCount = browserStorage.getItem('cart_summary_count') || 0;
21886
21887                    if (cartSummaryCount > storageSummaryCount) {
21888                        window.dispatchEvent(new Event("productAddToCart"));
21889                    }
21890
21891                    browserStorage.setItem('cart_summary_count', data.cart.summary_count);
21892                    browserStorage.setItem('dataservices_product_context', JSON.stringify(data.cart.dataservices_product_context));
21893                }
21894            }
21895        }
21896    }
21897</script>
21897
21898
21899<div x-data="dataServicesAddToCartTracking()"
21900     @private-content-loaded.window="checkIfProductIsAddedToBasket($event.detail.data)"></div>
21901<script>
21902    function adobeProductRecsDataFetcher() {
21903        "use strict";
21904        return {
21905            pagePreconfiguredDeferred: {},
21906            productBanners: '',
21907            fetchData: function () {
21908                let self = this;
21909                let storefrontEvents = window.magentoStorefrontEvents;
21910
21911                storefrontEvents.context.setContext("recsContext", {
21912                    alternateEnvironmentId: ""
21913                });
21914
21915                this.pagePreconfiguredDeferred = new Promise((resolve, reject) => {
21916                    self.pagePreconfiguredDeferred.resolve = resolve;
21917                    self.pagePreconfiguredDeferred.reject = reject;
21918                })
21919
21920                document.addEventListener("recsRequestSent", (function () {
21921                    storefrontEvents.publish.recsRequestSent();
21922                }));
21923
21924                window.addEventListener("recsResponseReceived", (function (n) {
21925                    let rec = storefrontEvents.context.getRecommendations();
21926
21927                    rec = n.detail, storefrontEvents.context.setRecommendations({
21928                        units: rec
21929                    });
21930                    storefrontEvents.publish.recsResponseReceived();
21931                }));
21932
21933                this.fetchRecommendationsData();
21934            },
21935            fetchRecommendationsData: function () {
21936                let client;
21937                let promise = new Promise(function(resolve, reject) {
21938                    let interval = setInterval(() => {
21939                        client = new RecommendationsClient();
21940                        if(client._environmentId !== "") {
21941                            clearInterval(interval);
21942                            resolve();
21943                        }
21944                    }, 300);
21945                })
21946                .then(() => {
21947                    document.dispatchEvent(new Event("recsRequestSent"));
21948                    client.fetchPreconfigured().then(response => {
21949                        const units = response.data.results;
21950                        const filteredUnits = units.filter(unit => unit.products.length);
21951                        const responseEvent = new CustomEvent("recsResponseReceived", {
21952                            detail: filteredUnits,
21953                        });
21954
21955                        window.dispatchEvent(responseEvent);
21956                    });
21957                });
21958            }
21959        }
21960    }
21961</script>
21961
21962<div x-data="adobeProductRecsDataFetcher()" x-init="fetchData()"></div>
21963
21964<script>
21965    function expandFilters(){
21966        const idxs = [0,1,2,3,4,5,6,7,8,9,10,11,12,13];
21967        let filters = document.querySelectorAll('.sidebar.sidebar-main div.filter-option');
21968
21969        if(filters.length == 0) {
21970            filters = document.querySelectorAll('.column.main div.filter-option');
21971        }
21972
21973        filters.forEach(function (filter, idx) {
21974            const isOpen = idxs.includes(idx) ? 'true' : 'false';
21975            filter.setAttribute('x-data', '{open: ' + isOpen + ', id: '+ idx + '}')
21976        })
21977    }
21978
21979    expandFilters();
21980</script>
21980
21981
21982
21983
21984<script>
21985    function initDefaultAjaxToolbar () {
21986        const toolbars = document.querySelectorAll('.toolbar.toolbar-products');
21987
21988        // init ajax toolbar
21989        toolbars.forEach(function (toolbar) {
21990            let xData = toolbar.getAttribute('x-data');
21991            xData = '{...' + xData + ', ...initAjaxToolbar()}';
21992
21993            toolbar.setAttribute('x-data', xData);
21994        });
21995
21996        // init ajax pager
21997        let pagerItems = document.querySelectorAll('.toolbar.toolbar-products .pages-items a');
21998
21999        pagerItems.forEach(function (item) {
22000            item.addEventListener('click', function (e) {
22001                e.preventDefault();
22002
22003                initApplier().apply(item.href);
22004            });
22005        });
22006
22007        let horizontalNavOnSearch = document.querySelector('.catalogsearch-result-index .mst-nav__horizontal-bar');
22008
22009        if (horizontalNavOnSearch) {
22010            let nav = horizontalNavOnSearch.cloneNode(true);
22011
22012            let replacer = document.querySelector('#m-navigation-replacer');
22013            replacer.parentNode.insertBefore(nav, replacer.nextSibling);
22014
22015            horizontalNavOnSearch.parentNode.removeChild(horizontalNavOnSearch);
22016        }
22017    }
22018    initDefaultAjaxToolbar();
22019</script>
vendor: 1 bytes, line 22019
22019
22020<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/www.flooringinc.com\/","name":"Home","@type":"WebPage"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/www.flooringinc.com\/shop.html","name":"Flooring By Category","@type":"WebPage"}},{"@type":"ListItem","position":3,"item":{"@id":"https:\/\/www.flooringinc.com\/shop\/rubber-flooring.html","name":"Rubber Flooring","@type":"WebPage"}},{"@type":"ListItem","position":4,"item":{"@id":"https:\/\/www.flooringinc.com\/shop\/rubber-flooring\/all-rubber-flooring.html","name":"All Rubber Flooring","@type":"WebPage"}}]}</script>
22020<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"WebSite","url":"https:\/\/www.flooringinc.com\/","name":"flooringinc","potentialAction":{"@type":"SearchAction","target":"https:\/\/www.flooringinc.com\/catalogsearch\/result\/?q={search_term_string}","query-input":"required name=search_term_string"}}</script>
22020<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Organization","url":"https:\/\/www.flooringinc.com\/","name":"Flooring Inc","logo":" https:\/\/www.flooringinc.com\/media\/logo\/stores\/1\/logo.webp","description":"FlooringInc is your online flooring superstore. We offer wood, laminate, carpet, vinyl, specialty flooring and more.","contactPoint":[{"@type":"ContactPoint","telephone":"(866) 416-6388","contactType":"customer service"}],"address":{"addressCountry":"US","postalCode":"85043","addressRegion":"Arizona","addressLocality":"Phoenix","streetAddress":"2429 S. 51st Ave. Ste 10"},"sameAs":["https:\/\/www.facebook.com\/FlooringInc","https:\/\/www.instagram.com\/flooringinccom\/","https:\/\/www.youtube.com\/user\/flooringincvideos","https:\/\/www.pinterest.com\/flooringinc\/"]}</script>
22020<script type="application/ld+json">[{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/rubber-gym-rolls-14000.html#group","name":"Rubber Gym Flooring Rolls - 4ft Wide (Custom Cut)","sku":"14000","description":"Rubber Gym Flooring Rolls - 4ft Wide (Custom Cut)","image":"https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_v7nl7dt4kd5jhbbcdul019vu7a\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/rubber-gym-rolls-14000.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/rubber-gym-rolls-14000.html#offer-14000","price":0.99,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/rubber-gym-rolls-14000.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":3.96,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":4,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"14000","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.49","reviewCount":"39","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Michelle T."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/rubber-gym-rolls-14000.html#group","name":"Rubber Gym Flooring Rolls - 4ft Wide (Custom Cut)"},"datePublished":"2026-08-27","name":"Gives true gym feel underfoot","reviewBody":"Made a big difference in our garage gym. We had first tried cheaper puzzle piece flooring and returned it and got this instead. So much better. Worth the money."},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/rubber-gym-rolls-14000.html#group","name":"Rubber Gym Flooring Rolls - 4ft Wide (Custom Cut)"},"datePublished":"2026-06-18"},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/rubber-gym-rolls-14000.html#group","name":"Rubber Gym Flooring Rolls - 4ft Wide (Custom Cut)"},"datePublished":"2026-05-18"},{"@type":"Review","author":{"@type":"Person","name":"Crisp Academy"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/rubber-gym-rolls-14000.html#group","name":"Rubber Gym Flooring Rolls - 4ft Wide (Custom Cut)"},"datePublished":"2026-05-01","name":"Highly Recommend","reviewBody":"We are very pleased with the rubber flooring we ordered. The entire process from ordering to installation was easy. Customer service was extremely helpful when we had questions. I would and will recommend Flooring Inc to anyone wishing to purchase rubber flooring."},{"@type":"Review","author":{"@type":"Person","name":"AG"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/rubber-gym-rolls-14000.html#group","name":"Rubber Gym Flooring Rolls - 4ft Wide (Custom Cut)"},"datePublished":"2026-05-01","name":"Gym floor","reviewBody":"Great flooring. Perfect for home gym. Fast delivery too!"}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-8-heavy-duty-rubber-rolls-1006.html#group","name":"3\/8\" Heavy Duty Rubber Rolls | Commercial Gym Flooring","sku":"1006","description":"3\/8\" Heavy Duty Rubber Rolls | Commercial Gym Flooring","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_0ljk07003h6q14fc1jfohkob07\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/3-8-heavy-duty-rubber-rolls-1006.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/3-8-heavy-duty-rubber-rolls-1006.html#offer-1006","price":1.58,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/3-8-heavy-duty-rubber-rolls-1006.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":6.33,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":4,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"1006","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.87","reviewCount":"364","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Annie"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-8-heavy-duty-rubber-rolls-1006.html#group","name":"3\/8\" Heavy Duty Rubber Rolls | Commercial Gym Flooring"},"datePublished":"2026-09-21","name":"Great flooring but a few notes","reviewBody":"We've had this down for about a week now. The product is truly great quality for uniformity of color, thickness, how flat and evenly it lays down, and size from roll to roll. It is very dense and very heavy (a 22 foot roll weighs about 225 lbs) so it will definitely last under the toughest conditions. That said, it's best if you have a few people moving it into position and a heavy duty utility knife to cut edges. Also, it off-gases a mild\/moderate rubber smell at first so having some ventilation will be helpful during this time."},{"@type":"Review","author":{"@type":"Person","name":"SJK"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-8-heavy-duty-rubber-rolls-1006.html#group","name":"3\/8\" Heavy Duty Rubber Rolls | Commercial Gym Flooring"},"datePublished":"2026-04-28","name":"Great product for any gym.","reviewBody":"Ordered 5, 21\u2019 rolls to cover a 20x20 gym space. Shipping was as in the timeframe stated when ordering and product was as expected. There was damage to one end of 1 of the rolls but that was the end we trimmed off to fit so wasn\u2019t an issue for us. My husband and I laid and cut the floor ourselves and I think it turned out great! Haven\u2019t moved in yet so have not used it yet but looking forward to it."},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-8-heavy-duty-rubber-rolls-1006.html#group","name":"3\/8\" Heavy Duty Rubber Rolls | Commercial Gym Flooring"},"datePublished":"2026-03-12"},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-8-heavy-duty-rubber-rolls-1006.html#group","name":"3\/8\" Heavy Duty Rubber Rolls | Commercial Gym Flooring"},"datePublished":"2026-02-24"},{"@type":"Review","author":{"@type":"Person","name":"John"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-8-heavy-duty-rubber-rolls-1006.html#group","name":"3\/8\" Heavy Duty Rubber Rolls | Commercial Gym Flooring"},"datePublished":"2026-02-21","name":"garage flooring","reviewBody":"Just purchased 3\/8\" heavy duty rubber mats(rolls) for a garage gym.  Best price i could find, and that's including cost of delivery.  Product is high quality and dense.  \nFar superior to the foam mats I used before."}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-rubber-rolls-1007.html#group","name":"1\/2\" Mega Rubber Rolls | Commercial Gym Flooring","sku":"1007","description":"1\/2\" Mega Rubber Rolls | Commercial Gym Flooring","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_6j9g5b7d417s940035ituhll5s\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-rubber-rolls-1007.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-rubber-rolls-1007.html#offer-1007","price":2.07,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-rubber-rolls-1007.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":8.29,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":4,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"1007","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.90","reviewCount":"171","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Edwin"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-rubber-rolls-1007.html#group","name":"1\/2\" Mega Rubber Rolls | Commercial Gym Flooring"},"datePublished":"2026-08-14","name":"Rubber Flooring for Garage Gym","reviewBody":"Purchased these for my revamped garage gym.   Excellent quality and perfect for my particular use case.  The width of the 3 rolls were cut perfectly per my order and the measurements that I provided to the representative.  Unfortunately length 
22020wise they were not cut to what I had specified.  Spent an inordinate amount of time trying to cut the 3 rolls of rubber evenly.  \nEven with that being said, the quality is excellent.  No offensive odor present.  My garage gym looks great and the rubber flooring absorbs the impact from the dumbbells and barbells.  Footing is secure compared to the underlying concrete. \nAssistance from the sales representative was outstanding.  I will purchase from this company again in the future."},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-rubber-rolls-1007.html#group","name":"1\/2\" Mega Rubber Rolls | Commercial Gym Flooring"},"datePublished":"2026-05-14"},{"@type":"Review","author":{"@type":"Person","name":"Zoran"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-rubber-rolls-1007.html#group","name":"1\/2\" Mega Rubber Rolls | Commercial Gym Flooring"},"datePublished":"2026-05-01","name":"Great price, better and faster than expected","reviewBody":"Purchasing online was straight forward and quick. The rubber rolls got delivered much sooner than initially scheduled! The rubber is exactly what we were hoping for, and the price and selection and sizing flexibility is better than any other supplier we foud. Thank you!"},{"@type":"Review","author":{"@type":"Person","name":"Garage Triage"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-rubber-rolls-1007.html#group","name":"1\/2\" Mega Rubber Rolls | Commercial Gym Flooring"},"datePublished":"2026-02-13","name":"Love the flooring rolls!","reviewBody":"The new rubber flooring turned out fantastic!"},{"@type":"Review","author":{"@type":"Person","name":"Imran T"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-rubber-rolls-1007.html#group","name":"1\/2\" Mega Rubber Rolls | Commercial Gym Flooring"},"datePublished":"2026-02-09","name":"Top notch product and customer service","reviewBody":"Excellent product customer service. No issue at all product was delivered before anticipated shipping time."}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/nextgen-xl-rubber-rolls-pro-series-14027.html#group","name":"NextGen XL Rubber Rolls - Pro Series | 5ft Wide, Custom-Cut, Commercial-Grade Flooring","sku":"14027","description":"NextGen XL Rubber Rolls - Pro Series | 5ft Wide, Custom-Cut, Commercial-Grade Flooring","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_q6ghia3svl22d05llqmd9o6e59\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/nextgen-xl-rubber-rolls-pro-series-14027.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/nextgen-xl-rubber-rolls-pro-series-14027.html#offer-14027","price":1.65,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/nextgen-xl-rubber-rolls-pro-series-14027.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":8.25,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":5,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Flooring Inc. Exclusives"},"mpn":"14027","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.79","reviewCount":"29","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"EK NC"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/nextgen-xl-rubber-rolls-pro-series-14027.html#group","name":"NextGen XL Rubber Rolls - Pro Series | 5ft Wide, Custom-Cut, Commercial-Grade Flooring"},"datePublished":"2026-05-01","name":"Highly Recommend","reviewBody":"9mm, gray flake.  It looks and feels great.  Using for a home gym.  Rolls ended up 1\u201d wider than 5 ft.  The manufacturer was able to add length to my roll last minute because my measurement was off.   Very heavy around 190lbs a roll, so consider that.  Need to use a lot of blades to cut and size in the space as the material dulls them quick."},{"@type":"Review","author":{"@type":"Person","name":"Pomp"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/nextgen-xl-rubber-rolls-pro-series-14027.html#group","name":"NextGen XL Rubber Rolls - Pro Series | 5ft Wide, Custom-Cut, Commercial-Grade Flooring"},"datePublished":"2026-02-14"},{"@type":"Review","author":{"@type":"Person","name":"OOG"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/nextgen-xl-rubber-rolls-pro-series-14027.html#group","name":"NextGen XL Rubber Rolls - Pro Series | 5ft Wide, Custom-Cut, Commercial-Grade Flooring"},"datePublished":"2026-02-03"},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/nextgen-xl-rubber-rolls-pro-series-14027.html#group","name":"NextGen XL Rubber Rolls - Pro Series | 5ft Wide, Custom-Cut, Commercial-Grade Flooring"},"datePublished":"2026-01-29"},{"@type":"Review","author":{"@type":"Person","name":"JD"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/nextgen-xl-rubber-rolls-pro-series-14027.html#group","name":"NextGen XL Rubber Rolls - Pro Series | 5ft Wide, Custom-Cut, Commercial-Grade Flooring"},"datePublished":"2026-01-13"}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/next-day-rubber-rolls-14003.html#group","name":"Next-Day Rubber Rolls \u2013 Custom Cut","sku":"14003","description":"Next-Day Rubber Rolls \u2013 Custom Cut","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_vs7c8nfvu14a58j9fqhd9hm95l\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/next-day-rubber-rolls-14003.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/next-day-rubber-rolls-14003.html#offer-14003","price":1.19,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/next-day-rubber-rolls-14003.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":4.76,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":4,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"14003","aggregateRating":{"@type":"AggregateRating","ratingValue":"5.00","reviewCount":"11","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Elise"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/next-day-rubber-rolls-14003.html#group","name":"Next-Day Rubber Rolls \u2013 Custom Cut"},"datePublished":"2026-05-21","name":"Excellent and durable flooring.","reviewBody":"I have purchased the gym flooring twice. One is 3\/4 thickness and the other 1\/2 thickness. It is really good quality and perfect for my heavy gym machines. It is easy to do easy to clean. If you need durable flooring for heavy equipment, this is the flooring you want."},{"@type":"Review","author":{"@type":"Person","name":"Pomp"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/next-day-rubber-rolls-14003.html#group","name":"Next-Day Rubber Rolls \u2013 Custom Cut"},"datePublished":"2026-02-14"},{"@type":"Review","author":{"@type":"Person","name":"OOG"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/next-day-rubber-rolls-14003.html#group","name":"Next-Day Rubber Rolls \u2013 Custom Cut"},"datePublished":"2026-02-03"},{"@type":"Review","author":{"@type":"Person","name":"Madmicjama"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/next-day-rubber-rolls-14003.html#group","name":"Next-Day Rubber Rolls \u2013 Custom Cut"},"datePublished":"2025-10-30","name":"Flooring used for a border on the walls in the gym","reviewBody":"Got just what we needed for the gym border!"},{"@type":"Review","author":{"@type":"Person","name":"JG"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/next-day-rubber-rolls-14003.html#group","name":"Next-Day Rubber Rolls \u2013 Custom Cut"},"datePublished":"2025-10-03","name":"I like m' thick","reviewBody":"Excellent quality rolls. Seams match perfectly. Strongly recommended!"}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/goliath-xl-rubber-tiles-14025.html#group","name":"Goliath XL Rubber Tiles","sku":"14025","description":"Goliath XL Rubber Tiles","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_i08d85b9il1gv6atc43au0l069\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/goliath-xl-rubber-tiles-14025.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/goliath-xl-rubber-tiles-14025.html#offer-14025","price":1.96,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/goliath-xl-rubber-tiles-14025.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":30.11,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":15.34,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"14025","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.40","reviewCount":"5","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Prince WilliG"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/goliath-xl-rubber-tiles-14025.html#group","name":"Goliath XL Rubber Tiles"},"datePublished":"2025-07-08","name":"Great big rubber tile"},{"@type":"Review","author":{"@type":"Person","name":"Berende Homes LLC"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/goliath-xl-rubber-tiles-14025.html#group","name":"Goliath XL Rubber Tiles"},"datePublished":"2025-06-09","name":"Great rubber floors!!!"},{"@type":"Review","author":{"@type":"Person","name":"Saylor"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/goliath-xl-rubber-tiles-14025.html#group","name":"Goliath XL Rubber Tiles"},"datePublished":"2025-05-15"},{"@type":"Review","author":{"@type":"Person","name":"Jenny"},"reviewRating":{"@type":"Rating","ratingValue":"4","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/goliath-xl-rubber-tiles-14025.html#group","name":"Goliath XL Rubber Tiles"},"datePublished":"2026-08-01","name":"Great floors","reviewBody":"I\u2019ve order twice now! Great products. \nI will say the communication for delivery is not great. Both times now the delivery showed up unexpectedly. Once the order is processed and \u201cshipped\u201d I\u2019d ensure to actively check the tracking!"},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"3","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/goliath-xl-rubber-tiles-14025.html#group","name":"Goliath XL Rubber Tiles"},"datePublished":"2025-11-22"}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-4-rubber-gym-tiles-4067.html#group","name":"3\/4\" Premium Gym Floor Tiles \u2013 Vulcanized Rubber","sku":"4067","description":"3\/4\" Premium Gym Floor Tiles \u2013 Vulcanized Rubber","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_9frh11qnvl3e54fsvr44mrvo61\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/3-4-rubber-gym-tiles-4067.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/3-4-rubber-gym-tiles-4067.html#offer-4067","price":4.45,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/3-4-rubber-gym-tiles-4067.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":22.09,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":21.09,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"4067","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.75","reviewCount":"4","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Keith"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-4-rubber-gym-tiles-4067.html#group","name":"3\/4\" Premium Gym Floor Tiles \u2013 Vulcanized Rubber"},"datePublished":"2025-06-26","name":"Superior Gym Flooring","reviewBody":"I have a fairly large workout room in my basement. Recently we decided to renovate and make it even larger. Since I do quite a bit of heavy lifting with dead lifts, squats, etc. I felt it necessary to get a nice thick floor covering. I submitted a few queries regarding several of their products and they contacted me, via email, to discuss my needs. Once settled on the 3\/4\" Rubber Gym Tiles they worked with me to order the optimal number of tiles that were needed. I sent them a drawing of the new area and they laid out the tiles the most efficient manner possible. Once ordered they arrived on time and I proceeded to install them myself. Keep in mind that each tile weights approximately 50lb, I had 34 tiles so around 1700lbs. Needless to say it took a full day to lay them out and make cuts where appropriate. I ended up with 3 tiles left over; however, that was because I was lucky on a few of my cuts where the discarded piece was able to be used on the opposite side of the room. Needless to say my home gym looks like a professional gym tucked into my basement.   Great customer service, great product and very happy with the results."},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-4-rubber-gym-tiles-4067.html#group","name":"3\/4\" Premium Gym Floor Tiles \u2013 Vulcanized Rubber"},"datePublished":"2025-06-26","name":"Great Mats","reviewBody":"Love these mat!. Commercial gym quality. Complete protection for your floors - heavy weights can be dropped on them without worry. The only downside is the noxious fumes when new. It&#39;s been almost a month since I installed them and I can&#39;t get rid of the awful odor, but to be fair, any commercial type mats will smell like this in the beginning."},{"@type":"Review","author":{"@type":"Person","name":"Kathy"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-4-rubber-gym-tiles-4067.html#group","name":"3\/4\" Premium Gym Floor Tiles \u2013 Vulcanized Rubber"},"datePublished":"2025-01-10","name":"Durable","reviewBody":"Love our new matts! We got 3\/4in; 2x2. We have a ton of weight on the matts and it hasn't budge. It also has amazing grip! We installed it ourself. The matts do get heavy after awhile ??. Cutting them was tough but not impossible. Rubber smell went away after 2 weeks. We are happy and know it will last!"},{"@type":"Review","author":{"@type":"Person","name":"William T."},"reviewRating":{"@type":"Rating","ratingValue":"4","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-4-rubber-gym-tiles-4067.html#group","name":"3\/4\" Premium Gym Floor Tiles \u2013 Vulcanized Rubber"},"datePublished":"2025-01-08","name":"Industrial strength","reviewBody":"Floor is very good value. At 3\/4\u201d thickness and large format tiles, it installs fairly quickly. Takes a while to degas rubber smell, but really helps create the industrial strength feel and function of a professional gym."}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-premium-rubber-gym-tiles-1030.html#group","name":"1\/2\" Premium Gym Floor Tiles \u2013 Vulcanized Rubber","sku":"1030","de
22020scription":"1\/2\" Premium Gym Floor Tiles \u2013 Vulcanized Rubber","image":"https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_ocur6ep4p15b3e1p27f2mlbh4k\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/1-2-premium-rubber-gym-tiles-1030.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-premium-rubber-gym-tiles-1030.html#offer-1030","price":4.05,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/1-2-premium-rubber-gym-tiles-1030.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":16.42,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":21.09,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"1030","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.70","reviewCount":"74","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"S Raval"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-premium-rubber-gym-tiles-1030.html#group","name":"1\/2\" Premium Gym Floor Tiles \u2013 Vulcanized Rubber"},"datePublished":"2026-08-23","name":"Hundred percent vulcanized  rubber is the only way to go.","reviewBody":"The product being 100 percent volcanic rubber - will provide lasting quality for heavy Jim equipment and whether for residential or commercial use it\u2019s the best product in terms of material available."},{"@type":"Review","author":{"@type":"Person","name":"S Raval"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-premium-rubber-gym-tiles-1030.html#group","name":"1\/2\" Premium Gym Floor Tiles \u2013 Vulcanized Rubber"},"datePublished":"2026-08-23","name":"Stand-up quality due to being volcanic rubber","reviewBody":"Excellent quality and being hundred percent volcanic rubber will last the longest and provide the best protection for heavy equipment and weights. This was my primary reason for selection and I would recommend you do the same versus some of the inferior products that big box stores like Home Depot and Lowe\u2019s may be able to order."},{"@type":"Review","author":{"@type":"Person","name":"Darandkat"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-premium-rubber-gym-tiles-1030.html#group","name":"1\/2\" Premium Gym Floor Tiles \u2013 Vulcanized Rubber"},"datePublished":"2025-08-23","name":"Excellent Gym Floor","reviewBody":"It stands up to my elliptical and treadmill without having dents in it. It's difficult to cut so have someone with strong arms hold the blade. I highly recommend it!"},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-premium-rubber-gym-tiles-1030.html#group","name":"1\/2\" Premium Gym Floor Tiles \u2013 Vulcanized Rubber"},"datePublished":"2025-01-23","name":"Home Gym Essential","reviewBody":"Easy install, easy clean, couldn't be happier. Should have done this the first time instead of cheap alternatives. A+!"},{"@type":"Review","author":{"@type":"Person","name":"Meredith"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-premium-rubber-gym-tiles-1030.html#group","name":"1\/2\" Premium Gym Floor Tiles \u2013 Vulcanized Rubber"},"datePublished":"2025-01-23","name":"The best addition to the home workout","reviewBody":"These tiles are amazing! Perfect for home workouts. Helps create an extra cushion and absorbs some of the shock. Easy to assemble and get it all together."}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-powerlock-rubber-gym-tiles-14001.html#group","name":"PowerLock Rubber Gym Floor Tiles","sku":"14001","description":"PowerLock Rubber Gym Floor Tiles","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_do5fctakqh1gl8p94kjsdc4a5k\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/8mm-powerlock-rubber-gym-tiles-14001.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-powerlock-rubber-gym-tiles-14001.html#offer-14001","price":1.65,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/8mm-powerlock-rubber-gym-tiles-14001.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":6.06,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":3.67,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"14001","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.70","reviewCount":"10","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Alison"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-powerlock-rubber-gym-tiles-14001.html#group","name":"PowerLock Rubber Gym Floor Tiles"},"datePublished":"2026-08-04","name":"Installation tips!","reviewBody":"A couple installation tips.  Pay attention to the arrows on the back.  There is definitely a difference in sheen depending on which way they are installed.  We chose to offset each row by 1\/2 tile to eliminate the 4 corners in a spot and it looked much more seemless.  A straight edge and utility knife is your friend!  Overall a quick install for our fym floor."},{"@type":"Review","author":{"@type":"Person","name":"Constan"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-powerlock-rubber-gym-tiles-14001.html#group","name":"PowerLock Rubber Gym Floor Tiles"},"datePublished":"2026-01-26"},{"@type":"Review","author":{"@type":"Person","name":"techedpsba"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-powerlock-rubber-gym-tiles-14001.html#group","name":"PowerLock Rubber Gym Floor Tiles"},"datePublished":"2025-10-02","name":"Exactly what we had in mind.  Perfect!","reviewBody":"Exactly as described!  Ordered for our sunroom floor to cover bare concrete slab.  Wanted something durable, cushioning, soundproofing, and easy to maintain\/clean.  Order was correct and delivered on a pallet, securely wrapped and cushioned.  We couldn't be more pleased."},{"@type":"Review","author":{"@type":"Person","name":"Happy W."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-powerlock-rubber-gym-tiles-14001.html#group","name":"PowerLock Rubber Gym Floor Tiles"},"datePublished":"2025-06-26","name":"NY Giants theme","reviewBody":"Surprised my husband with a new workout space in his NY Giants themed man cave. Best part is they had a Blue and Light Grey that matched perfectly."},{"@type":"Review","author":{"@type":"Person","name":"Fred D."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-powerlock-rubber-gym-tiles-14001.html#group","name":"PowerLock Rubber Gym Floor Tiles"},"datePublished":"2025-03-11","name":"Happy","reviewBody":"Wanted to protect and cushion the garage floor around my workbench, this did the trick. Makes finding dropped screws and nails super easy!"}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-rubber-rolls-1000.html#group","name":"1\/4\" Tough Rubber Flooring Rolls","sku":"1000","description":"1\/4\" Tough Rubber Flooring Rolls","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_qa84sdsgn103ffmsgs892ci87b\/-FJPG\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-rubber-rolls-1000.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-rubber-rolls-1000.html#offer-1000","price":1.15,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-rubber-rolls-1000.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":4.6,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":4,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"1000","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.68","reviewCount":"145","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Zack"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-rubber-rolls-1000.html#group","name":"1\/4\" Tough Rubber Flooring Rolls"},"datePublished":"2025-06-07","name":"Excellent material for trailer mat!","reviewBody":"We used this product on our quad truck camper trailer to prevent load slipping and it works wonders! Holding up well after several factory runs and handles well in the rain too. Happy to use this product on future trailers."},{"@type":"Review","author":{"@type":"Person","name":"Tammie"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-rubber-rolls-1000.html#group","name":"1\/4\" Tough Rubber Flooring Rolls"},"datePublished":"2025-06-07","name":"Rubber floor","reviewBody":"So far the product is holding up to dogs running and playing on the floor. However it does where the dogs pads a little bit till they are used to it."},{"@type":"Review","author":{"@type":"Person","name":"Anthony B."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-rubber-rolls-1000.html#group","name":"1\/4\" Tough Rubber Flooring Rolls"},"datePublished":"2025-06-07","name":"1\/4 thick rubber flooring","reviewBody":"Great product! Great shipping and good communication.  Nice durable quality."},{"@type":"Review","author":{"@type":"Person","name":"Jeanette"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-rubber-rolls-1000.html#group","name":"1\/4\" Tough Rubber Flooring Rolls"},"datePublished":"2025-06-07","name":"Holding up well","reviewBody":"I bought the rolls because I thought it would work great to save my floors. I have 4 dogs and sometimes they have accidents that were ruining the floors.  The rolls have worked! They were easy to install, waterproof, and easy to clean! No more dog urine soaking my floors and smelling.  I love the flooring for that, also for my dogs because they have better grip instead of sliding all over my vinyl floor. Possibly hurting themselves.  I purchased the thinnest flooring and it has been the best thing I could have done.  It does have that rubber smell but it does dissipate after a few weeks.  Thank you rubberflooringinc!"},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-rubber-rolls-1000.html#group","name":"1\/4\" Tough Rubber Flooring Rolls"},"datePublished":"2025-06-07","name":"Dibben Dance Company","reviewBody":"Product came in on pallet wrapped very well. It was easy to take off the pallet. When laying it out on the floor it rolled out easy. The rubber was colored nicely. It later down evenly.  It has an attractive look on the floor as well as it stays in place when dancing on it.   We love this product and would use again if we ever need too."}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/dura-lock-rubber-tiles-13369.html#group","name":"Dura Lock Rubber Tiles","sku":"13369","description":"Dura Lock Rubber Tiles","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_r31a99ahn116tdsjodu0g6c04i\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/dura-lock-rubber-tiles-13369.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/dura-lock-rubber-tiles-13369.html#offer-13369","price":1.75,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/dura-lock-rubber-tiles-13369.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":6.72,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":3.84,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"13369","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.73","reviewCount":"55","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"RC"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/dura-lock-rubber-tiles-13369.html#group","name":"Dura Lock Rubber Tiles"},"datePublished":"2026-04-27","name":"Great floor tiles for rec room","reviewBody":"These tiles are ace! They're relatively simple to install, cutting is straightforward with a utility knife (once you get into the groove), and I was impressed at how easy it was to keep straight lines. My hands may take a few days to recover though!"},{"@type":"Review","author":{"@type":"Person","name":"Jeffrey"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/dura-lock-rubber-tiles-13369.html#group","name":"Dura Lock Rubber Tiles"},"datePublished":"2026-03-19"},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/dura-lock-rubber-tiles-13369.html#group","name":"Dura Lock Rubber Tiles"},"datePublished":"2025-11-19"},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/dura-lock-rubber-tiles-13369.html#group","name":"Dura Lock Rubber Tiles"},"datePublished":"2025-10-27"},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/dura-lock-rubber-tiles-13369.html#group","name":"Dura Lock Rubber Tiles"},"datePublished":"2025-09-09"}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-pre-cut-mega-rubber-rolls-9580.html#group","name":"1\/2\" Pre-Cut Mega Rubber Rolls | 4' x 15', 25', or 50'","sku":"9580","description":"1\/2\" Pre-Cut Mega Rubber Rolls | 4' x 15', 25', or 50'","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_ngrk073ao925v7861lfqmgkh67\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/1-2-pre-cut-mega-rubber-rolls-9580.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-pre-cut-mega-rubber-rolls-9580.html#offer-9580","price":2.7,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/1-2-pre-cut-mega-rubber-rolls-9580.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":162,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":60,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"9580","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.82","reviewCount":"11","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Chuck A."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-pre-cut-mega-rubber-rolls-9580.html#group","name":"1\/2\" Pre-Cut Mega Rubber Rolls | 4' x 15', 25', or 50'"},"datePublished":"2025-06-26","name":"tough, resilient, perfect!","reviewBody":"I&#39;ve been looking for the perfect material for one of my machine operations. I needed something tough and resilient to cushion a 4 ton press operation and didn&#39;t know what to use. Luckily for me I came across you folks and my problem disappeared! It&#39;s absolutely perfect and now I&#39;m making a list of other areas that I can use your material. I will be placing another order and by the way, I was treated very well by your customer service, I wish I remembered her name (I&#39;m sure you can look her up) because she was delightful and very knowledgeable. Thank you very much!"},{"@type":"Review","author":{"@type":"Person","name":"Casey"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-pre-cut-mega-rubber-rolls-9580.html#group","name":"1\/2\" Pre-Cut Mega Rubber Rolls | 4' x 15', 25', or 50'"},"datePublished":"2024-10-01","name":"Awesome flooring","reviewBody":"Looks great in my weight room, lays nicely in the corners and ends, and protects my floor like I needed it to."},{"@type":"Review","author":{"@type":"Person","name":"Mde"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-pre-cut-mega-rubber-rolls-9580.html#group","name":"1\/2\" Pre-Cut Mega Rubber Rolls | 4' x 15', 25', or 50'"},"datePublished":"2024-10-01","name":"1\/2\" rolled rubber gym floor","reviewBody":"I was very happy with the product.  It&#39;s beefy and was easy to install.  The product came when they said it would, and was better than I expected.  One caution, have someone available to help you, each roll weighs about 200 pounds!"},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-pre-cut-mega-rubber-rolls-9580.html#group","name":"1\/2\" Pre-Cut Mega Rubber Rolls | 4' x 15', 25', or 50'"},"datePublished":"2024-10-01","name":"Best gym floor","reviewBody":"Looks great, went down great, no complaints, best gym floor ever!"},{"@type":"Review","author":{"@type":"Person","name":"Darren S."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-pre-cut-mega-rubber-rolls-9580.html#group","name":"1\/2\" Pre-Cut Mega Rubber Rolls | 4' x 15', 25', or 50'"},"datePublished":"2024-10-01","name":"Just What I Wanted","reviewBody":"Worth the effort to install.  Perfect floor for home or commercial gym.  Love the look and performance."}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/jamboree-playground-tilestm-3264.html#group","name":"Jamboree Rubber Playground Tiles\u2122","sku":"3264","description":"Jamboree Rubber Playground Tiles\u2122","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_te3mrkjsb970t2e49qvnm1cb5u\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/jamboree-playground-tilestm-3264.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/jamboree-playground-tilestm-3264.html#offer-3264","price":6.75,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/jamboree-playground-tilestm-3264.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":26.99,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":4,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Jamboree"},"mpn":"3264","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.83","reviewCount":"23","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Molly"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/jamboree-playground-tilestm-3264.html#group","name":"Jamboree Rubber Playground Tiles\u2122"},"datePublished":"2026-04-27","name":"10\/10","reviewBody":"Quick service. High quality. Wonderful customer service. Will be ordering more in the future"},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/jamboree-playground-tilestm-3264.html#group","name":"Jamboree Rubber Playground Tiles\u2122"},"datePublished":"2025-05-27","name":"Great quality","reviewBody":"These were even better than I hoped. The only thing I don&#39;t like is that they can&#39;t be set up staggered because of the connecting piece on the bottom. They have to line up. I have stairs to work around and I don&#39;t want to have to cut them in case I want to use them somewhere else later. I suppose I could skip the connecting pieces on those rows..."},{"@type":"Review","author":{"@type":"Person","name":"Chris"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/jamboree-playground-tilestm-3264.html#group","name":"Jamboree Rubber Playground Tiles\u2122"},"datePublished":"2025-01-23","name":"Nice product","reviewBody":"We created a toddler playground on an existing asphalt parking lot.   This was the perfect covering for the asphalt, easy to install and overall a nice finished product.  We ordered way to many connectors ( one per tile we were told) but along the edges you have to cut them in half because the way they are stamped each tile only fits the corner."},{"@type":"Review","author":{"@type":"Person","name":"Aaron"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/jamboree-playground-tilestm-3264.html#group","name":"Jamboree Rubber Playground Tiles\u2122"},"datePublished":"2025-01-23","name":"Easy to install and looks great","reviewBody":"This product was easy to install, and the red color still looks great one year later. I used the black connectors to keep the tiles holding together on top of the concrete. It's very sturdy and holds tightly together. It looks like it will last a long time. It takes about 6 to 9 months for the rubber smell to dissipate."},{"@type":"Review","author":{"@type":"Person","name":"Jessica"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/jamboree-playground-tilestm-3264.html#group","name":"Jamboree Rubber Playground Tiles\u2122"},"datePublished":"2025-01-22","name":"Love Them!","reviewBody":"Here is what we used our playmats for! We love them."}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/regrind-rolls-9854.html#group","name":"Regrind Rubber Rolls","sku":"9854","description":"Regrind Rubber Rolls","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_392nc35btp7fn9j463a2te7o60\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/regrind-rolls-9854.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/regrind-rolls-9854.html#offer-9854","price":1.24,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/regrind-rolls-9854.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":4.96,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":4,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"9854","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.78","reviewCount":"127","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Nicco B."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/regrind-rolls-9854.html#group","name":"Regrind Rubber Rolls"},"datePublished":"2025-06-26","name":"Simply amazing","reviewBody":"Attached is the photo of our newly set up garage gym. These regrind rolls are simply amazing and even after the shipping fee the price was a steal. I also really appreciate that they were delivered into my garage so we did not have them get stuck in the rain before having to carry them from outside into the garage. I love the quality, color, and the weight. They are so heavy duty that I didn&#39;t even have to seal the rolls to ground to keep it from being a permanent feature just in case we wanted to change it up in the future. However, these rolls are built so well they seem like they will last forever. Thank you so much for this product. I will always recommend you all as a go to for gym flooring and such. Take care."},{"@type":"Review","author":{"@type":"Person","name":"Hiit B."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/regrind-rolls-9854.html#group","name":"Regrind Rubber Rolls"},"datePublished":"2025-06-26","name":"Unbelievable floors. Love them!","reviewBody":"I have been in the industry a long time and have trained on many, many floors - so I am a snob about what is under my feet. I also just opened my own small group training center and needed rubber flooring that was durable, easy for me to install on both a budget and a deadline, that was of high quality to train on.   I wanted to stay local and tried East Coast suppliers and manufacturers, but none had exactly what I wanted and then I discovered Rubber Flooring Inc. and I was in!!! Not only was the selection outstanding in terms of color, depth, style and usage - but they have so many ways to apply\/install it. I specifically got the regrind rolls in confetti and people stop in their tracks when they come through the door. That&#39;s how nice these rubber floors are!!  My clients love to train on it, they clean like a dream and really keep their color and luster. I am a burpee maniac and doing it on these mats is heaven. In addition, the customer care is some of the best I have ever received. If you run, manage or own in the fitness industry, you know how important that is, and Rubber Flooring&#39;s team is the best. Really held my hand through the whole process. Steered me back in the right direction when I veered a  bit and then after installation (which was easy peasy - from delivery to literally rolling out the rubber and making a straight cut), still followed up with me for care and feedback. Loved it! Who does that?    Thank you Rubber Flooring we are your biggest fans!!!  HIIT BOX - Brooklyn NY"},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/regrind-rolls-9854.html#group","name":"Regrind Rubber Rolls"},"datePublished":"2025-06-26","name":"Used for muscular therapy\/personal training office","reviewBody":"I&#39;ve been very happy with the 3\/8\" regrind rubber flooring I purchased. It was heavy but my husband helped me cut it in our driveway a little larger than needed to make it easier to move two smaller rolls than one big one. Then he cut it to fit with a utility knife and metal ruler. We easily laid it out in my office over an existing berber wall-to-wall carpet. I&#39;m finding I don&#39;t need tape to keep it in place but I did use some where it abuts a different area rug (but mostly to keep that other rug from slipping. There was a strong rubber odor initially, but within a month it dissipated to the point that I don&#39;t smell it. An open window and fan got me through the worst of that. It&#39;s comfortable underfoot and deadens noise. I&#39;m using it on one side of my massage therapy office to do one-on-one personal training with light equipment or body weight. I&#39;ve vacuumed and swept it easily. And mopping with Dawn\/water is easy enough. The 3\/8\" size seems to be a great thickness - balancing out how heavy it was to carry with durability\/comfort and stable enough on top of an existing carpet."},{"@type":"Review","author":{"@type":"Person","name":"Donna M."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/regrind-rolls-9854.html#group","name":"Regrind Rubber Rolls"},"datePublished":"2025-06-26","name":"Great Floor for Girls Locker Room!","reviewBody":"I have put the 3\/8\" floor down before in several of my therapy departments, so when I was placed in charge of remodeling the girls basketball locker room at my daughter's school, rubber flooring was my number one choice to replace that awful indoor\/outdoor carpet!  Since I had a very limited budget, I decided to try the 1\/4\" regrind and couldn't have been more pleased and the girls love it!"},{"@type":"Review","author":{"@type":"Person","name":"Hiit B."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/regrind-rolls-9854.html#group","name":"Regrind Rubber Rolls"},"datePublished":"2025-06-26","name":"Unbelievable floors. Love them!","reviewBody":"I have been in the industry a long time and have trained on many, many floors - so I am a snob about what is under my feet. I also just opened my own small group training center and needed rubber flooring that was durable, easy for me to install on both a budget and a deadline, that was of high quality to train on.   I wanted to stay local and tried East Coast suppliers and manufacturers, but none had exactly what I wanted and then I discovered Rubber Flooring Inc. and I was in!!! Not only was the selection outstanding in terms of color, depth, style and usage - but they have so many ways to apply\/install it. I specifically got the regrind rolls in confetti and people stop in their tracks when they come through the door. That&#39;s how nice these rubber floors are!!  My clients love to train on it, they clean like a dream and really keep their color and luster. I am a burpee maniac and doing it on these mats is heaven. In addition, the customer care is some of the best I have ever received. If you run, manage or own in the fitness industry, you know how important that is, and Rubber Flooring&#39;s team is the best. Really held my hand through the whole process. Steered me back in the right direction when I veered a  bit and then after installation (which was easy peasy - from delivery to literally rolling out the rubber and making a straight cut), still followed up with me for care and feedback. Loved it! Who does that?    Thank y
22020ou Rubber Flooring we are your biggest fans!!!  HIIT BOX - Brooklyn NY"}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-mats-2800.html#group","name":"1\/2\" Mega Gym Mats | Rubber Mats & Utility Floor Mats","sku":"2800","description":"1\/2\" Mega Gym Mats | Rubber Mats & Utility Floor Mats","image":"https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_uq6r5imalp0fh2i6147gumgu7o\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-mats-2800.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-mats-2800.html#offer-2800","price":47.49,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-mats-2800.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":47.49,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":12,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"2800","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.74","reviewCount":"76","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-mats-2800.html#group","name":"1\/2\" Mega Gym Mats | Rubber Mats & Utility Floor Mats"},"datePublished":"2026-03-16"},{"@type":"Review","author":{"@type":"Person","name":"Littlejazz"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-mats-2800.html#group","name":"1\/2\" Mega Gym Mats | Rubber Mats & Utility Floor Mats"},"datePublished":"2026-01-06","name":"Awesome mat.","reviewBody":"Awesome mat. Very thick, no smell. Perfect for protecting my newly finished wood floors."},{"@type":"Review","author":{"@type":"Person","name":"Cosy"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-mats-2800.html#group","name":"1\/2\" Mega Gym Mats | Rubber Mats & Utility Floor Mats"},"datePublished":"2025-06-06","name":"Great product. Slow service on lost shipment","reviewBody":"Product is just what I wanted. First shipment was lost. Ordered another and got it fast but first replacement still has not arrived."},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-mats-2800.html#group","name":"1\/2\" Mega Gym Mats | Rubber Mats & Utility Floor Mats"},"datePublished":"2025-05-28","name":"These are the best mats....","reviewBody":"My girlfriend has these mats in her gym and I have always foun
22020d them practical. So when remodeling my little 550 square foot ski condo I decided to put them in as the flooring and I am not disappointed!  Ski boots?  No problem!  Dogs?  No worries!  Someone spilled the spiced wine?  Just wipe it up. Customer service was amazing and the mats came much quicker than stated. *This is not a recommendation!!  But when installing I used a jig saw and cut the mats 1\/8- 1\/4\" bigger than the space needed and it turned out beautifully. Was so very easy.  Thank you Rubber Flooring!"},{"@type":"Review","author":{"@type":"Person","name":"T"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-2-mega-mats-2800.html#group","name":"1\/2\" Mega Gym Mats | Rubber Mats & Utility Floor Mats"},"datePublished":"2025-05-28","name":"Two thumbs up on mats, two thumbs down on shipping","reviewBody":"I\u2019d ordered a sample size of these mats and liked them so much we ordered 4 precut mats. The tracking info is pretty lacking, it still said \u201cprocessing in warehouse\u201d when we received a call from the freight company for delivery.   After waiting for 4 failed deliveries (freight company kept \u201cforgetting\u201d to put mats on truck for delivery - even after marking it \u201chot\u201d) and too much time on the phone with the freight company and Rubber Flooring (who admitted they\u2019d had complaints about this freight company before) the mats arrived.   Give them time to off gas and get your shop vac out for the rubber dust\/particulates that go everywhere.  I recommend the mats but I\u2019d ask them for help if you have any trouble with shipping."}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-1005.html#group","name":"8mm Strong Rubber Gym Flooring Rolls","sku":"1005","description":"8mm Strong Rubber Gym Flooring Rolls","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_qc7660kjf509hbiokssnd3pj7g\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-1005.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-1005.html#offer-1005","price":1.41,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-1005.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":5.65,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":4,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"1005","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.85","reviewCount":"194","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Dr. A."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-1005.html#group","name":"8mm Strong Rubber Gym Flooring Rolls"},"datePublished":"2026-05-01","name":"My Fitness Room"},{"@type":"Review","author":{"@type":"Person","name":"Nickolas"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-1005.html#group","name":"8mm Strong Rubber Gym Flooring Rolls"},"datePublished":"2026-03-20","name":"Great product and delivery","reviewBody":"I purchased 3 rolls for my home gym. The custom sizing is helpful. Very happy with the quality. The delivery was quick as well. Would definitely recommend."},{"@type":"Review","author":{"@type":"Person","name":"Chris82"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-1005.html#group","name":"8mm Strong Rubber Gym Flooring Rolls"},"datePublished":"2026-02-04","name":"Great product","reviewBody":"I was very pleased with the thickness and quality of the mats as well as the Orange flecked color I ordered. They were delivered in a couple of weeks from order date.\nThe sides of the roll were very straight but the ends needed trimmed and squared.\nI ordered 20 foot rolls and they were shipped with 3-5 feet of extra material.\nA 4\u2019 square, silver sharpie and a bunch of razor blades made this process super easy and change the look and feel of my gym. I would recommend this product over stall mats or anything on amazon."},{"@type":"Review","author":{"@type":"Person","name":"thor"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-1005.html#group","name":"8mm Strong Rubber Gym Flooring Rolls"},"datePublished":"2025-12-14","name":"excellent product","reviewBody":"Great product, delivered way faster than expected, fits my gym floor perfectly.."},{"@type":"Review","author":{"@type":"Person","name":"AG"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-1005.html#group","name":"8mm Strong Rubber Gym Flooring Rolls"},"datePublished":"2025-09-12","name":"Good flooring for home gym","reviewBody":"These are great. Was hard to track them down and know when the order was going to arrive, but one day they showed up unannounced. This is my second time buying these for the home gym and they work wonderfully. Seams are nearly invisible if you do a good job laying these down"}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/15mm-impact-rolls-designer-series-5037.html#group","name":"15mm Impact Rubber Rolls - Designer Series","sku":"5037","description":"15mm Impact Rubber Rolls - Designer Series","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_7nvi353alp0ufcakrnoa4ejh2o\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/15mm-impact-rolls-designer-series-5037.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/15mm-impact-rolls-designer-series-5037.html#offer-5037","price":6.49,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/15mm-impact-rolls-designer-series-5037.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":25.96,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":4,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"5037","aggregateRating":{"@type":"AggregateRating","ratingValue":"5.00","reviewCount":"7","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Agunnoe"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/15mm-impact-rolls-designer-series-5037.html#group","name":"15mm Impact Rubber Rolls - Designer Series"},"datePublished":"2025-06-26","name":"Great Product, Poor customer service","reviewBody":"We love this product, easy to install. There were shipping issues, we called customer service, did a chat, etc. FedEx reimbursed for the shipping of part of our order but we have yet to receive reimbursement nor have we received a call back."},{"@type":"Review","author":{"@type":"Person","name":"Bk"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/15mm-impact-rolls-designer-series-5037.html#group","name":"15mm Impact Rubber Rolls - Designer Series"},"datePublished":"2025-06-26","name":"25ft lengths are heavy but manageable","reviewBody":"The final product was good. My only complaint is that the cut ends were far from square. they looked like they were cut with a pair of child's safety scissors.  I had to square the ends prior to measuring and cutting.  The delivery wasn't super. They tried to drop the pallet off 1\/4 mile from my house, thankfully my neighbor told the driver to get out of the truck so she could drive it down the driveway and he caved....I've turned around a 50ft semitruck in my driveway and this dude in a 25 ft box truck was scared. Anyhow...  Three rolls on a pallet, I transferred one roll at a time to a hand truck and brought them in. the long edges were pretty darn straight, I can barely see the seams.  I'm going to post a video of the install on youtube - Money Pit Garage, check it out!"},{"@type":"Review","author":{"@type":"Person","name":"Lisa"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/15mm-impact-rolls-designer-series-5037.html#group","name":"15mm Impact Rubber Rolls - Designer Series"},"datePublished":"2025-01-11","name":"The product is beautiful","reviewBody":"The product is beautiful, as you can see.  The rubber was very heavy!  And therefore hard to put in place.  But thick is what we wanted.  It works beautifully in the space.  Thank you for your consistently excellent customer service."},{"@type":"Review","author":{"@type":"Person","name":"Tony F."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/15mm-impact-rolls-designer-series-5037.html#group","name":"15mm Impact Rubber Rolls - Designer Series"},"datePublished":"2025-01-10","name":"Designer Series 15mm impact rolls","reviewBody":"Finally able to install the flooring\u2026.. everyone who has seen it goes \u201cWow\u201d. The quality of this product is outstanding! The look of the designer series is fantastic!"},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/15mm-impact-rolls-designer-series-5037.html#group","name":"15mm Impact Rubber Rolls - Designer Series"},"datePublished":"2025-01-10","name":"Easy to Install!  Quality product!","reviewBody":"I love my workout room now!  This floor is beautiful and functional!  It was easy to install, but just be prepared, it is HEAVY! You will be glad you bought this!"}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/impact-rolls-wood-series-5047.html#group","name":"Impact Rubber Flooring Rolls - Wood Grain Vinyl Top Layer","sku":"5047","description":"Impact Rubber Flooring Rolls - Wood Grain Vinyl Top Layer","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_r4is4tdash091a4vnh3ce4su4f\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/impact-rolls-wood-series-5047.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/impact-rolls-wood-series-5047.html#offer-5047","price":9.25,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/impact-rolls-wood-series-5047.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":55.5,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":6,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Flooring Inc"},"mpn":"5047","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.89","reviewCount":"9","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Karin C."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/impact-rolls-wood-series-5047.html#group","name":"Impact Rubber Flooring Rolls - Wood Grain Vinyl Top Layer"},"datePublished":"2026-05-01","name":"Such a nice looking gym floor","reviewBody":"We installed this flooring ourselves.  It was relatively easy to install.  It was a pretty heavy product, but we had help to get it up the stairs and manipulate it into our space to make the necessary cuts and alignment.  We were very happy with how it turned out.  It makes our home gym look less like a gym and more like a nice room with the wood \"look\".  It's easy to clean and serves the purpose we intended which was to make the room look more like a sanctuary than a stuffy old gym."},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/impact-rolls-wood-series-5047.html#group","name":"Impact Rubber Flooring Rolls - Wood Grain Vinyl Top Layer"},"datePublished":"2026-05-01","name":"Great for the studio","reviewBody":"I love the fact this roll looks like wood. It looks great in my yoga studio!"},{"@type":"Review","author":{"@type":"Person","name":"Jeanine O."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/impact-rolls-wood-series-5047.html#group","name":"Impact Rubber Flooring Rolls - Wood Grain Vinyl Top Layer"},"datePublished":"2026-05-01","name":"Awesome product !","reviewBody":"We had existing hardwood floors throughout the house and I was very hesitant to use this rubber flooring. I cannot say how perfect it turned out. It is very durable and it looks fantastic with our existing floors. Love Love Love this product."},{"@type":"Review","author":{"@type":"Person","name":"Dane W."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/impact-rolls-wood-series-5047.html#group","name":"Impact Rubber Flooring Rolls - Wood Grain Vinyl Top Layer"},"datePublished":"2026-05-01","name":"Great looking flooring at a reasonable price","reviewBody":"I know this product would be a great looking garage floor  and beings it is rubber it would be easy on my back"},{"@type":"Review","author":{"@type":"Person","name":"Chris"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/impact-rolls-wood-series-5047.html#group","name":"Impact Rubber Flooring Rolls - Wood Grain Vinyl Top Layer"},"datePublished":"2025-06-26","name":"Turned Out Really Good!","reviewBody":"Hi, it turned out really good! We turned a mechanical room that was a wasted space into a home gym and the floor makes all the difference. before and after showed.  Floor lays down great. It is seamless! It is almost impossible to find the seams when you join two or more piece for a larger room. We had two large rolls and I was worried about seeing them but not at all, incredible how it matches up and lays square. Looks great. So far with just a month installed, we love it with the gym. Much better than the basement concrete floor we had in the space before. Really does look high quality. I would recommend it."}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-monster-rubber-tiles-1040.html#group","name":"1\" Monster Rubber Tiles","sku":"1040","description":"1\" Monster Rubber Tiles","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_ere8ea2kpd0k9a5cbcr5i17b0h\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/1-monster-rubber-tiles-1040.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/1-monster-rubber-tiles-1040.html#offer-1040","price":8.99,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/1-monster-rubber-tiles-1040.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":35.96,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":4,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"1040","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.78","reviewCount":"23","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Steve A."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-monster-rubber-tiles-1040.html#group","name":"1\" Monster Rubber Tiles"},"datePublished":"2026-02-05","name":"Greenhouse foot warmer","reviewBody":"I bought the rubber tiles for my greenhouse to nhelp keep the floor warmer for my feet and they seem to perfectly fit the bill and they came in less than a week. A real value I'd say."},{"@type":"Review","author":{"@type":"Person","name":"Craig W."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-monster-rubber-tiles-1040.html#group","name":"1\" Monster Rubber Tiles"},"datePublished":"2026-02-05","name":"exactly what i wanted","reviewBody":"the flooring is durable looks great and lives up to all my expectations. the perfect floor for my home gym and animal friendly lays down easy and in a timely manner"},{"@type":"Review","author":{"@type":"Person","name":"Carrie"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-monster-rubber-tiles-1040.html#group","name":"1\" Monster Rubber Tiles"},"datePublished":"2025-06-26","name":"Perfect for teen's basement bedroom - and some","reviewBody":"I had some misgivings initially about investing in this type of flooring, but we are all utterly delighted with the end results.  Our teen needed her own room, and the only place to expand was into our unfinished basement - consisting of half cellar constructed in 1891, and half block basement dug out in the 1970s with a DIY (poorly-poured, highly irregular) concrete floor.   The Monster tiles were the perfect solution.  Their thickness and the \"feet\" adapt to the irregularities in the concrete floor, and make it far more comfortable (both in terms of support and temperature) to walk on.  We're also fine to handle the very mild dampness that tends to creep in across a 123-year-old cellar floor - the Monster tiles keep us high and dry!   The picture shows our teen's room, but we also have an area where we put a treadmill on top of the tiled floor, and running on the treadmill is now even more comfortable.   A couple of tips that we picked up while installing ourselves:   1) Holding the tile in an arc (like a \"bridge\" when shuffling cards) -  helps to compress the fit against the adjacent tile to allow the dowels to insert completely.   2) When that's not enough, we actually used a tire jack.  We would put the jack down on its side, and then brace the base horizontally against a wall or free-floating concrete block as needed, and against a 2\"x4\" stood up on edge along a tile on the other.  As we \"raised\" the jack (extending its length along the floor), the 2\"x4\" helped deliver the pressure equally alongside the tile, helping to compress the dowels and push the tile into place.   3) To cut tiles, we used a jigsaw with a blade intended for rough wood cuts, and a step ladder.  The problem is that you can't use sawhorses to hold up tiles for cuts because of course the rubber is somewhat floppy.  So, we laid a stepladder on its side and spread the feet apart enough to both stabilize the ladder, and to spread the legs about 1\" apart at the top.  You could then put the tile on the side of the ladder, laying it such that your cut would fall between the tops of the legs.  Just run the jigsaw through, and the ladder gives you enough support to hold the tile in place while making the cuts.  This method also helps you to guide your cut cleanly."},{"@type":"Review","author":{"@type":"Person","name":"Carrie"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-monster-rubber-tiles-1040.html#group","name":"1\" Monster Rubber Tiles"},"datePublished":"2025-06-26","name":"Perfect for teen&#39;
22020s basement bedroom - and some","reviewBody":"I had some misgivings initially about investing in this type of flooring, but we are all utterly delighted with the end results.  Our teen needed her own room, and the only place to expand was into our unfinished basement - consisting of half cellar constructed in 1891, and half block basement dug out in the 1970s with a DIY (poorly-poured, highly irregular) concrete floor.  The Monster tiles were the perfect solution.  Their thickness and the \"feet\" adapt to the irregularities in the concrete floor, and make it far more comfortable (both in terms of support and temperature) to walk on.  We're also fine to handle the very mild dampness that tends to creep in across a 123-year-old cellar floor - the Monster tiles keep us high and dry!  The picture shows our teen's room, but we also have an area where we put a treadmill on top of the tiled floor, and running on the treadmill is now even more comfortable.   A couple of tips that we picked up while installing ourselves:   1) Holding the tile in an arc (like a \"bridge\" when shuffling cards) -  helps to compress the fit against the adjacent tile to allow the dowels to insert completely.   2) When that's not enough, we actually used a tire jack.  We would put the jack down on its side, and then brace the base horizontally against a wall or free-floating concrete block as needed, and against a 2\"x4\" stood up on edge along a tile on the other.  As we \"raised\" the jack (extending its length along the floor), the 2\"x4\" helped deliver the pressure equally alongside the tile, helping to compress the dowels and push the tile into place.   3) To cut tiles, we used a jigsaw with a blade intended for rough wood cuts, and a step ladder.  The problem is that you can't use sawhorses to hold up tiles for cuts because of course the rubber is somewhat floppy.  So, we laid a stepladder on its side and spread the feet apart enough to both stabilize the ladder, and to spread the legs about 1\" apart at the top.  You could then put the tile on the side of the ladder, laying it such that your cut would fall between the tops of the legs.  Just run the jigsaw through, and the ladder gives you enough support to hold the tile in place while making the cuts.  This method also helps you to guide your cut cleanly."},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-monster-rubber-tiles-1040.html#group","name":"1\" Monster Rubber Tiles"},"datePublished":"2025-06-07","name":"Wonderful alternative to carpet for a basement","reviewBody":"I have purchased the rubber tiles to have a safe place for the little ones to play on! These are soft and durable and the kids love them! If anything spills the clean up is just spray and clean! Just wished all floor tiles were made the same - these do not inter lock with other tiles that I have purchased at the big chain stores! The one here are so much more affordable to cover a large space."}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-4-olympian-rubber-rolls-14009.html#group","name":"3\/4\" Olympian Rubber Rolls | Commercial Gym Flooring","sku":"14009","description":"3\/4\" Olympian Rubber Rolls | Commercial Gym Flooring","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_9jmbeqvd8h02v0tj320h8c7957\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/3-4-olympian-rubber-rolls-14009.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/3-4-olympian-rubber-rolls-14009.html#offer-14009","price":3.25,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/3-4-olympian-rubber-rolls-14009.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":13,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":4,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"14009","aggregateRating":{"@type":"AggregateRating","ratingValue":"5.00","reviewCount":"7","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-4-olympian-rubber-rolls-14009.html#group","name":"3\/4\" Olympian Rubber Rolls | Commercial Gym Flooring"},"datePublished":"2025-11-08"},{"@type":"Review","author":{"@type":"Person","name":"Mixalot"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-4-olympian-rubber-rolls-14009.html#group","name":"3\/4\" Olympian Rubber Rolls | Commercial Gym Flooring"},"datePublished":"2025-10-02","name":"Thicker than my last relationship","reviewBody":"They just feel\u2026 right. Definitely happy with this purchase"},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-4-olympian-rubber-rolls-14009.html#group","name":"3\/4\" Olympian Rubber Rolls | Commercial Gym Flooring"},"datePublished":"2025-09-23"},{"@type":"Review","author":{"@type":"Person","name":"CK"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-4-olympian-rubber-rolls-14009.html#group","name":"3\/4\" Olympian Rubber Rolls | Commercial Gym Flooring"},"datePublished":"2025-09-10"},{"@type":"Review","author":{"@type":"Person","name":"Nick"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/3-4-olympian-rubber-rolls-14009.html#group","name":"3\/4\" Olympian Rubber Rolls | Commercial Gym Flooring"},"datePublished":"2025-09-10"}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-mats-2803.html#group","name":"1\/4\" Tough Rubber Mats | Fitness Mats & Utility Floor Mats","sku":"2803","description":"1\/4\" Tough Rubber Mats | Fitness Mats & Utility Floor Mats","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_lnh8u5vh957jd5v4ai26lmk25r\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-mats-2803.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-mats-2803.html#offer-2803","price":63.74,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-mats-2803.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":63.74,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":12,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"2803","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.84","reviewCount":"96","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-mats-2803.html#group","name":"1\/4\" Tough Rubber Mats | Fitness Mats & Utility Floor Mats"},"datePublished":"2025-01-22","name":"Easy to Install","reviewBody":"Excellent quality and easy to install.  Perfect for a home gym.... Excellent customer service, too!"},{"@type":"Review","author":{"@type":"Person","name":"Steven D."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-mats-2803.html#group","name":"1\/4\" Tough Rubber Mats | Fitness Mats & Utility Floor Mats"},"datePublished":"2025-01-22","name":"Love Tough Mat in Garage","reviewBody":"The new rubber mat I installed in the garage for my kids to use while lifting weights is great . Quarter inch is not thick enough in case they were to drop a dumbbell. Very comfortable walking. Helps with noise control. Also with the discount the price was very reasonable. I plan to purchase another in the near future but will look at something that is at least one-half inch and possibly wider; i.e. 8 x 6 foot."},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-mats-2803.html#group","name":"1\/4\" Tough Rubber Mats | Fitness Mats & Utility Floor Mats"},"datePublished":"2025-01-22","name":"Impressive","reviewBody":"Other than the edges not being straight, I have enjoyed this product.  It did take a lot longer than we'd hoped to get them shipped but now that I have them, I like how it looks."},{"@type":"Review","author":{"@type":"Person","name":"Mike"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-mats-2803.html#group","name":"1\/4\" Tough Rubber Mats | Fitness Mats & Utility Floor Mats"},"datePublished":"2025-01-21","name":"Great product!","reviewBody":"Love this flooring. I put the 4x10\u2019 mats in my gym that is 11.5\u2019x29\u2019. I had the same product in my old, smaller gym and learned that it does slide a bit if you have several pieces butted up against each other and don\u2019t glue it down. Was it necessary to glue down? No, but I\u2019m a perfectionist and wanted it perfect. It was tedious gluing and cutting it to perfection, but it was 100% worth it to glue it. Looks perfect and feels amazing in my gym. I found it to be best if I glued one row at a time and wait until the glue hardens to do the next row, because when you have to pull the pieces (with some good force, usually using my feet\/body weight and sometimes pushing from the wall even to get it in place) to fit perfectly, you need to use painters tape to keep them in place. I say that, because if they are all moving around then then first row would begin to pull away when I taped them together\u2026 I suppose you can do it all at once if you are a pro, but I found doing it in rows was most effective so I didn\u2019t have any gaps anyw
22020here. However, it was just me and not a whole crew of people doing it\u2026"},{"@type":"Review","author":{"@type":"Person","name":"Joe M."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/1-4-tough-mats-2803.html#group","name":"1\/4\" Tough Rubber Mats | Fitness Mats & Utility Floor Mats"},"datePublished":"2025-01-21","name":"Garage gym","reviewBody":"Perfect size and shape for the garage gym I set up. The company delivered exactly what I wanted. Little tougher then expected cutting a strip off the end to get exact measurement for room, but I would rather it harder to get through than an easy material to tear through."}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/budget-rubber-rolls-14048.html#group","name":"Budget Rubber Flooring Rolls - Best Value","sku":"14048","description":"Budget Rubber Flooring Rolls - Best Value","image":"https:\/\/d2q5qaygbbwnnw.cloudfront.net\/image\/230444301506\/image_kuq49misgh2mvavjim7qcoam1i\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/budget-rubber-rolls-14048.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/budget-rubber-rolls-14048.html#offer-14048","price":0.79,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/budget-rubber-rolls-14048.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":3.16,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":4,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Flooring Inc"},"mpn":"14048","aggregateRating":{"@type":"AggregateRating","ratingValue":"5.00","reviewCount":"7","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Wingfield"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/budget-rubber-rolls-14048.html#group","name":"Budget Rubber Flooring Rolls - Best Value"},"datePublished":"2026-05-01","name":"Turn your home gym into a professional looking one!","reviewBody":"Great product! Our home gym looks professional now. Easy to install- but take your time and get those seams tight."},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/budget-rubber-rolls-14048.html#group","name":"Budget Rubber Flooring Rolls - Best Value"},"datePublished":"2026-03-16"},{"@type":"Review","author":{"@type":"Person","name":"OOG"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/budget-rubber-rolls-14048.html#group","name":"Budget Rubber Flooring Rolls - Best Value"},"datePublished":"2026-02-03"},{"@type":"Review","author":{"@type":"Person","name":"OG"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/budget-rubber-rolls-14048.html#group","name":"Budget Rubber Flooring Rolls - Best Value"},"datePublished":"2026-02-02"},{"@type":"Review","author":{"@type":"Person","name":"sadw"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/budget-rubber-rolls-14048.html#group","name":"Budget Rubber Flooring Rolls - Best Value"},"datePublished":"2026-01-23"}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-designer-series-1043.html#group","name":"8mm Strong Rubber Rolls - Designer Series","sku":"1043","description":"8mm Strong Rubber Rolls - Designer Series","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_0v0s0qqhp95rtds1j0hgtvpf6v\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-designer-series-1043.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-designer-series-1043.html#offer-1043","price":2.85,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-designer-series-1043.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":11.38,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":4,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Traxxon Rubber Flooring"},"mpn":"1043","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.76","reviewCount":"37","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"J. P."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-designer-series-1043.html#group","name":"8mm Strong Rubber Rolls - Designer Series"},"datePublished":"2025-06-25","name":"A Top Choice for Residential Use","reviewBody":"Many reviewers online have stated that rubber flooring, especially commercial-grade, isn't suitable for home use, and that's just not the case here. I think that the 8mm flooring and underlay combination we ordered work great for our downstairs 600-ft. playroom.   The flooring looks great and feels great under bare feet, and it is softer than hardwood for falls and roughhousing with kids. It's easy to clean, and it's practical for a multipet household like ours. I much prefer the nonslip feature to slippery hardwood\/other flooring because I am always barefoot at home.   I would recommend rubber flooring to anyone with kids and pets."},{"@type":"Review","author":{"@type":"Person","name":"Paul"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-designer-series-1043.html#group","name":"8mm Strong Rubber Rolls - Designer Series"},"datePublished":"2025-06-25","name":"Basement gym floor","reviewBody":"Great product - bought 3 4ft wide x 15ft long rolls and installed them on top of porcelain tile floor without glue or any tape. The product is heavy enough to keep in place without any glue or tape and I did cut them down to ~12 feet long and kept it as close to each wall as possible."},{"@type":"Review","author":{"@type":"Person","name":"Carol"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-designer-series-1043.html#group","name":"8mm Strong Rubber Rolls - Designer Series"},"datePublished":"2025-06-25","name":"love this product","reviewBody":"This is the second area we have put this flooring . we own a veterinary hospital, kennel , and dog daycare and first put the flooring in our cage free day care area where it was just perfect. We recently added a 5th exam room and put it in there . The traction the dogs have on the rubber flooring has created a more relaxed environment for them. My true goal is to replace the flooring in my entire waiting room with this product to truly make it easier for our k-9 patients! Cost is my only issue though as far as that."},{"@type":"Review","author":{"@type":"Person","name":"Steve"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-designer-series-1043.html#group","name":"8mm Strong Rubber Rolls - Designer Series"},"datePublished":"2025-06-25","name":"Basement Gym Floor- Renewed","reviewBody":"The product is fantastic and exceeds my expectations regarding quality, durability, look, and installation.  I have a home gym in the basement of my 85+ yr old house-- free weights, cardio machines, etc.  The old tile floor was tired and needed replacement.  After a bit of research, I opted for the 8mm thick 'strong rubber rolls' with Coffee Creek finish.  The total installation required 6 rolls x 15ft length x 4 ft wide (360 sq ft).   Installation was relatively straight forward, but some experience needed to properly cut ends to fit non-square walls, as well as more intricate cutouts around door jams, etc.  All cut
22020s were made with a utility knife-- I only changed the blade twice.  Cuts made with a metal edge straight edge with a 1\/4\" plywood underneath the rubber roll.   Double-sided carpet tape purchased with the rolls was also used for the seams.  The seams between rolls were almost invisible, but care needs to be taken during installation.  Installation took about 10 hours total, but included prep and clean up time-- a weekend project for sure.  Instructions come packed in the rolls-- be sure to look for them there before you start.  One important installation tip for accurate installation is to let the rolls come to room temp and let the roll being installed lay flat for about 2 hours to equilibrate.   The new floor has an excellent feeling under foot- soft enough, but grippy like a gym floor.  It can handle the free weights, jumping, etc.  The Coffee Creek finish looks excellent if you are looking for a finished floor look-- almost looks like carpeting from a distance.  And yes, my wife is happy with the new floor!"},{"@type":"Review","author":{"@type":"Person","name":"Dave W."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/8mm-strong-rubber-rolls-designer-series-1043.html#group","name":"8mm Strong Rubber Rolls - Designer Series"},"datePublished":"2024-11-22","name":"Happy Customer","reviewBody":"Awesome product! Was so easy to install.We converted part of a dog kennel area into a cage free doggy day care area  decided to use your rubber matting.We think it looks fabulous!"}]},{"@context":"https:\/\/schema.org","@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/eco-flec-rolls-9589.html#group","name":"Eco-Flec Rubber Rolls","sku":"9589","description":"Eco-Flec Rubber Rolls","image":"https:\/\/d2q5qaygbb
22020wnnw.cloudfront.net\/image\/230444301506\/image_s69k4hmkfp18r1t7gokajvef5v\/-B318","url":"https:\/\/www.flooringinc.com\/shop\/eco-flec-rolls-9589.html","offers":{"@type":"Offer","@id":"https:\/\/www.flooringinc.com\/shop\/eco-flec-rolls-9589.html#offer-9589","price":0.99,"priceCurrency":"USD","availability":"https:\/\/schema.org\/InStock","url":"https:\/\/www.flooringinc.com\/shop\/eco-flec-rolls-9589.html","priceValidUntil":"2026-12-31","priceSpecification":{"@type":"UnitPriceSpecification","price":3.96,"priceCurrency":"USD","unitText":"sq ft","referenceQuantity":{"@type":"QuantitativeValue","value":4,"unitCode":"FTK"}}},"brand":{"@type":"Brand","name":"Flooring Inc"},"mpn":"9589","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.82","reviewCount":"49","bestRating":"5"},"review":[{"@type":"Review","author":{"@type":"Person","name":"Nathan"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/eco-flec-rolls-9589.html#group","name":"Eco-Flec Rubber Rolls"},"datePublished":"2025-12-02","name":"Still same great quality as 6 years ago","reviewBody":"I originally bought this product 6 years ago and I just ordered more to expand the floor in my home gym and it still matches perfectly! The original has held up great and I am so happy with my purchase"},{"@type":"Review","author":{"@type":"Person","name":"Legacy"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/eco-flec-rolls-9589.html#group","name":"Eco-Flec Rubber Rolls"},"datePublished":"2025-10-26","name":"Flooring","reviewBody":"Great product"},{"@type":"Review","author":{"@type":"Person","name":"Craig"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/eco-flec-rolls-9589.html#group","name":"Eco-Flec Rubber Rolls"},"datePublished":"2025-06-26","name":"Great product!","reviewBody":"We have been shopping for a while and really like the idea of flooring from recycled materials.  And your floor was least expensive by far than other manufacturers.  It wasn&#39;t very difficult to cut and install.  We are impressed and very happy with the new floor in our home gym! Thank you!"},{"@type":"Review","author":{"@type":"Person","name":"Daniel M."},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/eco-flec-rolls-9589.html#group","name":"Eco-Flec Rubber Rolls"},"datePublished":"2025-06-26","name":"GREAT AFFORDABLE PRODUCT","reviewBody":"Overall the product is great. Installation was easy and the product was not hard to cut.  Only negative is that the product tended to crumble on some rolls a little more than other rubber flooring I have installed, but nothing major.  One of the rolls arrived had a damaged spot, but I failed to report it knowing that I would use that roll last and the area would be trimmed off.  Overall great product and would definitely purchase products from the company again."},{"@type":"Review","author":{"@type":"Person","name":"Anonymous"},"reviewRating":{"@type":"Rating","ratingValue":"5","bestRating":"5"},"itemReviewed":{"@type":"Product","@id":"https:\/\/www.flooringinc.com\/shop\/eco-flec-rolls-9589.html#group","name":"Eco-Flec Rubber Rolls"},"datePublished":"2025-06-07","name":"Easy to Install!","reviewBody":"I, and all of my personal training clients, love our new Eco-Flec floor."}]}]</script>
22020    
22020<script defer src="https://www.dwin1.com/94345.js"></script>
22020
22021    
22022<script  nonce="dW0zODRtOWZjdmJ0bDF4NXV6NmVlNHB0bTFmZWRxYTU=">
22023    (() => {
22024        const updateSettingBar = () => {
22025            const intervalId = setInterval(() => {
22026                const bar = document.getElementById('pr-cookie-setting-bar');
22027                if (! bar) {
22028                    return;
22029                }
22030
22031                clearInterval(intervalId);
22032                bar.querySelectorAll('input[type="checkbox"], button.action')
22033                    .forEach(el => el.disabled = true);
22034
22035                                    let notification = '\u003Cdiv\u0020class\u003D\u0022pr\u002Dgpc\u002Dnotification\u002Dwrap\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Ch2\u003EYour\u0020Opt\u002DOut\u0020Preferences\u0020Honored\u003C\u002Fh2\u003E\u000D\u000A\u003Cp\u003EYour\u0020browser\u0027s\u0020privacy\u0020preference\u0020\u0028GPC\u0029\u0020has\u0020been\u0020detected.\u003C\u002Fp\u003E\u000D\u000A\u003Cp\u0020class\u003D\u0022pr\u002Dgpc\u002Dtext\u002Dwith\u002Dicon\u0022\u003E\u003Cimg\u0020src\u003D\u0022https\u003A\u002F\u002Fwww.flooringinc.com\u002Fstatic\u002Fversion1789462004\u002Ffrontend\u002FDcw\u002Fhyvadesktop\u002Fen_US\u002FPlumrocket_GlobalPrivacyControl\u002Fimages\u002Fcheck_circle.png\u0022\u0020alt\u003D\u0022GPC\u0020Icon\u0022\u0020width\u003D\u002218\u0022\u0020height\u003D\u002218\u0022\u003E\u0020Non\u002Dessential\u0020cookies\u0020have\u0020been\u0020disabled\u0020on\u0020our\u0020website.\u003C\u002Fp\u003E\u000A\u003C\u002Fdiv\u003E';
22036                    bar.querySelector('.pr-cookie-description')
22037                        .insertAdjacentHTML('beforebegin', notification);
22038                            }, 400);
22039        }
22040
22041        prGlobalPrivacyControlApi.signalHandlers.addHandler(updateSettingBar);
22042    })();
22043</script>
vendor: 1 bytes, line 22043
22043
22044<script type="application/json" id="default-section-data">
22045    {"messages":[],"customer":[],"compare-products":[],"last-ordered-items":[],"requisition":[],"cart":[],"directory-data":{"US":{"name":"United States","regions":{"3":{"code":"AL","name":"Alabama"},"6":{"code":"AK","name":"Alaska"},"9":{"code":"AS","name":"American Samoa"},"12":{"code":"AZ","name":"Arizona"},"15":{"code":"AR","name":"Arkansas"},"18":{"code":"AE","name":"Armed Forces Africa"},"21":{"code":"AA","name":"Armed Forces Americas"},"24":{"code":"AE","name":"Armed Forces Canada"},"27":{"code":"AE","name":"Armed Forces Europe"},"30":{"code":"AE","name":"Armed Forces Middle East"},"33":{"code":"AP","name":"Armed Forces Pacific"},"36":{"code":"CA","name":"California"},"39":{"code":"CO","name":"Colorado"},"42":{"code":"CT","name":"Connecticut"},"45":{"code":"DE","name":"Delaware"},"48":{"code":"DC","name":"District of Columbia"},"51":{"code":"FM","name":"Federated States Of Micronesia"},"54":{"code":"FL","name":"Florida"},"57":{"code":"GA","name":"Georgia"},"60":{"code":"GU","name":"Guam"},"63":{"code":"HI","name":"Hawaii"},"66":{"code":"ID","name":"Idaho"},"69":{"code":"IL","name":"Illinois"},"72":{"code":"IN","name":"Indiana"},"75":{"code":"IA","name":"Iowa"},"78":{"code":"KS","name":"Kansas"},"81":{"code":"KY","name":"Kentucky"},"84":{"code":"LA","name":"Louisiana"},"87":{"code":"ME","name":"Maine"},"90":{"code":"MH","name":"Marshall Islands"},"93":{"code":"MD","name":"Maryland"},"96":{"code":"MA","name":"Massachusetts"},"99":{"code":"MI","name":"Michigan"},"102":{"code":"MN","name":"Minnesota"},"105":{"code":"MS","name":"Mississippi"},"108":{"code":"MO","name":"Missouri"},"111":{"code":"MT","name":"Montana"},"114":{"code":"NE","name":"Nebraska"},"117":{"code":"NV","name":"Nevada"},"120":{"code":"NH","name":"New Hampshire"},"123":{"code":"NJ","name":"New Jersey"},"126":{"code":"NM","name":"New Mexico"},"129":{"code":"NY","name":"New York"},"132":{"code":"NC","name":"North Carolina"},"135":{"code":"ND","name":"North Dakota"},"138":{"code":"MP","name":"Northern Mariana Islands"},"141":{"code":"OH","name":"Ohio"},"144":{"code":"OK","name":"Oklahoma"},"147":{"code":"OR","name":"Oregon"},"150":{"code":"PW","name":"Palau"},"153":{"code":"PA","name":"Pennsylvania"},"156":{"code":"PR","name":"Puerto Rico"},"159":{"code":"RI","name":"Rhode Island"},"162":{"code":"SC","name":"South Carolina"},"165":{"code":"SD","name":"South Dakota"},"168":{"code":"TN","name":"Tennessee"},"171":{"code":"TX","name":"Texas"},"174":{"code":"UT","name":"Utah"},"177":{"code":"VT","name":"Vermont"},"180":{"code":"VI","name":"Virgin Islands"},"183":{"code":"VA","name":"Virginia"},"186":{"code":"WA","name":"Washington"},"189":{"code":"WV","name":"West Virginia"},"192":{"code":"WI","name":"Wisconsin"},"195":{"code":"WY","name":"Wyoming"}}},"data_id":1791054483},"captcha":[],"wishlist":{"items":[]},"company":[],"company_authorization":[],"negotiable_quote":[],"instant-purchase":[],"loggedAsCustomer":[],"multiplewishlist":[],"purchase_order":[],"persistent":[],"review":[],"amfacebook-pixel":[],"faq":[],"quotecart":[],"sociallogin":[],"data_privacy":[],"ccpa_data":[],"wp_ga4":[],"recently_viewed_product":[],"recently_compared_product":[],"product_data_storage":[],"paypal-billing-agreement":[]}</script>
22045
22046<div class="am-loader-wrapper"
22047     x-data="amXnotifLoaderPlP()"
22048     x-bind="eventListeners"
22049     x-spread="eventListeners">
22050    <div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50"
22051         style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);"
22052         x-show="isLoading"
22053         x-transition:enter="ease-out duration-200"
22054         x-transition:enter-start="opacity-0"
22055         x-transition:enter-end="opacity-100"
22056         x-transition:leave="ease-in duration-200"
22057         x-transition:leave-start="opacity-100"
22058         x-transition:leave-end="opacity-0">
22059        <!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL -->
22060<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="text-primary" width="57" height="57" role="img">
22061    <g fill="none" fill-rule="evenodd">
22062        <g transform="translate(1 1)" stroke-width="2">
22063            <circle cx="5" cy="50" r="5">
22064                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/>
22065                <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/>
22066            </circle>
22067            <circle cx="27" cy="5" r="5">
22068                <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/>
22069                <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/>
22070            </circle>
22071            <circle cx="49" cy="50" r="5">
22072                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/>
22073                <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/>
22074            </circle>
22075        </g>
22076    </g>
22077<title>loader</title></svg>
22078        <div class="ml-10 text-primary text-xl">
22079            Loading...        </div>
22080    </div>
22081</div>
22082<script>
22083    function amXnotifLoaderPlP() {
22084        return {
22085            isLoading: false,
22086            eventListeners : {
22087                ['@showAmLoader.window']() {
22088                    this.isLoading = true;
22089                },
22090                ['@hideAmLoader.window']() {
22091                    this.isLoading = false;
22092                }
22093            }
22094        }
22095    }
22096</script>
22096
22097</div><div x-data="fpcTracking()" x-init="sendRequest()"></div>
22098<script>
22099    function fpcTracking() {
22100        return {
22101            url: 'https://www.flooringinc.com/amasty_fpc/reports/',
22102            sendRequest() {
22103                const ttfb = window.performance.timing.responseStart - window.performance.timing.fetchStart;
22104                fetch(`${this.url}?` + new URLSearchParams({ ttfb }), {
22105                    method: 'GET',
22106                    headers: {
22107                        'Content-Type': 'application/json',
22108                        'X-Requested-With': 'XMLHttpRequest',
22109                    }
22110                })
22111            }
22112        }
22113    }
22114</script>
22114
22115<!-- amasty-fpc-status -->    
22115<script>
22116        const wpGA4ServerSide = {
22117            pushClick: function(productId, listId, listName, index, elm) {
22118                if (elm && elm.hasAttribute('onclick')) {
22119                    var requestUrl = 'https://www.flooringinc.com/weltpixel_ga4/track/productclick/';
22120                    if (productId && listId && listName) {
22121                        fetch(requestUrl, {
22122                            method: 'POST',
22123                            headers: {
22124                                'Content-Type': 'application/x-www-form-urlencoded',
22125                                'X-Requested-With': 'XMLHttpRequest'
22126                            },
22127                            body: 'product_id=' + productId + '&list_id=' + listId +'&list_name=' + listName + '&index=' + index
22128                        })
22129                        .then(res => res.json())
22130                        .then(data => {
22131                        });
22132                    }
22133                }
22134            },
22135
22136            pushViewItemList: function(hashId) {
22137                if (hashId && document.getElementById('wp_ga4_server_side_view_item_list')) {
22138                    var requestUrl = 'https://www.flooringinc.com/weltpixel_ga4/track/viewitemlist/';
22139                    fetch(requestUrl, {
22140                        method: 'POST',
22141                        headers: {
22142                            'Content-Type': 'application/x-www-form-urlencoded',
22143                            'X-Requested-With': 'XMLHttpRequest'
22144                        },
22145
22146                        body: 'hash_id='+hashId
22147                    })
22148                    .then(res => res.json())
22149                    .then(data => {
22150                    });
22151                }
22152            }
22153        };
22154
22155        window.wpGA4ServerSide = wpGA4ServerSide;
22156
22157        let allowGa4Services = window.ga4AllowServices ?? true;
22158
22159        if (allowGa4Services) {
22160            const {fetch: originalFetch} = window;
22161            window.fetch = async (...args) => {
22162                let [resource, config] = args;
22163                let response = await originalFetch(resource, config);
22164
22165                if ((typeof resource == 'string') && resource.search('/customer\/section\/load/') > 0) {
22166                    response.clone().json().then(data => {
22167                        if (data.wp_ga4.datalayer) {
22168                            const dataLayerData = JSON.parse(data.wp_ga4.datalayer);
22169                            dataLayerData.forEach((dataLayerItem) => {
22170                                window.dataLayer.push({ecommerce: null});
22171                                window.dataLayer.push(dataLayerItem);
22172                            });
22173                        }
22174                    });
22175                }
22176                return response;
22177            };
22178        }
22179
22180    </script>
22180
22181    
22181<script>
22182        let allowGa4ServicesMeta = window.ga4AllowServices ?? true;
22183        if (allowGa4ServicesMeta) {
22184            const {fetch: originalFetchMeta} = window;
22185            window.fetch = async (...args) => {
22186                let [resource, config] = args;
22187                let response = await originalFetchMeta(resource, config);
22188
22189                if ((typeof resource == 'string') && resource.search('/customer\/section\/load/') > 0) {
22190                    response.clone().json().then(data => {
22191                        if (data.wp_ga4 && data.wp_ga4.metapixel) {
22192                            const metaPixel = JSON.parse(data.wp_ga4.metapixel);
22193                            for (index in metaPixel) {
22194                                fbq(metaPixel[index].track, metaPixel[index].eventName, metaPixel[index].eventData);
22195                            }
22196                        }
22197                    });
22198                }
22199                return response;
22200            };
22201        }
22202    </script>
vendor: 1 bytes, line 22202
22202
22203<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-d3390ca2649c82069a5","applicationID":"1112615138","transactionName":"YwMDN0NXChZSVRBZWlpJIABFXwsLHFUFRFRYCQZMUlcQAFRZFkkaQg8EFA==","queueTime":0,"applicationTime":4699,"atts":"T0QAQQtNGRg=","errorBeacon":"bam.nr-data.net","agent":""}</script>
22203</body>
22204</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.