PageSourceSearch

https://www.agingsafelybaths.com/assets/arvin.js?v=6

js agingsafelybaths.com collected 2026-09-29 09:24:13 UTC 61,033 bytes, 290 lines download raw bytes

1(function(){
2var MODELS=[["Hydro Dimensions", "2645", "/walk-in-tubs/hydro-dimensions-2645/", 26, 45, null], ["Hydro Dimensions", "2653", "/walk-in-tubs/hydro-dimensions-2653/", 26, 53, null], ["Hydro Dimensions", "2851", "/walk-in-tubs/hydro-dimensions-2851/", 28.25, 51, null], ["Hydro Dimensions", "3048", "/walk-in-tubs/hydro-dimensions-3048/", 27.75, 47.75, null], ["Hydro Dimensions", "3052", "/walk-in-tubs/hydro-dimensions-3052/", 29.75, 51.5, null], ["Hydro Dimensions", "3055", "/walk-in-tubs/hydro-dimensions-3055/", 29.5, 54.25, null], ["Hydro Dimensions", "3060", "/walk-in-tubs/hydro-dimensions-3060/", 30, 60, null], ["Hydro Dimensions", "3060L", "/walk-in-tubs/hydro-dimensions-3060l/", 30, 60, null], ["Hydro Dimensions", "3137", "/walk-in-tubs/hydro-dimensions-3137/", 31.5, 37.25, null], ["Hydro Dimensions", "3153", "/walk-in-tubs/hydro-dimensions-3153/", 31.25, 53.75, null], ["Hydro Dimensions", "3260", "/walk-in-tubs/hydro-dimensions-3260/", 32, 60, null], ["Hydro Dimensions", "3052W", "/walk-in-tubs/hydro-dimensions-3052w/", 29.75, 51.5, null], ["Hydro Dimensions", "3155D", "/walk-in-tubs/hydro-dimensions-3155d/", 31, 55, null], ["Hydro Dimensions", "3252W", "/walk-in-tubs/hydro-dimensions-3252w/", 31.75, 51.5, null], ["Hydro Dimensions", "3260D", "/walk-in-tubs/hydro-dimensions-3260d/", 32, 60, null], ["Hydro Dimensions", "3555 Plus", "/walk-in-tubs/hydro-dimensions-3555/", 35.75, 55, null], ["Ella's Bubbles", "Elite", "/walk-in-tubs/ella-elite/", 30, 52, 22], ["Ella's Bubbles", "Royal", "/walk-in-tubs/ella-royal/", 32, 52, 24], ["Ella's Bubbles", "Petite", "/walk-in-tubs/ella-petite/", 28, 52, 19], ["Ella's Bubbles", "Deluxe", "/walk-in-tubs/ella-deluxe/", 30, 55, 21], ["Ella's Bubbles", "Ultimate", "/walk-in-tubs/ella-ultimate/", 30, 60, 21], ["Ella's Bubbles", "Capri", "/walk-in-tubs/ella-capri/", 30, 52, 20], ["Ella's Bubbles", "Monaco", "/walk-in-tubs/ella-monaco/", 32, 52, 23], ["Ella's Bubbles", "Big4One", "/walk-in-tubs/ella-big4one/", 33, 66, 24], ["Ella's Bubbles", "ShaK", "/walk-in-tubs/ella-shak/", 36, 72, 29], ["Ella's Bubbles", "Lounger", "/walk-in-tubs/ella-lounger/", 27, 60, 20], ["Ella's Bubbles", "Front Entry", "/walk-in-tubs/ella-front-entry-3240/", 32, 40, 24], ["Ella's Bubbles", "Mobile", "/walk-in-tubs/ella-mobile/", 26, 45, 19], ["Ella's Bubbles", "Transfer26", "/walk-in-tubs/ella-transfer26/", 26, 52, 19], ["Ella's Bubbles", "Transfer30", "/walk-in-tubs/ella-transfer30/", 30, 52, 22], ["Ella's Bubbles", "Transfer32", "/walk-in-tubs/ella-transfer32/", 32, 52, 24], ["Ella's Bubbles", "Transfer60", "/walk-in-tubs/ella-transfer60/", 30, 60, 22], ["Ella's Bubbles", "TransferXXL", "/walk-in-tubs/ella-transferxxl/", 36, 55, 29], ["Ella's Bubbles", "Big4Two", "/walk-in-tubs/ella-big4two/", 36, 80, 24], ["Ella's Bubbles", "Tub4Two", "/walk-in-tubs/ella-tub4two/", 32, 60, 22], ["Ella's Bubbles", "Ultra", "/walk-in-tubs/ella-ultra/", 30, 53, 22], ["Ella's Bubbles", "Zen", "/walk-in-tubs/ella-zen/", 30, 52, null], ["Ella's Bubbles", "Zen60", "/walk-in-tubs/ella-zen60/", 30, 60, null], ["Ella's Bubbles", "Standard", "/walk-in-tubs/ella-standard/", 30, 52, 22], ["Ella's Bubbles", "Standard60", "/walk-in-tubs/ella-standard60/", 30, 60, 22], ["Ella's Bubbles", "Flow", "/walk-in-tubs/ella-flow/", 28, 48, 20], ["Ella's Bubbles", "Lay Down 30x60", "/walk-in-tubs/ella-lay-down-3060/", 30, 60, 26], ["Ella's Bubbles", "Lay Down 32x72", "/walk-in-tubs/ella-lay-down-3272/", 32, 72, 28], ["Ella's Bubbles", "Escape", "/walk-in-tubs/ella-escape/", 36, 72, 29], ["Ella's Bubbles", "Companion", "/walk-in-tubs/ella-companion/", 32, 60, 25], ["Ella's Bubbles", "HomeCare", "/walk-in-tubs/ella-homecare/", 32, 60, null], ["Ella's Bubbles", "HoistAssist", "/walk-in-tubs/ella-hoistassist/", 30, 60, null], ["Meditub", "2646", "/walk-in-tubs/meditub-2646/", 26, 46, null], ["Meditub", "2653", "/walk-in-tubs/meditub-2653/", 26, 53, null], ["Meditub", "2739", "/walk-in-tubs/meditub-2739/", 27, 39, null], ["Meditub", "2747", "/walk-in-tubs/meditub-2747/", 27, 47, null], ["Meditub", "2952", "/walk-in-tubs/meditub-2952/", 29, 52, null], ["Meditub", "2953WCA", "/walk-in-tubs/meditub-2953wca/", 29, 53, null], ["Meditub", "3053", "/walk-in-tubs/meditub-3053/", 30, 53, null], ["Meditub", "3054", "/walk-in-tubs/meditub-3054/", 30, 54, null], ["Meditub", "3060", "/walk-in-tubs/meditub-3060/", 30, 60, null], ["Meditub", "3060WCA", "/walk-in-tubs/meditub-3060wca/", 30, 60, null], ["Meditub", "3140", "/walk-in-tubs/meditub-3140/", 31, 40, null], ["Meditub", "3238", "/walk-in-tubs/meditub-3238/", 32, 38, null], ["Meditub", "3260", "/walk-in-tubs/meditub-3260/", 32, 60, null], ["Meditub", "3660", "/walk-in-tubs/meditub-3660/", 36, 60, null]];
3var STATES=["alabama","alaska","arizona","arkansas","california","colorado","connecticut","delaware","florida","georgia","hawaii","i
3daho","illinois","indiana","iowa","kansas","kentucky","louisiana","maine","maryland","massachusetts","michigan","minnesota","mississippi","missouri","montana","nebraska","nevada","new hampshire","new jersey","new mexico","new york","north carolina","north dakota","ohio","oklahoma","oregon","pennsylvania","rhode island","south carolina","south dakota","tennessee","texas","utah","vermont","virginia","washington","west virginia","wisconsin","wyoming"];
4
5var A={
6
7 instructions:"Here's how the install actually goes, so you know what to expect:\n<b>Walk in tub (1 day):</b> 1) remove the old tub and surround, 2) rough-in the drain, supplies and a dedicated GFCI circuit if the tub has jets, 3) set and level the tub on its feet and shim it, 4) connect the drain, overflow and faucet, 5) fill test with the door closed for 20 minutes, 6) extension panels, wall surround and trim, 7) walk-through with the bather.\n<b>Roll in shower (1 day):</b> 1) remove the tub, 2) set the Bestbath pan in a mortar or foam bed, level and slope-checked, 3) connect the drain and the Delta valve, 4) walls: 3 or 5 panels sealed to the pan flange, 5) seat and grab bars into the factory backing, 6) slide bar, handheld, water dam or door, 7) cleanup and walk-through.\nDoing it yourself? The manual ships with the unit and we support your plumber by phone for free.\n<a href='/white-glove-installation/'>Our one-day installation →</a> • <a href='/supply-only-walk-in-tubs/'>Supply-only and DIY →</a>",
8 pages:"Here's the map of the site:\n<a href='/walk-in-tubs/'>All walk in tubs</a> • <a href='/handicap-showers/'>Roll in showers</a> • <a href='/walk-in-tub-shower-combo/'>Tub-shower combo</a> • <a href='/tub-to-shower-conversion/'>Tub to shower conversion</a> • <a href='/bariatric-walk-in-tubs/'>Bariatric</a> • <a href='/wheelchair-accessible-walk-in-tubs/'>Wheelchair transfer</a> • <a href='/two-seat-walk-in-tubs/'>Two seat</a> • <a href='/shower-pans/'>Shower pans</a> • <a href='/shower-wall-panels/'>Wall panels</a> • <a href='/shower-packages/'>Shower packages</a>\nBrands: <a href='/hydro-dimensions-walk-in-tubs/'>Hydro Dimensions</a> • <a href='/ella-bubbles-walk-in-tubs/'>Ella's Bubbles</a> • <a href='/made-in-usa-walk-in-tubs/'>Meditub</a> • <a href='/us-walk-in-tubs/'>Bestbath</a>\nHelp: <a href='/walk-in-tub-cost/'>Cost</a> • <a href='/medicare-walk-in-tubs/'>Medicare</a> • <a href='/va-hisa-grant-for-bathroom-modifications/'>VA HISA</a> • <a href='/get-financing/'>Financing</a> • <a href='/design-your-bathroom/'>Design your bathroom</a> • <a href='/about/locations/'>Your state</a> • <a href='/become-a-dealer/'>Become a dealer</a>",
9 builder:"Try the bathroom builder: answer a few questions, it shows only the tubs or shower parts that fit, you can drag the jets where you want them, and it makes a spec sheet we quote from.\n<a href='/design-your-bathroom/'>Design your bathroom →</a>",
10 hours:"We're open 7 days a week, 7am to 8pm Mountain time, and we serve all 50 states. Call <a href='tel:+18887792284'>1-888-779-2284 (BATH)</a> or email <a href='mailto:[email protected]'>[email protected]</a>.",
11 tub:"Good choice. A walk in tub gives you a low step-in door, a built-in seat, and a deep warm soak — with hydro or air jets if you want them.\nWe carry Hydro Dimensions (our favorite for value and a lifetime warranty), Ella's Bubbles, Meditub and Bestbath's Rane tubs.\nWe've got bariatric, extra-large, and wheelchair-transfer models too. Want to see them?\n<a href='/walk-in-tubs/'>Browse walk in tubs →</a>",
12 shower:"Smart. A roll in shower has no curb to step over — you walk or roll straight in, and a fold-down seat and grab bars go exactly where you need them.\nMost families end up here because it works for everyone in the house.\n<a href='/handicap-showers/'>See roll in showers →</a>",
13 decide:"Here's my honest ten-second version:\n• Pick a walk in tub if you love a deep soak and can step over a low door.\n• Pick a roll in shower if you use a wheelchair or walker, have a caregiver helping, or just want fast, easy bathing.\nStill torn? Call us and we'll sort it out in one conversation.\n<a href='/walk-in-tubs/'>Compare every tub →</a> • <a href='/walk-in-showers/'>Walk in showers →</a>",
14 cost:"Fair question, and I won't dodge it. The price depends on the model, the options (jets, heated seat), and what your bathroom needs to accept it — that's why we don't post one number.\nWhat I can promise: we give you a written price range on the very first call, no home visit required, and no pressure.\n<a href='/walk-in-tub-cost/'>Real 2026 price ranges →</a>",
15 install:"Yes — we install in all 50 states with factory-certified installer
15s, and most jobs are finished in a single day.\nIf you'd rather do it yourself or use your own contractor, we sell supply-only too. Same factory warranty, free technical support, and Hydro Dimensions even backs DIY installs with a 1-year labor warranty.\nTell me your state and I'll point you to your page.",
16 va:"Veterans: we help you apply for the VA HISA grant for bathroom modifications, and every veteran and senior gets our best pricing.\nOne honest note — the grant usually covers part of a project, not all of it, so we'll pair it with financing options so you're not surprised later.\n<a href='/va-hisa-grant-for-bathroom-modifications/'>VA HISA details →</a>  •  <a href='/medicare-walk-in-tubs/'>Medicare & walk in tubs →</a>",
17 human:"Of course. A real person picks up at <a href='tel:+18887792284'>1-888-779-2284</a>, 7 days a week, 7am–8pm Mountain. Or send a quick quote request and we'll call you back.\n<a href='/residential-handicap-bathing-price-quote/'>Request a free quote →</a>",
18 bariatric:"Our bariatric and extra-large walk in tubs are built for comfort and real weight capacity — wider seats, wider doors, deeper soaks. They're some of the best-built tubs we sell.\n<a href='/bariatric-walk-in-tubs/'>See bariatric & large tubs →</a>",
19 warranty:"Hydro Dimensions tubs carry a full lifetime warranty — door seal, frame, shell, motors, all of it. Bestbath showers carry a 30-year warranty. And our installations are backed by a leak-protection guarantee.\n<a href='/warranties/'>Warranty details →</a>",
20 combo:"A walk in tub with a shower gives you both — soak when you want, rinse off when you're in a hurry. It's one of our most-requested setups.\n<a href='/walk-in-tub-shower-combo/'>Walk in tub shower combos →</a>",
21 hi:"Well hello! I'm Arvin. My Wanda and I spent 60-some years in the same farmhouse, so I know a thing or two about wanting to stay put.\nAsk me about walk in tubs, roll in showers, cost, installation, or veteran and Medicare help. Or just tell me what's going on in your bathroom."
22};
23
24var GREET="<b>Hi, I'm Arvin, the owner's grandpa.</b> Family business, family advice. You don't have to pay more to get more: name-brand walk in tubs and roll in showers, one of the biggest selections anywhere, at some of the best prices you'll find. What are you looking for?";
25var PHONE="<a href='tel:+18887792284'>1-888-779-2284</a>";
26Object.assign(A,{
27 hi:GREET+"\nAsk about tubs, showers, cost, installation, financing or veteran help. Or just say hello, I've got jokes and games too.",
28 greetShort:"Well hello again! Ask me anything about walk in tubs or roll in showers, or type <b>joke</b>, <b>game</b>, or <b>dance</b>.",
29 
30 installTub:"<b>How a walk in tub goes in (one day for our crews):</b>\n1) Pull the old tub or shower and the surround.\n2) Check the floor is level and solid — a filled tub with a bather can weigh 800 lbs or more, so joists matter.\n3) Rough-in: 2\" drain and trap, ½\" hot and cold supplies (¾\" if you want a fast-fill faucet), and a dedicated 15-amp GFCI circuit for each motor — jets, inline heater, or heated seat.\n4) Set the tub on its leveling feet, shim, and anchor it.\n5) Connect drain, overflow, faucet and handheld wand.\n6) Fill test with the door shut for 20 minutes and check every joint.\n7) Extension panels, wall surround, trim, caulk, and a walk-through with the bather.\nYour bathroom door needs to be about 24\" or wider to get most tubs in. Tell me your door width and I'll tell you what fits.\n<a href='/white-glove-installation/'>One-day installation →</a> • <a href='/supply-only-walk-in-tubs/'>DIY / supply-only →</a>",
31 installShower:"<b>How a roll in shower goes in:</b>\n1) Remove the tub; the drain usually moves, so the floor is opened up.\n2) Set the pan in a bed of mortar or structural foam, level in both directions with the built-in slope to the drain.\n3) Connect the 2\" drain and the Delta pressure-balance valve (keeps the water from scalding if someone flushes a toilet).\n4) Wall panels seal to the pan flange, 3 or 5 pieces depending on the kit.\n5) Fold-down seat and grab bars screw into the factory woo
31d backing, so they hold 250 lbs or more.\n6) Slide bar, handheld wand, then a water stopper or a low curb, then caulk.\n7) Cure overnight before the first shower.\nA zero-threshold pan wants a slab, or a recessed floor, or a small ramp. I'll tell you which one your house needs.\n<a href='/handicap-showers/'>Roll in showers →</a> • <a href='/white-glove-installation/'>Installation →</a>",
32 special:"<b>What's special about installing one?</b> Four things people don't expect:\n• <b>Doorways.</b> A 60\"x30\" tub needs about a 24\" door opening. We measure hallways too.\n• <b>Power.</b> Jets, heaters and heated seats each want their own GFCI circuit. Soaker tubs need none.\n• <b>Drain speed.</b> A good walk in tub drains in 2 to 6 minutes; you sit in it while it drains, so that matters. Ours have fast drains.\n• <b>Water heater.</b> A deep soaker holds 50 to 80 gallons, so a 40-gallon tank set at 120° may run short. We can add an inline heater to keep it warm.\nThat's the honest list. None of it is hard for a factory-certified crew.",
33 plumbing:"<b>Plumbing basics for a walk in tub:</b> ½\" supplies (¾\" for fast-fill), a 2\" drain with P-trap, a Roman-style faucet on the deck, and a 5' handheld wand. The overflow ties to the drain. The door seal is a compression gasket, and it's warrantied for life on Hydro Dimensions tubs.\n<b>For a shower:</b> 2\" drain, a Delta pressure-balance valve, and the mixing valve set to 120°F max. We ship the valve with the shower so your plumber has everything.\nDoing it yourself? Free phone support for you or your plumber, and the factory warranty stays intact when it's installed to the manual.",
34 diy:"You can absolutely buy supply-only and install it yourself or use your own contractor. Same factory warranty as long as it's installed to the manufacturer's guidelines, free technical support by phone, and Hydro Dimensions even covers DIY installs with a 1-year labor warranty.\nWant to buy showers online? Our sister store <a href='https://showers4less.com' target='_blank' rel='noopener'>Showers4Less.com</a> ships nationwide.\n<a href='/supply-only-walk-in-tubs/'>Supply-only details →</a>",
35 
36 cost:"Fair question, and I won't dodge it. Here's what the big TV brands won't tell you: many national companies run $25,000 to $30,000 for a fully installed walk in tub or roll in shower. We are nowhere near that.\nOur options run from shower pans under $2,000 up to fully installed walk in tubs starting around $15,000. What moves the number is the installation, not a sales pitch: which tub or shower, how customized, whether we widen a door, go through a wall, or run electrical for hydrotherapy or a heated seat. Most of the time we come in well under $20,000 fully installed with a premium tub or shower and the customizations you want.\n<a href='/walk-in-tub-cost/'>What drives the price →</a> • Or call "+PHONE+" for a written price on the first call.",
37 pans:"Shower pans and bases are my favorite thing to talk about, because that's where the money gets saved. We stock 56 sizes: 20 barrier free, 21 curbed, 15 code compliant, plus Ella acrylic and SMC bases, from 30 x 30 up to 78 x 48, most under $2,000 supply-only.\n<a href='/shower-pans/'>See every size with drawings →</a>",
38 code:"Code compliant means built to the ADA 2010 Standards or ANSI A117.1: 60 x 30 clear inside for a roll-in, 36 x 36 for a transfer shower, a threshold of half an inch or less, grab bars in solid backing, a seat at 17 to 19 inches. We supply cut sheets a VA reviewer or an inspector can sign off on.\n<a href='/code-compliant-showers/'>Code compliant showers, pans and tub-showers →</a>",
39 value:"Here's the thing about \"you get what you pay for\": it's true right up until you pay for the commercials. Our tubs are the same name brands, with a lifetime warranty on Hydro Dimensions and a 30-year warranty on Bestbath showers. What you don't pay for is a national ad budget. Want a real number? "+PHONE,
40 compare:"Comparing us to the big names? Good, you should. Ask them three things: Is the door seal warrantied for life? Is the install done in one day? Will they put a price in writing on the phone? We say yes to all three.\n<a href='/best-walk-in-tubs/'>Best walk in tubs compared →</a>",
41 financing:"We have financing with monthly payments for most credit situations, plus senior and veteran discounts. The VA HISA grant can help veterans too. One 
41call and we'll lay the options side by side.\n<a href='/get-financing/'>Financing →</a> • <a href='/va-hisa-grant-for-bathroom-modifications/'>VA HISA →</a>",
42 
43 howareyou:"I'm doing just fine, thank you for asking. Knees are a little creaky, but the coffee's hot and I've got good company. How's <i>your</i> day going?",
44 dayGood:"Now that's what I like to hear. Let's keep it going. Want a joke, a quick game, or should we talk bathrooms?",
45 dayBad:"I'm sorry to hear that. Some days are like that, and you don't have to explain. I'm right here if you just want to chat, or if a laugh would help, say <b>joke</b>. And if it's the bathroom that's got you worried, that part I can actually fix.",
46 lonely:"Well, you've got me, and I'm not going anywhere. My Wanda used to say a good conversation is worth a hot meal. Tell me about your day, or ask me anything. If you'd rather talk to a real person, the folks at "+PHONE+" are as friendly as I am.",
47 thanks:"You're very welcome. That's what I'm here for. Anything else, or shall I tell you a joke on the way out?",
48 name:"Arvin Wennstedt. The owner's grandpa, a farmer who spent 60-some years in the same farmhouse with my wife Wanda and never met a stranger. My grandson built this company so folks like Wanda and me could stay home, and he put me on the website to keep an eye on him.",
49 wanda:"Wanda was my wife for over 60 years. Sharp as a tack, better cook than me by a country mile. She's the reason I care about folks staying safe at home. We wanted to stay in our own house, and a safe bathroom is what made that possible.",
50 smile:"Let me try. Here's one: My doctor told me to start exercising. So I started running late. Did that do it? Say <b>another</b> for more.",
51 game:"I've got three: <b>tic tac toe</b>, <b>word scramble</b> (bathroom words, of course), and <b>trivia</b> from the good old days. Which one?",
52 dance:"Watch this. My hip's been replaced twice, but the rhythm's original. 🎵",
53 bored:"Bored? Not on my watch. Say <b>joke</b>, <b>game</b>, or <b>dance</b>. Or ask me something about your bathroom and I'll make it interesting.",
54 
55 showers4less:"For buying showers online, use our sister store: <a href='https://showers4less.com' target='_blank' rel='noopener'>Showers4Less.com</a>. Same Bestbath and Ella's Bubbles products, ships to your door. Want it installed instead? That's us, in one day.",
56 virtual:"Want a real estimate without anyone coming to your house? Snap a photo of your tub or shower and answer a few big-button questions. Takes about three minutes.\n<a href='/virtual-estimate/'>Get a virtual estimate →</a>",
57 brands:"We carry Hydro Dimensions (lifetime warranty, made in the USA), Ella's Bubbles (the most feature-rich tubs and showers), Meditub (American-made value), and Bestbath showers (30-year warranty, the ones hospitals use).\n<a href='/walk-in-tub-brands/'>Compare brands →</a>",
58 seat:"Every walk in tub has a built-in seat, usually 17\" high like a chair. Showers get a fold-down seat mounted into factory backing. Heated seats are an upgrade on most tubs, and in January you'll be glad you got it.",
59 jets:"Two kinds: <b>water jets</b> (6 to 10, a firm massage on back, calves and feet) and <b>air jets</b> (about 20, a gentle bubbling champagne feel). Many people get both. Water jets need a pump and a GFCI circuit; the pump is quiet, about like a dishwasher.",
60 drain:"A walk in tub drains before you open the door, so drain speed is comfort. Ours drain in roughly 2 to 6 minutes depending on the model and your plumbing. Fast drains and dual drains are available.",
61 door:"Two door styles: <b>inward-swing</b> (water pressure seals it tighter, best for most bathrooms) and <b>outward-swing</b> (wider opening, best for wheelchair transfer). The step-in is typically 3\" to 7\" depending on the tub.",
62 size:"Most walk in tubs are built to drop into a standard 60\" tub space: 60\"x30\", 60\"x32\", or 52\"x30\" for smaller rooms. Wider bariatric tubs run 36\" to 40\" wide. Tell me your space and I'll match a model.",
63 medicare:"Straight answer: Original Medicare almost never pays for a walk in tub. Some Medicare Advantage plans, Medicaid waivers, and the VA HISA grant do help. We'll tell you exactly which one applies to you on the first call so nobody wastes your time.\n<a href='/medicare-walk-in-tubs/'>Medicare & walk in tubs →</a>",
64 dealer:"Interested in selling our products? We back dealers with real marketing, not just a catalog.\n<a href='/become-a-dealer/'>Become a dealer →</a> • <a href='/careers/'>Installer careers →</a>",
65 review:"Folks have been kind. We're BBB A+ rated and we've installed in all 50 states. One 
65customer in West Virginia wrote a verified review about her Hydro Dimensions install that still makes my day.\n<a href='/about/'>About us →</a>",
66 accessibility:"See the wheelchair button at the bottom left of the screen? Tap it for bigger text, high contrast, and I'll even read the page out loud to you.",
67 callback:"Happy to. Type your phone number right here and a real person will call you, usually within the hour during business hours. No pressure, I promise.",
68 bye:"Take care now. Tell Wanda I said hello, if you happen to run into her. And call "+PHONE+" any time, 7 days a week."
69});
70
71Object.assign(A,{
72 canada:"Yes, we ship to Canada. Canada is supply-only (no installation crews north of the border), and freight is quoted per order. You can also arrange your own broker and pick up at a border terminal. Tell me the model and your province and we'll price the freight.\n<a href='/supply-only-walk-in-tubs/'>Supply-only details →</a> • Or call "+PHONE,
73 shipping:"Shipping's simple: we offer <b>FREE shipping to the lower 48</b> on many of our walk in tub and shower models (exceptions apply, mostly oversized crates and remote addresses). Alaska, Hawaii and Canada are quoted per order. Tubs ship crated on a pallet by freight; a liftgate delivery gets it to your driveway or garage.",
74 assistance:"Here's the honest rundown on money help:\n• <b>VA HISA grant</b>: up to $6,800 for service-connected, $2,000 otherwise. Use our HISA Estimate Planner to build the paperwork.\n• <b>Medicaid HCBS waivers</b>: many states fund bathroom safety mods. Call your state's Area Agency on Aging (eldercare.acl.gov).\n• <b>Medicare Advantage</b>: some plans include a home-safety allowance. Original Medicare does not.\n• <b>USDA Section 504</b> rural home repair grants for very-low-income seniors 62+.\n• <b>Our own financing</b> with monthly payments, plus senior and veteran discounts.\n<a href='/va-hisa-grant-for-bathroom-modifications/'>VA HISA planner →</a> • <a href='/medicare-walk-in-tubs/'>Medicare & walk in tubs →</a> • <a href='/get-financing/'>Financing →</a>",
75 estimate:"You've got three easy ways to get a real number, none of them involve a salesman in your living room:\n1) <b>Virtual Estimate</b>: snap a photo of your tub or shower, answer a few big-button questions, done in three minutes.\n2) <b>Call "+PHONE+"</b> and we'll give you a written range on the first call.\n3) Type your phone number here and a real person calls you back.\n<a href='/virtual-estimate/'>Get a virtual estimate →</a>",
76 homevisit:"We don't do in-home sales visits, and that's on purpose. The visit is how the big brands justify a $25,000 to $30,000 price. Instead you send photos and measurements (or we walk you through it on the phone), we quote in writing, and the only people who come to your house are the factory-certified installer
76s on install day. If you'd rather talk to a human first: "+PHONE,
77 va:"Veterans, listen up: the <b>VA HISA grant</b> pays up to $6,800 (service-connected) or $2,000 toward a walk in tub or roll in shower. We are not the VA and we can't approve anyone, but we build the itemized estimate and scope of work the VA reviewer wants to see. Start with the HISA Estimate Planner, it takes about four minutes.\n<a href='/va-hisa-grant-for-bathroom-modifications/'>VA HISA Estimate Planner →</a>",
78 whatsgoingon:"Not much, just keeping an eye on the place. Coffee's hot, the phones are ringing, and somebody's bathroom is about to get a whole lot safer. What's going on with <i>you</i>? If it's a tub or shower question, I'm your guy. If you just want to chat, that's fine too.",
79 commercial:"We do commercial work too: hospitals, universities, long-term care, nursing homes, assisted living, VA clinics and group homes. Bestbath is the shower hospitals spec (30-year warranty), and our transfer tubs and ADA showers come with the cut sheets your architect or inspector needs. Volume pricing on multi-unit orders.\n<a href='/commercial/'>Commercial walk in tubs & ADA showers →</a>",
80 warrantyQ:"Hydro Dimensions tubs carry a lifetime warranty on the shell, frame and door. Ella's Bubbles: lifetime limited on shell, frame, door and parts. Bestbath showers: 30 years. Meditub: lifetime on the shell and door seal. And Hydro Dimensions even gives a 1-year labor warranty on supply-only tubs you install yourself, as long as you follow the manual.\n<a href='/warranties/'>All warranties →</a>",
81 weight:"A walk in tub weighs 200 to 300 lbs empty. Full, with a bather, figure 800 to 1,000 lbs spread over the footprint. A normal wood-framed floor handles that; if you have a soft spot or an old crawlspace, we'll check the joists first.",
82 water:"Most walk in tubs use 45 to 85 gallons occupied. A 40-gallon water heater can fill a small so
82aker; for hydrotherapy tubs or bariatric sizes we recommend 50 gallons or more, or a tankless unit. Fast-fill faucets (up to 18 gallons a minute) cut the wait in half.",
83 cold:"Fair worry. You sit in the tub while it fills and while it drains. Three fixes: a fast-fill faucet, a heated seat and backrest, and our dual drains that empty the tub in a couple of minutes. Most folks say it's a non-issue once the seat is warm.",
84 timeline:"From order to install: quick-ship models in about 1 to 2 weeks, custom-configured hydrotherapy tubs 3 to 4 weeks, Bestbath showers 3 to 5 weeks. The install itself is usually one day.",
85 bariatric:"Bigger bathers, bigger tub. Our bariatric walk in tubs run 32 to 40 inches wide with 22 to 29 inch seats and doors up to 36 inches wide. The Ella TransferXXL (29\" seat) and Hydro Dimensions 3555 Plus are the two most popular.\n<a href='/bariatric-walk-in-tubs/'>Bariatric walk in tubs →</a>",
86 search:"Looking for a specific model or size? Tell me the number (like <b>3060</b> or <b>30x60</b>) or the brand and I'll pull it up. Or use the search bar at the top of the page."
87});
88
89var JOKES=[
90 "I told my wife she should embrace her mistakes. She hugged me.",
91 "My memory's not what it used to be. Also, my memory's not what it used to be.",
92 "I asked the doctor how long I'd live. He said, 'Ten.' I said, 'Ten what? Years? Months?' He said, 'Nine. Eight. Seven…'",
93 "Why did the scarecrow win an award? He was outstanding in his field. I'd know, I farmed next to him.",
94 "You know you're getting old when you bend down to tie your shoes and start looking around for anything else you can do while you're down there.",
95 "My grandkids asked what a rotary phone was. I told them it was a phone with a workout built in.",
96 "I don't need a walk in tub because I'm old. I need one because I've got 40 more years of bad decisions to make.",
97 "What did the bathtub say to the shower? 'Stop trying to drain me.'",
98 "Wanda used to say I had a photographic memory. I just never had it developed.",
99 "The good news about getting old: you can hide your own Easter eggs.",
100 "I finally got eight hours of sleep. Took me three nights, but I did it.",
101 "Back in my day we had two TV channels, and one of them was the weather. Still better than most of what's on now.",
102 "A roll in shower and a walk in tub walk into a bar. The bartender says, 'What'll it be?' The tub says, 'Make it a double. I'm a soaker.'",
103 "I'm at the age where my back goes out more than I do.",
104 "What do you call a farmer who's good at his job? Outstanding in his field. Yes, I'm using that one twice. I'm old.",
105 "Remember when a phone call cost a dime and a gallon of gas cost 30 cents? Now the phone's free and the gas'll cost you a kidney.",
106 "Wanda: 'Do you remember our anniversary?' Me: 'Of course. It was the day after you said yes.' I got away with that for 60 years.",
107 "Why don't seniors like jokes about stairs? They're always a step behind. Which is exactly why we sell walk in tubs."
108];
109
110var TRIVIA=[
111 ["What year did Neil Armstrong walk on the Moon?","1969"],
112 ["Which TV western starred Lorne Greene as Ben Cartwright?","Bonanza"],
113 ["Elvis Presley's home in Memphis is called what?","Graceland"],
114 ["What was the name of Andy Griffith's son on The Andy Griffith Show?","Opie"],
115 ["I Love Lucy starred Lucille Ball and which husband?","Desi Arnaz"],
116 ["What year did the Beatles first appear on The Ed Sullivan Show?","1964"],
117 ["Which president signed Medicare into law in 1965?","Lyndon Johnson"],
118 ["What was the first name of the Ed Sullivan Show's host?","Ed"],
119 ["Which car company built the 1957 Bel Air?","Chevrolet"],
120 ["Who sang 'Ring of Fire'?","Johnny Cash"],
121 ["Which game show host said 'Come on down!'?","Bob Barker"],
122 ["What year did the Korean War armistice get signed?","1953"]
123];
124
125var WORDS=["bathtub","shower","faucet","grab bar","soaker","drain","seat","threshold","wheelchair","towel","bubbles","plumber","gasket","warranty","hydrotherapy"];
126
127function routeOld(t){
128 if(/instruction|how (do|are|is) .*(install|put in|done)|steps|manual|rough.?in|how does install/.test(t))return A.instructions;
129 var mm=t.match(/\b(hd\s?)?(\d{4}[a-z]{0,3})\b/);
130 if(mm||/model|elite|royal|petite|deluxe|ultimate|capri|monaco|shak|big4|lounger|transfer|
130companion|tub4two|escape|zen|flow|meditub|ella|hydro dimensions|bestbath/.test(t)){var hits=MODELS.filter(function(x){var s=(x[0]+' '+x[1]).toLowerCase();return t.split(/\s+/).some(function(w){return w.length>2&&s.indexOf(w)>-1})});if(mm)hits=MODELS.filter(function(x){return x[1].toLowerCase().indexOf(mm[2])>-1}).concat(hits);if(hits.length){var seen={};hits=hits.filter(function(x){if(seen[x[2]])return false;seen[x[2]]=1;return true}).slice(0,6);return 'Here\'s what I found:\n'+hits.map(function(x){return '• <a href=\''+x[2]+'\'>'+x[0]+' '+x[1]+'</a> — '+x[3]+'\" x '+x[4]+'\"'+(x[5]?', seat '+x[5]+'\"':'')}).join('\n')+'\n<a href=\'/walk-in-tubs/\'>See all 60 with filters →</a>'}}
131 if(/sitemap|pages|where (is|can i find)|menu|navigate|directory/.test(t))return A.pages;
132 if(/build|design|configur|customize|jets? placement/.test(t))return A.builder;
133 if(/hour|open|email|address|located|where are you/.test(t))return A.hours;
134 for(var i=0;i<STATES.length;i++){var s=STATES[i];if(t.indexOf(s)>-1){var slug=s.replace(/ /g,'-');var url=s==='georgia'?'/locations/georgia-walk-in-tubs-roll-in-showers/':'/locations/'+slug+'-walk-in-tubs-roll-in-showers/';return "Yes — we serve "+s.replace(/\b\w/g,function(c){return c.toUpperCase()})+". Professional installation in many areas, and direct delivery everywhere.\n<a href='"+url+"'>Your "+s.replace(/\b\w/g,function(c){return c.toUpperCase()})+" page →</a>"}}
135 if(/bariatric|large|extra|xl|big|wide|deep|tall|heavy/.test(t))return A.bariatric;
136 if(/combo|with shower|shower combo/.test(t))return A.combo;
137 if(/warrant|guarantee|leak/.test(t))return A.warranty;
138 if(/cost|price|much|expensive|afford|cheap|budget/.test(t))return A.cost;
139 if(/\bva\b|veteran|hisa|medicare|medicaid|grant|insurance|cover/.test(t))return A.va;
140 if(/install|contractor|plumber|diy|near me|deliver|ship/.test(t))return A.install;
141 if(/roll|handicap|wheelchair|barrier|ada|shower/.test(t))return A.shower;
142 if(/tub|bath|soak|jet/.test(t))return A.tub;
143 if(/which|decide|vs|versus|difference|better|choose/.test(t))return A.decide;
144 if(/person|human|call|phone|talk|someone|agent/.test(t))return A.human;
145 if(/hi|hello|hey|howdy/.test(t))return A.hi;
146 return "I want to get that right for you rather than guess. The quickest answer is a real person: <a href='tel:+18887792284'>1-888-779-2284</a>. Or ask me about tubs, showers, cost, installation, or VA help.";
147}
148
149var CHIPS=[['Walk in tubs','tub'],['Roll in showers','shower'],['What does it cost?','cost'],['How is it installed?','installTub'],['Tub or shower?','decide'],['VA / Medicare help','va'],['Tell me a joke','joke'],['Play a game','game'],['Have someone call me','callback']];
150var ctx={turns:0,game:null,joke:0,gameState:null,lastQ:null,mood:null};
151function pick(a){return a[Math.floor(Math.random()*a.length)]}
152function route(t){
153 var raw=t; t=t.toLowerCase().trim(); ctx.turns++;
154 
155 if(ctx.game){var g=gameStep(t);if(g)return g}
156 
157 var ph=raw.replace(/[^\d]/g,'');
158 if(ph.length>=10&&ph.length<=11&&/\d{3}[\s.-]?\d{3}[\s.-]?\d{4}/.test(raw))return lead(raw);
159 
160 if(/^(hi|hello|hey|howdy|good (morning|afternoon|evening)|yo|hiya|greetings|hello there)\b/.test(t)&&t.length<25)return ctx.turns>1?A.greetShort:A.hi;
161 
162 if(/what('?s| is) (going on|up|new|happening)|whats going on|whats up|sup\b|how('?s| is) (business|life|the farm)/.test(t))return A.whatsgoingon;
163 if(/canad|ontario|quebec|alberta|british columbia|manitoba|saskatchewan|nova scotia|new brunswick|newfoundland|toronto|vancouver|calgary|montreal|winnipeg|edmonton|ottawa|province/.test(t))return A.canada;
164 if(/free ship|shipping|deliver|freight|ship to|do you ship|how (much|long).*ship|crate|liftgate|lift gate|alaska|hawaii/.test(t))return A.shipping;
165 if(/\b(va|veteran|vet|hisa|service.?connected|military|disabled vet|dav)\b/.test(t))return A.va;
166 if(/assist|grant|help pay|pay for|program|subsid|free tub|free walk|low income|waiver|aid\b|area agency|hcbs|usda|rebate|tax credit|deduct/.test(t))return A.assistance;
167 if(/estimate|quote|how much.*(my|this)|price for me|price me|ballpark|written price|get a number|numbers/.test(t))return A.estimate;
168 if(/come (out|over|to my|see)|home visit|in.?home|visit my|send someone|look at my bathroom|salesman|sales (guy|rep|person)|consultation|appointment/.test(t))return A.homevisit;
169 if(/hospital|nursing|long.?term care|assisted living|university|college|facility|facilities|commercial|group home|rehab|clinic|units?\b/.test(t))return A.commercial;
170 if(/warrant|guarantee|how long.*last|lifetime/.test(t))return A.warrantyQ;
171 if(/weigh|heavy|floor|joist|support the/.test(t))return A.weight;
172 if(/water heater|hot water|run out|gallon|fill time|how long to fill/.test(t))return A.water;
173 if(/cold|chilly|freez|sit there|wait for it|while it (fills|drains)/.test(t))return A.cold;
174 if(/how (long|soon)|lead time|when can|delivery time|how fast|timeline|weeks/.test(t))return A.timeline;
175 if(/bariatric|big (person|guy|gal|man|woman)|large (person|body)|plus.?size|heavy.?set|obese|wide seat|extra wide|xxl|3555/.test(t))return A.bariatric;
176 if(/\b(find|looking for|search|where is|show me|do you have|do you sell|do you carry)\b/.test(t)&&!/\d{3,4}|\d+ ?x ?\d+|model|elite|royal|petite|deluxe|ultimate/.test(t))return A.
176search;
177
178 if(/how('?s| is| are) (you|it going|your day)|how do you do/.test(t))return A.howareyou;
179 if(/(good|great|fine|wonderful|okay|ok|not bad|pretty good)\b/.test(t)&&t.length<40&&ctx.lastQ==='day')return A.dayGood;
180 if(/(bad|rough|terrible|awful|tired|sad|hard|lousy|not good|not great)\b/.test(t)&&t.length<60)return A.dayBad;
181 if(/lonely|alone|no one|nobody|miss (my|her|him)|passed away|widow/.test(t))return A.lonely;
182 if(/joke|funny|laugh|another|one more|more jokes/.test(t))return joke();
183 if(/make me smile|cheer me up|smile/.test(t))return A.smile;
184 if(/\bgame\b|play|tic ?tac|scramble|trivia|quiz/.test(t))return gameStart(t);
185 if(/dance|boogie|jig|moves/.test(t))return doDance();
186 if(/bored|boring/.test(t))return A.bored;
187 if(/thank|thanks|appreciate/.test(t))return A.thanks;
188 if(/your name|who are you|what are you/.test(t))return A.name;
189 if(/wanda|your wife/.test(t))return A.wanda;
190 if(/\b(bye|goodbye|good night|see you|later)\b/.test(t))return A.bye;
191 if(/\b(ada|code compliant|ansi|inspector|commercial|multifamily|apartment)\b/.test(t))return A.code;
192 if(/\b(pan|pans|base|bases)\b/.test(t))return A.pans;
193 
194 if(/(install|put in|done|hook up|set up|steps).*(tub|bath)|tub.*(install|put in|instruction)|instructions? (for|on) (a |the )?tub/.test(t))return A.installTub;
195 if(/(install|put in|done|hook up|set up|steps).*(shower)|shower.*(install|put in|instruction)/.test(t))return A.installShower;
196 if(/instruction|how (do|are|is|does) .*(install|put in|done)|steps|manual|rough.?in|how does install|how (do|would) you install|how to install/.test(t))return A.instructions;
197 if(/special|need anything|what do i need|require|prep|prepare|before install/.test(t))return A.special;
198 if(/plumb|pipe|supply|drain line|p.?trap|valve|water heater|gallon/.test(t))return A.plumbing;
199 if(/\bdiy\b|myself|my own|own contractor|supply.?only|buy online|online/.test(t))return A.diy;
200 if(/showers4less|showers 4 less|sister/.test(t))return A.showers4less;
201 if(/virtual|photo|picture|estimate/.test(t))return A.virtual;
202 if(/electric|gfci|circuit|outlet|breaker|amp/.test(t))return A.special;
203 if(/seat|sit/.test(t)&&!/wheelchair/.test(t))return A.seat;
204 if(/jet|massage|bubble|therapy|air/.test(t))return A.jets;
205 if(/drain|empty|how long/.test(t))return A.drain;
206 if(/door|swing|step.?in|threshold height/.test(t)&&!/shower/.test(t))return A.door;
207 if(/size|dimension|fit|measure|wide|long|inch|space/.test(t))return A.size;
208 
209 if(/rip.?off|too much|overpriced|scam|30k|30,000|safe step|kohler|american standard|jacuzzi|tv (ad|commercial)/.test(t))return A.compare;
210 if(/worth|quality|cheap(er)?|get what you pay/.test(t))return A.value;
211 if(/financ|payment|monthly|credit|afford/.test(t))return A.financing;
212 if(/medicare|medicaid|insurance|cover/.test(t))return A.medicare;
213 if(/dealer|reseller|career|job|hiring|installer job/.test(t))return A.dealer;
214 if(/review|rating|bbb|trust|legit|reputable/.test(t))return A.review;
215 if(/brand|hydro|ella|meditub|bestbath|who makes/.test(t)&&!/model|\d{4}/.test(t))return A.brands;
216 if(/bigger text|can't see|cant see|read (it )?to me|contrast|accessib/.test(t))return A.accessibility;
217 if(/call me|callback|call back|have someone|reach me|contact me/.test(t)){ctx.lastQ='phone';return A.callback}
218 return routeOld(t);
219}
220
221var jokeOrder=JOKES.slice().sort(function(){return Math.random()-.5});
222function joke(){var j=jokeOrder[ctx.joke%jokeOrder.length];ctx.joke++;return j+"\n<small>Say <b>another</b> for one more, or <b>game</b> to play something.</small>"}
223
224function gameStart(t){
225 if(/tic|tac|toe|x.?o/.test(t)){ctx.game='ttt';ctx.gameState=[,,,,,,,,];return "Tic tac toe it is. You're <b>X</b>, I'm <b>O</b>. Tap a square."+tttBoard()}
226 if(/scramble|word/.test(t)){ctx.game='scr';var w=pick(WORDS);ctx.gameState=w;var s=w.replace(/ /g,'').split('').sort(function(){return Math.random()-.5}).join('');while(s===w.replace(/ /g,''))s=s.split('').sort(function(){return Math.random()-.5}).join('');return "Unscramble this bathroom word: <b style='letter-spacing:3px'>"+s.toUpperCase()+"</b>\nType your answer, or say <b>hint</b> or <b>quit</b>."}
227 if(/trivia|quiz/.test(t)){ctx.game='trv';var q=pick(TRIVIA);ctx.gameState=q;return "Trivia from the good old days: <b>"+q[0]+"</b>\nType your answer, or <b>quit</b>."}
228 return A.game;
229}
230function gameStep(t){
231 if(/quit|stop|enough|done|exit/.test(t)){ctx.game=null;return "Good game. Now, anything I can help you with on the bathroom side?"}
232 if(ctx.game==='scr'){var w=ctx.gameState;if(/hint/.test(t))return "It starts with <b>"+w[0].toUpperCase()+"</b> and it's "+w.replace(/ /g,'').length+" letters.";
233  if(t.replace(/ /g,'')===w.replace(/ /g,'')){ctx.game=null;return "That's it: <b>"+w.toUpperCase()+"</b>. Sharp as a tack. Say <b>game</b> for another round."}
234  return "Not quite. Try again, or say <b>hint</b>."}
235 if(ctx.game==='trv'){var q=ctx.gameState;if(t.indexOf(q[1].toLowerCase())>-1||q[1].toLowerCase().indexOf(t)>-1&&t.length>3){ctx.game=null;return "Correct! <b>"+q[1]+"</b>. You remember it like it was yesterday. Say <b>trivia</b> for another."}
236  ctx.game=null;return "Close, but it was <b>"+q[1]+"</b>. Say <b>trivia</b> to try another one."}
237 if(ctx.game==='ttt'){var n=parseInt(t,10);if(!(n>=1&&n<=9))return null;var b=ctx.gameState;if(b[n-1])return "That square's taken. Pick another."+tttBoard();
238  b[n-1]='X';var w=tttWin(b);if(w)return tttEnd(w);
239  var m=tttMove(b);b[m]='O';w=tttWin(b);if(w)return tttEnd(w);return "Your move."+tttBoard()}
240 return null;
241}
242function tttBoard(){var b=ctx.gameState;return "\n<span class='ttt'>"+b.map(function(c,i){return c?"<b>"+c+"</b>":"<button type='button' data-t='"+(i+1)+"'>"+(i+1)+"</button>"}).join('')+"</span>"}
243function tttWin(b){var L=[[0,1,2],[3,4,5],[6,7,8],[0,3,6],[1,4,7],[2,5,8],[0,4,8],[2,4,6]];for(var i=0;i<L.length;i++){var l=L[i];if(b[l[0]]&&b[l[0]]===b[l[1]]&&b[l[0]]===b[l[2]])return b[l[0]]}return b.every(Boolean)?'tie':null}
244function tttMove(b){function t(p){for(var i=0;i<9;i++){if(!b[i]){b[i]=p;var w=tttWin(b)===p;b[i]=undefined;if(w)return i}}return -1}var m=t('O');if(m<0)m=t('X');if(m<0&&!b[4])m=4;if(m<0){var c=[0,2,6,8].filter(function(i){return !b[i]});m=c.length?pick(c):b.findIndex(function(x){return !x})}return m}
245function tttEnd(w){ctx.game=null;var b=tttBoard();return (w==='X'?"Well, I'll be. You beat me fair and square. 🎉":w==='O'?"Ha! Got you that time. Sixty years of checkers with Wanda paid off.":"A tie. Nobody loses, everybody soaks.")+b+"\nSay <b>tic tac toe</b> for a rematch."}
246
247function doDance(){var g=document.getElementById('arvinGuy');if(g){g.classList.add('dance');setTimeout(function(){g.classList.remove('dance')},4500)}var W=document.getElementById('arvin');if(W.classList.contains('open')&&window.innerWidth<700){W.classList.add('peek');setTimeout(function(){W.classList.remove('peek')},4600)}return A.dance}
248
249function lead(raw){var box=document.querySelector('.qf'),email=box?atob(box.dataset.a)+String.fromCharCode(64)+atob(box.dataset.b):'';var d={phone:raw,_subject:'Arvin chat callback request — Aging Safely Baths',_template:'table',_captcha:'false',page:location.href,note:'Visitor asked Arvin for a callback'};
250 if(email){fetch('https://formsubmit.co/ajax/'+email,{method:'POST',headers:{'Content-Type':'application/json',Accept:'application/json'},body:JSON.stringify(d)}).catch(function(){})}
251 ctx.lastQ=null;return "Got it: <b>"+raw+"</b>. A real person will call you, usually within the hour during business hours (7am–8pm Mountain, 7 days). If you'd rather not wait, "+PHONE+" picks up right now."}
252
253(function(){
254
255var ARVIN_HTML="<div id=\"arvin\">\n <button type=\"button\" id=\"arvinTag\" aria-label=\"Open chat with Arvin\"><span class=\"av\"><svg viewBox=\"36 6 54 60\"><path d=\"M42 34q0-12 21-12q21 0 21 12v14q0 14-12 18q-9 3-18 0q-12-4-12-18z\" fill=\"#e0aa84\"/><circle cx=\"54\" cy=\"45\" r=\"6.5\" fill=\"none\" stroke=\"#6b5a3a\" stroke-width=\"1.8\"/><circle cx=\"72\" cy=\"45\" r=\"6.5\" fill=\"none\" stroke=\"#6b5a3a\" stroke-width=\"1.8\"/><path d=\"M60.5 45h5\" stroke=\"#6b5a3a\" stroke-width=\"1.8\"/><circle class=\"eye\" cx=\"54\" cy=\"45\" r=\"2\" fill=\"#1f2937\"/><circle class=\"eye\" cx=\"72\" cy=\"45\" r=\"2\" fill=\"#1f2937\"/><path d=\"M52 58q11 8 22 0\" stroke=\"#9d5f43\" stroke-width=\"2.4\" fill=\"none\" stroke-linecap=\"round\"/><defs><linearGradient id=\"gBt\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\"0\" stop-color=\"#f0f2f4\"/><stop offset=\".5\" stop-color=\"#c3c9cf\"/><stop offset=\"1\" stop-color=\"#8b939b\"/></linearGradient><linearGradient id=\"gSt\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\"><stop offset=\"0\" stop-color=\"#c9ced4\"/>
255<stop offset=\"1\" stop-color=\"#8a929a\"/></linearGradient></defs><path d=\"M42 34 q-3 6 -1 16 q1 4 5 4 l2 -22z\" fill=\"url(#gSt)\"/><path d=\"M84 34 q3 6 1 16 q-1 4 -5 4 l-2 -22z\" fill=\"url(#gSt)\"/><path d=\"M43.5 37 q-1 6 0 12 M82.5 37 q1 6 0 12\" stroke=\"#e6e9ec\" stroke-width=\"1.2\" fill=\"none\" stroke-linecap=\"round\" opacity=\".8\"/><path d=\"M46 36 q-1 6 0 12 M80 36 q1 6 0 12\" stroke=\"#6f777f\" stroke-width=\"1\" fill=\"none\" stroke-linecap=\"round\" opacity=\".6\"/><path d=\"M42 34 q-3 -10 4 -13 q4 -12 19 -12 q17 0 20 11 q6 3 3 13 q-4 -7 -13 -8 q-13 -2 -23 4 q-5 3 -10 5z\" fill=\"url(#gBt)\"/><path d=\"M46 22 q8 -11 19 -11 q13 0 18 9\" stroke=\"#f5f6f7\" stroke-width=\"3\" fill=\"none\" stroke-linecap=\"round\"/><path d=\"M47 27 q12 -9 28 -6\" stroke=\"#ffffff\" stroke-width=\"1.3\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.85\"/><path d=\"M45 31 q12 -8 30 -5\" stroke=\"#ffffff\" stroke-width=\"1.3\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.85\"/><path d=\"M50 18 q8 -6 20 -4\" stroke=\"#ffffff\" stroke-width=\"1.3\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.85\"/><path d=\"M44 34 q9 -6 22 -5\" stroke=\"#ffffff\" stroke-width=\"1.3\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.85\"/><path d=\"M49 29 q12 -7 27 -5\" stroke=\"#737b83\" stroke-width=\"1\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.55\"/><path d=\"M48 24 q10 -8 22 -6\" stroke=\"#737b83\" stroke-width=\"1\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.55\"/><path d=\"M55 16 q7 -3 15 -1\" stroke=\"#737b83\" stroke-width=\"1\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.55\"/></svg></span><span class=\"lbl\">Ask Arvin</span></button>\n <div class=\"stage\">\n  <button type=\"button\" id=\"arvinMini\" aria-label=\"Hide Arvin\">&times;</button>\n  <div class=\"guy\" id=\"arvinGuy\" style=\"--p:1\" role=\"button\" tabindex=\"0\" aria-label=\"Open chat with Arvin, our site guide\">\n   <svg viewBox=\"0 0 130 175\" aria-hidden=\"true\">\n    <!-- legs: denim overalls, work boots -->\n    <g class=\"legL\"><path d=\"M45 112 h17 l-1 42 h-16z\" fill=\"#4a6fa5\"/><path d=\"M42 153 h22 q3 0 3 3 v3 h-27 z\" fill=\"#4a2f1b\"/></g>\n    <g class=\"legR\"><path d=\"M64 112 h17 l1 42 h-16z\" fill=\"#3f6090\"/><path d=\"M63 153 h22 q3 0 3 3 v3 h-27 z\" fill=\"#4a2f1b\"/></g>\n    <!-- torso: plaid work shirt, broad shoulders -->\n    <path d=\"M34 68 q29 -14 58 0 l4 46 h-66z\" fill=\"#b94a34\"/>\n    <path d=\"M42 68 v46 M52 68 v46 M74 68 v46 M84 68 v46 M36 82 h54 M36 98 h54\" stroke=\"#8f3524\" stroke-width=\"1.6\" opacity=\".55\"/>\n    <!-- overalls bib + suspenders -->\n    <path d=\"M48 86 h30 v28 h-34z\" fill=\"#4a6fa5\"/><rect x=\"54\" y=\"92\" width=\"18\" height=\"12\" rx=\"2\" fill=\"#3f6090\"/>\n    <path d=\"M50 86 l-3 -20\" stroke=\"#4a6fa5\" stroke-width=\"6\" stroke-linecap=\"round\"/><path d=\"M76 86 l3 -20\" stroke=\"#4a6fa5\" stroke-width=\"6\" stroke-linecap=\"round\"/>\n    <circle cx=\"50\" cy=\"87\" r=\"2.8\" fill=\"#d8b04a\"/><circle cx=\"76\" cy=\"87\" r=\"2.8\" fill=\"#d8b04a\"/>\n    <!-- left arm, thumb hooked in strap -->\n    <path d=\"M36 72 q-12 18 -4 34\" stroke=\"#b94a34\" stroke-width=\"11\" fill=\"none\" stroke-linecap=\"round\"/><path d=\"M33 105 q-3 6 3 8 q6 0 6 -6 q0 -5 -4 -6z\" fill=\"#e0aa84\"/>\n    <!-- CANE: crook handle at hand height, planted on the ground -->\n    <g class=\"cane\"><path d=\"M100 100 q0 -9 -8 -9 q-7 0 -7 7\" fill=\"none\" stroke=\"#5a3418\" stroke-width=\"4.5\" stroke-linecap=\"round\"/><path d=\"M100 100 l6 56\" stroke=\"#5a3418\" stroke-width=\"4.5\" stroke-linecap=\"round\"/><path d=\"M104 156 h5\" stroke=\"#2b2b2b\" stroke-width=\"5\" stroke-linecap=\"round\"/></g>\n    <!-- right arm down to the cane, hand wrapped over the crook -->\n    <g class=\"arm\"><path d=\"M90 72 q12 10 10 26\" stroke=\"#b94a34\" stroke-width=\"11\" fill=\"none\" stroke-linecap=\"round\"/><path d=\"M93 96 q9 -3 12 4 q1 6 -5 8 q-8 1 -9 -5 q-1 -5 2 -7z\" fill=\"#e0aa84\"/><path d=\"M96 101 h9\" stroke=\"#c9906a\" stroke-width=\"1.2\"/></g>\n    <!-- neck -->\n    <rect x=\"56\" y=\"56\" width=\"14\" height=\"12\" fill=\"#e0aa84\"/>\n    <!-- head: squarer jaw, strong brow -->\n    <path d=\"M42 34 q0 -12 21 -12 q21 0 21 12 v14 q0 14 -12 18 q-9 3 -18 0 q-12 -4 -12 -18z\" fill=\"#e0aa84\"/>\n    <circle cx=\"41\" cy=\"46\" r=\"4\" fill=\"#d19a74\"/><circle cx=\"85\" cy=\"46\" r=\"4\" fill=\"#d19a74\"/>\n    <path d=\"M48 38 q6 -3 11 -1 M67 37 q5 -2 11 1\" stroke=\"#8a8f94\" stroke-width=\"2.6\" fill=\"none\" stroke-linecap=\"round\"/>\n    <!-- wire glasses -->\n    <circle cx=\"54\" cy=\"45\" r=\"6.5\" fill=\"none\" stroke=\"#6b5a3a\" stroke-width=\"1.8\"/><circle cx=\"72\" cy=\"45\" r=\"6.5\" fill=\"none\" stroke=\"#6b5a3a\" stroke-width=\"1.8\"/><path d=\"M60.5 45h5 M47.5 44l-5 0 M78.5 44l5 0\" stroke=\"#6b5a3a\" stroke-width=\"1.8\"/>\n    <circle class=\"eye\" cx=\"54\" cy=\"45\" r=\"2\" fill=\"#1f2937\"/><circle class=\"eye\" cx=\"72\" cy=\"45\" r=\"2\" fill=\"#1f2937\"/>\n    <!-- nose, smile lines, closed-mouth grin -->\n    <path d=\"M63 47 q-3 6 1 8\" stroke=\"#c98d68\" stroke-width=\"1.8\" fill=\"none\" stroke-linecap=\"round\"/>\n    <path d=\"M52 58 q11 8 22 0\" stroke=\"#9d5f43\" stroke-width=\"2.4\" fill=\"none\" stroke-linecap=\"round\"/>\n    <defs><linearGradient id=\"gBg\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\"0\" stop-color=\"#f0f2f4\"/><stop offset=\".5\" stop-color=\"#c3c9cf\"/><stop offset=\"1\" stop-color=\"#8b939b\"/></linearGradient><linearGradient id=\"gSg\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\"><stop offset=\"0\" stop-color=\"#c9ced4\"/>
255<stop offset=\"1\" stop-color=\"#8a929a\"/></linearGradient></defs><path d=\"M42 34 q-3 6 -1 16 q1 4 5 4 l2 -22z\" fill=\"url(#gSg)\"/><path d=\"M84 34 q3 6 1 16 q-1 4 -5 4 l-2 -22z\" fill=\"url(#gSg)\"/><path d=\"M43.5 37 q-1 6 0 12 M82.5 37 q1 6 0 12\" stroke=\"#e6e9ec\" stroke-width=\"1.2\" fill=\"none\" stroke-linecap=\"round\" opacity=\".8\"/><path d=\"M46 36 q-1 6 0 12 M80 36 q1 6 0 12\" stroke=\"#6f777f\" stroke-width=\"1\" fill=\"none\" stroke-linecap=\"round\" opacity=\".6\"/><path d=\"M42 34 q-3 -10 4 -13 q4 -12 19 -12 q17 0 20 11 q6 3 3 13 q-4 -7 -13 -8 q-13 -2 -23 4 q-5 3 -10 5z\" fill=\"url(#gBg)\"/><path d=\"M46 22 q8 -11 19 -11 q13 0 18 9\" stroke=\"#f5f6f7\" stroke-width=\"3\" fill=\"none\" stroke-linecap=\"round\"/><path d=\"M47 27 q12 -9 28 -6\" stroke=\"#ffffff\" stroke-width=\"1.3\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.85\"/><path d=\"M45 31 q12 -8 30 -5\" stroke=\"#ffffff\" stroke-width=\"1.3\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.85\"/><path d=\"M50 18 q8 -6 20 -4\" stroke=\"#ffffff\" stroke-width=\"1.3\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.85\"/><path d=\"M44 34 q9 -6 22 -5\" stroke=\"#ffffff\" stroke-width=\"1.3\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.85\"/><path d=\"M49 29 q12 -7 27 -5\" stroke=\"#737b83\" stroke-width=\"1\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.55\"/><path d=\"M48 24 q10 -8 22 -6\" stroke=\"#737b83\" stroke-width=\"1\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.55\"/><path d=\"M55 16 q7 -3 15 -1\" stroke=\"#737b83\" stroke-width=\"1\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.55\"/>\n   </svg>\n  </div>\n  <div class=\"bubble\" id=\"arvinBubble\"><b>Hi, I'm Arvin, the owner's grandpa.</b> Family business, family advice. You know, you don't always have to pay more to get more. We carry one of the largest selections of top-quality, name-brand walk in tubs and roll in showers anywhere, and some of the best prices you'll find. What can I help you find?</div>\n </div>\n <div class=\"panel\" role=\"dialog\" aria-label=\"Chat with Arvin\">\n  <div class=\"hd\"><div class=\"av\"><svg viewBox=\"36 6 54 60\"><path d=\"M42 34q0-12 21-12q21 0 21 12v14q0 14-12 18q-9 3-18 0q-12-4-12-18z\" fill=\"#e0aa84\"/><circle cx=\"54\" cy=\"45\" r=\"6.5\" fill=\"none\" stroke=\"#6b5a3a\" stroke-width=\"1.8\"/><circle cx=\"72\" cy=\"45\" r=\"6.5\" fill=\"none\" stroke=\"#6b5a3a\" stroke-width=\"1.8\"/><path d=\"M60.5 45h5\" stroke=\"#6b5a3a\" stroke-width=\"1.8\"/><circle class=\"eye\" cx=\"54\" cy=\"45\" r=\"2\" fill=\"#1f2937\"/><circle class=\"eye\" cx=\"72\" cy=\"45\" r=\"2\" fill=\"#1f2937\"/><path d=\"M52 58q11 8 22 0\" stroke=\"#9d5f43\" stroke-width=\"2.4\" fill=\"none\" stroke-linecap=\"round\"/><defs><linearGradient id=\"gBh\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\"0\" stop-color=\"#f0f2f4\"/><stop offset=\".5\" stop-color=\"#c3c9cf\"/><stop offset=\"1\" stop-color=\"#8b939b\"/></linearGradient><linearGradient id=\"gSh\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\"><stop offset=\"0\" stop-color=\"#c9ced4\"/><stop offset=\"1\" stop-color=\"#8a929a\"/></linearGradient></defs><path d=\"M42 34 q-3 6 -1 16 q1 4 5 4 l2 -22z\" fill=\"url(#gSh)\"/><path d=\"M84 34 q3 6 1 16 q-1 4 -5 4 l-2 -22z\" fill=\"url(#gSh)\"/><path d=\"M43.5 37 q-1 6 0 12 M82.5 37 q1 6 0 12\" stroke=\"#e6e9ec\" stroke-width=\"1.2\" fill=\"none\" stroke-linecap=\"round\" opacity=\".8\"/><path d=\"M46 36 q-1 6 0 12 M80 36 q1 6 0 12\" stroke=\"#6f777f\" stroke-width=\"1\" fill=\"none\" stroke-linecap=\"round\" opacity=\".6\"/><path d=\"M42 34 q-3 -10 4 -13 q4 -12 19 -12 q17 0 20 11 q6 3 3 13 q-4 -7 -13 -8 q-13 -2 -23 4 q-5 3 -10 5z\" fill=\"url(#gBh)\"/><path d=\"M46 22 q8 -11 19 -11 q13 0 18 9\" stroke=\"#f5f6f7\" stroke-width=\"3\" fill=\"none\" stroke-linecap=\"round\"/><path d=\"M47 27 q12 -9 28 -6\" stroke=\"#ffffff\" stroke-width=\"1.3\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.85\"/><path d=\"M45 31 q12 -8 30 -5\" stroke=\"#ffffff\" stroke-width=\"1.3\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.85\"/><path d=\"M50 18 q8 -6 20 -4\" stroke=\"#ffffff\" stroke-width=\"1.3\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.85\"/><path d=\"M44 34 q9 -6 22 -5\" stroke=\"#ffffff\" stroke-width=\"1.3\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.85\"/><path d=\"M49 29 q12 -7 27 -5\" stroke=\"#737b83\" stroke-width=\"1\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.55\"/><path d=\"M48 24 q10 -8 22 -6\" stroke=\"#737b83\" stroke-width=\"1\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.55\"/><path d=\"M55 16 q7 -3 15 -1\" stroke=\"#737b83\" stroke-width=\"1\" fill=\"none\" stroke-linecap=\"round\" opacity=\"0.55\"/></svg></div><div><b>Arvin</b><small>Your bathroom safety guide \u00b7 Aging Safely Baths</small></div><button type=\"button\" id=\"arvinClose\" aria-label=\"Close chat\">\u00d7</button></div>\n  <div class=\"log\" id=\"arvinLog\"></div>\n  <div class=\"chips\" id=\"arvinChips\"></div>\n  <div class=\"cta\"><a class=\"c\" href=\"tel:+18887792284\">Call 1-888-779-2284</a><a class=\"q\" href=\"/residential-handicap-bathing-price-quote/\">Free Quote</a></div>\n  <form id=\"arvinForm\"><input id=\"arvinIn\" placeholder=\"Ask me anything\u2026\" autocomplete=\"off\" aria-label=\"Your question\"><button type=\"submit\">Send</button></form>\n </div>\n</div>";
256(function(){if(!document.getElementById('arvin')){var w=document.createElement('div');w.innerHTML=ARVIN_HTML;document.body.appendChild(w.firstElementChild)}})();
257var d=document,W=d.getElementById('arvin'),guy=d.getElementById('arvinGuy'),bub=d.getElementById('arvinBubble'),log=d.getElementById('arvinLog'),chips=d.getElementById('arvinChips'),form=d.getElementById('arvinForm'),inp=d.getElementById('arvinIn'),mini=d.getElementById('arvinMini'),tag=d.getElementById('arvinTag');
258if(!W)return;
259bub.innerHTML=GREET;bub.classList.add('now');
260function add(txt,who){var m=d.createElement('div');m.className='m '+who;m.innerHTML=txt;log.appendChild(m);log.scrollTop=log.scrollHeight;
260m.querySelectorAll('[data-t]').forEach(function(b){b.onclick=function(){send(b.dataset.t)}})}
261function renderChips(){chips.innerHTML='';CHIPS.forEach(function(c){var b=d.createElement('button');b.type='button';b.textContent=c[0];b.onclick=function(){send(c[0],c[1])};chips.appendChild(b)})}
262function reply(html){var typing=d.createElement('div');typing.className='m a typing';typing.textContent='…';log.appendChild(typing);log.scrollTop=log.scrollHeight;setTimeout(function(){typing.remove();add(html,'a');if(/how's <i>your<\/i> day/.test(html))ctx.lastQ='day'},380+Math.min(900,html.length*2))}
263function send(text,intent){add(text.replace(/</g,'&lt;'),'u');var r;if(intent==='joke')r=joke();else if(intent==='game')r=A.game;else if(intent==='callback'){ctx.lastQ='phone';r=A.callback}else if(intent&&A[intent])r=A[intent];else r=route(text);reply(r);
264 if(ctx.turns===4&&!ctx.offered){ctx.offered=1;setTimeout(function(){add("By the way, if it's easier, type your phone number and a real person will call you. No pressure, that's my rule.",'a')},2600)}}
265function open(){W.classList.add('open');W.classList.remove('mini');if(!log.children.length){add(A.hi,'a');renderChips()}setTimeout(function(){inp.focus()},50)}
266function close(){W.classList.remove('open')}
267function minimize(){W.classList.remove('open');W.classList.add('mini');try{sessionStorage.setItem('arvinMini','1')}catch(e){}}
268guy.onclick=open;guy.onkeydown=function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();open()}};bub.onclick=open;
269d.getElementById('arvinClose').onclick=close;
270function store(k,v){try{if(v===null)localStorage.removeItem(k);else localStorage.setItem(k,v)}catch(e){}}
271function stored(k){try{return localStorage.getItem(k)}catch(e){return null}}
272mini.onclick=function(e){e.stopPropagation();W.classList.remove('open');W.classList.add('mini');store('arvinMini','1')};
273tag.onclick=function(){W.classList.remove('mini');store('arvinMini',null);open()};
274if(stored('arvinMini'))W.classList.add('mini');else{try{if(sessionStorage.getItem('arvinSeen'))W.classList.add('mini');sessionStorage.setItem('arvinSeen','1')}catch(e){}}
275form.onsubmit=function(e){e.preventDefault();var t=inp.value.trim();if(!t)return;inp.value='';send(t)};
276d.addEventListener('keydown',function(e){if(e.key==='Escape'&&W.classList.contains('open'))close()});
277
278var RM=window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches;
279function visible(){return !W.classList.contains('open')&&!W.classList.contains('mini')&&!d.hidden}
280function blink(){if(!RM&&visible()){guy.classList.add('blink');setTimeout(function(){guy.classList.remove('blink')},180)}setTimeout(blink,3500+Math.random()*4000)}
281setTimeout(blink,5000);
282var GEST=['wave','nod','tap'],gi=0;
283function gesture(){if(!RM&&visible()){var g=GEST[gi++%GEST.length];guy.classList.add(g);setTimeout(function(){guy.classList.remove(g)},2200)}setTimeout(gesture,26000+Math.random()*20000)}
284setTimeout(gesture,14000);
285var TIPS=["<b>Free shipping</b> to the lower 48 on many tub and shower models. Exceptions apply, but it's a nice surprise.","<b>Veteran?</b> Ask me about the VA HISA grant. I'll point you to the estimate planner.","No salesman in your living room, ever. Photos in, written price out.","<b>Canada?</b> We ship there too, supply-only, freight quoted."];
286var tipN=0;function tip(){if(visible()&&tipN<TIPS.length){bub.innerHTML=TIPS[tipN++];bub.classList.remove('now');void bub.offsetWidth;bub.classList.add('now')}if(tipN<TIPS.length)setTimeout(tip,75000)}
287setTimeout(tip,45000);
288})();
289
290})();

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.