Home
Technical
Build A Hose
Create an Account
Sign in!
var form = document.searchForm; if (form.SEARCH_TYPE.selectedIndex == 2) { form.action = '/dept_search.html'; } else { form.action = '/search.html'; }
Hose
Hose End
Fitting
Tubing
Clamp
Coupler
Valve
Monitor
Pneumatic
Seal
DOT Trucking
Dixon Valve
BVA Hydraulics
Interchanges
Home
Fitting
Brass
Fire Adapters
View Fire Adapters Specifications
Thread ID
Need more information? Give us a call
260-426-4673
Double Female Hex Adapter
Suction Adapter w/Poly Screen
Female Swivel Pin Lug
Female Swivel Rocker Lug
Double Swivel Pin Lug
Double Swivel Rocker Lug
Hydrant Adapter Pin Lug
Hydrant Adapter Rocker Lug
Hazmat Adapter Pin Lug
Female NPT Male Hydrant
Female by Male
Female Swivel Male Thread Pin Lug
Female Swivel Male Thread Rocker Lug
Suction Adapter with Screen
Double Male Hex
Double Male Pin Lug
Double Male Rocker Lug
Female Hydrant Male Cam Lock Pin Lug
Cap Pin Lug
Cap Rocker Lug
Test Cap Rocker Lug
Plug Pin Lug
Plug Rocker Lug
Hydrant Wrench
document.addEventListener("DOMContentLoaded",(async()=>{const e=await(async()=>{try{console.log("Loading WebAssembly module...");const e=await fetch("/catalog/build/specs-matcher.wasm"),t=await e.arrayBuffer(),n=new WebAssembly.Memory({initial:1,maximum:10}),o=await WebAssembly.instantiate(t,{env:{memory:n,abort:(e,t,n,o)=>{console.error(`Abort called at ${t}:${n}:${o} - ${e}`)},abortOnCannotGrowMemory:()=>{console.error("Cannot grow memory")},table:new WebAssembly.Table({initial:0,maximum:0,element:"anyfunc"}),__memory_base:0,__table_base:0,log:(e,t)=>{const o=new Uint8Array(n.buffer,e,t),s=(new TextDecoder).decode(o);console.log(s)},matchDashSize:(e,t,o,s)=>{const r=new Uint8Array(n.buffer,e,t),i=new Uint8Array(n.buffer,o,s),c=JSON.parse((new TextDecoder).decode(r)),a=(new TextDecoder).decode(i);return Object.entries(c).some((([e,t])=>{if(!e.includes("Dash Size"))return!1;const n=String(t||"").replace(/^-/,"");return n===a||2===a.length&&a.startsWith("0")&&n===a.slice(1)}))?1:0},isSimilarContent:(e,t,o,s)=>{const r=new Uint8Array(n.buffer,e,t),i=new Uint8Array(n.buffer,o,s),c=JSON.parse((new TextDecoder).decode(r)),a=JSON.parse((new TextDecoder).decode(i)),l=Object.keys(c).filter((e=>"sourceLink"!==e)),d=Object.keys(a).filter((e=>"sourceLink"!==e));return l.length!==d.length?0:l.every((e=>!!a.hasOwnProperty(e)&&String(c[e]).trim()===String(a[e]).trim()))?1:0}}});return console.log("WebAssembly module loaded successfully"),o}catch(e){return console.error("Failed to load WebAssembly module:",e),null}})(),t=(t,n)=>{if(!e)return!1;const o=e.instance.exports.memory,s=t,r=n,i=new TextEncoder,c=new TextEncoder,a=i.encode(s),l=c.encode(r),d=e.instance.exports.allocate(a.length),f=e.instance.exports.allocate(l.length);new Uint8Array(o.buffer).set(a,d),new Uint8Array(o.buffer).set(l,f);const u=e.instance.exports.isSimilarContent(d,a.length,f,l.length);return e.instance.exports.deallocate(d,a.length),e.instance.exports.deallocate(f,l.length),1===u},n=e=>`specs-cache-${e}`,o=async e=>{const t=(e=>{let t=e.replace(/^http:/,"https:");const n=t.indexOf("#");return t=-1!==n?t.substring(0,n):t,t.includes("?")?`${t}&htapi-return=json`:`${t}?htapi-return=json`})(e);console.log("Checking cache for:",t);const o=(e=>{try{const t=localStorage.getItem(n(e));if(!t)return null;const{data:o,timestamp:s}=JSON.parse(t);return Date.now()-s>864e5?(localStorage.removeItem(n(e)),null):o}catch(e){return console.error("Error retrieving cached data:",e),null}})(t);return o?(console.log("Using cached data for:",t),o):(console.log("Fetching data from:",t),new Promise(((e,o)=>{const s=document.createElement("iframe");s.src=t,s.setAttribute("sandbox","allow-scripts allow-same-origin"),s.style.display="none",document.body.appendChild(s);const r=o=>{if(o.source===s.contentWindow&&"specsUpdate"===o.data?.type){console.log("Received data from iframe for:",t);const i=o.data.data?.data||o.data.data;i&&Array.isArray(i)&&((e,t)=>{try{const o={data:t,timestamp:Date.now()};return localStorage.setItem(n(e),JSON.stringify(o)),!0}catch(e){return console.error("Error caching data:",e),!1}})(t,i),e(i),window.removeEventListener("message",r),s.remove()}};window.addEventListener("message",r),s.onerror=()=>{console.error("Failed to load iframe for:",t),window.removeEventListener("message",r),s.remove(),o(new Error(`Failed to load data from ${t}`))}})))},s=(t,n)=>{if(!e)return!1;const o=e.instance.exports.memory,s=JSON.stringify(t),r=(new TextEncoder).encode(s),i=(new TextEncoder).encode(n),c=e.instance.exports.allocate(r.length),a=e.instance.exports.allocate(i.length);new Uint8Array(o.buffer).set(r,c),new Uint8Array(o.buffer).set(i,a);const l=e.instance.exports.matchDashSize(c,r.length,a,i.length);return e.instance.exports.deallocate(c,r.length),e.instance.exports.deallocate(a,i.length),1===l},r=(e,t)=>{if(!t)return null;const n=e.getAttribute("htapi-value");if(!n)return null;const o=[],s=[],r=e=>{const t=parseInt(e);return t>=1&&t<=9?[`${t}`,`0${t}`]:[e]};if(n.match(/^PCSF(\d{4})$/)){const e=new RegExp(`${n}\\s*=\\s*([\\d\\s/"]+"?)(?=\\s|$|,|"|foot)`,"i"),s=t.match(e);if(s&&s[1]){const e=s[1].trim();if(!o.includes(e))return o.push(e),o}}const i=n.match(/^SS(\d{1,2})-(\d{1,2})/);if(i){const e=i[1],n=i[2],s=r(e),c=r(n);for(const e of s){const n=new RegExp(`(?:0?${e})\\s*=\\s*([\\d-\\s/"]+"?)(?=\\s|$|,|"|foot)`,"i"),s=t.match(n);if(s&&s[1]){const e=s[1].trim();o.includes(e)||o.push(e);break}}for(const e of c){const n=new RegExp(`(?:0?${e})\\s*=\\s*([\\d-\\s/"]+"?)(?=\\s|$|,|"|foot)`,"i"),s=t.match(n);if(s&&s[1]){const e=s[1].trim();o.includes(e)||o.push(e);break}}if(2===o.length)return o}const c=n.match(/^.*?[A-Z]-(\d{1,2})-(\d{1,2})-(\d{1,2})$/);if(c){const e=c[1],n=c[2],s=c[3],i=r(e),a=r(n),l=r(s);for(const e of[...i,...a,...l]){const n=new RegExp(`(?:0?${e})\\s*=\\s*([\\d-\\s/"]+"?)(?=\\s|$|,|"|foot)`,"i"),s=t.match(n);if(s&&s[1]){const e=s[1].trim();o.includes(e)||o.push(e)}}if(o.length>0)return o}const a=n.match(/.*?-(\d{1,2})-(\d{1,2})-(\d{1,2})-SS$/);if(a){const e=a[1],n=a[2],s=a[3],i=r(e),c=r(n),l=r(s);for(const e of[...i,...c,...l]){const n=new RegExp(`(?:0?${e})\\s*=\\s*([\\d-\\s/"]+"?)(?=\\s|$|,|"|foot)`,"i"),s=t.match(n);if(s&&s[1]){const e=s[1].trim();o.includes(e)||o.push(e)}}if(o.length>0)return o}const l=[{pattern:/.*?-(\d{1,2})-(\d{1,2})-SS$/,indices:[1,2]},{pattern:/JH(\d+)-(\d+)/,indices:[1]},{pattern:/[A-Z0-9]+[A-Z]-(\d+\.?\d*)-(\d+)/,indices:[1,2]},{pattern:/^\d+(?=[a-zA-Z]|$)/,indices:[0]},{pattern:/-(\d+)(?:[^\d]|$)|(\d{1,2})$/,indices:[1,2]},{pattern:/^(\d{1,2})-(\d{1,2})-(\d{1,2})$/,indices:[1,2,3]},{pattern:/(?:ASY|LTASY|RASY)(\d+)-(\d+)/,indices:[1]},{pattern:/BP\d*-(\d+)-(\d+)[A-Z]/,indices:[1,2]},{pattern:/[A-Z]+\d*[A-Z]*-(\d{1,2})-(\d{1,2})/,indices:[1,2]}];for(const{pattern:e,indices:t}of l){const o=n.match(e);if(o)for(const e of t)o[e]&&s.push(...r(o[e]))}for(const e of s){const n=[`(?:0?${e})\\s*=\\s*([\\d-\\s/"]+"?)(?=\\s|$|,|"|foot)`,`(?:Sizing|ID Sizing|Hose\\s+ID|Sizes)\\s*:\\s*(?:0?${e})\\s*=\\s*([\\d-\\s/"]+"?)(?=\\s|$|,|"|foot)`,`(?:Sizing|ID Sizing|Hose\\s+ID|Sizes)\\s*:\\s*([\\d-\\s/"]+"?)\\s*(?:for|-)\\s*(?:0?${e})(?=\\s|$|,|"|foot)`];for(const e of n){const n=new RegExp(e,"i"),s=t.match(n);if(s&&s[1]){const e=s[1].trim();o.includes(e)||o.push(e)}}}return o.length>0?o:null},i=(e,t)=>{const n=[],o=e=>{const t=parseInt(e);return t>=1&&t<=9?[`${t}`,`0${t}`]:[e]},s=e.match(/^GP(\d+)-(\d+)$/);if(s){const e=s[1],o=(s[2],['Thread\\s*Size\\s*=\\s*([\\d\\s/\\-"]+"?)(?=\\s|$|,|"|foot)','Size\\s*=\\s*([\\d\\s/\\-"]+"?)(?=\\s|$|,|"|foot)',`GP${e}\\s*=\\s*([\\d\\s/\\-"]+"?)(?=\\s|$|,|"|foot)`]);for(const e of o){const o=new RegExp(e,"i"),s=t.match(o);if(s&&s[1]){const e=s[1].trim();n.includes(e)||n.push(e)}}if(n.length>0)return n}const r=e.match(/JH(\d+)-(\d+)/);if(r){const e=r[1],s=r[2];let i=!1;for(const s of o(e)){if(i)break;const e=new RegExp(`Hose\\s+ID[^:]*:\\s*(?:0?${s})\\s*=\\s*([\\d-\\s/"]+"?)(?=\\s|$|,|"|foot)`,"i"),o=t.match(e);if(o&&o[1]){const e=o[1].trim();n.includes(e)||(n.push(e),i=!0)}}const c=new RegExp(`Length\\s*=\\s*(${s}"?)`,"i"),a=t.match(c);if(a&&a[1]){const e=a[1].trim();n.includes(e)||n.push(e)}if(2===n.length)return n}const i=e.match(/[A-Z0-9]+[A-Z]-(\d+\.?\d*)-(\d+)/);if(i){const e=i[1],s=i[2],r=[e,e.replace(".",""),e.includes(".")?Math.floor(parseFloat(e)).toString():e];let c=!1;for(const e of r){const o=new RegExp(`(?:0?${e})\\s*=\\s*([\\d-\\s/"]+"?)(?=\\s|$|,|"|foot)`,"i"),s=t.match(o);if(s&&s[1]){const e=s[1].trim();if(!n.includes(e)){n.push(e),c=!0;break}}}let a=!1;for(const e of o(s)){if(a)break;const o=new RegExp(`(?:0?${e})\\s*=\\s*([\\d-\\s/"]+"?)(?=\\s|$|,|"|foot)`,"i"),s=t.match(o);if(s&&s[1]){const e=s[1].trim();n.includes(e)||(n.push(e),a=!0)}}if(c&&2===n.length)return n}return null},c=(e,n,o,r)=>{if(!e||!e.length)return[];const i=1===e.length,c=[],a=new Set;for(const{data:t}of e){const e=t.find((e=>{const t=Object.keys(e).find((e=>e.toLowerCase().includes("sku")||e.toLowerCase().includes("part #")));return t&&e[t]===o}));e&&!c.includes(e)&&c.push(e)}if(c.length>0)return c;if(r.length>0)if(i){const n=[];for(const{data:t}of e)for(const e of r)for(const o of t)s(o,e)&&n.push(o);for(const e of n){const n=JSON.stringify(e);let o=!1;for(const e of a)if(t(e,n)){o=!0;break}o||(a.add(n),c.push(e))}}else for(let n=0;n
{if(!e||!t)return!1;const n=e=>{for(const t of Object.keys(e))if(t.includes("Dash Size")&&e[t])return String(e[t]).trim();return null},o=n(e),s=n(t);if(o&&s&&o===s){const n=Object.keys(e).filter((t=>"sourceLink"!==t&&null!=e[t])),o=Object.keys(t).filter((e=>"sourceLink"!==e&&null!=t[e]));let s=0;for(const r of n)o.includes(r)&&String(e[r]).trim()===String(t[r]).trim()&&s++;return s/n.length>.8}return!1};setTimeout((async()=>{const e=document.querySelectorAll('td[htapi-key="type"]'),t=document.querySelector('[htapi-obj-key="description"]');if(!t)return;const n=t.getAttribute("htapi-obj-value")||"",l=document.querySelector('[htapi-obj-ref="dept_description"]');if(!l)return;const d=Array.from(l.querySelectorAll('a[href^="https://www.hoseandfittings.com"], a[href^="http://www.hoseandfittings.com"], a[href^="/"]')),f=new Map;if(e.forEach((e=>{const t=e.querySelector('a[htapi-obj-key="description"]');if(!t)return;const n=document.createElement("div");n.className="loading-spinner",n.style.display="inline-block",n.style.width="16px",n.style.height="16px",n.style.border="2px solid rgba(0, 0, 0, 0.1)",n.style.borderRadius="50%",n.style.borderTopColor="#3498db",n.style.animation="spin 1s linear infinite";const o=document.createElement("div");o.className="spinner-container",o.style.marginTop="10px",o.appendChild(n);const s=t.parentElement;s&&(s.appendChild(o),f.set(e,o))})),!document.querySelector("style#spinner-style")){const e=document.createElement("style");e.id="spinner-style",e.textContent="@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }",document.head.appendChild(e)}const u=new Set,p=[];await Promise.all(d.map((async(e,t)=>{if(e instanceof HTMLAnchorElement&&!u.has(e.href)){u.add(e.href);try{const n=await o(e.href);Array.isArray(n)&&p.push({data:n,linkText:e.innerText,linkIndex:t})}catch(t){console.error("Error processing link:",e.href,t)}}})));const h=new Map;for(const t of e){const e=t.querySelector('a[htapi-obj-key="description"]');if(!e)continue;const o=e.textContent?.trim();if(!o)continue;const a=t.getAttribute("htapi-value");if(!a)continue;const l=i(a,n);if(l&&l.length>0){const e=l.join(" & "),n=document.createElement("mark");if(n.setAttribute("htapi-obj-key","part-size"),n.setAttribute("htapi-obj-value",e),n.textContent=e,t.appendChild(document.createTextNode(" ")),t.appendChild(n),l.length>=2){const e=document.createElement("span"),n=document.createElement("span");e.setAttribute("htapi-obj-key","threadID1"),n.setAttribute("htapi-obj-key","threadID2"),e.setAttribute("htapi-obj-value",l[0]),n.setAttribute("htapi-obj-value",l[1]),t.appendChild(e),t.appendChild(n)}const o=f.get(t);o&&o.remove();continue}const d=o.split("-").slice(1).map((e=>e.includes("x")?e.split("x")[0]:/^[A-Za-z]+$/.test(e)?null:1===e.length?[`0${e}`,e]:e)).filter(Boolean).flat(),u=c(p,0,o,d);u.length>0&&h.set(t,u);const m=o.split("-").slice(1).filter((e=>!/^[A-Za-z]+$/.test(e)&&!e.includes("x"))),g=[...new Set(m)],y=[];for(const e of g){if(!e)continue;const t=1===e.length?`0${e}`:e;let n=null;for(const e of u){if(s(e,t)){const t=["Inch Size","Size","Thread Size","Nominal Size","ID"];for(const o of t){for(const t of Object.keys(e))if(t.includes(o)&&!t.includes("Dash")&&e[t]){n=String(e[t]).trim();break}if(n)break}}if(n)break}n&&!y.includes(n)&&y.push(n)}const b=0===y.length?r(t,n):null,w=y.length>0?y:b;if(w&&w.length>0){const e=w.join(" & "),n=document.createElement("mark");if(n.setAttribute("htapi-obj-key","part-size"),n.setAttribute("htapi-obj-value",e),n.textContent=e,t.appendChild(document.createTextNode(" ")),t.appendChild(n),w.length>=2){const e=document.createElement("span"),n=document.createElement("span");e.setAttribute("htapi-obj-key","threadID1"),n.setAttribute("htapi-obj-key","threadID2"),e.setAttribute("htapi-obj-value",w[0]),n.setAttribute("htapi-obj-value",w[1]),t.appendChild(e),t.appendChild(n)}}const S=f.get(t);S&&S.remove()}for(const[e,t]of h.entries()){const n=document.createElement("ul");n.style.margin="0",n.style.paddingLeft="20px";const o=[];for(const e of t){let t=!1;for(const n of o)if(a(e,n)){t=!0;break}t||o.push(e)}o.forEach(((e,t)=>{if(t>0){const e=document.createElement("li");e.style.listStyleType="none",e.style.borderTop="1px solid #ddd",e.style.margin="8px 0",n.appendChild(e)}Object.entries(e).forEach((([e,t])=>{if(null!=t&&"sourceLink"!==e&&!e.toLowerCase().includes("sku")&&!e.toLowerCase().includes("part #")){const o=document.createElement("li");o.style.listStyleType="none",o.textContent=`${e}: ${t}`,n.appendChild(o)}}))}));const s=document.createElement("details");s.addEventListener("click",(e=>{e.stopPropagation()}));const r=document.createElement("summary");r.textContent="Specifications",r.style.fontWeight="bold",r.style.cursor="pointer",s.appendChild(r),s.appendChild(n);const i=document.createElement("div");i.className="dept-item-specs",i.style.marginTop="10px",i.style.fontSize="0.9em",i.appendChild(s);const c=e.querySelector('a[htapi-obj-key="description"]').parentElement;c&&c.appendChild(i)}f.forEach((e=>e.remove()))}),0)}));
Contact Us
Frequently Asked Questions
Add to Favorites
Accessibility
Return Policy
Recent Blogs
Call for More Information
×