1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <meta charset="utf-8"/> 5 <meta content="width=device-width, initial-scale=1.0" name="viewport"/> 6 <!-- Primary Meta --> 7 <title> 8 Batteries Northwest 9 </title> 10 <meta content="Batteries Northwest is a trusted battery supplier based in Salem, Oregon, providing high-quality batteries, battery accessories, chargers, and diagnostic equipment for automotive, commercial, industrial, marine, RV, golf cart, powersports, and backup power applications. With decades of industry experience, Batteries Northwest is committed to delivering reliable products, competitive pricing, and knowledgeable customer service to both retail customers and businesses throughout Oregon and the Pacific Northwest." name="description"/> 11 <meta content="index, follow" name="robots"/> 12 <!-- Open Graph / Social --> 13 <meta content="website" property="og:type"/> 14 <meta content="https://batteriesnorthwest.com" property="og:url"/> 15 <meta content="Batteries Northwest " property="og:title"/> 16 <meta content="Batteries Northwest is a trusted battery supplier based in Salem, Oregon, providing high-quality batteries, battery accessories, chargers, and diagnostic equipment for automotive, commercial, industrial, marine, RV, golf cart, powersports, and backup power applications. With decades of industry experience, Batteries Northwest is committed to delivering reliable products, competitive pricing, and knowledgeable customer service to both retail customers and businesses throughout Oregon and the Pacific Northwest." property="og:description"/> 17 <meta content="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/render/image/public/base44-prod/public/6995ef20b8f5ee4cf0712257/41dbef9af_BNWFlagLogoVector.jpg?width=1200&height=630&resize=contain" property="og:image"/> 18 <meta content="Batteries Northwest " property="og:site_name"/> 19 <!-- Twitter Card --> 20 <meta content="summary_large_image" name="twitter:card"/> 21 <meta content="Batteries Northwest " name="twitter:title"/> 22 <meta content="Batteries Northwest is a trusted battery supplier based in Salem, Oregon, providing high-quality batteries, battery accessories, chargers, and diagnostic equipment for automotive, commercial, industrial, marine, RV, golf cart, powersports, and backup power applications. With decades of industry experience, Batteries Northwest is committed to delivering reliable products, competitive pricing, and knowledgeable customer service to both retail customers and businesses throughout Oregon and the Pacific Northwest." name="twitter:description"/> 23 <meta content="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/render/image/public/base44-prod/public/6995ef20b8f5ee4cf0712257/41dbef9af_BNWFlagLogoVector.jpg?width=1200&height=630&resize=contain" name="twitter:image"/> 24 <!-- Local Business Schema --> 25
25<script type="application/ld+json"> 26 { 27 "@context": "https://schema.org", 28 "@type": "Store", 29 "@id": "https://batteriesnorthwest.com/#store", 30 "name": "Batteries Northwest", 31 "description": "Salem, Oregon's battery experts since 1985. Car, truck, marine, RV, powersports, and industrial batteries.", 32 "url": "https://batteriesnorthwest.com", 33 "telephone": "+15033622684", 34 "email": "[email protected]", 35 "foundingDate": "1985", 36 "address": { 37 "@type": "PostalAddress", 38 "streetAddress": "2725 Portland Rd NE", 39 "addressLocality": "Salem", 40 "addressRegion": "OR", 41 "postalCode": "97301", 42 "addressCountry": "US" 43 }, 44 "geo": { 45 "@type": "GeoCoordinates", 46 "latitude": 44.9795, 47 "longitude": -123.0129 48 }, 49 "openingHoursSpecification": [ 50 { 51 "@type": "OpeningHoursSpecification", 52 "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"], 53 "opens": "08:00", 54 "closes": "17:00" 55 } 56 ], 57 "priceRange": "$$", 58 "image": "https://media.base44.com/images/public/6995ef20b8f5ee4cf0712257/7638eed67_BNWSTOREFRONTPHOTO.jpg" 59 } 60 </script>
60 61 <!-- Organization Schema --> 62
62<script type="application/ld+json"> 63 { 64 "@context": "https://schema.org", 65 "@type": "Organization", 66 "@id": "https://batteriesnorthwest.com/#organization", 67 "name": "Batteries Northwest", 68 "url": "https://batteriesnorthwest.com", 69 "logo": "https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/user_691e155000dbce28f2053eab/5ddf9c62d_BNWFlagLogoVector1.jpg", 70 "description": "Salem, Oregon's battery experts since 1985. Car, truck, marine, RV, powersports, and industrial batteries.", 71 "telephone": "+15033622684", 72 "email": "[email protected]", 73 "foundingDate": "1985", 74 "address": { 75 "@type": "PostalAddress", 76 "streetAddress": "2725 Portland Rd NE", 77 "addressLocality": "Salem", 78 "addressRegion": "OR", 79 "postalCode": "97301", 80 "addressCountry": "US" 81 }, 82 "sameAs": [ 83 "https://www.facebook.com/BatteriesNorthwest", 84 "https://www.instagram.com/batteriesnorthwest" 85 ] 86 } 87 </script>
87 88 <!-- Favicon --> 89 <link href="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/user_691e155000dbce28f2053eab/5ddf9c62d_BNWFlagLogoVector1.jpg" rel="icon" type="image/svg+xml"/> 90 <!-- Performance: preconnect to external origins --> 91 <link href="https://media.base44.com" rel="preconnect"/> 92 <link href="https://qtrypzzcjebvfcihiynt.supabase.co" rel="preconnect"/> 93 <!-- Preload hero image (LCP) --> 94 <link as="image" href="https://media.base44.com/images/public/6995ef20b8f5ee4cf0712257/7638eed67_BNWSTOREFRONTPHOTO.jpg" rel="preload"/> 95 <!-- Google Ads Tag (AW-18096727551) -->
vendor: 69 bytes, lines 95-96
95 96 <script async="" src="https://www.googletagmanager.com/gtag/js?id=
96AW-18096727551
vendor: 17 bytes, lines 96-98
96"> 97 </script> 98
98<script> 99
vendor: 145 bytes, lines 99-102
99window.dataLayer = window.dataLayer || []; 100 function gtag(){dataLayer.push(arguments);} 101 gtag('js', new Date()); 102 gtag('config', '
102AW-18096727551
vendor: 6 bytes, lines 102-103
102'); 103
103</script>
103 104 <link href="/manifest.json" rel="manifest"/> 105
105<script crossorigin="" src="/assets/index-C2hxFi9F.js" type="module"> 106 </script>
106 107 <link crossorigin="" href="/assets/index-3W2zMOy8.css" rel="stylesheet"/> 108 <meta content="https://batteriesnorthwest.com" name="twitter:url"/> 109
109<script> 110 (function () { 111 var titles = {"/": "Batteries Northwest ", "/about": "About | Batteries Northwest ", "/admin": "Admin | Batteries Northwest ", "/admin-remap": "Admin Remap | Batteries Northwest ", "/adminremap": "Admin Remap | Batteries Northwest ", "/cart": "Cart | Batteries Northwest ", "/checkout": "Checkout | Batteries Northwest ", "/contact": "Contact | Batteries Northwest ", "/dealers": "Dealers | Batteries Northwest ", "/fa-qs": "FAQs | Batteries Northwest ", "/faqs": "FAQs | Batteries Northwest ", "/product-detail": "Product Detail | Batteries Northwest ", "/productdetail": "Product Detail | Batteries Northwest ", "/products": "Products | Batteries Northwest ", "/dealerlogin": "Dealer Login | Batteries Northwest ", "/dealer-login": "Dealer Login | Batteries Northwest ", "/dealer-signup": "Dealer Signup | Batteries Northwest ", "/dealersignup": "Dealer Signup | Batteries Northwest ", "/dealerdashboard": "Dealer Dashboard | Batteries Northwest ", "/dealer-dashboard": "Dealer Dashboard | Batteries Northwest ", "/batteryrecycling": "Battery Recycling | Batteries Northwest ", "/battery-recycling": "Battery Recycling | Batteries Northwest ", "/warrantyinformation": "Warranty Information | Batteries Northwest ", "/warranty-information": "Warranty Information | Batteries Northwest ", "/dealers/business-support": "Dealers / Business Support | Batteries Northwest ", "/dealers/save-you-money": "Dealers / Save You Money | Batteries Northwest ", "/dealers/bulk-pricing": "Dealers / Bulk Pricing | Batteries Northwest ", "/shop": "Shop | Batteries Northwest ", "/home": "Batteries Northwest "}; 112 // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind 113 // (old Safari fails to PARSE a lookbehind, taking the whole script down). 114 var dashed = function (s) { 115 return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2"); 116 }; 117 var decode = function (s) { 118 // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a 119 // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title. 120 try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; } 121 }; 122 var segments = function (path) { return path.split("/").filter(Boolean).map(decode); }; 123 var norm = function (path) { 124 var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); }); 125 return parts.length ? "/" + parts.join("/") : "/"; 126 }; 127 var lastPath = location.pathname, written = document.title, on = true; 128 var sync = function () { 129 // Path only: a hash/query change is the same page, and the SDK strips its own auth 130 // params with replaceState -- neither must clobber a server-rendered title in place. 131 if (!on || location.pathname === lastPath) return; 132 lastPath = location.pathname; 133 if (document.title !== written) { on = false; return; } 134 // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the 135 // map cannot carry, and writing a placeholder there is destructive, not merely vague: the 136 // prerender worker runs no setUserAgent, so its capture browser reads as human and executes 137 // this script, and coordinator.js's settle wait explicitly tolerates a full navigation -- 138 // a redirect landing on an unmapped path would bake the placeholder into the stored 139 // snapshot. Leaving the title alone degrades to today's behavior instead. 140 // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up 141 // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the 142 // dashes there, and the client cannot tell the two apart. The map emits every reachable 143 // shape per segment instead (_client_url_variants). 144 var title = titles[norm(location.pathname)]; 145 if (title === undefined) return; 146 document.title = title; 147 // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so 148 // keeping the assigned string would make the next sync() read our own write as the app's. 149 written = document.title; 150 }; 151 var wrap = function (fn) { 152 // The history entry is already pushed by the time sync() runs, so a throw here would 153 // surface inside the host app's router and break navigation. This is injected into apps 154 // we cannot test, so it swallows rather than trusting the trace. 155 return function () { 156 var r = fn.apply(this, arguments);
157 try { sync(); } catch (e) {} 158 return r; 159 }; 160 }; 161 history.pushState = wrap(history.pushState); 162 history.replaceState = wrap(history.replaceState); 163 window.addEventListener("popstate", sync); 164})(); 165 </script>
165 166 <meta content="yes" name="mobile-web-app-capable"/> 167 <meta content="black" name="apple-mobile-web-app-status-bar-style"/> 168 <meta content="Batteries Northwest " name="apple-mobile-web-app-title"/> 169 <link href="https://batteriesnorthwest.com" rel="canonical"/> 170
170<script data-seo-source="builder" type="application/ld+json"> 171 {"name": "Batteries Northwest ", "@context": "https://schema.org", "@type": "WebSite", "url": "https://batteriesnorthwest.com"} 172 </script>
172 173
173<script data-seo-source="builder" type="application/ld+json"> 174 {"name": "Batteries Northwest ", "logo": "https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/6995ef20b8f5ee4cf0712257/41dbef9af_BNWFlagLogoVector.jpg", "@context": "https://schema.org", "@type": "Organization", "url": "https://batteriesnorthwest.com"} 175 </script>
175 176
176<script data-seo-source="builder" type="application/ld+json"> 177 {"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"name": "What is Batteries Northwest ?", "@type": "Question", "acceptedAnswer": {"@type": "Answer", "text": "Batteries Northwest manages 5 data types including products. Helps you organize, track, and share your work in 1 place for teams and solo users."}}]} 178 </script>
178 179
179<script> 180 (function(){var SAMPLING_RATE=1.0;var sid=(crypto.randomUUID&&crypto.randomUUID())||(Date.now()+'-'+Math.random().toString(36).slice(2));function samplingValue(v){var h=2166136261;for(var i=0;i<v.length;i++){h^=v.charCodeAt(i);h=Math.imul(h,16777619);}return(h>>>0)/4294967296;}var _sampledOut=samplingValue(sid)>=SAMPLING_RATE;window.Base44=window.Base44||{};if(_sampledOut){var _noop=function(){};window.Base44.recordings=Object.freeze({version:'1',setUserID:_noop,setUserAnonymousID:_noop,setMetadata:_noop,event:_noop,issue:_noop,start:_noop,stop:_noop,isActive:function(){return false;},getSessionID:function(){return null;},getSessionURL:function(){return null;},forceFlushBatch:_noop});try{console.debug('[base44 recordings] session sampled out');}catch(_){}return;}var s=document.createElement('script');window.Base44.__preQ=window.Base44.__preQ||[];if(!window.Base44.recordings){var _pre=function(m){return function(){if(window.Base44.__preQ.length<100)window.Base44.__preQ.push([m,Array.prototype.slice.call(arguments)]);};};window.Base44.recordings={version:'1',setUserID:_pre('setUserID'),setUserAnonymousID:_pre('setUserAnonymousID'),setMetadata:_pre('setMetadata'),event:_pre('event'),issue:_pre('issue'),start:_pre('start'),stop:_pre('stop'),isActive:function(){return false;},getSessionID:function(){return null;},getSessionURL:function(){return null;},forceFlushBatch:_pre('forceFlushBatch')};}s.src='https://unpkg.com/[email protected]/dist/rrweb.umd.cjs';s.integrity='sha384-vi2VGEOczLoSZVrAqXzYd5VWgeBvxiOEgda6/sVzRK+lvhbs9TuqZ474UUptLXLB';s.crossOrigin='anonymous';s.async=true;s.onload=function(){if(!window.rrweb)return;var _started=false;var APP_ID="6995ef20b8f5ee4cf0712257";var INGEST_TOKEN="36AWmwzOlaheR1fdlhLGl7RrxpVv4EqAflch1QsSwKQ";var NETWORK_IGNORE_HEADERS=["cookie", "set-cookie", "authorization", "x-api-key"];var buffer=[];var lastFlush=Date.now();var recorderStopFn=null;var _stopRequested=false;var MAX_SESSION_MS=1800000;var IDLE_TIMEOUT_MS=900000;var lastActivityAt=0;var idleTimer=null;var maxTimer=null;var _sdkActive=null;var _sdkPending=[];var SDK_CAP=256;var sdkSafe=function(v){try{return String(v).slice(0,SDK_CAP);}catch(_){return '';}};var sdkDeep=function(v){try{return JSON.parse(JSON.stringify(v||{}));}catch(_){return {};}};var sdkEmit=function(method,payload){if(_sampledOut)return;var ev={method:method,payload:payload||{}};if(_sdkActive){try{_sdkActive('base44_sdk',Object.assign({method:method},payload||{}));}catch(_){}return;}if(_sdkPending.length<100)_sdkPending.push(ev);};window.Base44=window.Base44||{};window.Base44.recordings=Object.freeze({version:'1',setUserID:function(id){sdkEmit('setUserID',{value:sdkSafe(id)});},setUserAnonymousID:function(id){sdkEmit('setUserAnonymousID',{value:sdkSafe(id)});},setMetadata:function(key,value){if(_sampledOut)return;if(typeof key!=='string'||key.length>64)return;var v;try{v=JSON.parse(JSON.stringify(value));}catch(_){return;}sdkEmit('setMetadata',{key:key,value:v});},event:function(name,payload){if(_sampledOut)return;if(typeof name!=='string')return;sdkEmit('event',{name:name.slice(0,64),payload:sdkDeep(payload)});},issue:function(name,payload){if(_sampledOut)return;if(typeof name!=='string')return;sdkEmit('issue',{name:name.slice(0,64),payload:sdkDeep(payload)});},start:function(){},stop:function(){stopRecording('manual',true);},isActive:function(){return !_sampledOut&&!_stopRequested&&!!recorderStopFn;},getSessionID:function(){return _sampledOut?null:sid;},getSessionURL:function(){return null;},forceFlushBatch:function(){if(_sampledOut)return;try{flush(false);}catch(_){}}});if(window.Base44.__preQ&&window.Base44.__preQ.length){var _pq=window.Base44.__preQ;window.Base44.__preQ=[];for(var _qi=0;_qi<_pq.length;_qi++){var _m=_pq[_qi][0],_a=_pq[_qi][1];try{var _fn=window.Base44.recordings[_m];if(typeof _fn==='function')_fn.apply(null,_a);}catch(_){}}}function redactUrl(u){try{u=String(u||'');var q=u.indexOf('?');if(q>=0)u=u.slice(0,q);var h=u.indexOf('#');if(h>=0)u=u.slice(0,h);return u;}catch(_){return'';}}function redactText(s){try{s=String(s||'');return s.replace(/https?:\/\/[^\s)'\"]+|\/[^\s)'\"]*[?#][^\s)'\"]*/g,function(m){return redactUrl(m);});}catch(_){return'';}}function stopRecording(reason,dropBuffered){if(_stopRequested){if(dropBuffered)buffer.length=0;return;}if(!dropBuffered){try{flush(false);}catch(_){}}_stopRequested=true;buffer.length=0;if(idleTimer){try{clearTimeout(idleTimer);}catch(_){}idleTimer=null;}if(maxTimer){try{clearTimeout(maxTimer);}catch(_){}maxTimer=null;}if(recorderStopFn){try{recorderStopFn();recorderStopFn=null;}catch(_){}}
180try{if(reason)console.debug('[base44 recordings] stopped: '+reason);}catch(_){}}function scheduleIdleStop(){if(_stopRequested)return;if(idleTimer){try{clearTimeout(idleTimer);}catch(_){}}var wait=IDLE_TIMEOUT_MS-(Date.now()-lastActivityAt);if(wait<0)wait=0;idleTimer=setTimeout(function(){if(_stopRequested)return;if(Date.now()-lastActivityAt>=IDLE_TIMEOUT_MS)stopRecording('idle_timeout',false);else scheduleIdleStop();},wait);}function markActivity(){if(_stopRequested)return;lastActivityAt=Date.now();scheduleIdleStop();}function isMeaningfulActivityEvent(ev){try{return !!(ev&&ev.type===3&&ev.data&&((ev.data.source===2&&(ev.data.type===2||ev.data.type===4||ev.data.type===9))||ev.data.source===3||ev.data.source===5));}catch(_){return false;}}function sessionLifetimeCapture(){lastActivityAt=Date.now();maxTimer=setTimeout(function(){stopRecording('max_duration',false);},MAX_SESSION_MS);scheduleIdleStop();}function flush(ka){if(_stopRequested){buffer.length=0;return;}if(!buffer.length)return;var tok=null;try{tok=localStorage.getItem('base44_access_token');}catch(_){}var payload={app_id:APP_ID,session_id:sid,events:buffer.splice(0),page_url:redactUrl(location.href),user_agent:navigator.userAgent,access_token:tok};lastFlush=Date.now();var opts={method:'POST',headers:{'Content-Type':'application/json','X-Base44-Recording-Token':INGEST_TOKEN},body:JSON.stringify(payload)};if(ka)opts.keepalive=true;fetch('/api/runtime/session-recordings/ingest',opts).then(function(r){try{var skip=r.headers.get('X-Base44-Recording-Skip');if(skip==='excluded'||skip==='admin'){stopRecording('excluded',true);return;}if(skip==='sampled'){stopRecording('sampled',true);return;}}catch(_){}if(!r.ok){try{console.warn('session-recordings ingest http',r.status);}catch(_){}try{if(r.status===429&&r.headers.get('X-Base44-Recording-Limit')==='reached'){stopRecording('quota_reached',true);}}catch(_){}}}).catch(function(e){try{console.warn('session-recordings ingest err',e);}catch(_){}});}function devtoolsCapture(){if(!(window.rrweb&&window.rrweb.record&&window.rrweb.record.addCustomEvent))return;var add=window.rrweb.record.addCustomEvent;var inside=false;function safe(fn){return function(){if(inside)return;inside=true;try{return fn.apply(this,arguments);}finally{inside=false;}};}['log','info','warn','error','debug'].forEach(function(level){var orig=console[level];if(!orig)return;console[level]=function(){try{add('console',{level:level});}catch(_){}return orig.apply(console,arguments);};});window.addEventListener('error',safe(function(e){add('error',{message:redactText(String(e.message||'unknown')),source:redactUrl(e.filename||''),line:e.lineno||0,col:e.colno||0,stack:e.error&&e.error.stack?redactText(String(e.error.stack).slice(0,1000)):''});}));window.addEventListener('unhandledrejection',safe(function(e){var r=e.reason||{};add('error',{message:redactText(String(r.message||r||'unhandled rejection')),stack:r.stack?redactText(String(r.stack).slice(0,1000)):'',rejection:true});}));if(window.fetch){var of=window.fetch.bind(window);window.fetch=function(input,init){var t0=performance.now();var method=(init&&init.method)||(input&&input.method)||'GET';var url=typeof input==='string'?input:(input&&input.url)||'';if(url.indexOf('/api/runtime/session-recordings/ingest')>=0)return of(input,init);var rurl=redactUrl(url);return of(input,init).then(function(r){try{add('network',{kind:'fetch',method:method,url:rurl,status:r.status,duration:Math.round(performance.now()-t0)});}catch(_){}return r;}).catch(function(e){try{add('network',{kind:'fetch',method:method,url:rurl,status:0,duration:Math.round(performance.now()-t0),error:String(e&&e.message||e)});}catch(_){}throw e;});};}if(window.XMLHttpRequest){var xp=window.XMLHttpRequest.prototype;var oo=xp.open,os=xp.send;xp.open=function(m,u){this.__gp_m=m;this.__gp_u=u;return oo.apply(this,arguments);};xp.send=function(){var xhr=this,t0=performance.now();xhr.addEventListener('loadend',function(){try{if((xhr.__gp_u||'').indexOf('/api/runtime/session-recordings/ingest')<0)add('network',{kind:'xhr',method:xhr.__gp_m||'GET',url:redactUrl(xhr.__gp_u),status:xhr.status,duration:Math.round(performance.now()-t0)});}catch(_){}});return os.apply(this,arguments);};}}var EMAIL_RE=/([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})/g;var MASK_EMAILS=true;var MASK_NUMBERS=false;var CAPTURE_IFRAMES=true;function maskTextFn(text){if(!MASK_EMAILS||typeof text!=='string')return text;return text.replace(EMAIL_RE,'[email]');}function performanceCapture(){if(!('PerformanceObserver' in window))return;if(!(window.rrweb&&window.rrweb.record&&window.rrweb.record.addCustomEvent))return;var addPerf=window.rrweb.record.addCustomEvent;function emit(metric,value){try{addPerf('performance',{metric:metric,value:value,timestamp:Date.now()});}catch(_){}}try{new PerformanceObserver(function(list){var entries=list.getEntries();var last=entries[entries.length-1];if(last)emit('LCP',Math.round(last.renderTime||last.loadTime||last.startTime||0));}).observe({type:'largest-contentful-paint',buffered:true});}catch(_){}try{new PerformanceObserver(function(list){var entries=list.getEntries();for(var i=0;i<entries.length;i++){var e=entries[i];emit('FID',Math.round(e.processingStart-e.startTime));}}).observe({type:'first-input',buffered:true});}catch(_){}try{var clsValue=0;new PerformanceObserver(function(list){var entries=list.getEntries();for(var i=0;i<entries.length;i++){var e=entries[i];if(!e.hadRecentInput){clsValue+=e.value;}}emit('CLS',Math.round(clsValue*1000)/1000);}).observe({type:'layout-shift',buffered:true});}catch(_){}try{new PerformanceObserver(function(list){var entries=list.getEntries();for(var i=0;i<entries.length;i++){var e=entries[i];if(e.name==='first-contentful-paint')emit('FCP',Math.round(e.startTime));}}).observe({type:'paint',buffered:true});}catch(_){}try{new PerformanceObserver(function(list){var entries=list.getEntries();for(var i=0;i<entries.length;i++){var e=entries[i];emit('TTFB',Math.round(e.responseStart));}}).observe({type:'navigation',buffered:true});}catch(_){}}function issueCapture(){if(_sampledOut)return;if(!(window.rrweb&&window.rrweb.record&&window.rrweb.record.addCustomEvent))return;var addIssue=window.rrweb.record.addCustomEvent;var _crashEmitted=false;function emitIssue(kind){var page='';try{page=location.pathname;}catch(_){}try{addIssue('base44_issue',{kind:kind,page:page});}catch(_){}}var isReload=false;try{if(performance.getEntriesByType){var navEntry=performance.getEntriesByType('navigation')[0];if(navEntry&&navEntry.type==='reload')isReload=true;}}catch(_){}if(!isReload){try{if(performance.navigation&&performance.navigation.type===1)isReload=true;}catch(_){}}if(isReload)emitIssue('page_refresh');try{window.addEventListener('unhandledrejection',function(){try{if(_crashEmitted)return;_crashEmitted=true;emitIssue('app_crash');}catch(_){}},true);}catch(_){}}function startRecord(){if(_started)return;if(_stopRequested){try{console.debug('[base44 recordings] stop requested before start; not recording');}catch(_){}return;}if(_sampledOut){try{console.debug('[base44 recordings] session sampled out');}catch(_){}return;}_started=true;var maskInputOptions={password:true,email:true};if(MASK_NUMBERS){maskInputOptions.number=true;maskInputOptions.tel=true;maskInputOptions.date=true;}var recordOpts={emit:function(ev){if(_stopRequested)return;if(isMeaningfulActivityEvent(ev))markActivity();try{if(ev&&ev.type===4&&ev.data&&typeof ev.data.href==='string')ev.data.href=redactUrl(ev.data.href);}catch(_){}buffer.push(ev);if(ev.type===2){flush(false);return;}if(buffer.length>=50||Date.now()-lastFlush>5000)flush(false);},maskAllInputs:true,maskInputOptions:maskInputOptions,maskTextFn:maskTextFn,maskTextSelector:'.session-record-mask,[data-no-record]',blockSelector:'.session-record-block,[data-no-record-block]',recordCanvas:false,inlineStylesheet:true,checkoutEveryNms:60000};if(CAPTURE_IFRAMES)recordOpts.iframe=true;recorderStopFn=window.rrweb.record(recordOpts);if(window.rrweb.record.addCustomEvent){_sdkActive=window.rrweb.record.addCustomEvent;for(var _i=0;_i<_sdkPending.length;_i++){var _e=_sdkPending[_i];try{_sdkActive('base44_sdk',Object.assign({method:_e.method},_e.payload||{}));}catch(_){}}_sdkPending=[];}devtoolsCapture();performanceCapture();issueCapture();sessionLifetimeCapture();setTimeout(function(){try{window.rrweb.record.takeFullSnapshot&&window.rrweb.record.takeFullSnapshot(true);}catch(_){}},1500);setInterval(function(){flush(false);},5000);window.addEventListener('beforeunload',function(){flush(true);});}function whenReady(){var tries=0;function check(){var root=document.getElementById('root')||document.querySelector('main')||document.body;if(root&&root.childElementCount>0)return startRecord();if(++tries>50)return startRecord();setTimeout(check,100);}check();}
180if(document.readyState==='complete')whenReady();else window.addEventListener('load',whenReady);};(document.head||document.body).appendChild(s);})(); 181 </script>
181 182 </head> 183 <body> 184 <div id="root"> 185 <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;"> 186 <main> 187 <header> 188 <h1> 189 Batteries Northwest 190 </h1> 191 <p> 192 Batteries Northwest is a trusted battery supplier based in Salem, Oregon, providing high-quality batteries, battery accessories, chargers, and diagnostic equipment for automotive, commercial, industrial, marine, RV, golf cart, powersports, and backup power applications. With decades of industry experience, Batteries Northwest is committed to delivering reliable products, competitive pricing, and knowledgeable customer service to both retail customers and businesses throughout Oregon and the Pacific Northwest. 193 </p> 194 </header> 195 <nav aria-label="Pages"> 196 <h2> 197 Pages 198 </h2> 199 <ul> 200 <li> 201 <a href="/About"> 202 About 203 </a> 204 â About on Batteries Northwest . A modern, professional e-commerce platform for Batteries Northwest, offering a w. 205 </li> 206 <li> 207 <a href="/Admin"> 208 Admin 209 </a> 210 â Admin on Batteries Northwest . A modern, professional e-commerce platform for Batteries Northwest, offering a w. 211 </li> 212 <li> 213 <a href="/AdminRemap"> 214 Admin Remap 215 </a> 216 â Admin Remap on Batteries Northwest . A modern, professional e-commerce platform for Batteries Northwest, offering a w. 217 </li> 218 <li> 219 <a href="/Cart"> 220 Cart 221 </a> 222 â Cart on Batteries Northwest . A modern, professional e-commerce platform for Batteries Northwest, offering a w. 223 </li> 224 <li> 225 <a href="/Checkout"> 226 Checkout 227 </a> 228 â Checkout on Batteries Northwest . A modern, professional e-commerce platform for Batteries Northwest, offering a w. 229 </li> 230 <li> 231 <a href="/Contact"> 232 Contact 233 </a> 234 â Contact on Batteries Northwest . A modern, professional e-commerce platform for Batteries Northwest, offering a w. 235 </li> 236 <li> 237 <a href="/Dealers"> 238 Dealers 239 </a> 240 â Dealers on Batteries Northwest . A modern, professional e-commerce platform for Batteries Northwest, offering a w. 241 </li> 242 <li> 243 <a href="/FAQs"> 244 FA Qs 245 </a> 246 â FAQs on Batteries Northwest . A modern, professional e-commerce platform for Batteries Northwest, offering a w. 247 </li> 248 <li> 249 <a href="/ProductDetail"> 250 Product Detail 251 </a> 252 â Product Detail on Batteries Northwest . A modern, professional e-commerce platform for Batteries Northwest, offering a w. 253 </li> 254 <li> 255 <a href="/Products"> 256 Products 257 </a> 258 â Products on Batteries Northwest . A modern, professional e-commerce platform for Batteries Northwest, offering a w. 259 </li> 260 <li> 261 <a href="/DealerLogin"> 262 Dealer Login 263 </a> 264 â Dealer Login on Batteries Northwest . A modern, professional e-commerce platform for Batteries Northwest, offering a w. 265 </li> 266 <li> 267 <a href="/DealerSignup"> 268 Dealer Signup 269 </a> 270 â Dealer Signup on Batteries Northwest . A modern, professional e-commerce platform for Batteries Northwest, offering a w. 271 </li> 272 <li> 273 <a href="/DealerDashboard"> 274 Dealer Dashboard 275 </a> 276 â Dealer Dashboard on Batteries Northwest . A modern, professional e-commerce platform for Batteries Northwest, offering a w. 277 </li> 278 <li> 279 <a href="/BatteryRecycling"> 280 Battery Recycling 281 </a> 282 â Battery Recycling on Batteries Northwest. Batteries Northwest is a trusted battery supplier based in Salem, Oregon. 283 </li> 284 <li> 285 <a href="/WarrantyInformation"> 286 Warranty Information 287 </a> 288 â Warranty Information on Batteries Northwest. Batteries Northwest is a trusted battery supplier based in Salem, Oregon. 289 </li> 290 <li> 291 <a href="/dealers/business-support"> 292 Business Support 293 </a> 294 â Dealers / Business Support on Batteries Northwest. Batteries Northwest is a trusted battery supplier based in Salem, Oregon. 295 </li> 296 <li> 297 <a href="/dealers/save-you-money"> 298 Save You Money 299 </a> 300 â Dealers / Save You Money on Batteries Northwest. Batteries Northwest is a trusted battery supplier based in Salem, Oregon. 301 </li> 302 <li> 303 <a href="/dealers/bulk-pricing"> 304 Bulk Pricing 305 </a> 306 â Dealers / Bulk Pricing on Batteries Northwest. Batteries Northwest is a trusted battery supplier based in Salem, Oregon. 307 </li> 308 <li> 309 <a href="/Shop"> 310 Shop 311 </a> 312 â Shop on Batteries Northwest. Batteries Northwest is a trusted battery supplier based in Salem, Oregon. 313 </li> 314 </ul> 315 </nav> 316 </main> 317 </div> 318 </div> 319 </body> 320</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.