www.culliganwatertreatment.com
Open in
urlscan Pro
174.138.117.104
Public Scan
Submitted URL: https://culliganwatertreatment.com/
Effective URL: https://www.culliganwatertreatment.com/
Submission: On March 24 via api from US — Scanned from US
Effective URL: https://www.culliganwatertreatment.com/
Submission: On March 24 via api from US — Scanned from US
Form analysis
3 forms found in the DOMName: dealer-locator — GET /dealer-locator
<form data-component="flow.dealer-locator" name="dealer-locator" method="get" action="/dealer-locator" class="flex flex-nowrap">
<input name="pc" type="text" id="dealerLocator" size="10" class="form-control border border-blue-500 rounded-l-full rounded-r-none w-auto" placeholder="Zip Code" aria-label="Zip Code" aria-describedby="Dealer Locator">
<button type="submit" class="btn btn-azure rounded-l-none rounded-r-full whitespace-nowrap">Find a Dealer</button>
</form>
POST
<form x-bind:id="makeId('contact')" method="post" novalidate="novalidate" x-on:submit.prevent="submitForm()" class="grid grid-cols-1 md:grid-cols-2 gap-x-4 gap-y-3" id="drawer.contact">
<!--hidden-->
<input name="force_id" type="hidden" value="">
<!--first_name-->
<div x-bind:class="{'col-span-full': layout === 'inline'}">
<label x-bind:for="makeId('first_name')" class="ml-3 mb-1 text-sm" for="drawer.first_name">First name</label>
<input name="first_name" type="text" class="form-control rounded-full" x-bind:class="validationClass('firstName')" x-bind:id="makeId('first_name')" placeholder="First name" autocomplete="given-name" required="" x-model.debounce="firstName"
value="" id="drawer.first_name">
<div x-show="showValidation('firstName')" class="invalid-feedback" style="display: none;">Please enter your first name.</div>
</div>
<!--last_name-->
<div x-bind:class="{'col-span-full': layout === 'inline'}">
<label x-bind:for="makeId('last_name')" class="ml-3 mb-1 text-sm" for="drawer.last_name">Last name</label>
<input name="last_name" type="text" class="form-control rounded-full" x-bind:class="validationClass('lastName')" x-bind:id="makeId('last_name')" placeholder="Last name" autocomplete="family-name" required="" x-model.debounce="lastName" value=""
id="drawer.last_name">
<div x-show="showValidation('lastName')" class="invalid-feedback" style="display: none;">Please enter your last name.</div>
</div>
<!--street-->
<div x-bind:class="{'col-span-full': layout === 'inline'}" x-show="shownFields().street">
<label x-bind:for="makeId('street')" class="ml-3 mb-1 text-sm" for="drawer.street">Street</label>
<input name="street" type="text" class="form-control rounded-full" x-bind:class="validationClass('street')" x-bind:id="makeId('street')" placeholder="Street" autocomplete="street-address" required="" x-model.debounce="street" value=""
id="drawer.street">
<div x-show="showValidation('street')" class="invalid-feedback" style="display: none;">Please enter your street.</div>
</div>
<!--postal_code-->
<div x-bind:class="{'col-span-full': layout === 'inline'}">
<label x-bind:for="makeId('postal_code')" class="ml-3 mb-1 text-sm" x-text="postalCodeName()" for="drawer.postal_code">Zip code</label>
<input name="postal_code" type="text" class="form-control rounded-full" x-bind:class="validationClass('postalCode')" x-bind:id="makeId('postal_code')" x-bind:placeholder="postalCodeName()" autocomplete="postal-code" required="" maxlength="7"
x-model="postalCode" value="" x-on:change="searchDealers()" id="drawer.postal_code" placeholder="Zip code">
<div x-show="showValidation('postalCode')" class="invalid-feedback" style="display: none;">Please enter your <span x-text="postalCodeName().toLowerCase()">zip code</span>.</div>
</div>
<template x-if="selectedDealer">
<div class="col-span-full bg-gray-200 rounded-lg p-3">
<i class="fa-solid fa-map-marker"></i> Your dealer is <span x-text="selectedDealer.name"></span>.
</div>
</template>
<div class="col-span-full bg-gray-200 rounded-xl p-3" x-show="showBottledWaterInterest()" style="display: none;">
<div class="mb-2">Are you interested in bottled water?</div>
<div>
<button type="button" class="btn btn-blue rounded-full" x-on:click="updateBottledWaterInterest('yes')">Yes <svg class="svg-inline--fa fa-check" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check" role="img"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg="">
<path fill="currentColor" d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path>
</svg><!-- <i class="fa-solid fa-check"></i> --></button>
<button type="button" class="btn btn-blue rounded-full" x-on:click="updateBottledWaterInterest('no')">No <svg class="svg-inline--fa fa-times" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="times" role="img"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-fa-i2svg="">
<path fill="currentColor"
d="M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z">
</path>
</svg><!-- <i class="fa-solid fa-times"></i> --></button>
</div>
</div>
<div class="col-span-full grid grid-cols-1 gap-2" x-show="showDealerSelect()" style="display: none;">
<template x-for="dealer in filteredDealers()" x-bind:key="dealer.id">
<div class="bg-gray-100 hover:bg-gray-200 rounded-xl p-3" x-bind:class="{ 'border-2 shadow' : dealer.preferred_dealer}">
<div class="flex items-center">
<div class="grow">
<h4 class="text-blue-500 text-lg" x-text="dealer.name"></h4>
<div x-text="dealer.city + ', ' + dealer.state"></div>
<div class="mt-1" x-show="dealer.preferred_dealer">
<span class="text-xs px-2 py-1 rounded-full bg-blue-500 text-blue-800">Suggested Dealer</span>
</div>
</div>
<div>
<button type="button" class="btn btn-blue rounded-full text-sm px-2 py-1 whitespace-nowrap" x-on:click="selectDealer(dealer)">Select <i class="fa-solid fa-plus-circle"></i></button>
</div>
</div>
</div>
</template>
</div>
<div class="col-span-full bg-gray-200 text-red-500 p-2" x-show="showNoDealers()" style="display: none;">
<svg class="svg-inline--fa fa-exclamation-circle" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="exclamation-circle" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg="">
<path fill="currentColor" d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"></path>
</svg><!-- <i class="fa-solid fa-exclamation-circle"></i> --> No dealers found for this <span x-text="postalCodeName().toLowerCase()">zip code</span>.
</div>
<!--phone-->
<div x-bind:class="{'col-span-full': layout === 'inline'}" x-show="shownFields().phone">
<label x-bind:for="makeId('phone')" class="ml-3 mb-1 text-sm" for="drawer.phone">Telephone</label>
<input name="phone" type="text" class="form-control rounded-full" x-bind:class="validationClass('phone')" x-bind:id="makeId('phone')" x-mask="999-999-9999" placeholder="Telephone" autocomplete="tel-national" required="" x-model.debounce="phone"
value="" id="drawer.phone">
<div x-show="showValidation('phone')" class="invalid-feedback" style="display: none;">Please enter your phone number.</div>
</div>
<!--email-->
<div x-bind:class="{'col-span-full': layout === 'inline'}" x-show="shownFields().email">
<label x-bind:for="makeId('email')" class="ml-3 mb-1 text-sm" for="drawer.email">Email</label>
<input name="email" type="email" class="form-control rounded-full" x-bind:class="validationClass('email')" x-bind:id="makeId('email')" placeholder="Email" autocomplete="email" required="" x-model.debounce="email" value="" id="drawer.email">
<div x-show="showValidation('email')" class="invalid-feedback" style="display: none;">Please enter your email.</div>
</div>
<!--product_interest-->
<div class="col-span-full" x-show="shownFields().productInterest">
<label x-bind:for="makeId('product_interest')" class="ml-3 mb-1 text-sm" for="drawer.product_interest">Product interest</label>
<select name="product_interest" class="form-control rounded-full" x-bind:class="validationClass('productInterest')" x-bind:id="makeId('product_interest')" required="" x-model="productInterest" id="drawer.product_interest">
<option disabled="" selected="" value="">Product interest</option>
<option value="water_softener">Water Softening and Salt-Free Conditioner</option>
<option value="drinking_water_system">Drinking Water System</option>
<option value="bottled_water">Bottled Water</option>
<option value="bottleless_coolers">Bottleless Coolers</option>
<option value="service">Billing, Customer Service, Repair, Salt</option>
<option value="commercial_and_industrial">Commercial / Industrial</option>
<option value="culligan_brand">Other, Please Explain</option>
</select>
<div x-show="showValidation('productInterest')" class="invalid-feedback" style="display: none;">Please select your interest.</div>
</div>
<!--delivery_type-->
<div class="col-span-full" x-show="shownFields().deliveryType" style="display: none;">
<div class="items-center space-x-2" x-bind:class="validationClass('deliveryType')">
<span class="text-sm"">Delivery Type</span>
<template x-for="value in deliveryTypes">
<button type="button" class="btn rounded-full" x-bind:class="isDeliveryTypeSelected(value) ? 'btn-indigo' : 'btn-white'" x-on:click="selectDeliveryType(value)">
<span x-text="value" class="capitalize"></span>
<span x-show="isDeliveryTypeSelected(value)"><i class="fa-solid fa-check-square fa-fw"></i></span>
<span x-show="!isDeliveryTypeSelected(value)"><i class="fa-solid fa-square fa-fw"></i></span>
</button>
</template><button type="button" class="btn rounded-full btn-white" x-bind:class="isDeliveryTypeSelected(value) ? 'btn-indigo' : 'btn-white'" x-on:click="selectDeliveryType(value)">
<span x-text="value" class="capitalize">water</span>
<span x-show="isDeliveryTypeSelected(value)" style="display: none;"><svg class="svg-inline--fa fa-check-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check-square" role="img"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg="">
<path fill="currentColor"
d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z">
</path>
</svg><!-- <i class="fa-solid fa-check-square fa-fw"></i> --></span>
<span x-show="!isDeliveryTypeSelected(value)"><svg class="svg-inline--fa fa-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="square" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"
data-fa-i2svg="">
<path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"></path>
</svg><!-- <i class="fa-solid fa-square fa-fw"></i> --></span>
</button><button type="button" class="btn rounded-full btn-white" x-bind:class="isDeliveryTypeSelected(value) ? 'btn-indigo' : 'btn-white'" x-on:click="selectDeliveryType(value)">
<span x-text="value" class="capitalize">salt</span>
<span x-show="isDeliveryTypeSelected(value)" style="display: none;"><svg class="svg-inline--fa fa-check-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check-square" role="img"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg="">
<path fill="currentColor"
d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z">
</path>
</svg><!-- <i class="fa-solid fa-check-square fa-fw"></i> --></span>
<span x-show="!isDeliveryTypeSelected(value)"><svg class="svg-inline--fa fa-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="square" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"
data-fa-i2svg="">
<path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"></path>
</svg><!-- <i class="fa-solid fa-square fa-fw"></i> --></span>
</button>
</div>
<div x-show="showValidation('deliveryType')" class="invalid-feedback" style="display: none;">Select a valid delivery type.</div>
</div>
<!--free_water_test-->
<div class="col-span-full" x-show="shownFields().freeWaterTest" style="display: none;">
<label x-bind:for="makeId('free_water_test_yes')" class="ml-3 mb-1 text-sm" for="drawer.free_water_test_yes">Free water test</label>
<div class="px-1 py-2" x-bind:class="validationClass('freeWaterTest')">
<input name="free_water_test" type="radio" x-bind:id="makeId('free_water_test_yes')" value="yes" x-model.debounce="freeWaterTest" id="drawer.free_water_test_yes">
<label x-bind:for="makeId('free_water_test_yes')" for="drawer.free_water_test_yes">Yes</label>
<input name="free_water_test" type="radio" class="ml-2" x-bind:id="makeId('free_water_test_no')" value="no" x-model.debounce="freeWaterTest" id="drawer.free_water_test_no">
<label x-bind:for="makeId('free_water_test_no')" for="drawer.free_water_test_no">No</label>
</div>
<div x-show="showValidation('freeWaterTest')" class="invalid-feedback" style="display: none;">Please select if you would like a free water test.</div>
</div>
<!--appointment_request-->
<div class="col-span-full space-y-3" x-show="shownFields().appointmentRequest">
<div>
<input name="appointment_request" type="checkbox" class="rounded-md" x-bind:id="makeId('appointment_request')" value="" x-model="appointmentRequest" id="drawer.appointment_request">
<label x-bind:for="makeId('appointment_request')" for="drawer.appointment_request">Interested in an appointment?</label>
</div>
<div class="space-y-3" x-show="appointmentRequest" style="display: none;">
<div>
<div class="mb-1"">Your Culligan professional will contact you to confirm your request.</div>
<div>Your request is subject to availability, holidays and hours of operation.</div>
</div>
<div x-show="shownFields().preferredTime">
<label x-bind:for="makeId('preferred_time')" class="ml-3 mb-1 text-sm" for="drawer.preferred_time">Preferred time</label>
<select name="preferred_time" class="form-control rounded-full" x-bind:class="validationClass('preferredTime')" x-bind:id="makeId('preferred_time')" required="" x-model="preferredTime" id="drawer.preferred_time">
<option disabled="" selected="" value="">Select a time</option>
<template x-for="time in preferredTimes">
<option x-bind:value="time" x-text="time"></option>
</template>
<option x-bind:value="time" x-text="time" value="Morning">Morning</option>
<option x-bind:value="time" x-text="time" value="Afternoon">Afternoon</option>
</select>
<div x-show="showValidation('preferredTime')" class="invalid-feedback" style="display: none;">Please select your preferred time.</div>
</div>
<div x-show="shownFields().preferredDate">
<div class="ml-3 mb-1 text-sm block">Preferred date</div>
<div class="form-control rounded-full" x-bind:class="validationClass('preferredDate')">
<div class="flatpickr-wrapper"><input name="preferred_date" class="border-none p-0 w-11/12 focus:ring-0 flatpickr-input" placeholder="Select a date" x-ref="preferredDate" x-model="preferredDate" type="hidden"><input
class="border-none p-0 w-11/12 focus:ring-0 " placeholder="Select a date" tabindex="0" type="text" readonly="readonly">
<div class="flatpickr-calendar animate static" tabindex="-1">
<div class="flatpickr-months"><span class="flatpickr-prev-month flatpickr-disabled"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 17 17">
<g></g>
<path d="M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z"></path>
</svg></span>
<div class="flatpickr-month">
<div class="flatpickr-current-month"><span class="cur-month">March </span>
<div class="numInputWrapper"><input class="numInput cur-year" type="number" tabindex="-1" aria-label="Year" min="2024" max="2024" disabled=""><span class="arrowUp"></span><span class="arrowDown"></span></div>
</div>
</div><span class="flatpickr-next-month"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 17 17">
<g></g>
<path d="M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z"></path>
</svg></span>
</div>
<div class="flatpickr-innerContainer">
<div class="flatpickr-rContainer">
<div class="flatpickr-weekdays">
<div class="flatpickr-weekdaycontainer">
<span class="flatpickr-weekday"> Sun</span><span class="flatpickr-weekday">Mon</span><span class="flatpickr-weekday">Tue</span><span class="flatpickr-weekday">Wed</span><span class="flatpickr-weekday">Thu</span><span
class="flatpickr-weekday">Fri</span><span class="flatpickr-weekday">Sat </span>
</div>
</div>
<div class="flatpickr-days" tabindex="-1">
<div class="dayContainer"><span class="flatpickr-day prevMonthDay flatpickr-disabled" aria-label="February 25, 2024">25</span><span class="flatpickr-day prevMonthDay flatpickr-disabled"
aria-label="February 26, 2024">26</span><span class="flatpickr-day prevMonthDay flatpickr-disabled" aria-label="February 27, 2024">27</span><span class="flatpickr-day prevMonthDay flatpickr-disabled"
aria-label="February 28, 2024">28</span><span class="flatpickr-day prevMonthDay flatpickr-disabled" aria-label="February 29, 2024">29</span><span class="flatpickr-day flatpickr-disabled"
aria-label="March 1, 2024">1</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 2, 2024">2</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 3, 2024">3</span><span
class="flatpickr-day flatpickr-disabled" aria-label="March 4, 2024">4</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 5, 2024">5</span><span class="flatpickr-day flatpickr-disabled"
aria-label="March 6, 2024">6</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 7, 2024">7</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 8, 2024">8</span><span
class="flatpickr-day flatpickr-disabled" aria-label="March 9, 2024">9</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 10, 2024">10</span><span class="flatpickr-day flatpickr-disabled"
aria-label="March 11, 2024">11</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 12, 2024">12</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 13, 2024">13</span><span
class="flatpickr-day flatpickr-disabled" aria-label="March 14, 2024">14</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 15, 2024">15</span><span class="flatpickr-day flatpickr-disabled"
aria-label="March 16, 2024">16</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 17, 2024">17</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 18, 2024">18</span><span
class="flatpickr-day flatpickr-disabled" aria-label="March 19, 2024">19</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 20, 2024">20</span><span class="flatpickr-day flatpickr-disabled"
aria-label="March 21, 2024">21</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 22, 2024">22</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 23, 2024">23</span><span
class="flatpickr-day today flatpickr-disabled" aria-label="March 24, 2024" aria-current="date">24</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 25, 2024">25</span><span class="flatpickr-day"
aria-label="March 26, 2024" tabindex="-1">26</span><span class="flatpickr-day" aria-label="March 27, 2024" tabindex="-1">27</span><span class="flatpickr-day" aria-label="March 28, 2024" tabindex="-1">28</span><span
class="flatpickr-day" aria-label="March 29, 2024" tabindex="-1">29</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 30, 2024">30</span><span class="flatpickr-day flatpickr-disabled"
aria-label="March 31, 2024">31</span><span class="flatpickr-day nextMonthDay" aria-label="April 1, 2024" tabindex="-1">1</span><span class="flatpickr-day nextMonthDay" aria-label="April 2, 2024" tabindex="-1">2</span><span
class="flatpickr-day nextMonthDay" aria-label="April 3, 2024" tabindex="-1">3</span><span class="flatpickr-day nextMonthDay" aria-label="April 4, 2024" tabindex="-1">4</span><span class="flatpickr-day nextMonthDay"
aria-label="April 5, 2024" tabindex="-1">5</span><span class="flatpickr-day nextMonthDay flatpickr-disabled" aria-label="April 6, 2024">6</span></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div x-show="showValidation('preferredDate')" class="invalid-feedback" style="display: none;">Please select your preferred date.</div>
</div>
</div>
</div>
<!--message-->
<div class="col-span-full" x-show="shownFields().message">
<label x-bind:for="makeId('message')" class="ml-3 mb-1 text-sm" for="drawer.message">Additional information</label>
<textarea name="message" rows="5" class="form-control rounded-lg" x-bind:class="validationClass('message')" x-bind:id="makeId('message')" required="" x-model.debounce="message" placeholder="Add a message" id="drawer.message"></textarea>
<div x-show="showValidation('message')" class="invalid-feedback" style="display: none;">Add a message</div>
</div>
<!--nurture-->
<div class="col-span-full" x-show="showNurture()" style="display: none;">
<div>
<input name="nurture" type="checkbox" x-bind:id="makeId('nurture')" x-model.debounce="nurture" id="drawer.nurture">
<label x-bind:for="makeId('nurture')" class="ml-3 mb-1 text-sm" for="drawer.nurture">Receive news and announcements</label>
</div>
<div class="text-xs">*By checking this box, I give consent to Culligan to send me newsletters, special offers, and news about the water in my area. You may unsubscribe at any time.</div>
</div>
<!--submit-->
<div class="col-span-full">
<button type="submit" x-bind:id="makeId('submit')" class="btn btn-white-blue rounded-full" x-bind:class="{'opacity-60' : submitStatus === 'in progress'}" id="drawer.submit">Submit <span x-show="hasLeadInSession"
style="display: none;">Again</span>
<span x-show="submitStatus !== 'in progress'"><svg class="svg-inline--fa fa-arrow-right ml-1" aria-hidden="true" focusable="false" data-prefix="fasr" data-icon="arrow-right" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"
data-fa-i2svg="">
<path fill="currentColor" d="M429.8 273l17-17-17-17L276.2 85.4l-17-17-33.9 33.9 17 17L354.9 232 24 232 0 232l0 48 24 0 330.8 0L242.2 392.6l-17 17 33.9 33.9 17-17L429.8 273z"></path>
</svg><!-- <i class="fa-sharp fa-regular fa-arrow-right ml-1"></i> --></span>
<span x-show="submitStatus === 'in progress'" style="display: none;"><svg class="svg-inline--fa fa-spinner fa-fw fa-spin" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="spinner" role="img" xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 512 512" data-fa-i2svg="">
<path fill="currentColor"
d="M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z">
</path>
</svg><!-- <i class="fa-solid fa-spinner fa-fw fa-spin"></i> --></span>
</button>
</div>
</form>
POST
<form x-bind:id="makeId('contact')" method="post" novalidate="novalidate" x-on:submit.prevent="submitForm()" class="grid grid-cols-1 md:grid-cols-2 gap-x-4 gap-y-3" id="modal.contact">
<!--hidden-->
<input name="force_id" type="hidden" value="">
<!--first_name-->
<div x-bind:class="{'col-span-full': layout === 'inline'}">
<label x-bind:for="makeId('first_name')" class="ml-3 mb-1 text-sm" for="modal.first_name">First name</label>
<input name="first_name" type="text" class="form-control rounded-full" x-bind:class="validationClass('firstName')" x-bind:id="makeId('first_name')" placeholder="First name" autocomplete="given-name" required="" x-model.debounce="firstName"
value="" id="modal.first_name">
<div x-show="showValidation('firstName')" class="invalid-feedback" style="display: none;">Please enter your first name.</div>
</div>
<!--last_name-->
<div x-bind:class="{'col-span-full': layout === 'inline'}">
<label x-bind:for="makeId('last_name')" class="ml-3 mb-1 text-sm" for="modal.last_name">Last name</label>
<input name="last_name" type="text" class="form-control rounded-full" x-bind:class="validationClass('lastName')" x-bind:id="makeId('last_name')" placeholder="Last name" autocomplete="family-name" required="" x-model.debounce="lastName" value=""
id="modal.last_name">
<div x-show="showValidation('lastName')" class="invalid-feedback" style="display: none;">Please enter your last name.</div>
</div>
<!--street-->
<div x-bind:class="{'col-span-full': layout === 'inline'}" x-show="shownFields().street">
<label x-bind:for="makeId('street')" class="ml-3 mb-1 text-sm" for="modal.street">Street</label>
<input name="street" type="text" class="form-control rounded-full" x-bind:class="validationClass('street')" x-bind:id="makeId('street')" placeholder="Street" autocomplete="street-address" required="" x-model.debounce="street" value=""
id="modal.street">
<div x-show="showValidation('street')" class="invalid-feedback" style="display: none;">Please enter your street.</div>
</div>
<!--postal_code-->
<div x-bind:class="{'col-span-full': layout === 'inline'}">
<label x-bind:for="makeId('postal_code')" class="ml-3 mb-1 text-sm" x-text="postalCodeName()" for="modal.postal_code">Zip code</label>
<input name="postal_code" type="text" class="form-control rounded-full" x-bind:class="validationClass('postalCode')" x-bind:id="makeId('postal_code')" x-bind:placeholder="postalCodeName()" autocomplete="postal-code" required="" maxlength="7"
x-model="postalCode" value="" x-on:change="searchDealers()" id="modal.postal_code" placeholder="Zip code">
<div x-show="showValidation('postalCode')" class="invalid-feedback" style="display: none;">Please enter your <span x-text="postalCodeName().toLowerCase()">zip code</span>.</div>
</div>
<template x-if="selectedDealer">
<div class="col-span-full bg-gray-200 rounded-lg p-3">
<i class="fa-solid fa-map-marker"></i> Your dealer is <span x-text="selectedDealer.name"></span>.
</div>
</template>
<div class="col-span-full bg-gray-200 rounded-xl p-3" x-show="showBottledWaterInterest()" style="display: none;">
<div class="mb-2">Are you interested in bottled water?</div>
<div>
<button type="button" class="btn btn-blue rounded-full" x-on:click="updateBottledWaterInterest('yes')">Yes <svg class="svg-inline--fa fa-check" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check" role="img"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg="">
<path fill="currentColor" d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path>
</svg><!-- <i class="fa-solid fa-check"></i> --></button>
<button type="button" class="btn btn-blue rounded-full" x-on:click="updateBottledWaterInterest('no')">No <svg class="svg-inline--fa fa-times" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="times" role="img"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-fa-i2svg="">
<path fill="currentColor"
d="M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z">
</path>
</svg><!-- <i class="fa-solid fa-times"></i> --></button>
</div>
</div>
<div class="col-span-full grid grid-cols-1 gap-2" x-show="showDealerSelect()" style="display: none;">
<template x-for="dealer in filteredDealers()" x-bind:key="dealer.id">
<div class="bg-gray-100 hover:bg-gray-200 rounded-xl p-3" x-bind:class="{ 'border-2 shadow' : dealer.preferred_dealer}">
<div class="flex items-center">
<div class="grow">
<h4 class="text-blue-500 text-lg" x-text="dealer.name"></h4>
<div x-text="dealer.city + ', ' + dealer.state"></div>
<div class="mt-1" x-show="dealer.preferred_dealer">
<span class="text-xs px-2 py-1 rounded-full bg-blue-500 text-blue-800">Suggested Dealer</span>
</div>
</div>
<div>
<button type="button" class="btn btn-blue rounded-full text-sm px-2 py-1 whitespace-nowrap" x-on:click="selectDealer(dealer)">Select <i class="fa-solid fa-plus-circle"></i></button>
</div>
</div>
</div>
</template>
</div>
<div class="col-span-full bg-gray-200 text-red-500 p-2" x-show="showNoDealers()" style="display: none;">
<svg class="svg-inline--fa fa-exclamation-circle" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="exclamation-circle" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg="">
<path fill="currentColor" d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"></path>
</svg><!-- <i class="fa-solid fa-exclamation-circle"></i> --> No dealers found for this <span x-text="postalCodeName().toLowerCase()">zip code</span>.
</div>
<!--phone-->
<div x-bind:class="{'col-span-full': layout === 'inline'}" x-show="shownFields().phone">
<label x-bind:for="makeId('phone')" class="ml-3 mb-1 text-sm" for="modal.phone">Telephone</label>
<input name="phone" type="text" class="form-control rounded-full" x-bind:class="validationClass('phone')" x-bind:id="makeId('phone')" x-mask="999-999-9999" placeholder="Telephone" autocomplete="tel-national" required="" x-model.debounce="phone"
value="" id="modal.phone">
<div x-show="showValidation('phone')" class="invalid-feedback" style="display: none;">Please enter your phone number.</div>
</div>
<!--email-->
<div x-bind:class="{'col-span-full': layout === 'inline'}" x-show="shownFields().email">
<label x-bind:for="makeId('email')" class="ml-3 mb-1 text-sm" for="modal.email">Email</label>
<input name="email" type="email" class="form-control rounded-full" x-bind:class="validationClass('email')" x-bind:id="makeId('email')" placeholder="Email" autocomplete="email" required="" x-model.debounce="email" value="" id="modal.email">
<div x-show="showValidation('email')" class="invalid-feedback" style="display: none;">Please enter your email.</div>
</div>
<!--product_interest-->
<div class="col-span-full" x-show="shownFields().productInterest">
<label x-bind:for="makeId('product_interest')" class="ml-3 mb-1 text-sm" for="modal.product_interest">Product interest</label>
<select name="product_interest" class="form-control rounded-full" x-bind:class="validationClass('productInterest')" x-bind:id="makeId('product_interest')" required="" x-model="productInterest" id="modal.product_interest">
<option disabled="" selected="" value="">Product interest</option>
<option value="water_softener">Water Softening and Salt-Free Conditioner</option>
<option value="drinking_water_system">Drinking Water System</option>
<option value="bottled_water">Bottled Water</option>
<option value="bottleless_coolers">Bottleless Coolers</option>
<option value="service">Billing, Customer Service, Repair, Salt</option>
<option value="commercial_and_industrial">Commercial / Industrial</option>
<option value="culligan_brand">Other, Please Explain</option>
</select>
<div x-show="showValidation('productInterest')" class="invalid-feedback" style="display: none;">Please select your interest.</div>
</div>
<!--delivery_type-->
<div class="col-span-full" x-show="shownFields().deliveryType" style="display: none;">
<div class="items-center space-x-2" x-bind:class="validationClass('deliveryType')">
<span class="text-sm"">Delivery Type</span>
<template x-for="value in deliveryTypes">
<button type="button" class="btn rounded-full" x-bind:class="isDeliveryTypeSelected(value) ? 'btn-indigo' : 'btn-white'" x-on:click="selectDeliveryType(value)">
<span x-text="value" class="capitalize"></span>
<span x-show="isDeliveryTypeSelected(value)"><i class="fa-solid fa-check-square fa-fw"></i></span>
<span x-show="!isDeliveryTypeSelected(value)"><i class="fa-solid fa-square fa-fw"></i></span>
</button>
</template><button type="button" class="btn rounded-full btn-white" x-bind:class="isDeliveryTypeSelected(value) ? 'btn-indigo' : 'btn-white'" x-on:click="selectDeliveryType(value)">
<span x-text="value" class="capitalize">water</span>
<span x-show="isDeliveryTypeSelected(value)" style="display: none;"><svg class="svg-inline--fa fa-check-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check-square" role="img"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg="">
<path fill="currentColor"
d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z">
</path>
</svg><!-- <i class="fa-solid fa-check-square fa-fw"></i> --></span>
<span x-show="!isDeliveryTypeSelected(value)"><svg class="svg-inline--fa fa-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="square" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"
data-fa-i2svg="">
<path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"></path>
</svg><!-- <i class="fa-solid fa-square fa-fw"></i> --></span>
</button><button type="button" class="btn rounded-full btn-white" x-bind:class="isDeliveryTypeSelected(value) ? 'btn-indigo' : 'btn-white'" x-on:click="selectDeliveryType(value)">
<span x-text="value" class="capitalize">salt</span>
<span x-show="isDeliveryTypeSelected(value)" style="display: none;"><svg class="svg-inline--fa fa-check-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check-square" role="img"
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg="">
<path fill="currentColor"
d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z">
</path>
</svg><!-- <i class="fa-solid fa-check-square fa-fw"></i> --></span>
<span x-show="!isDeliveryTypeSelected(value)"><svg class="svg-inline--fa fa-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="square" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"
data-fa-i2svg="">
<path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"></path>
</svg><!-- <i class="fa-solid fa-square fa-fw"></i> --></span>
</button>
</div>
<div x-show="showValidation('deliveryType')" class="invalid-feedback" style="display: none;">Select a valid delivery type.</div>
</div>
<!--free_water_test-->
<div class="col-span-full" x-show="shownFields().freeWaterTest" style="display: none;">
<label x-bind:for="makeId('free_water_test_yes')" class="ml-3 mb-1 text-sm" for="modal.free_water_test_yes">Free water test</label>
<div class="px-1 py-2" x-bind:class="validationClass('freeWaterTest')">
<input name="free_water_test" type="radio" x-bind:id="makeId('free_water_test_yes')" value="yes" x-model.debounce="freeWaterTest" id="modal.free_water_test_yes">
<label x-bind:for="makeId('free_water_test_yes')" for="modal.free_water_test_yes">Yes</label>
<input name="free_water_test" type="radio" class="ml-2" x-bind:id="makeId('free_water_test_no')" value="no" x-model.debounce="freeWaterTest" id="modal.free_water_test_no">
<label x-bind:for="makeId('free_water_test_no')" for="modal.free_water_test_no">No</label>
</div>
<div x-show="showValidation('freeWaterTest')" class="invalid-feedback" style="display: none;">Please select if you would like a free water test.</div>
</div>
<!--appointment_request-->
<div class="col-span-full space-y-3" x-show="shownFields().appointmentRequest">
<div>
<input name="appointment_request" type="checkbox" class="rounded-md" x-bind:id="makeId('appointment_request')" value="" x-model="appointmentRequest" id="modal.appointment_request">
<label x-bind:for="makeId('appointment_request')" for="modal.appointment_request">Interested in an appointment?</label>
</div>
<div class="space-y-3" x-show="appointmentRequest" style="display: none;">
<div>
<div class="mb-1"">Your Culligan professional will contact you to confirm your request.</div>
<div>Your request is subject to availability, holidays and hours of operation.</div>
</div>
<div x-show="shownFields().preferredTime">
<label x-bind:for="makeId('preferred_time')" class="ml-3 mb-1 text-sm" for="modal.preferred_time">Preferred time</label>
<select name="preferred_time" class="form-control rounded-full" x-bind:class="validationClass('preferredTime')" x-bind:id="makeId('preferred_time')" required="" x-model="preferredTime" id="modal.preferred_time">
<option disabled="" selected="" value="">Select a time</option>
<template x-for="time in preferredTimes">
<option x-bind:value="time" x-text="time"></option>
</template>
<option x-bind:value="time" x-text="time" value="Morning">Morning</option>
<option x-bind:value="time" x-text="time" value="Afternoon">Afternoon</option>
</select>
<div x-show="showValidation('preferredTime')" class="invalid-feedback" style="display: none;">Please select your preferred time.</div>
</div>
<div x-show="shownFields().preferredDate">
<div class="ml-3 mb-1 text-sm block">Preferred date</div>
<div class="form-control rounded-full" x-bind:class="validationClass('preferredDate')">
<div class="flatpickr-wrapper"><input name="preferred_date" class="border-none p-0 w-11/12 focus:ring-0 flatpickr-input" placeholder="Select a date" x-ref="preferredDate" x-model="preferredDate" type="hidden"><input
class="border-none p-0 w-11/12 focus:ring-0 " placeholder="Select a date" tabindex="0" type="text" readonly="readonly">
<div class="flatpickr-calendar animate static" tabindex="-1">
<div class="flatpickr-months"><span class="flatpickr-prev-month flatpickr-disabled"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 17 17">
<g></g>
<path d="M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z"></path>
</svg></span>
<div class="flatpickr-month">
<div class="flatpickr-current-month"><span class="cur-month">March </span>
<div class="numInputWrapper"><input class="numInput cur-year" type="number" tabindex="-1" aria-label="Year" min="2024" max="2024" disabled=""><span class="arrowUp"></span><span class="arrowDown"></span></div>
</div>
</div><span class="flatpickr-next-month"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 17 17">
<g></g>
<path d="M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z"></path>
</svg></span>
</div>
<div class="flatpickr-innerContainer">
<div class="flatpickr-rContainer">
<div class="flatpickr-weekdays">
<div class="flatpickr-weekdaycontainer">
<span class="flatpickr-weekday"> Sun</span><span class="flatpickr-weekday">Mon</span><span class="flatpickr-weekday">Tue</span><span class="flatpickr-weekday">Wed</span><span class="flatpickr-weekday">Thu</span><span
class="flatpickr-weekday">Fri</span><span class="flatpickr-weekday">Sat </span>
</div>
</div>
<div class="flatpickr-days" tabindex="-1">
<div class="dayContainer"><span class="flatpickr-day prevMonthDay flatpickr-disabled" aria-label="February 25, 2024">25</span><span class="flatpickr-day prevMonthDay flatpickr-disabled"
aria-label="February 26, 2024">26</span><span class="flatpickr-day prevMonthDay flatpickr-disabled" aria-label="February 27, 2024">27</span><span class="flatpickr-day prevMonthDay flatpickr-disabled"
aria-label="February 28, 2024">28</span><span class="flatpickr-day prevMonthDay flatpickr-disabled" aria-label="February 29, 2024">29</span><span class="flatpickr-day flatpickr-disabled"
aria-label="March 1, 2024">1</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 2, 2024">2</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 3, 2024">3</span><span
class="flatpickr-day flatpickr-disabled" aria-label="March 4, 2024">4</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 5, 2024">5</span><span class="flatpickr-day flatpickr-disabled"
aria-label="March 6, 2024">6</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 7, 2024">7</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 8, 2024">8</span><span
class="flatpickr-day flatpickr-disabled" aria-label="March 9, 2024">9</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 10, 2024">10</span><span class="flatpickr-day flatpickr-disabled"
aria-label="March 11, 2024">11</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 12, 2024">12</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 13, 2024">13</span><span
class="flatpickr-day flatpickr-disabled" aria-label="March 14, 2024">14</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 15, 2024">15</span><span class="flatpickr-day flatpickr-disabled"
aria-label="March 16, 2024">16</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 17, 2024">17</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 18, 2024">18</span><span
class="flatpickr-day flatpickr-disabled" aria-label="March 19, 2024">19</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 20, 2024">20</span><span class="flatpickr-day flatpickr-disabled"
aria-label="March 21, 2024">21</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 22, 2024">22</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 23, 2024">23</span><span
class="flatpickr-day today flatpickr-disabled" aria-label="March 24, 2024" aria-current="date">24</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 25, 2024">25</span><span class="flatpickr-day"
aria-label="March 26, 2024" tabindex="-1">26</span><span class="flatpickr-day" aria-label="March 27, 2024" tabindex="-1">27</span><span class="flatpickr-day" aria-label="March 28, 2024" tabindex="-1">28</span><span
class="flatpickr-day" aria-label="March 29, 2024" tabindex="-1">29</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 30, 2024">30</span><span class="flatpickr-day flatpickr-disabled"
aria-label="March 31, 2024">31</span><span class="flatpickr-day nextMonthDay" aria-label="April 1, 2024" tabindex="-1">1</span><span class="flatpickr-day nextMonthDay" aria-label="April 2, 2024" tabindex="-1">2</span><span
class="flatpickr-day nextMonthDay" aria-label="April 3, 2024" tabindex="-1">3</span><span class="flatpickr-day nextMonthDay" aria-label="April 4, 2024" tabindex="-1">4</span><span class="flatpickr-day nextMonthDay"
aria-label="April 5, 2024" tabindex="-1">5</span><span class="flatpickr-day nextMonthDay flatpickr-disabled" aria-label="April 6, 2024">6</span></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div x-show="showValidation('preferredDate')" class="invalid-feedback" style="display: none;">Please select your preferred date.</div>
</div>
</div>
</div>
<!--message-->
<div class="col-span-full" x-show="shownFields().message">
<label x-bind:for="makeId('message')" class="ml-3 mb-1 text-sm" for="modal.message">Additional information</label>
<textarea name="message" rows="5" class="form-control rounded-lg" x-bind:class="validationClass('message')" x-bind:id="makeId('message')" required="" x-model.debounce="message" placeholder="Add a message" id="modal.message"></textarea>
<div x-show="showValidation('message')" class="invalid-feedback" style="display: none;">Add a message</div>
</div>
<!--nurture-->
<div class="col-span-full" x-show="showNurture()" style="display: none;">
<div>
<input name="nurture" type="checkbox" x-bind:id="makeId('nurture')" x-model.debounce="nurture" id="modal.nurture">
<label x-bind:for="makeId('nurture')" class="ml-3 mb-1 text-sm" for="modal.nurture">Receive news and announcements</label>
</div>
<div class="text-xs">*By checking this box, I give consent to Culligan to send me newsletters, special offers, and news about the water in my area. You may unsubscribe at any time.</div>
</div>
<!--submit-->
<div class="col-span-full">
<button type="submit" x-bind:id="makeId('submit')" class="btn btn-white-blue rounded-full" x-bind:class="{'opacity-60' : submitStatus === 'in progress'}" id="modal.submit">Submit <span x-show="hasLeadInSession" style="display: none;">Again</span>
<span x-show="submitStatus !== 'in progress'"><svg class="svg-inline--fa fa-arrow-right ml-1" aria-hidden="true" focusable="false" data-prefix="fasr" data-icon="arrow-right" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"
data-fa-i2svg="">
<path fill="currentColor" d="M429.8 273l17-17-17-17L276.2 85.4l-17-17-33.9 33.9 17 17L354.9 232 24 232 0 232l0 48 24 0 330.8 0L242.2 392.6l-17 17 33.9 33.9 17-17L429.8 273z"></path>
</svg><!-- <i class="fa-sharp fa-regular fa-arrow-right ml-1"></i> --></span>
<span x-show="submitStatus === 'in progress'" style="display: none;"><svg class="svg-inline--fa fa-spinner fa-fw fa-spin" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="spinner" role="img" xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 512 512" data-fa-i2svg="">
<path fill="currentColor"
d="M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z">
</path>
</svg><!-- <i class="fa-solid fa-spinner fa-fw fa-spin"></i> --></span>
</button>
</div>
</form>
Text Content
Give your people Culligan water for $49/month and receive FREE installation. Get $200 OFF when you trade in and trade up to a new Culligan Aquasential Smart HE Water Softener! 716-267-6210 Get Pricing Residential | Office | Commercial Current Customers View or Pay Bill Service and Repair Softener Bypass Videos Manuals & Timers Contact Special Offers 716-267-6210 Softeners & Filters Water Softeners Whole Home Water Filters Drinking Water & Coolers RO Drinking Water Systems Bottleless Coolers Bottled Water & Coolers Services Water Testing Water & Salt Delivery Service & Repairs Well Water Testing Order Online Coupons & Specials About Culligan of Buffalo & Western New York Careers Contact Get Pricing CULLIGAN OF BUFFALO & WESTERN NEW YORK Your local water experts since 1936 Get Pricing Request Appointment Water solutions you can trust Backed by over 85 years of experience, your local Culligan water expert has a wide range of products to address your unique water concerns. Water Softeners View All Whole Home Water Filters View All RO Drinking Water Systems View All Bottleless Coolers View All Bottled Water & Coolers View All Order water online -------------------------------------------------------------------------------- Save time and money with Culligan Bottled Water Delivery and Bottleless Water Coolers Buy Now The Culligan advantage As the leaders in water treatment for 85+ years, Culligan helps you provide your family with better, safer water at every tap. 100% satisfaction guaranteed -------------------------------------------------------------------------------- If you are dissatisfied for any reason, Culligan will refund your purchase within 30 days. 600+ locations nationwide -------------------------------------------------------------------------------- With locally-owned dealerships in communities across North America, Culligan is your local water expert. #1 in custom water solutions -------------------------------------------------------------------------------- No one filters, softens and delivers more than Culligan. Culligan of Buffalo & Western New York When you choose Culligan for your water needs, you’re choosing an industry leader with top-rated water treatment equipment, advanced technology and a 100% satisfaction guarantee. Since 1936, Culligan's local water experts have been committed to providing the best service available. Get In Touch With Culligan of Buffalo & Western New York WORRIED ABOUT YOUR WATER? Get a FREE water consultation! -------------------------------------------------------------------------------- Improving your home's water is easier and more convenient than ever with Culligan's in-home or virtual appointments. Schedule Your Water Test Culligan services You can count on Culligan service to exceed your expectations. Check out the wide range of services provided by your local water expert below. Free Water Test -------------------------------------------------------------------------------- Stop wondering about what may be in your water. Your local Culligan expert can provide a complete analysis for a wide range of contaminants. Schedule test Water & Salt Delivery -------------------------------------------------------------------------------- Culligan delivery is the easiest and most convenient way to get better water in your home. Request delivery Coupons & Specials -------------------------------------------------------------------------------- Don't miss out on the limited-time deals happening in your local area. Start saving Service & Repair -------------------------------------------------------------------------------- Keep your water softener and filtration systems running at peak performance. Request service Order Online -------------------------------------------------------------------------------- Browse the inventory of available products and place your order in a few easy steps. Order now Water quality your family can count on Culligan's award-winning technology and service have attracted recognition from some of the most trusted names in product testing and quality assurance. The Culligan of Buffalo & Western New York difference Great customer service, they worked with me on getting the correct system I needed and where I wanted it. Kimberly came back again after install to make sure the water was at desired levels and safe. She explained everything and was upfront and honest about everything which I appreciate. Mason Mastrangelo 03/13/2024 Our home had a 60-year-old water softener (was not functioning in the slightest) and Culligan replaced our system in 90 minutes or less. Kim gave it to us straight - about our cruddy water (she included history of the area and everything) as well as no nonsense pricing. We were not surprised when it came time to write the check. Chris was great. H... Read More Emily Rangel 12/22/2023 We recently purchased a home with well water which was our first experience with non public water. We requested an inspection with Culligan's to look at a problem and they were able to come to our home promptly. Unfortunately we had severe issues with water quality that needed to be resolved immediately. One day after Culligan's inspection, their t... Read More Jim Steinkirchner 09/24/2023 Current Customers View or Pay Bill Service and Repair Softener Bypass Videos Manuals & Timers Contact Services Water Testing Water & Salt Delivery Service & Repairs Well Water Testing Order Online Coupons & Specials Contact Us Contact Us 716-267-6210 Facebook Instagram YouTube Find a Dealer -------------------------------------------------------------------------------- Locations in: Akron NY Proudly serving: Akron NY | Buffalo NY | Williamsville NY | Niagara Falls NY | Lockport NY | East Aurora NY | Albion NY | Warsaw NY | Batavia NY | Clarence NY -------------------------------------------------------------------------------- ©2024 Culligan. All Rights Reserved. Privacy Policy | Sitemap | Accessibility Softeners & Filters Water Softeners Whole Home Water Filters Drinking Water & Coolers RO Drinking Water Systems Bottleless Coolers Bottled Water & Coolers Services Water Testing Water & Salt Delivery Service & Repairs Well Water Testing Order Online Coupons & Specials About Culligan of Buffalo & Western New York Careers Contact -------------------------------------------------------------------------------- Current Customers View or Pay Bill Service and Repair Softener Bypass Videos Manuals & Timers Contact Special Offers -------------------------------------------------------------------------------- SWITCH SITES Residential Office Commercial GET PRICING & SPECIAL OFFERS Call 716-267-6210 or fill out the form to get a custom water solution. First name Please enter your first name. Last name Please enter your last name. Street Please enter your street. Zip code Please enter your zip code. Your dealer is . Are you interested in bottled water? Yes No Suggested Dealer Select No dealers found for this zip code. Telephone Please enter your phone number. Email Please enter your email. Product interest Product interest Water Softening and Salt-Free Conditioner Drinking Water System Bottled Water Bottleless Coolers Billing, Customer Service, Repair, Salt Commercial / Industrial Other, Please Explain Please select your interest. Delivery Type water salt Select a valid delivery type. Free water test Yes No Please select if you would like a free water test. Interested in an appointment? Your Culligan professional will contact you to confirm your request. Your request is subject to availability, holidays and hours of operation. Preferred time Select a time MorningAfternoon Please select your preferred time. Preferred date March SunMonTueWedThuFriSat 252627282912345678910111213141516171819202122232425262728293031123456 Please select your preferred date. Additional information Add a message Receive news and announcements *By checking this box, I give consent to Culligan to send me newsletters, special offers, and news about the water in my area. You may unsubscribe at any time. Submit Again Thank you for contacting us! One of our representatives will contact you shortly. GET PRICING & SPECIAL OFFERS First name Please enter your first name. Last name Please enter your last name. Street Please enter your street. Zip code Please enter your zip code. Your dealer is . Are you interested in bottled water? Yes No Suggested Dealer Select No dealers found for this zip code. Telephone Please enter your phone number. Email Please enter your email. Product interest Product interest Water Softening and Salt-Free Conditioner Drinking Water System Bottled Water Bottleless Coolers Billing, Customer Service, Repair, Salt Commercial / Industrial Other, Please Explain Please select your interest. Delivery Type water salt Select a valid delivery type. Free water test Yes No Please select if you would like a free water test. Interested in an appointment? Your Culligan professional will contact you to confirm your request. Your request is subject to availability, holidays and hours of operation. Preferred time Select a time MorningAfternoon Please select your preferred time. Preferred date March SunMonTueWedThuFriSat 252627282912345678910111213141516171819202122232425262728293031123456 Please select your preferred date. Additional information Add a message Receive news and announcements *By checking this box, I give consent to Culligan to send me newsletters, special offers, and news about the water in my area. You may unsubscribe at any time. Submit Again Thank you for contacting us! One of our representatives will contact you shortly.