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
Coupler
Pneumatic Coupler
TruFlate
Plug
Male Pipe
3/8 inch Body
Steel
View Steel Specifications
Male Pipe Industrial Interchange Plug
Pneumatic Quick Coupler
Specifications
Specifications
Need more information? Give us a call
260-426-4673
J3M2
Male Pipe TruFlate Interchange Plug
J3M3
Male Pipe TruFlate Interchange Plug
J3M4
Male Pipe TruFlate Interchange Plug
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
×