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
Steel
Flange
Tube Flange Head
Code 62 Flat Face
View Code 62 Flat Face Specifications
Code 62 Flat Face Tube
Flange Head
Need more information? Give us a call
260-426-4673
12T-12SFXN
Code 62 Flat Face Tube Flange Head
16T-12SFXN
Code 62 Flat Face Tube Flange Head
16T-16SFXN
Code 62 Flat Face Tube Flange Head
20T-16SFXN
Code 62 Flat Face Tube Flange Head
20T-20SFXN
Code 62 Flat Face Tube Flange Head
24T-20SFXN
Code 62 Flat Face Tube Flange Head
24T-24SFXN
Code 62 Flat Face Tube Flange Head
28T-24SFXN
Code 62 Flat Face Tube Flange Head
32T-32SFXN
Code 62 Flat Face Tube Flange Head
36T-32SFXN
Code 62 Flat Face Tube Flange Head
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
×