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
BVA Hydraulics
Cylinders
AluminumHU SeriesSpring Return
View Aluminum
HU Series
Spring Return Specifications
Single Acting Cylinder
w/ Spring Return
Features & Specifications
Features & Specifications
Need more information? Give us a call
260-426-4673
Click to View Product
HU2002T
Single Acting Cylinder w/ Spring Return
Click to View Product
HU2004T
Single Acting Cylinder w/ Spring Return
Click to View Product
HU2006T
Single Acting Cylinder w/ Spring Return
Click to View Product
HU3002T
Single Acting Cylinder w/ Spring Return
Click to View Product
HU3004T
Single Acting Cylinder w/ Spring Return
Click to View Product
HU3006T
Single Acting Cylinder w/ Spring Return
Click to View Product
HU5002T
Single Acting Cylinder w/ Spring Return
Click to View Product
HU5004T
Single Acting Cylinder w/ Spring Return
Click to View Product
HU5006T
Single Acting Cylinder w/ Spring Return
Click to View Product
HU5008T
Single Acting Cylinder w/ Spring Return
Click to View Product
HU5010T
Single Acting Cylinder w/ Spring Return
Click to View Product
HU7504
Single Acting Cylinder w/ Spring Return
Click to View Product
HU7506
Single Acting Cylinder w/ Spring Return
Click to View Product
JU506
Single Acting Cylinder w/ Spring Return
Click to View Product
HU10002
Single Acting Cylinder w/ Spring Return
Click to View Product
HU10004
Single Acting Cylinder w/ Spring Return
Click to View Product
HU10006
Single Acting Cylinder w/ Spring Return
Click to View Product
HU10008
Single Acting Cylinder w/ Spring Return
Click to View Product
HU10010
Single Acting Cylinder w/ Spring Return
Click to View Product
HU15002
Single Acting Cylinder w/ Spring Return
Click to View Product
HU15004
Single Acting Cylinder w/ Spring Return
Click to View Product
HU15006
Single Acting Cylinder w/ Spring Return
Click to View Product
HU15010
Single Acting Cylinder w/ Spring Return
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
×