www.silverbulletoffer.com Open in urlscan Pro
66.55.85.12  Public Scan

URL: https://www.silverbulletoffer.com/?mid=10582109&a=103496&s=821586&ClickID=04_98153120_b5f0d455-8064-48c3-abf0-cf78fa45306e
Submission: On November 20 via api from SG — Scanned from SG

Form analysis 1 forms found in the DOM

POST /?mid=10582109&a=103496&s=821586&ClickID=04_98153120_b5f0d455-8064-48c3-abf0-cf78fa45306e

<form action="/?mid=10582109&amp;a=103496&amp;s=821586&amp;ClickID=04_98153120_b5f0d455-8064-48c3-abf0-cf78fa45306e" method="post" id="btform" class="express-checkout"><input type="hidden" id="DeviceData" name="DeviceData"
    value="%22%7B%5C%22correlation_id%5C%22%3A%5C%2216def6aa0354227fd25bc368c435a785%5C%22%7D%22">
  <div class="checkout">
    <div class="checkout__group">
      <div class="checkout__take-all vse">
        <script>
          _AdaErrors = true;
        </script>
        <div role="alert" class="vse" data-vse-scroll="">
        </div>
      </div>
      <div class="checkout__take-all checkout__action-text">
        <div class="form">
          <span class="form__error">*</span>Indicates required field
        </div>
      </div>
      <div class="checkout__take-all">
        <fieldset class="fieldset" id="SelectOffer">
          <div class="fieldset__group fieldset__container">
            <h2 class="fieldset__take-all fieldset__title">STEP 1: Select Your Pocket Hose® Silver Bullet™ Size And Offer</h2>
            <div class="fieldset__take-all">
              <div class="order-options-group message">
                <input type="hidden" name="ActionQuantity1" id="ActionQuantity1" value="0" data-index="1" class=" ddl">
                <input type="hidden" name="ActionQuantity0" id="ActionQuantity0" value="1" data-index="0" class=" ddl">
                <div id="offers-error-anchor" tabindex="-1" data-required="true"></div>
                <div class="order-options-group__group message__select">
                  <div class="order-options-group__option">
                    <div class="order-card">
                      <div class="order-card__header">
                        <div class="form form--radio message">
                          <div class="form__radio-label">
                            <input type="radio" id="TF6" value="TF6" name="ActionCode0" data-custom-bonus="SOTF6" data-required="" aria-labelledby="TF6Label">
                            <label for="TF6" class="form__label">
                              <span class="form__radio"></span>
                              <span id="TF6Label" class="form__text">
                                <b class="form__desc">25 Foot Length</b>
                                <span class="form__price">$19.99 + $7.99 S&amp;H</span>
                              </span>
                            </label>
                          </div>
                        </div>
                      </div>
                      <div class="order-card__body">
                        <img src="/images/products/7.0000/offer-25.jpg" alt="25 ft. hose" width="274" height="200" loading="lazy">
                      </div>
                      <div class="order-card__footer">
                        <div class="form form--checkbox message">
                          <div class="form__checkbox-label">
                            <input type="checkbox" id="SOTF6" value="SOTF6" name="ActionCode1" class="so" disabled="" aria-labelledby="SOTF6Label">
                            <label for="SOTF6" class="form__label">
                              <span class="form__checkbox"></span>
                              <span id="SOTF6Label" class="form__text">Yes, I would like to add the SPECIAL OFFER 25 Foot Pocket Hose® Silver Bullet™ &amp; Free Turbo Shot Jet Nozzle to my order today and just pay $14.99 plus NO additional shipping
                                &amp; handling!</span>
                            </label>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                  <div class="order-options-group__option">
                    <div class="order-card">
                      <div class="order-card__header">
                        <div class="form form--radio message">
                          <div class="form__radio-label">
                            <input type="radio" id="FT6" value="FT6" name="ActionCode0" data-custom-bonus="SOFT6" data-required="" aria-labelledby="FT6Label">
                            <label for="FT6" class="form__label">
                              <span class="form__radio"></span>
                              <span id="FT6Label" class="form__text">
                                <b class="form__desc">50 Foot Length</b>
                                <span class="form__price">$39.98 + $7.99 S&amp;H</span>
                              </span>
                            </label>
                          </div>
                        </div>
                      </div>
                      <div class="order-card__body">
                        <img src="/images/products/7.0000/offer-50.jpg" alt="50 ft. hose" width="274" height="200" loading="lazy">
                      </div>
                      <div class="order-card__footer">
                        <div class="form form--checkbox message">
                          <div class="form__checkbox-label">
                            <input type="checkbox" id="SOFT6" value="SOFT6" name="ActionCode1" class="so" disabled="" aria-labelledby="SOFT6Label">
                            <label for="SOFT6" class="form__label">
                              <span class="form__checkbox"></span>
                              <span id="SOFT6Label" class="form__text">Yes, I would like to add the SPECIAL OFFER 50 Foot Pocket Hose® Silver Bullet™ &amp; Free Turbo Shot Jet Nozzle to my order today and just pay $29.99 plus NO additional shipping
                                &amp; handling!</span>
                            </label>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                  <div class="order-options-group__option">
                    <div class="order-card">
                      <div class="order-card__header">
                        <div class="form form--radio message">
                          <div class="form__radio-label">
                            <input type="radio" id="OH6" value="OH6" name="ActionCode0" data-custom-bonus="SOOH6" data-required="" aria-labelledby="OH6Label">
                            <label for="OH6" class="form__label">
                              <span class="form__radio"></span>
                              <span id="OH6Label" class="form__text">
                                <b class="form__desc">100 Foot Length</b>
                                <span class="form__price">$49.98 + $7.99 S&amp;H</span>
                              </span>
                            </label>
                          </div>
                        </div>
                      </div>
                      <div class="order-card__body">
                        <img src="/images/products/7.0000/offer-100.jpg" alt="100 ft. hose" width="274" height="200" loading="lazy">
                      </div>
                      <div class="order-card__footer">
                        <div class="form form--checkbox message">
                          <div class="form__checkbox-label">
                            <input type="checkbox" id="SOOH6" value="SOOH6" name="ActionCode1" class="so" disabled="" aria-labelledby="SOOH6Label">
                            <label for="SOOH6" class="form__label">
                              <span class="form__checkbox"></span>
                              <span id="SOOH6Label" class="form__text">Yes, I would like to add the SPECIAL OFFER 100 Foot Pocket Hose® Silver Bullet™ &amp; Free Turbo Shot Jet Nozzle to my order today and just pay $37.49 plus NO additional shipping
                                &amp; handling!</span>
                            </label>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
                <div class="message__group" role="alert">
                  <div class="message__invalid">Please choose a product.</div>
                </div>
              </div>
            </div>
          </div>
        </fieldset>
      </div>
      <div class="checkout__take-all">
        <fieldset class="fieldset fieldset--frame">
          <div class="fieldset__group fieldset__container">
            <h2 class="fieldset__take-all fieldset__title">STEP 2: Review Your Order</h2>
            <div class="fieldset__take-all c-brand--form order-table reviewTable">
              <div id="reviewOrder" class="c-brand--form__fieldset">
                <div class="FormHeadlineL c-brand--form__headline c-brand--form__legend"><strong>STEP 2:</strong> Review Your Order</div>
                <style>
                  .alignTextRight {
                    text-align: right;
                  }

                  .alignTextLeft {
                    text-align: left;
                  }

                  .disableToggleClick {
                    pointer-events: none;
                  }
                </style>
                <div class="@mv-u-pad--vert reviewTable__wrap">
                  <table id="orderReview" class="orderItemsTable reviewTable @mv-u-pad--vert c-brand--table">
                    <thead class="reviewTableHead">
                      <tr>
                        <th>Item</th>
                        <th>Quantity</th>
                        <th>Price</th>
                        <th>S&amp;H</th>
                      </tr>
                    </thead>
                    <tbody class="reviewTableBody"></tbody>
                    <tfoot class="reviewTableFoot alignTextRight">
                      <tr>
                        <td colspan="3">Sub Total</td>
                        <td>
                          <label class="subtotal">$0.00</label>
                        </td>
                      </tr>
                      <tr>
                        <td colspan="3">Shipping &amp; Handling</td>
                        <td>
                          <label class="phtotal">$0.00</label>
                        </td>
                      </tr>
                      <tr>
                        <td colspan="3"><label for="zc">State Tax:&nbsp;&nbsp; <input type="text" class="zc c-brand--form__input o-box o-shadow fx--animate o-grid--iblock u-vw--50" id="zc" name="zc" value="" placeholder="Enter Zip Code"></label>
                        </td>
                        <td>
                          <span class="taxtotal"></span>
                        </td>
                      </tr>
                      <tr>
                        <td colspan="3"><b>Order Total</b></td>
                        <td>
                          <span class="summary-total">$0.00</span>
                        </td>
                      </tr>
                    </tfoot>
                  </table>
                </div>
                <div id="orderFormReviewTableItems"></div>
              </div>
              <script type="text/javascript">
                var _firstIndex = '';
                var _firstRun = true;
                var cartItems = [];
                var modifierArray = [];

                function getCartUrl(type) {
                  var m = '10582109' == '' ? '' : 'mid=10582109';
                  var a = '103496' == '' ? '' : 'a=103496';
                  var s = '821586' == '' ? '' : 's=821586';
                  var c = '04_98153120_b5f0d455-8064-48c3-abf0-cf78fa45306e' == '' ? '' : 'clickId=04_98153120_b5f0d455-8064-48c3-abf0-cf78fa45306e';
                  var arr = [m, a, s, c]
                  for (var i = 0; i < arr.length; i++) {
                    if (arr[i] == '') {
                      arr.splice(i, 1);
                      i--;
                    }
                  }
                  var qs = (m + a + s + c) == '' ? '' : ('?' + arr.join('&'));
                  var url = '/Cart/' + type + '/Index' + qs;
                  return url;
                }

                function loadAllItemStates() {
                  var preloadedItems = [];
                  var enableEditableQuantity = false;
                  if (preloadedItems.length > 0) {
                    handleCartChange();
                  } else if (!enableEditableQuantity) {
                    handleCartChange();
                  }
                  $.each($('[data-condition-missing][data-condition-value]:not([data-condition])'), function() {
                    var code = $(this).attr('data-condition-missing');
                    var regex = new RegExp("^" + code + "$");
                    var cartItem = _dtmShoppingCart.SearchItems(regex);
                    if ((preloadedItems.length == 0 && cartItem.length <= 0) || (preloadedItems.length > 0 && preloadedItems.indexOf(code) <= 0)) {
                      setDataCondition(this);
                    }
                  });
                }

                function checkboxToggleXor(removeItems) {
                  for (var i = 0; i < removeItems.length; i++) {
                    $('#' + removeItems[i] + '').prop('checked', false);
                  }
                }

                function validateTextBoxInput(element, maxQuantity) {
                  var value = $(element).val();
                  var valueInt = parseInt(value);
                  var newValue = 0;
                  if (valueInt > maxQuantity) {
                    newValue = maxQuantity;
                  } else if (isNaN(valueInt) || valueInt <= 0) {
                    newValue = 0;
                  } else {
                    newValue = valueInt;
                  }
                  $(element).val(newValue);
                }

                function isSelectorModified(selector) {
                  return ($(selector).attr('data-code-modifier') != null && $(selector).attr('data-code-modifier').length > 0 && $(selector).attr('data-code-alt') != null && $(selector).attr('data-code-alt').length > 0 && ($('#' + $(selector).attr(
                    'data-code-modifier')).is(':checked') || $('[name=' + $(selector).attr('data-code-modifier') + '][value=true]').is(':checked')));
                }

                function AddToModifierArray(modifierName) {
                  var alreadyExists = false;
                  if (modifierArray.length > 0) {
                    modifierArray.forEach(function(ele) {
                      if (ele == modifierName) {
                        alreadyExists = true;
                      }
                    });
                  }
                  if (!alreadyExists) {
                    modifierArray.push(modifierName);
                  }
                }

                function handleModifierChangeAction(name, type) {
                  var modifiableSelectors = $('[data-code-modifier=' + name + ']');
                  var datacode = "";
                  var bonusArray = [];
                  var removeItems = [];
                  var firstSelectorQuantity = 0;
                  var quantity = 0;
                  switch (type) {
                    case 'checkbox':
                      var isModified = $('[name=' + name + ']').is(':checked');
                      break;
                    case 'radio':
                      var isModified = $('[name=' + name + ']:checked').val() == 'true';
                      break;
                  }
                  if (modifiableSelectors.length > 0) {
                    for (var i = 0; i < modifiableSelectors.length; i++) {
                      var isSelect = $(modifiableSelectors[i]).is('select');
                      var isRadioOrCB = 'radio,checkbox'.indexOf($(modifiableSelectors[i]).attr('type')) >= 0;
                      if (i == 0) {
                        if (isSelect) {
                          firstSelectorQuantity = isSelect ? $(modifiableSelectors[i]).val() : 1;
                        } else if (isRadioOrCB) {
                          if ($(modifiableSelectors[i]).is(':checked')) {
                            firstSelectorQuantity = $(modifiableSelectors[i]).attr('data-qty-id') != null ? $('#' + $(modifiableSelectors[i]).attr('data-qty-id')).val() : 1;
                          }
                        }
                        if (firstSelectorQuantity > 0) {
                          dataCode = isModified ? $(modifiableSelectors[i]).attr('data-code-alt') : $(modifiableSelectors[i]).attr('data-code');
                          var bonusAddRemoveArrays = bonusItemHandler(isModified, firstSelectorQuantity, $(modifiableSelectors[i]));
                          bonusArray = bonusArray.concat(bonusAddRemoveArrays.bonusItems);
                          removeItems = removeItems.concat(bonusAddRemoveArrays.removeItems);
                        } else {
                          dataCode = "";
                        }
                      } else {
                        if (isSelect) {
                          quantity = isSelect ? $(modifiableSelectors[i]).val() : 1;
                        } else if (isRadioOrCB) {
                          if ($(modifiableSelectors[i]).is(':checked')) {
                            quantity = $(modifiableSelectors[i]).attr('data-qty-id') != null ? $('#' + $(modifiableSelectors[i]).attr('data-qty-id')).val() : 1;
                          } else {
                            quantity = 0;
                          }
                        }
                        if (quantity > 0) {
                          var bonusAddRemoveArrays = bonusItemHandler(isModified, quantity, $(modifiableSelectors[i]));
                          var selector = isModified ? $(modifiableSelectors[i]).attr('data-code-alt') : $(modifiableSelectors[i]).attr('data-code');
                          if (dataCode == "") {
                            dataCode = selector;
                            firstSelectorQuantity = quantity;
                          } else {
                            bonusArray.push({
                              Id: selector,
                              Qty: quantity
                            })
                          }
                          bonusArray = bonusArray.concat(bonusAddRemoveArrays.bonusItems);
                          removeItems = removeItems.concat(bonusAddRemoveArrays.removeItems);
                        }
                      }
                    }
                  }
                  if (firstSelectorQuantity > 0) {
                    handleCartChange(dataCode, firstSelectorQuantity, null, removeItems, bonusArray, event);
                  }
                }

                function bonusItemHandler(isModified, quantity, selector) {
                  var bonusItemsArray = [];
                  var removeItemsArray = [];
                  if (isModified) {
                    //Add bonusItems
                    if (selector.attr('data-match-alt') != null && selector.attr('data-match-alt').length > 0) {
                      var tempBonusArray = selector.attr('data-match-alt').split(',');
                      tempBonusArray.forEach(function(ele) {
                        bonusItemsArray.push({
                          Id: ele,
                          Qty: quantity
                        });
                      });
                    }
                    //removebonusItems
                    if (selector.attr('data-match') != null && selector.attr('data-match').length > 0) {
                      var tempBonusArray = selector.attr('data-match').split(',');
                      tempBonusArray.forEach(function(ele) {
                        removeItemsArray.push(ele);
                      });
                    }
                    removeItemsArray.push(selector.attr('data-code'));
                  } else {
                    //Add bonusItems
                    if (selector.attr('data-match') != null && selector.attr('data-match').length > 0) {
                      var tempBonusArray = selector.attr('data-match').split(',');
                      tempBonusArray.forEach(function(ele) {
                        bonusItemsArray.push({
                          Id: ele,
                          Qty: quantity
                        });
                      });
                    }
                    //removebonusItems
                    if (selector.attr('data-match-alt') != null && selector.attr('data-match-alt').length > 0) {
                      var tempBonusArray = selector.attr('data-match-alt').split(',');
                      tempBonusArray.forEach(function(ele) {
                        removeItemsArray.push(ele);
                      });
                    }
                    if (selector.attr('data-code-alt') != null && selector.attr('data-code-alt').length > 0) {
                      removeItemsArray.push(selector.attr('data-code-alt'));
                    }
                  }
                  return {
                    bonusItems: bonusItemsArray,
                    removeItems: removeItemsArray
                  };
                }

                function CreateModifierChangeAction(modifierArray) {
                  if (modifierArray.length > 0) {
                    modifierArray.forEach(function(ele) {
                      var modifierName = ele;
                      $(document).on('change', '[name=' + modifierName + '], #' + modifierName + '', function() {
                        var type = $(this).attr('type');
                        handleModifierChangeAction(modifierName, type);
                      });
                    });
                  }
                }

                function getXorList(element) {
                  var xor = $(element).attr('data-code-xor');
                  var isDataCheckbox = $(element).attr('data-checkbox');
                  isDataCheckbox = (typeof isDataCheckbox !== typeof undefined);
                  var listItems = [];
                  if (xor != null && xor.length > 0) {
                    var allXORs = xor.split(',');
                    for (var i = 0; i < allXORs.length; i++) {
                      var singleXOR = allXORs[i];
                      setToggleButton(singleXOR, 'Remove');
                      listItems.push(singleXOR);
                    };
                  }
                  if (isDataCheckbox) {
                    checkboxToggleXor(listItems);
                  }
                  return listItems;
                }

                function dataMatchProductQuantity(mainItem, bonusItems, dataMatchTrue, event) {
                  if (dataMatchTrue) {
                    if ((typeof bonusItems != "undefined" && bonusItems != null && bonusItems.length > 0) && (typeof mainItem != "undefined" && mainItem != null && mainItem.length > 0)) {
                      var datacode = mainItem;
                      var bonusItems = bonusItems.split(',');
                      var removeBonusItems = bonusItems.slice();
                      var qty = $('[data-cart-code=' + datacode + 'Quantity]').children('[name^=ActionQuantity]').val();
                      qty = parseInt(qty);
                      if (!isNaN(qty)) {
                        if (qty > 0) {
                          var firstBonusItem = "";
                          var extraBonusItems = [];
                          for (var i = 0; i < bonusItems.length; i++) {
                            if (i == 0) {
                              firstBonusItem = bonusItems[i];
                            } else {
                              extraBonusItems.push({
                                Id: bonusItems[i],
                                Qty: qty
                              });
                            }
                          }
                          if (firstBonusItem != "") {
                            handleCartChange(firstBonusItem, qty, null, [], extraBonusItems, event);
                          }
                        } else {
                          handleCartChange(datacode, qty, null, removeBonusItems, null, event);
                        }
                      }
                    }
                  } else {
                    handleCartChange();
                  }
                }

                function OnVSCookieLoaded() {
                  $('input.zc').keyup(function() {
                    updateZip(this.value, getState(), getCountry());
                  });
                  $('select.shipOptions').change(function() {
                    handleCartChange();
                  });
                  $('#BillingZip, #ShippingZip').keyup(function() {
                    var isShipCheckboxChecked = $('#ShippingIsDifferentThanBilling').is(':checked');
                    if (this.id == 'ShippingZip') {
                      lastChangeType = 'Shipping';
                    } else {
                      lastChangeType = '';
                    }
                    if (isShipCheckboxChecked) {
                      $('.zc').val($('#ShippingZip').val());
                      updateZip($('#ShippingZip').val(), getState(), getCountry());
                    } else {
                      $('.zc').val(this.value);
                      updateZip(this.value, getState(), getCountry());
                    }
                  });
                  $('#BillingState, #ShippingState, #BillingCountry, #ShippingCountry').keyup(function() {
                    updateZip(getZip(), getState(), getCountry());
                  });
                  $("[name*='ActionToggle']").click(function() {
                    var type = $(this).attr('data-toggle-type') || 'set';
                    var toggleTargetIndex = $(this).attr('name').replace('ActionToggle', '');
                    var toggleValue = $(this).attr('data-toggle-value') || '1';
                    var actionCode = $('[name="ActionCode' + toggleTargetIndex + '"]') || [];
                    var actionQuantity = $('[name="ActionQuantity' + toggleTargetIndex + '"]') || [];
                    if (toggleTargetIndex == '' || actionCode.length == 0 || actionQuantity.length == 0) {
                      console.error('Invalid ActionToggle configuration for ' + toggleTarget);
                      return;
                    }
                    var currentValue = actionQuantity.val();
                    if (type == 'add') {
                      newValue = currentValue + 1;
                    } else {
                      if (currentValue == toggleValue) {
                        newValue = 0;
                      } else {
                        newValue = toggleValue;
                      }
                    }
                    actionQuantity.val(newValue);
                    handleCartChange();
                  });
                  $('input[name*="ActionCode"][data-default]').each(function(i, item) {
                    if ('radio,checkbox'.indexOf($(item).attr('type')) >= 0) {
                      var id = $(item).attr('id');
                      var name = $(item).attr('name');
                      var index = id.replace('ActionCode', '');
                      var value = $(item).val();
                      var labelFor = $('label[for="' + id + '"]');
                      if (labelFor.length > 0) {
                        labelFor.attr('for', 'Action' + index);
                      } else {
                        labelFor = $('#ActionCode0').parents('label');
                        if (labelFor.length > 0) {
                          labelFor.attr('for', 'Action' + index);
                        }
                      }
                      $(this).attr('id', 'Action' + index).attr('name', 'Action' + index);
                      $(this).before('<input id="' + id + '" name="' + name + '" type="hidden" value="' + value + '" data-default="' + $(item).attr('data-default') + '" data-upgrade="' + $(item).attr('data-upgrade') + '">')
                    }
                  });
                  $('input[data-default]').click(function() {
                    var index = ($(this).attr('id') || '').replace('Action', '');
                    var currentValue = $(this).val();
                    var defaultValue = $(this).attr('data-default');
                    var toggleValue = $(this).attr('data-upgrade');
                    var newValue;
                    if ($(this).is(":checked")) {
                      newValue = toggleValue;
                    } else {
                      newValue = defaultValue;
                    }
                    $(this).val(newValue);
                    if ($('#ActionCode' + index).length > 0) {
                      $('#ActionCode' + index).val(newValue);
                      handleCartChange();
                    } else {
                      $('a[data-code="' + currentValue + '"]').attr('data-code', newValue);
                      _dtmShoppingCart.UpgradeItem(currentValue, newValue);
                    }
                  });
                  $("[name*='ActionQuantity']").each(function(i, item) {
                    var index = (item.name || '').replace(/[^0-9]/g, '');
                    if (_firstIndex == '') {
                      _firstIndex = index;
                    }
                    $(item).attr('data-index', index).attr('class', ($(item).attr('class') ? $(item).attr('class') : '') + ' ddl').change(handleCartChange);
                    if ($('[name="ActionCode' + index + '"]').length == 0 || 'radio,checkbox'.indexOf($('[name="ActionCode' + index + '"]').attr('type')) >= 0 || $('[name="ActionCode' + index + '"]').is('select')) {
                      $('[name="ActionCode' + index + '"]').change(handleCartChange);
                    }
                    if ($('[name="MatchProductQuantity' + index + '"]').length == 0 || 'radio,checkbox'.indexOf($('[name="MatchProductQuantity' + index + '"]').attr('type')) >= 0) {
                      $('[name="MatchProductQuantity' + index + '"]').change(handleCartChange);
                    }
                  });
                  loadAllItemStates();
                  $('.ddlPromo').change(function() {
                    handleCartChange();
                  });
                  $("#ShippingIsDifferentThanBilling").on("click", function() {
                    var selector = $('#ShippingIsDifferentThanBilling').is(':checked') ? '#ShippingZip' : '#BillingZip';
                    var zip = $(selector).val() != undefined ? $(selector).val() : '';
                    updateZip(zip, getState(), getCountry());
                    handleCartChange();
                  });
                  $('[name^="ActionAttribute"]').change(function() {
                    var index = ($(this).attr('name') || '').replace('ActionAttribute', '');
                    var allValues = new Array();
                    $.each($('[name="ActionAttribute' + index + '"]'), function() {
                      allValues.push($(this).val());
                    });
                    if ($('[name^="ActionAttribute' + index + '"]').length == allValues.length) {
                      handleCartChange();
                    }
                  });
                }

                function getToggleButtonQty(groupName, defaultValue) {
                  var qty = defaultValue;
                  var toggleButton = $("[data-group-name='" + groupName + "'][data-code-toggle=true][data-qty-id]");
                  if ($(toggleButton).length > 0) {
                    var hasQtyId = $(toggleButton).attr("data-qty-id").length > 0;
                    var overrideQty = qty;
                    if (hasQtyId) {
                      var qtyId = $(toggleButton).attr("data-qty-id");
                      overrideQty = $("#" + qtyId).val();
                    }
                    qty = overrideQty;
                  }
                  if (defaultValue == 0) {
                    qty = 0;
                  }
                  return qty;
                }

                function setToggleButtonQty(groupName, value) {
                  var toggleButton = $("[data-group-name='" + groupName + "'][data-code-toggle=true][data-qty-id]");
                  if ($(toggleButton).length > 0) {
                    var hasQtyId = $(toggleButton).attr("data-qty-id").length > 0;
                    if (hasQtyId) {
                      var qtyId = $(toggleButton).attr("data-qty-id");
                      $("#" + qtyId).val(value);
                    }
                  }
                }

                function loadItemState(productCode, qty) {
                  var getEle = function(pc) {
                    var ret = null;
                    if ($('[name*=ActionCode][value="' + productCode + '"]').length != 0) {
                      ret = $('[name*=ActionCode][value="' + productCode + '"]');
                    } else if ($('[name*=ActionCode][data-default="' + productCode + '"]').length != 0) {
                      ret = $('[name*=ActionCode][data-default="' + productCode + '"]');
                    } else if ($('[name*=ActionCode][data-upgrade="' + productCode + '"]').length != 0) {
                      ret = $('[name*=ActionCode][data-upgrade="' + productCode + '"]');
                    } else if ($('[name*=ActionCheckbox][data-target="' + productCode + '"]').length != 0) {
                      ret = $('[name*=ActionCheckbox][data-target="' + productCode + '"]');
                    } else if ($('[name*=ActionCheckbox][data-new="' + productCode + '"]').length != 0) {
                      ret = $('[name*=ActionCheckbox][data-new="' + productCode + '"]');
                    }
                    return ret;
                  }
                  var ele = getEle(productCode);
                  var index = ($(ele).attr('name') || '').replace('ActionCode', '');
                  var id = productCode;
                  var originalId = id;
                  var isMod = false;
                  var modEle = $('[data-code][data-code-toggle=true][data-code-alt=' + id + '][data-code-modifier]');
                  if (modEle.length == 0) {
                    modEle = $('select[data-code-modifier] option[data-code-alt=' + id + '], select[data-code-modifier] option[value=' + id + ']');
                    if (modEle.length > 0) {
                      modEle = $(modEle).parent();
                    }
                  }
                  if (modEle.length > 0 && $('#' + modEle.attr('data-code-modifier')).length > 0) {
                    $('#' + modEle.attr('data-code-modifier')).prop('checked', true);
                    if (modEle.attr('data-code').length > 0) {
                      originalId = modEle.attr('data-code');
                    } else {
                      originalId = $('select[data-code-modifier] option[data-code-alt=' + id + ']').attr('value');
                      isMod = true;
                      if (originalId == null) {
                        originalId = $('select[data-code-modifier] option[value=' + id + ']').attr('value');
                        isMod = false;
                      }
                      var cbox = $('#' + $(modEle).attr('data-code-modifier'));
                      if (isMod) {
                        $(cbox).attr('checked', true);
                      } else {
                        $(cbox).attr('checked', false);
                      }
                    }
                    if (originalId == '') {
                      originalId = id;
                    }
                  }
                  var selEle = $('select[data-code-modifier] option[data-code-alt=' + id + '], select[data-code-modifier] option[value=' + id + ']');
                  if (selEle.length > 0) {
                    $(modEle).val(originalId);
                  }
                  var actionEle = $('[name*=ActionCode] option[value="' + id + '"]');
                  if (actionEle.length != 0) {
                    actionEle.parent().val(id);
                  }
                  if (ele == null) {
                    console.log("No matching elements, item state not loaded for " + id);
                    return;
                  } else if (ele.length > 1) {
                    console.log("Too many matching elements, item state not loaded for " + id);
                    return;
                  }
                  var preventCheck = false,
                    preventClick = false;
                  if (ele.attr('data-default') == id) {
                    if ($('#ActionQuantity' + index).length != 0) {
                      $('#ActionQuantity' + index).val(qty);
                      preventClick = true;
                      preventCheck = true;
                    }
                  } else if (ele.attr('data-upgrade') == id) {
                    ele.val(id);
                    if ($('#ActionQuantity' + index).length != 0) {
                      $('#ActionQuantity' + index).val(qty);
                      preventClick = true;
                    }
                  } else if (ele.attr('name').indexOf("ActionCheckbox") >= 0) {
                    index = ($(ele).attr('name') || '').replace('ActionCheckbox', '');
                    if (ele.data('new') == id) {
                      ele.prop('checked', true);
                    }
                    if (ele.data('target') == id) {
                      ele.prop('checked', false);
                      if ($('#ActionCode' + index).val() != ele.data('target')) {
                        $('#ActionCode' + index).val(ele.data('target'));
                      }
                    }
                    if ($('#ActionQuantity' + index).length != 0) {
                      $('#ActionQuantity' + index).val(qty);
                      preventClick = true;
                    }
                  } else if (ele.attr('type') == 'checkbox') {
                    ele.prop('checked', true);
                  }
                  var checkableEle = null;
                  var action = $('#Action' + index);
                  // Action
                  if ($(action).length > 0 && $('[name="Action' + index + '"]').length == 0 || 'radio,checkbox'.indexOf(action.attr('type')) >= 0) {
                    action.val(id);
                    checkableEle = action;
                  } else {
                    var radioWithModifier = $('input[type=radio][data-code-modifier][data-code-alt=' + id + ']');
                    var checkboxWithModifier = $('input[type=checkbox][data-code-modifier][data-code-alt=' + id + ']');
                    var radioFromGroup = $('input[type=radio][value=' + id + ']');
                    var radioSolo = $('input[type=radio][data-code=' + id + ']');
                    var selectFromGroup = $('select option[value= ' + id + ']').parent();
                    var checkboxGroup = $('input[type=checkbox][value=' + id + ']');
                    var singleCheckbox = $('input[type=checkbox][data-code=' + id + '], input[type=checkbox][data-code-alt=' + id + '] ');
                    var isSingleCheckbox = singleCheckbox.length > 0;
                    var isRadioWithModifier = $(radioWithModifier).length > 0;
                    var isCheckboxWithModifier = $(checkboxWithModifier).length > 0;
                    var isRadioSelect = $(radioFromGroup).length > 0 && $('[data-group-name=' + $(radioFromGroup).attr('name') + '][data-code-toggle=true]').length > 0;
                    var isRegularSelect = $(selectFromGroup).length > 0 && $('[data-group-name=' + $(selectFromGroup).attr('name') + '][data-code-toggle=true]').length > 0;
                    var isCheckboxSelect = $(checkboxGroup).length > 0 && $('[data-group-name=' + $(checkboxGroup).attr('name') + '][data-code-toggle=true]').length > 0;
                    var isRadioSolo = $(radioSolo).length > 0;
                    var isDataCodeSelect = $('select[data-code=' + id + '], select[data-code-alt=' + id + '] ').length > 0;
                    var selectItem = radioFromGroup;
                    //Toggle Button + Data Group + Check/Selectable Item
                    if (isRegularSelect || isRadioSelect || isCheckboxSelect) {
                      if (isRegularSelect) {
                        selectItem = selectFromGroup;
                        selectFromGroup.val(id);
                      } else if (isRadioSelect) {
                        checkableEle = radioFromGroup;
                      } else if (isCheckboxSelect) {
                        selectItem = checkboxGroup;
                        checkboxGroup.prop("checked", true);
                      }
                      var groupName = $(selectItem).attr('name');
                      var toggleButton = $('[data-group-name=' + $(selectItem).attr('name') + '][data-code-toggle=true]');
                      if ($(toggleButton).length > 0) {
                        registerEvent("ToggleButtonInitialized", function() {
                          setToggleButton(groupName, 'Add');
                        });
                      }
                    }
                    //Select w/ Data-code + qty
                    if (isDataCodeSelect) {
                      var selector = $('select[data-code=' + id + '], select[data-code-alt=' + id + '] ');
                      selector.val(qty);
                      var hasModifier = selector.attr('data-code-modifier') != null;
                      if (hasModifier) {
                        var modifierName = selector.attr('data-code-modifier');
                        var ifModifierCheckbox = 'checkbox'.indexOf($('[name=' + modifierName + ']').attr('type')) >= 0;
                        var ifModifierRadio = 'radio'.indexOf($('[name=' + modifierName + ']').attr('type')) >= 0;
                        var modifierSelected = $('select[data-code-alt=' + id + '] ');
                        if (modifierSelected.length > 0) {
                          if (ifModifierCheckbox) {
                            $('[name=' + modifierName + ']').attr('checked', true);
                          } else if (ifModifierRadio) {
                            $('[name=' + modifierName + '][value="true"]').attr('checked', true);
                          }
                        } else {
                          if (ifModifierRadio) {
                            $('[name=' + modifierName + '][value=false]').attr('checked', true);
                          } else if (ifModifierCheckbox) {
                            $('[name=' + modifierName + ']').attr('checked', false);
                          }
                        }
                      }
                    }
                    //Radio w/ Data-code only
                    else if (isRadioSolo) {
                      checkableEle = radioSolo;
                      //Radio w/ Radio-Modifier , setting False Radio
                      if (radioSolo.attr('data-code-modifier') != null && radioSolo.attr('data-code-modifier').length > 1) {
                        var modifierName = radioSolo.attr('data-code-modifier');
                        if ($('input[type=radio][name=' + modifierName + '][value=false]').length > 0) {
                          $('input[type=radio][name=' + modifierName + '][value=false]').prop('checked', true);
                        }
                      }
                    }
                    //Radio w/ Data-code and Data-Code-Modifier only (Alt code is selected) 
                    else if (isRadioWithModifier) {
                      var modId = radioWithModifier.attr('data-code-modifier');
                      checkableEle = radioWithModifier;
                      var ifModifierCheckbox = 'checkbox'.indexOf($('[name=' + modId + '],[id=' + modId + ']').attr('type')) >= 0;
                      var ifModifierRadio = 'radio'.indexOf($('[name=' + modId + ']').attr('type')) >= 0;
                      if (ifModifierCheckbox) {
                        $('#' + modId + '').attr('checked', true);
                      }
                      if (ifModifierRadio) {
                        if ($('input[type=radio][name=' + modId + '][value=true]').length > 0) {
                          $('input[type=radio][name=' + modId + '][value=true]').prop('checked', true);
                        }
                      }
                      preventClick = true;
                    }
                    //Checkbox w/ Data-code and Data-Code-Modifier only (Alt code is selected) 
                    else if (isCheckboxWithModifier) {
                      var modId = checkboxWithModifier.attr('data-code-modifier');
                      checkableEle = checkboxWithModifier;
                      preventClick = true;
                      $('#' + modId + '').attr('checked', true);
                    } else if (isSingleCheckbox) {
                      checkableEle = singleCheckbox;
                      preventClick = true;
                    }
                  }
                  if (checkableEle != null) {
                    if (!preventCheck) {
                      checkableEle.attr('checked', 'checked');
                    }
                    if (!preventClick) {
                      checkableEle.trigger('click');
                    }
                  }
                  //Multiple Data-Codes + Multiple Selects
                  var dcMultiSelect = $('[data-code*=' + id + '][data-select-id*=","][data-code-toggle=true]');
                  var dcMultiSelectCodes = dcMultiSelect.attr('data-code');
                  var dcMultiSelectId = dcMultiSelect.attr('data-select-id');
                  var usesDcMultiSelect = false;
                  if ($(dcMultiSelect).length > 0 && $('#' + $(dcMultiSelect).attr('data-select-id')).length > 0) {
                    if (dcMultiSelectCodes.indexOf(',') > -1) {
                      var dcMultiSelectCodesArray = dcMultiSelectCodes.replace(' ', '').split(',');
                      for (var i = 0; i < dcMultiSelectCodesArray.length; i++) {
                        if (id == dcMultiSelectCodesArray[i]) {
                          usesDcMultiSelect = true;
                        }
                      }
                    } else if (id == dcMultiSelectCodes) {
                      usesDcMultiSelect = true;
                    }
                    if (usesDcMultiSelect) {
                      var selectableEle;
                      if (dcMultiSelectId.indexOf(',') > -1) {
                        var dcMultiSelectors = dcMultiSelectId.split(',');
                        for (var i = 0; i < dcMultiSelectors.length; i++) {
                          if ($('#' + dcMultiSelectors[i]).length > 0) {
                            var dcMultiSelectProduct = $('#' + dcMultiSelectors[i]).attr('data-select-product');
                            if (dcMultiSelectProduct == id) {
                              selectableEle = $('#' + dcMultiSelectors[i]);
                            }
                          }
                        }
                        if (selectableEle.length > 0) {
                          $(selectableEle).val(qty);
                        }
                        registerEvent("ToggleButtonInitialized", function() {
                          setToggleButton(id, 'Add');
                        });
                      }
                    }
                  }
                  // Data-Code + Select
                  var dcSelect = $('[data-code=' + id + '][data-select-id][data-code-toggle=true]');
                  if ($(dcSelect).length <= 0) {
                    dcSelect = $('[data-code-alt=' + id + '][data-select-id][data-code-toggle=true]');
                  }
                  if ($(dcSelect).length > 0 && $('#' + $(dcSelect).attr('data-select-id')).length > 0) {
                    var selectableEle = $('#' + $(dcSelect).attr('data-select-id'));
                    $(selectableEle).val(qty);
                    registerEvent("ToggleButtonInitialized", function() {
                      setToggleButton(id, 'Add');
                    });
                  }
                  // Regular Data Code w/ Toggle Button
                  var toggleButton = $('[data-code=' + originalId + '][data-code-toggle=true]');
                  if (toggleButton.length > 0) {
                    registerEvent("ToggleButtonInitialized", function() {
                      setToggleButton(originalId, 'Add');
                    });
                  }
                  // Regular Action Code / Quantity
                  if ($('[name="ActionCode' + index + '"]').length == 0 || 'radio,checkbox'.indexOf(ele.attr('type')) >= 0) {
                    if (!ele.is(':checked')) {
                      ele.attr('checked', 'checked');
                      ele.trigger('click');
                    }
                    if ($('#ActionQuantity' + index).length > 0) {
                      $('#ActionQuantity' + index).val(qty);
                    }
                  } else {
                    $('#ActionQuantity' + index).val(qty);
                  }
                  // Set Data-Conditions
                  $.each($('[data-condition="' + id + '"][data-condition-value]:not([data-condition-missing])'), function() {
                    setDataCondition(this);
                  });
                  //Set qty value for Select with radio/checkbox
                  var qtySelect = $('[data-code=' + id + '][data-qty-id][type=radio],[data-code=' + id + '][data-qty-id][type=checkbox]');
                  if ($(qtySelect).length <= 0) {
                    qtySelect = $('[data-code-alt=' + id + '][data-qty-id][type=radio],[data-code-alt=' + id + '][data-qty-id][type=checkbox]');
                  }
                  if ($(qtySelect).length > 0 && $('#' + $(qtySelect).attr('data-qty-id')).length > 0) {
                    var selectableEle = $('#' + $(qtySelect).attr('data-qty-id'));
                    $(selectableEle).val(qty);
                  }
                }

                function setDataCondition(obj) {
                  var conditionMet = true;
                  var type = $(obj).is('input[type="checkbox"]') ? "Checkbox" : $(obj).is('input[type="radio"]') ? "Radio" : "Text";
                  var conditionValue = $(obj).attr('data-condition-value');
                  if ($(this).attr('data-condition-qty') != null && $(obj).attr('data-condition-qty').length >= 0) {
                    conditionMet = qty == parseInt($(obj).attr('data-condition-qty'));
                  }
                  if (conditionMet) {
                    switch (type) {
                      case "Checkbox":
                        if (conditionValue.toLowerCase() == "true") {
                          if (!$(obj).is(':checked')) {
                            $(obj).trigger('click');
                          }
                        } else if (conditionValue.toLowerCase() == "false") {
                          if ($(obj).is(':checked')) {
                            $(obj).trigger('click');
                          }
                        } else {
                          console.log('Condition Value for Checkboxes must be set to "true" or "false"');
                        }
                        break;
                      case "Radio":
                        $(obj).attr('checked', 'checked');
                        $(obj).trigger('click');
                        break;
                      case "Text":
                        $(obj).val(conditionValue);
                        break;
                    }
                  }
                }

                function handleCartChange() {
                  if (typeof(onCartChangeBegin) == "function") {
                    onCartChangeBegin();
                  }
                  $.get(getCartUrl('ClearCart'), {
                    t: new Date().getTime(),
                    covid: 'b46a585a-54c2-ec11-8b97-a0369f1303c7',
                    zipcode: getZip(),
                    state: getState(),
                    country: getCountry()
                  }, function() {
                    var html = '';
                    var payload = {
                      t: new Date().getTime(),
                      covid: 'b46a585a-54c2-ec11-8b97-a0369f1303c7',
                      zipcode: getZip(),
                      state: getState(),
                      country: getCountry()
                    };
                    var uniqueItems = getItems();
                    var qtyCounter = uniqueItems.length;
                    var toggleItems = [];
                    var toggleButtonCaller = null;
                    if (typeof(evt) !== 'undefined') {
                      var ev = typeof(event) === 'undefined' ? evt : evt || event;
                      if (ev != null && ev.currentTarget != null && $(ev.currentTarget).attr('data-code') != null) {
                        toggleButtonCaller = ev.currentTarget;
                        var tempdatacode = $(toggleButtonCaller).attr('data-code');
                        //Toggle Button Click
                        if ($(ev.currentTarget).attr('data-code-toggle') != null && $(ev.currentTarget).attr('data-code-toggle') == 'true') {
                          var isModified = ($(toggleButtonCaller).attr('data-code-modifier') != null && $(toggleButtonCaller).attr('data-code-modifier').length > 0 && $(toggleButtonCaller).attr('data-code-alt') != null && $(toggleButtonCaller)
                            .attr('data-code-alt').length > 0 && $('#' + $(toggleButtonCaller).attr('data-code-modifier')).is(':checked'));
                          //var tempdatacode = $(toggleButtonCaller).attr('data-code');
                          tempdatacode = isModified ? $(toggleButtonCaller).attr('data-code-alt') : tempdatacode;
                          var regex;
                          if (tempdatacode.indexOf(',') > -1) {
                            tempdatacode = tempdatacode.replace(',', ')$|^(');
                            regex = new RegExp("^(" + tempdatacode + ")$");
                          } else {
                            regex = new RegExp("^" + tempdatacode + "$");
                          }
                          var active = _dtmShoppingCart.SearchItems(regex).length > 0;
                          var $toggleButtonCaller = $(toggleButtonCaller).find('[data-code-label]').length > 0 ? $(toggleButtonCaller).find('[data-code-label]') : $(toggleButtonCaller);
                          $toggleButtonCaller.html(active ? 'Removing...' : 'Adding...');
                        } else if (overrideQty == null) {
                          var qtyOverride = $(toggleButtonCaller).attr('data-qty-override');
                          if (qtyOverride != null) {
                            overrideQty = qtyOverride;
                          } else {
                            var actionCode = $('[name*="ActionCode"][value="' + tempdatacode + '"]');
                            if (actionCode != null && actionCode.length > 0) {
                              var actionQty = $('[name*="ActionQuantity' + $(actionCode).attr('id').replace('ActionCode', '') + '"]');
                              if (actionQty != null) {
                                overrideQty = $(actionQty).val();
                              }
                            }
                          }
                        }
                      }
                    }
                    for (var index = 0; index < uniqueItems.length; index++) {
                      var item = uniqueItems[index];
                      if (item.id != '' && item.id != 'none') {
                        payload['Item' + index] = item.id;
                        payload['Qty' + index] = item.qty;
                        payload['Atr' + index] = item.atr;
                        var isGroup = false;
                        $("[data-group-name][data-code-toggle=true]").each(function(i, v) {
                          var groupName = $(this).attr('data-group-name');
                          $('select[name=' + groupName + '] option[value=' + item.id + ']').parent().each(function(j, z) {
                            isGroup = true;
                            if (item.qty == 0) {
                              setToggleButton(groupName, 'Remove');
                            }
                            toggleItems.push(groupName);
                          });
                          $('input[type=radio][name=' + groupName + '][value=' + item.id + ']').each(function(j, z) {
                            isGroup = true;
                            if (item.qty == 0) {
                              setToggleButton(groupName, 'Remove');
                            }
                            toggleItems.push(groupName);
                          });
                          $('input[type=checkbox][name=' + groupName + '][value=' + item.id + ']').each(function(j, z) {
                            isGroup = true;
                            if (item.qty == 0) {
                              setToggleButton(groupName, 'Remove');
                            }
                            toggleItems.push(groupName);
                          });
                        });
                        if (item.qty == 0) {
                          if (!isGroup) {
                            setToggleButton(item.id, 'Remove');
                            toggleItems.push(item.id);
                          }
                        }
                      }
                    }
                    $('.ddlPromo').each(function(index, item) {
                      //if digits or not a space,number, hyphen or letter, then don't let keypress work.
                      $(item).keydown(function(event) {
                        var inputValue = event.which;
                        if ((inputValue > 64 && inputValue < 91) // uppercase
                          || (inputValue >= 96 && inputValue < 123) // lowercase + numpad numbers
                          || (inputValue >= 48 && inputValue <= 57) // numbers
                          || inputValue == 9 //tab
                          || inputValue == 8 // backspace
                          || inputValue == 46 // delete key
                          || (inputValue >= 37 && inputValue <= 40)) // arrows
                        {
                          return;
                        }
                        event.preventDefault();
                      });
                      //if value contains symbol , clear field
                      $(item).on("input", function(e) {
                        var value = $(item).val();
                        var regex = new RegExp("[^A-Za-z0-9]");
                        if (regex.test(value)) {
                          $(item).val("");
                        }
                      });
                      var id = $(item).val();
                      payload['PromoCode'] = id;
                    });
                    $('.cartParam').each(function(index, item) {
                      var id;
                      var paramName = $(item).data('paramname') || item.name;
                      if ('radio'.indexOf($(item).attr('type')) >= 0) {
                        id = $('[name=' + item.name + ']:checked').val();
                      } else if ('checkbox'.indexOf($(item).attr('type')) >= 0) {
                        id = $('[name=' + item.name + ']').is(':checked');
                      } else {
                        id = $(item).val();
                      }
                      if (payload["param_" + paramName] == null || payload["param_" + paramName] == '') {
                        payload["param_" + paramName] = id;
                      }
                    });
                    $.post(getCartUrl('Edit'), payload, function(data) {
                      $('.reviewTableBody').html('');
                      $('#orderFormReviewTableItems').html('');
                      $('.futurechargerow').html('');
                      var totalQty = 0;
                      var extendedPriceTotals = [];
                      for (var i = 0; i < data.items.length; i++) {
                        var excludeFromCartCount = false;
                        var dataItem = data.items[i];
                        if (dataItem.props && dataItem.props.length > 0) {
                          for (var pi = 0; pi < dataItem.props.length; pi++) {
                            var prop = dataItem.props[pi];
                            dataItem.props[prop["Key"]] = prop["Value"];
                            if (prop["Key"] == "ExcludeFromCartCount" && prop["Value"] == 'true') {
                              excludeFromCartCount = true;
                            }
                          }
                        }
                        if (!excludeFromCartCount) {
                          totalQty += dataItem.qty;
                        }
                        var tr = renderTr(dataItem, i);
                        $('.reviewTableBody').append(tr);
                        if (dataItem.numpay > 1) {
                          extendedPriceTotals.push({
                            item: dataItem,
                            total: dataItem.extPrice * dataItem.qty
                          });
                        }
                      }
                      var subtotal = data.totalPrice.toFixed(2);
                      $('.subtotal').html('$' + subtotal);
                      $('.phtotal').html('$' + data.totalShipping.toFixed(2));
                      $('.summary-total').html('$' + data.total.toFixed(2));
                      $('.cartTotalQty').html(totalQty > 0 ? '(' + totalQty + ')' : '');
                      $('.cartTotalQtyNumbersOnly').html(totalQty > 0 ? '' + totalQty + '' : '');
                      setTax(data.zipdata);
                      if (payload['PromoCode'] && typeof hidePromoErrors === "undefined") {
                        displayError(data.errors);
                      }
                      if (payload['PromoCode'] && typeof(onApplyPromo) == "function") {
                        var promoCode = payload['PromoCode'];
                        var hasPromo = promoCode == data.promoCode;
                        var promoItem = getItemWithKeyValue(data.items, 'id', data.promoCodeTarget);
                        if (hasPromo && promoItem != null) {
                          var fireOnApplyPromo = false;
                          $('.ddlPromo').each(function(i, item) {
                            var current = $(item).attr('data-current');
                            if (typeof(current) == "undefined" || current != promoCode) {
                              $(item).attr('data-current', promoCode);
                              fireOnApplyPromo = true;
                            }
                          });
                          if (fireOnApplyPromo) {
                            onApplyPromo(promoCode, promoItem);
                          }
                        }
                      }
                      var futureChargesValues = new Array();
                      var extendedOrderTotal = (data.zipdata != null) ? data.total + data.zipdata.Amount : data.total;
                      for (var key in extendedPriceTotals) {
                        if ($.isNumeric(key)) {
                          var numPayments = extendedPriceTotals[key].item.numpay - ((extendedPriceTotals[key].item.price + extendedPriceTotals[key].item.shipping) !== 0 ? 1 : 0);
                          var monthlyTotal = parseFloat(extendedPriceTotals[key].total) / numPayments;
                          extendedOrderTotal += monthlyTotal;
                          for (var i = 0; i < numPayments; i++) {
                            if (futureChargesValues[i] == undefined) {
                              futureChargesValues[i] = monthlyTotal;
                            } else {
                              futureChargesValues[i] += monthlyTotal;
                            }
                          }
                        }
                      }
                      var startingLabelIndex = 2;
                      var labelCount = startingLabelIndex;
                      var tr = '<tr class="futurechargerow"><td colspan="' + 4 + '"><b>' + "Future Charges" + '</b></td></tr>';
                      if (futureChargesValues.length > 0) {
                        for (var i = 0; i < futureChargesValues.length; i++) {
                          tr += '<tr class="futurechargerow"><td colspan="' + 3 + '"><i>' + getFutureChargesLabels(labelCount, startingLabelIndex) + '</i></td><td> $' + futureChargesValues[i].toFixed(2) + '</td></tr>';
                          labelCount++;
                        }
                        $('.reviewTableFoot').append(tr);
                      }

                      function getFutureChargesLabels(labelCount, startingLabelIndex) {
                        var additive = labelCount - startingLabelIndex;
                        var days = (additive + 1) * 30;
                        switch (labelCount) {
                          case 1:
                            var firstFutureChargeLabel = "" != "" ? "1 " + days + " " : "1st Payment in " + days + " days";
                            return firstFutureChargeLabel;
                          case 2:
                            var secondFutureChargeLabel = "" != "" ? "2 " + days + " " : "2nd Payment in " + days + " days";
                            return secondFutureChargeLabel;
                          case 3:
                            var thirdFutureChargeLabel = "" != "" ? "3 " + days + " " : "3rd Payment in " + days + " days";
                            return thirdFutureChargeLabel;
                          default:
                            var thFutureChargeLabel = "" != "" ? labelCount + " " + days + " " : labelCount + "th Payment in " + days + " days";
                            return thFutureChargeLabel;
                        }
                      }

                      function getFirstPaymentLabel(price, shipping, tax) {
                        var shippingString = (shipping > 0) ? " + $" + shipping.toFixed(2) : "";
                        var taxString = (tax > 0) ? " + $" + tax.toFixed(2) : "";
                        if (shipping > 0 || tax > 0) {
                          return "Your 1st payment is " + "$" + price.toFixed(2) + shippingString + taxString;
                        }
                        return "Your 1st payment is " + price.toFixed(2);
                      }

                      function getExtendedPaySummaryLabels(labelCount) {
                        switch (labelCount) {
                          case 2:
                            label = "Your 2nd payment is $";
                            break;
                          case 3:
                            label = "Your 3rd payment is $";
                            break;
                          default:
                            label = "Your " + labelCount + "th payment is $";
                            break;
                        }
                        return label;
                      }
                      if (typeof(onCartChangeComplete) == "function") {
                        onCartChangeComplete();
                      }
                      if (_dtmShoppingCart != null) {
                        setTimeout(function() {}, 800);
                        var rbgroups = [];
                        for (var i = 0; i < toggleItems.length; i++) {
                          var toggleItem = toggleItems[i];
                          var code = toggleItem;
                          var regex = new RegExp("^" + toggleItem + "$");
                          var active = _dtmShoppingCart.SearchItems(regex).length > 0;
                          var isGroup = $('input[type=radio][name=' + toggleItem + ']').length > 0;
                          code = $('input[type=radio][value=' + toggleItem + '][name]:checked').length > 0 ? $('input[type=radio][value=' + toggleItem + '][name]:checked').attr('name') : code;
                          if (isGroup) {
                            var selectedItem = $('input[type=radio][name=' + toggleItem + ']:checked').val();
                            var cartRegex = new RegExp("^" + selectedItem + "$");
                            var cartItem = _dtmShoppingCart.SearchItems(cartRegex);
                            var hasItem = cartItem.length > 0;
                            if (hasItem) {
                              setToggleButtonQty(code, cartItem.TotalQuantity);
                            }
                          }
                          setToggleButton(code, active ? 'Add' : 'Remove');
                        };
                        $('[data-code-toggle=true][data-code]').not('[data-code-modifier]').each(function(index, item) {
                          var code = $(this).attr('data-code');
                          if (code.indexOf(',') > -1) {
                            var allDataCodes = code.split(',');
                            var datacodes = code.replace(',', ')$|^(');
                            var regex = new RegExp("^(" + datacodes + ")$");
                            var active = _dtmShoppingCart.SearchItems(regex).length > 0;
                            setToggleButton(code, active ? 'Add' : 'Remove');
                          } else {
                            var isCB = 'checkbox'.indexOf($(this).attr('type')) >= 0;
                            var code = $(this).attr('data-code');
                            var regex = new RegExp("^" + code + "$");
                            var active = _dtmShoppingCart.SearchItems(regex).length > 0;
                            if (isCB) {
                              $(this).prop("checked", active);
                            }
                            setToggleButton(code, active ? 'Add' : 'Remove');
                          }
                        });
                        $("[data-code-toggle=true][data-group-name]").each(function(i, item) {
                          var groupName = $(this).attr('data-group-name');
                          var isDataCheckbox = $(this).attr('data-checkbox') != null && $(this).attr('data-checkbox').length > 0;
                          var altCodes = "";
                          var hasQtySelect = $(this).attr('data-qty-id');
                          var selector = ($(item)[0].hasAttribute('data-select')) ? ('[name="' + groupName + '"] option[value != ""]') : ('[name="' + groupName + '"]');
                          var removeItems = [];
                          var dataCodes = $(selector).map(function() {
                            return this.value;
                          }).get().join(')$|^(');
                          var hasModifier = $(this).attr('data-code-modifier') != null && $(this).attr('data-code-modifier').length > 0;
                          if (hasModifier) {
                            altCodes = $('[name="' + groupName + '"]').map(function() {
                              return $(this).attr('data-code-alt');
                            }).get().join(')$|^(');
                          }
                          var regex = hasModifier ? new RegExp("^(" + dataCodes + ")$|^(" + altCodes + ")$") : new RegExp("^(" + dataCodes + ")$");
                          var active = _dtmShoppingCart.SearchItems(regex).length > 0;
                          setToggleButton(groupName, active ? 'Add' : 'Remove');
                          if (active && typeof hasQtySelect !== typeof undefined) {
                            setToggleButtonQty(groupName, _dtmShoppingCart.SearchItems(regex).TotalQuantity);
                          }
                          if (isDataCheckbox) {
                            $('[name="' + groupName + '"]').each(function(idx, cbx) {
                              var modifier = hasModifier ? $(cbx).attr('data-code-modifier') : null;
                              var isModified = modifier != null ? $('#' + modifier + '').is(':checked') : false;
                              var code = isModified ? $(cbx).attr('data-code-alt') : $(cbx).val();
                              var regex = new RegExp("^" + code + "$");
                              var active = _dtmShoppingCart.SearchItems(regex).length > 0;
                              $(cbx).prop("checked", active);
                            });
                          }
                        });
                        $('[data-code-toggle=true][data-code][data-code-modifier][data-code-alt]').each(function(index, item) {
                          var oldCode = $(this).attr('data-code');
                          var alt = $(this).attr('data-code-alt');
                          var modifier = $(this).attr('data-code-modifier');
                          var isChecked = $('#' + modifier).is(':checked');
                          var code = !isChecked ? $(this).attr('data-code') : $(this).attr('data-code-alt');
                          var regex = new RegExp("^" + code + "$");
                          var active = _dtmShoppingCart.SearchItems(regex).length > 0;
                          setToggleButton(oldCode, active ? 'Add' : 'Remove');
                        });
                      }
                      $('[data-code-toggle=true]').removeClass('disableToggleClick');
                      //Check if cart has any multipay items
                      var hasMultipay = false;
                      for (var i = 0; i < data.items.length; i++) {
                        var item = data.items[i];
                        if (item && item.numpay && item.numpay > 1) {
                          hasMultipay = true;
                          break;
                        }
                      }
                      //Toggle shipping Fields
                      toggleShippingFields(hasMultipay);
                      data.hasMultipay = hasMultipay;
                      _dtmShoppingCart.HasMultipay = hasMultipay;
                      triggerEvent("CartChange", data);
                    }, "json").fail(function() {
                      if (typeof(onCartChangeComplete) == "function") {
                        onCartChangeComplete();
                      }
                      $('[data-code-toggle=true]').removeClass('disableToggleClick');
                    });
                  });
                }

                function displayError(errorArray) {
                  if (errorArray && errorArray.length > 0) {
                    var ele = $('form').find('span[style="color: #FF0000; font-weight: bold"]');
                    if (ele.length == 0 && $('.vse').length > 0) {
                      ele = $('.vse');
                    }
                    if (_firstRun) {
                      if (ele.children().length) {
                        $.each(ele.find('li'), function(index, item) {
                          data.errors.push($(item).text());
                        });
                      }
                    }
                    var html = '<div class="validation-summary-errors"><span>The following errors have occured:</span>' + '<ul>';
                    for (var i = 0; i < errorArray.length; i++) {
                      if (html.indexOf(errorArray[i]) < 0) {
                        html += '<li>' + errorArray[i] + '</li>';
                      }
                    }
                    html += '</ul></div>';
                    if (!_firstRun) {
                      ele.html(html);
                      _dtmShoppingCart.ScrollToErrors(ele);
                    } else {
                      _firstRun = false;
                    }
                  } else if (!_firstRun) {
                    var ele = $('form').find('span[style="color: #FF0000; font-weight: bold"]');
                    if (ele.length == 0 && $('.vse').length > 0) {
                      ele = $('.vse');
                    }
                    ele.html('');
                  }
                }

                function setToggleButton(code, mode) {
                  triggerEvent("ChangeToggleButtonState", {
                    key: code,
                    state: mode
                  });
                }

                function registerEvent(evType, fn, element, useCapture) {
                  var elm = element || window;
                  if (elm.addEventListener) {
                    elm.addEventListener(evType, fn, useCapture || false);
                  } else if (elm.attachEvent) {
                    var r = elm.attachEvent(evType, fn);
                  } else {
                    elm[evType] = fn;
                  }
                }

                function triggerEvent(eventName, data, element) {
                  try {
                    var event;
                    var payload = (data && typeof(data.detail) != "undefined") ? data : (data ? {
                      detail: data
                    } : {
                      detail: ''
                    });
                    if (typeof window.CustomEvent === 'function') {
                      event = new CustomEvent(eventName, payload || {
                        detail: ''
                      });
                    } else if (document.createEvent) {
                      event = document.createEvent('HTMLEvents');
                      event.detail = payload.detail;
                      event.initEvent(eventName, true, true);
                    } else if (document.createEventObject) {
                      event = document.createEventObject();
                      event.detail = payload.detail;
                      event.eventType = eventName;
                    }
                    event.eventName = eventName;
                    var el = element || window;
                    if (el.dispatchEvent) {
                      el.dispatchEvent(event);
                    } else if (el.fireEvent && htmlEvents[eventName]) {
                      el.fireEvent(event.eventType, event);
                    } else if (el[eventName]) {
                      el[eventName]();
                    } else if (el['on' + eventName]) {
                      el['on' + eventName]();
                    }
                  } catch (error) {
                    console.log('Error executing ' + name + ' Event');
                  }
                }

                function getItemWithKeyValue(items, key, value) {
                  for (var i = 0; i < items.length; i++) {
                    var item = items[i];
                    if (item[key] == value) {
                      return item;
                    }
                  }
                  return null;
                }

                function renderTr(dataItem, i) {
                  if (!dataItem.props["HideProduct"]) {
                    var tr = '<tr>';
                    tr += '<td data-eflex--category-label="Item">' + dataItem.name + '</td>';
                    tr += '<td data-cart-code="' + dataItem.code + 'Quantity" data-eflex--category-label="Quantity">' + dataItem.qty + '</td>';
                    tr += '<td data-cart-code="' + dataItem.code + 'Price" data-eflex--category-label="Price">$' + (dataItem.price * dataItem.qty).toFixed(2) + '</td>';
                    tr += '<td data-cart-code="' + dataItem.code + 'Shipping" data-eflex--category-label="S&H">$' + (dataItem.shipping * dataItem.qty).toFixed(2) + '</td>';
                    tr += '</tr>';
                    return tr;
                  }
                  return '';
                }

                function updateTr(dataItem, i) {
                  var qtyTd = $("[data-cart-code='" + dataItem.code + "Quantity']");
                  if (qtyTd.length != 0) {
                    var Quantity = qtyTd.children("[name*='ActionQuantity']")[0];
                    $(Quantity).val(dataItem.qty);
                    if (qtyTd.attr('data-cart-noedit')) {
                      qtyTd.html(dataItem.qty);
                      qtyTd.append(Quantity);
                    }
                    $("[data-cart-code='" + dataItem.code + "Price']").html('$' + (dataItem.price * dataItem.qty).toFixed(2) + '');
                    $("[data-cart-code='" + dataItem.code + "Shipping']").html('$' + (dataItem.shipping * dataItem.qty).toFixed(2) + '');
                  } else {
                    i = $('#orderFormReviewTableItems').children("input").length;
                    var tr = renderTr(dataItem, i);
                    $('.reviewTableBody').append(tr);
                  }
                }

                function updateCartItems(dataItems) {
                  $(dataItems).each(function(index, item) {
                    var exists = false;
                    $(cartItems).each(function(i, cartItem) {
                      if (cartItem.code == item.code) {
                        cartItem.added = true;
                        exists = true;
                        return;
                      }
                    });
                    if (!exists) {
                      cartItems.push({
                        code: item.code,
                        added: true
                      })
                    };
                  });
                  $(cartItems).each(function(index, cartItem) {
                    var exists = false;
                    $(dataItems).each(function(i, item) {
                      if (cartItem.code == item.code) {
                        exists = true;
                        return;
                      }
                    });
                    cartItem.added = exists;
                  });
                }

                function updateRemovedTr() {
                  $(cartItems).each(function(index, item) {
                    if (!item.added) {
                      var qtyTd = $("[data-cart-code='" + item.code + "Quantity']");
                      var Quantity = qtyTd.children("[name*='ActionQuantity']")[0];
                      $(Quantity).val('0');
                      if (qtyTd.attr('data-cart-noedit')) {
                        qtyTd.html('0');
                        qtyTd.append(Quantity);
                      }
                      $("[data-cart-code='" + item.code + "Price']").html('$' + (0).toFixed(2) + '');
                      $("[data-cart-code='" + item.code + "Shipping']").html('$' + (0).toFixed(2) + '');
                    }
                  });
                }

                function setTax(data) {
                  if (data != null) {
                    var zip = $('.zc').val();
                    var shipZip = $('#ShippingZip').val();
                    var billZip = $('#BillingZip').val();
                    var shipCity = $('#ShippingCity').val();
                    var billCity = $('#BillingCity').val();
                    var shipState = $('#ShippingState').val();
                    var billState = $('#BillingState').val();
                    var shipCountry = $('#ShippingCountry').val();
                    var billCountry = $('#BillingCountry').val();
                    if ($('#ShippingIsDifferentThanBilling').is(':checked') && lastChangeType == 'Shipping') {
                      if (data.City != '' && data.City != null && shipCity == "") {
                        $('#ShippingCity').val(data.City);
                      }
                      if (data.CountryCode != '' && data.CountryCode != null && shipCountry == "") {
                        $('#ShippingCountry').val(data.CountryCode);
                      }
                      if (data.StateCode != '' && data.StateCode != null && shipState == "") {
                        $('#ShippingState').val(data.StateCode);
                      }
                      if (shipZip == "") {
                        $('#ShippingZip').val(zip);
                      }
                    } else {
                      if (data.City != '' && data.City != null && billCity == "") {
                        $('#BillingCity').val(data.City);
                      }
                      if (data.CountryCode != '' && data.CountryCode != null && billCountry == "") {
                        $('#BillingCountry').val(data.CountryCode);
                      }
                      if (data.StateCode != '' && data.StateCode != null && billState == "") {
                        $('#BillingState').val(data.StateCode);
                      }
                      if (billZip == "") {
                        $('#BillingZip').val(zip);
                      }
                    }
                    $('.taxtotal').html('$' + data.Amount.toFixed(2));
                    $('.summary-total').html('$' + data.TaxTotal.toFixed(2));
                  }
                }

                function getZip() {
                  return $('#zc').val();
                }

                function getState() {
                  return $('#ShippingIsDifferentThanBilling').is(':checked') ? $('#ShippingState').val() : $('#BillingState').val();
                }

                function getCountry() {
                  return $('#ShippingIsDifferentThanBilling').is(':checked') ? $('#ShippingCountry').val() : $('#BillingCountry').val();
                }
                var currentzipcode = '',
                  lastChangeType = '';

                function updateZip(zipcode, state, country) {
                  if (zipcode != '' && zipcode != currentzipcode && zipcode.length >= 5) {
                    currentzipcode = zipcode;
                    $('.zc').val(zipcode);
                    handleCartChange();
                  }
                }

                function getItems(items) {
                  var uniqueItems = new Array();
                  $("[name*='ActionQuantity']").each(function(index, item) {
                    var id;
                    var itemIndex = (item.getAttribute('data-index') ? item.getAttribute('data-index') : (item.id || '').replace('ActionQuantity', ''));
                    if ($('[name="ActionCode' + itemIndex + '"]').length == 0 || 'radio,checkbox'.indexOf($('[name="ActionCode' + itemIndex + '"]').attr('type')) >= 0) {
                      if ($('[name="ActionCode' + itemIndex + '"][data-upgrade]').length != 0) {
                        id = $('[name="ActionCode' + itemIndex + '"]').val();
                      } else {
                        id = $('[name="ActionCode' + itemIndex + '"]:checked').val();
                      }
                    } else {
                      id = $('[name="ActionCode' + itemIndex + '"]').val();
                      if ($('[name="ActionCode' + itemIndex + '"]').attr('data-checkbox')) {
                        var checkBoxName = $('[name="ActionCode' + itemIndex + '"]').attr('name').replace('Code', 'Checkbox');
                        var checkBoxEle = $('[name="' + checkBoxName + '"]');
                        if (checkBoxEle.attr('data-new') == id) {
                          checkBoxEle.prop('checked', true);
                        }
                      }
                    }
                    if (id != null && id != '' && id != 'none') {
                      var qty = $(item).val();
                      var atr;
                      if ($('[name="ActionAttribute' + itemIndex + '"]').length == 0 || 'radio,checkbox'.indexOf($('[name="ActionAttribute' + itemIndex + '"]').attr('type')) >= 0) {
                        if ($('[name="ActionAttribute' + itemIndex + '"]').length == 1) {
                          atr = $('[name="ActionAttribute' + itemIndex + '"]:checked').val();
                        } else {
                          var allValues = new Array();
                          $.each($('[name="ActionAttribute' + itemIndex + '"]:checked'), function() {
                            allValues.push($(this).val());
                          });
                          atr = allValues.join(',');
                        }
                      } else {
                        if ($('[name="ActionAttribute' + itemIndex + '"]').length == 1) {
                          atr = $('[name="ActionAttribute' + itemIndex + '"]').val();
                        } else {
                          var allValues = new Array();
                          $.each($('[name="ActionAttribute' + itemIndex + '"]'), function() {
                            allValues.push($(this).val());
                          });
                          atr = allValues.join(',');
                        }
                      }
                      if (uniqueItems[id]) {
                        for (var ui = 0; ui < uniqueItems.length; ui++) {
                          var uitem = uniqueItems[ui];
                          if (uitem.id == id) {
                            uitem.qty += parseInt(qty);
                            break;
                          }
                        }
                      } else {
                        uniqueItems[id] = true;
                        uniqueItems[uniqueItems.length] = {
                          id: id,
                          qty: parseInt(qty),
                          atr: atr
                        };
                      }
                      if ($('[name="MatchProductQuantity' + itemIndex + '"]').length == 0 || 'radio,checkbox'.indexOf($('[name="MatchProductQuantity' + itemIndex + '"]').attr('type')) >= 0) {
                        var match = $('[name="MatchProductQuantity' + itemIndex + '"]:checked').val();
                      } else {
                        var match = $('[name="MatchProductQuantity' + itemIndex + '"]').val();
                      }
                      if (typeof match != "undefined" && match.length > 0) {
                        if (uniqueItems[match]) {
                          for (var ui = 0; ui < uniqueItems.length; ui++) {
                            var uitem = uniqueItems[ui];
                            if (uitem.id == match) {
                              uitem.qty += parseInt(qty);
                              break;
                            }
                          }
                        } else {
                          uniqueItems[match] = true;
                          uniqueItems[uniqueItems.length] = {
                            id: match,
                            qty: parseInt(qty),
                            atr: atr
                          };
                        }
                      }
                    } else {
                      console.log('id was blank, skipping.')
                    }
                  });
                  return uniqueItems;
                }
                var DtmShoppingCart = function() {
                  var self = this;
                  self.scrollToTopPosition = parseFloat("-200");
                  self.CurrentErrors = [];
                  self.Count = function() {
                    return self.Items().length;
                  }
                  self.Items = function() {
                    return getItems();
                  };
                  self.HasMultipay = false;
                  self.SearchItems = function(pattern) {
                    var items = getItems();
                    var results = [];
                    results["TotalQuantity"] = 0;
                    for (var i = 0; i < items.length; i++) {
                      var item = items[i];
                      if (new RegExp(pattern).test(item.id)) {
                        results[results.length] = item;
                        results[item.id] = item;
                        results["TotalQuantity"] += item.qty;
                      }
                    }
                    return results;
                  };
                  self.SetItems = function(items) {
                    setItems(items);
                  }
                  self.AddErrors = function(errorsArray) {
                    var allErrors = self.CurrentErrors.concat(errorsArray);
                    var uniqueErrors = [];
                    for (var i = 0, l = allErrors.length; i < l; i++) {
                      if (uniqueErrors.indexOf(allErrors[i]) === -1) {
                        uniqueErrors.push(allErrors[i]);
                      }
                    }
                    self.DisplayErrors(uniqueErrors, true);
                    self.ScrollToErrors();
                  };
                  self.RemoveErrors = function(errorsArray) {
                    var currentErrors = self.CurrentErrors;
                    var uniqueErrors = [];
                    for (var i = 0, l = currentErrors.length; i < l; i++) {
                      var currentError = currentErrors[i];
                      var alreadyExists = false;
                      for (var j = 0; j < errorsArray.length; j++) {
                        var toRemoveError = errorsArray[j];
                        if (currentErrors.indexOf(toRemoveError) > -1 && currentError == toRemoveError) {
                          alreadyExists = true;
                        }
                      }
                      if (uniqueErrors.indexOf(currentError) === -1 && !alreadyExists) {
                        uniqueErrors.push(currentError);
                      }
                    }
                    self.DisplayErrors(uniqueErrors, true);
                  };
                  self.ScrollToErrors = function(customElement) {
                    if (self.CurrentErrors.length > 0) {
                      var ele = getErrorElement();
                      $.scrollTo(ele, {
                        top: self.scrollToTopPosition
                      });
                    } else if (customElement) {
                      $.scrollTo(customElement, {
                        top: self.scrollToTopPosition
                      });
                    }
                  };

                  function getErrorElement() {
                    var ele = $('form').find('span[style="color: #FF0000; font-weight: bold"]');
                    if (ele.length == 0) {
                      //For IE
                      ele = $('form').find('span[style="color: rgb(255, 0, 0); font-weight: bold;"]');
                    }
                    if (ele.length == 0 && $('.vse').length > 0) {
                      ele = $('.vse');
                    }
                    return ele;
                  }
                  self.UpgradeItem = function(currentCode, newCode) {
                    var items = self.Items();
                    for (var i = 0; i < items.length; i++) {
                      var item = items[i];
                      if (item.id == currentCode) {
                        item.id = newCode;
                        break;
                      }
                    }
                    self.SetItems(items);
                  };
                  self.DisplayErrors = function(errorsArray, show) {
                    if (errorsArray && errorsArray.length > 0) {
                      var ele = getErrorElement();
                      if (_firstRun) {
                        if (ele.children().length) {
                          $.each(ele.find('li'), function(index, item) {
                            errorsArray.push($(item).text());
                          });
                        }
                      }
                      var html = '<div class="validation-summary-errors"><span>The following errors have occured:</span>' + '<ul>';
                      for (var i = 0; i < errorsArray.length; i++) {
                        if (html.indexOf(errorsArray[i]) < 0) {
                          html += '<li>' + errorsArray[i] + '</li>';
                        }
                      }
                      html += '</ul></div>';
                      self.CurrentErrors = errorsArray;
                      if (!_firstRun || show) {
                        ele.html(html);
                        self.ScrollToErrors();
                      } else {
                        _firstRun = false;
                      }
                    } else if (!_firstRun || show) {
                      var ele = getErrorElement();
                      ele.html('');
                      self.CurrentErrors = [];
                    }
                  };
                };
                var _dtmShoppingCart = new DtmShoppingCart();
                //Disable and hide Shipping checkbox if isMultipay = true
                function toggleShippingFields(isMultipay) {
                  let shippingCbx = $("[name='ShippingIsDifferentThanBilling']:checkbox");
                  let shippingLabel = $("#ShippingIsSame");
                  if (!shippingLabel) {
                    shippingLabel = shippingCbx.parent().parent();
                  }
                  if (isMultipay) {
                    if (shippingCbx.is(":checked")) {
                      shippingCbx.prop("checked", false);
                      toggleShipping();
                    }
                    shippingCbx.prop("disabled", true);
                    shippingLabel.hide();
                  } else if ($('#otCARD').length == 0 || $('#otCARD').is(':checked')) {
                    shippingCbx.prop("disabled", false);
                    shippingLabel.show();
                  }
                }
                registerEvent("PaymentOptionSelected", function() {
                  if (_dtmShoppingCart) {
                    toggleShippingFields(_dtmShoppingCart.HasMultipay);
                  }
                });
              </script>
            </div>
          </div>
        </fieldset>
      </div>
      <div class="checkout__take-all">
        <div class="checkout__group">
          <div class="checkout__take-some view" data-viewport="">
            <div class="view__scroll">
              <fieldset class="fieldset fieldset--frame">
                <div class="fieldset__group fieldset__container" id="paymentInformation">
                  <h2 class="fieldset__take-all fieldset__title">STEP 3: Select Payment Type</h2>
                  <!-- Card Type -->
                  <div class="fieldset__take-all form message">
                    <div class="checkout-option express-checkout__checkout-option" id="divPayPal-braintree" style="display: flex;"><input class="radio-button element-controller__controller" id="otPayPal-braintree" name="OrderType"
                        value="PayPal,braintree" type="radio" aria-controls="paypal-button" aria-expanded="false"><label class="label express-checkout__label" for="otPayPal-braintree"><span class="express-checkout__radio"></span><img
                          class="checkout-option__img checkout-option__paypal-braintree" src="/shared/images/payment/paypal.svg?v=1" alt="Checkout"></label></div>
                    <div class="checkout-option express-checkout__checkout-option" id="divCARD"><input class="radio-button element-controller__controller" id="otCARD" name="OrderType" value="card,braintree" type="radio"
                        aria-controls="paymentInformationStep billingInformation recaptcha-container AcceptOfferButton ProcessOrderDisclaimer" aria-expanded="false"><label class="label ccImage express-checkout__label" for="otCARD"><span
                          class="express-checkout__radio"></span><img id="visaImg" src="/shared/images/payment/visa.svg?v=6.0.1718.1539" alt="visa accepted." width="37"><img id="mastercardImg"
                          src="/shared/images/payment/mastercard.svg?v=6.0.1718.1539" alt="mastercard accepted." width="37"><img id="amexImg" src="/shared/images/payment/amex.svg?v=6.0.1718.1539" alt="amex accepted." width="37"><img id="discoverImg"
                          src="/shared/images/payment/discover.svg?v=6.0.1718.1539" alt="discover accepted." width="37"></label></div>
                  </div>
                  <div class="fieldset__group express-checkout__element" id="paymentInformationStep" data-express-checkout-order-type="CARD">
                    <!-- Card Number -->
                    <div class="fieldset__take-all form message">
                      <div role="alert" id="vse-payment" data-vse-scroll=""></div>
                      <div class="form__field-label">
                        <div id="CardNumberHostedField" class="btHostedField form__field"><iframe src="https://assets.braintreegateway.com/web/3.36.0/html/hosted-fields-frame.min.html#c9ddf5fb-774b-44d0-aae9-5fe748eaa6d0" frameborder="0"
                            allowtransparency="true" scrolling="no" type="number" name="braintree-hosted-field-number" title="Secure Credit Card Frame - Credit Card Number" id="braintree-hosted-field-number"
                            style="border: none; width: 100%; height: 100%; float: left;"></iframe>
                          <div style="clear: both;"></div>
                        </div>
                        <label for="CardNumber" class="message__label">
                          <span class="form__error">* </span>Card Number </label>
                        <span class="message__group" role="alert">
                          <span class="message__invalid"> Please enter a valid card number. </span>
                        </span>
                        <input type="hidden" id="CardType" name="CardType">
                      </div>
                    </div>
                    <!-- Card Expiration Month -->
                    <div id="CardExpirationCt" class="form message" style="display: none;">
                      <div class="form__field-label">
                        <div class="form form--select message__select">
                          <div class="form__contain">
                            <div id="CardExpirationHostedField" class="btHostedField"><iframe src="https://assets.braintreegateway.com/web/3.36.0/html/hosted-fields-frame.min.html#c9ddf5fb-774b-44d0-aae9-5fe748eaa6d0" frameborder="0"
                                allowtransparency="true" scrolling="no" type="expirationDate" name="braintree-hosted-field-expirationDate" title="Secure Credit Card Frame - Expiration Date" id="braintree-hosted-field-expirationDate"
                                style="border: none; width: 100%; height: 100%; float: left;"></iframe>
                              <div style="clear: both;"></div>
                            </div>
                          </div>
                        </div>
                        <label for="CardExpirationMonth" class="message__label"><span class="requiredIcon">*</span>Expiration Date<span class="labelColon">:</span></label>
                        <span class="message__group" role="alert">
                          <span class="message__invalid"> Please choose an expiration month. </span>
                        </span>
                      </div>
                    </div>
                    <!-- Card Expiration Year -->
                    <!-- Card CVV2 -->
                    <div id="CardCVV2Ct" class="fieldset__take-all form message">
                      <div class="form__field-label form__cvv">
                        <div id="CardCvv2HostedField" class="btHostedField form__field"><iframe src="https://assets.braintreegateway.com/web/3.36.0/html/hosted-fields-frame.min.html#c9ddf5fb-774b-44d0-aae9-5fe748eaa6d0" frameborder="0"
                            allowtransparency="true" scrolling="no" type="cvv" name="braintree-hosted-field-cvv" title="Secure Credit Card Frame - CVV" id="braintree-hosted-field-cvv"
                            style="border: none; width: 100%; height: 100%; float: left;"></iframe>
                          <div style="clear: both;"></div>
                        </div>
                        <label for="CardCvv2" class="message__label">
                          <span class="form__error">* </span>CVV2 </label>
                        <span class="message__group" role="alert">
                          <span class="message__invalid"> Please enter a CVV number. </span>
                        </span>
                        <a data-modal-dialog-id="cvv" data-modal-dialog-actor="open" data-modal-dialog-iframe="" data-modal-dialog-title="About CVV2" href="/shared/cvv.html" title="Learn What is CVV2" id="cvv2-link" class="store__link form__link">What is CVV2?</a>
                      </div>
                    </div>
                  </div>
                </div>
              </fieldset>
            </div>
          </div>
          <div id="billingInformation" class="checkout__take-some view express-checkout__element" data-express-checkout-order-type="CARD" style="display: none;">
            <div class="checkout__copy view__scroll">
              <fieldset class="fieldset fieldset--frame">
                <div class="fieldset__group fieldset__container">
                  <h2 class="fieldset__take-all fieldset__title">STEP 4: Billing Address</h2>
                  <!-- First Name -->
                  <div class="form message">
                    <div class="form__field-label">
                      <input type="text" title="First name can only contain letter characters" data-required="true" autocomplete="billing given-name" name="BillingFirstName" id="BillingFirstName" placeholder="*First Name"
                        class="dtm__restyle form__field  o-grid__col @xs-u-vw--100" value="">
                      <label for="BillingFirstName" class="message__label">
                        <span class="form__error">* </span>First Name </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please enter a first name. </span>
                      </span>
                    </div>
                  </div>
                  <!-- Last Name -->
                  <div class="form message">
                    <div class="form__field-label">
                      <input type="text" name="BillingLastName" id="BillingLastName" placeholder="*Last Name" data-required="true" autocomplete="billing family-name" class="dtm__restyle form__field  o-grid__col @xs-u-vw--100" value="">
                      <label for="BillingLastName" class="message__label">
                        <span class="form__error">* </span>Last Name </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please enter a last name. </span>
                      </span>
                    </div>
                  </div>
                  <!-- Street -->
                  <div class="fieldset__take-all form message">
                    <div class="form__field-label">
                      <input type="text" name="BillingStreet" id="BillingStreet" placeholder="*Address" data-required="true" autocomplete="section-bill billing address-line1"
                        class="dtm__restyle form__field  o-grid__col @xs-u-vw--100 ui-autocomplete-input" value="">
                      <label for="BillingStreet" class="message__label">
                        <span class="form__error">* </span>Address </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please enter an address. </span>
                      </span>
                    </div>
                  </div>
                  <!-- Street 2 -->
                  <div class="fieldset__take-all form message">
                    <div class="form__field-label">
                      <input type="text" name="BillingStreet2" id="BillingStreet2" placeholder="Suite / Apt" aria-describedby="BillingStreet2Description" autocomplete="billing address-line2" class="dtm__restyle form__field  o-grid__col @xs-u-vw--100"
                        value="">
                      <label for="BillingStreet2" class="message__label"> Address 2 </label>
                      <span class="message__group" role="alert">
                        <small id="BillingStreet2Description" class="message__label"> Example: Suite / Apt., etc. </small>
                        <span class="message__invalid"> Please enter an address. </span>
                      </span>
                    </div>
                  </div>
                  <!-- City -->
                  <div class="fieldset__take-some form message">
                    <div class="form__field-label">
                      <input type="text" name="BillingCity" id="BillingCity" placeholder="*City" data-required="true" autocomplete="billing address-level2" class="dtm__restyle form__field  o-grid__col @xs-u-vw--100" value="">
                      <label for="BillingCity" class="message__label">
                        <span class="form__error">* </span>City </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please enter a city. </span>
                      </span>
                    </div>
                  </div>
                  <!-- State -->
                  <div class="fieldset__take-some form message">
                    <div class="form__field-label" id="billStateParent">
                      <div class="form form--select message__select">
                        <div class="form__contain">
                          <select autocomplete="billing address-level1" class="dtm__restyle form__field" data-required="true" id="BillingState" name="BillingState">
                            <option value="AL">Alabama</option>
                            <option value="AK">Alaska</option>
                            <option value="AB">Alberta</option>
                            <option value="AZ">Arizona</option>
                            <option value="AR">Arkansas</option>
                            <option value="BC">British Columbia</option>
                            <option value="CA">California</option>
                            <option value="CO">Colorado</option>
                            <option value="CT">Connecticut</option>
                            <option value="DE">Delaware</option>
                            <option value="DC">District Of Columbia</option>
                            <option value="FL">Florida</option>
                            <option value="GA">Georgia</option>
                            <option value="GU">Guam</option>
                            <option value="HI">Hawaii</option>
                            <option value="ID">Idaho</option>
                            <option value="IL">Illinois</option>
                            <option value="IN">Indiana</option>
                            <option value="IA">Iowa</option>
                            <option value="KS">Kansas</option>
                            <option value="KY">Kentucky</option>
                            <option value="LA">Louisiana</option>
                            <option value="ME">Maine</option>
                            <option value="MB">Manitoba </option>
                            <option value="MD">Maryland</option>
                            <option value="MA">Massachusetts</option>
                            <option value="MI">Michigan</option>
                            <option value="MN">Minnesota</option>
                            <option value="MS">Mississippi</option>
                            <option value="MO">Missouri</option>
                            <option value="MT">Montana</option>
                            <option value="NE">Nebraska</option>
                            <option value="NV">Nevada</option>
                            <option value="NB">New Brunswick</option>
                            <option value="NH">New Hampshire</option>
                            <option value="NJ">New Jersey</option>
                            <option value="NM">New Mexico</option>
                            <option value="NY">New York</option>
                            <option value="NL">Newfoundland and Labrador</option>
                            <option value="NC">North Carolina</option>
                            <option value="ND">North Dakota</option>
                            <option value="NT">Northwest Territories</option>
                            <option value="NS">Nova Scotia</option>
                            <option value="NU">Nunavut</option>
                            <option value="OH">Ohio</option>
                            <option value="OK">Oklahoma</option>
                            <option value="ON">Ontario</option>
                            <option value="OR">Oregon</option>
                            <option value="PA">Pennsylvania</option>
                            <option value="PE">Prince Edward Island</option>
                            <option value="PR">Puerto Rico</option>
                            <option value="QC">Quebec</option>
                            <option value="RI">Rhode Island</option>
                            <option value="SK">Saskatchewan</option>
                            <option value="SC">South Carolina</option>
                            <option value="SD">South Dakota</option>
                            <option value="TN">Tennessee</option>
                            <option value="TX">Texas</option>
                            <option value="UT">Utah</option>
                            <option value="VT">Vermont</option>
                            <option value="VI">Virgin Islands</option>
                            <option value="VA">Virginia</option>
                            <option value="WA">Washington</option>
                            <option value="WV">West Virginia</option>
                            <option value="WI">Wisconsin</option>
                            <option value="WY">Wyoming</option>
                            <option value="YT">Yukon</option>
                          </select>
                          <span class="form__field form__button">
                            <svg class="icon">
                              <use href="#icon-chevron"></use>
                            </svg>
                          </span>
                        </div>
                      </div>
                      <label for="BillingState" class="message__label">
                        <span class="form__error">* </span>State </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please choose a state. </span>
                      </span>
                    </div>
                  </div>
                  <!-- Zip Code -->
                  <div class="fieldset__take-some form message">
                    <div class="form__field-label">
                      <input type="text" name="BillingZip" id="BillingZip" placeholder="*Zip Code" data-required="true" autocomplete="billing postal-code" class="dtm__restyle form__field  o-grid__col @xs-u-vw--100" value="">
                      <label for="BillingZip" class="message__label">
                        <span class="form__error">* </span>Zip Code </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please enter a zip code. </span>
                      </span>
                    </div>
                  </div>
                  <!-- Country -->
                  <div class="form message">
                    <div class="form__field-label">
                      <div class="form form--select message__select">
                        <div class="form__contain">
                          <select autocomplete="billing country" class="dtm__restyle form__field" id="BillingCountry" name="BillingCountry">
                            <option value="CAN">Canada</option>
                            <option value="USA">United States</option>
                          </select>
                          <span class="form__field form__button">
                            <svg class="icon">
                              <use href="#icon-chevron"></use>
                            </svg>
                          </span>
                        </div>
                      </div>
                      <label for="BillingCountry" class="message__label">
                        <span class="form__error">* </span>Country </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please choose a country. </span>
                      </span>
                    </div>
                  </div>
                  <!-- Phone -->
                  <div class="fieldset__take-all form message">
                    <div class="form__field-label">
                      <input type="tel" name="Phone" id="Phone" placeholder="*Phone" data-required="true" autocomplete="billing tel" class="dtm__restyle form__field  o-grid__col @xs-u-vw--100" value="">
                      <label for="Phone" class="message__label">
                        <span class="form__error">* </span>Phone </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please enter a phone number. </span>
                      </span>
                    </div>
                  </div>
                  <!-- Email -->
                  <div class="fieldset__take-all form message">
                    <div class="form__field-label">
                      <input type="email" name="Email" id="Email" title="Format example: someone@someplace.com" data-required="true" autocomplete="billing email" placeholder="*Email" class="dtm__restyle form__field  o-grid__col @xs-u-vw--100"
                        value="">
                      <label for="Email" class="message__label">
                        <span class="form__error">* </span>Email </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please enter an email address. </span>
                      </span>
                    </div>
                  </div>
                </div>
              </fieldset>
              <div class="form message" id="ShippingIsSameDiv">
                <div class="form__checkbox-label">
                  <input type="checkbox" id="ShippingIsDifferentThanBilling" name="ShippingIsDifferentThanBilling" value="true" aria-labelledby="ShippingIsDifferentThanBillingLabel">
                  <input name="ShippingIsDifferentThanBilling" type="hidden" value="false">
                  <label for="ShippingIsDifferentThanBilling" class="form__label">
                    <span class="form__checkbox"></span>
                    <span id="ShippingIsDifferentThanBillingLabel">Check if your shipping address is different than your billing address.</span>
                  </label>
                </div>
              </div>
              <fieldset id="shippingInformation" class="fieldset fieldset--frame" style="display: none;">
                <div class="fieldset__group fieldset__container">
                  <h2 class="fieldset__take-all fieldset__title">STEP 5: Shipping Address</h2>
                  <!-- First Name -->
                  <div class="form message">
                    <div class="form__field-label">
                      <input type="text" title="Name can only contain letters" data-required="true" autocomplete="shipping given-name" name="ShippingFirstName" id="ShippingFirstName" placeholder="*First Name"
                        class="dtm__restyle form__field  shipping__field  o-grid__col @xs-u-vw--100" value="">
                      <label for="ShippingFirstName" class="message__label">
                        <span class="form__error">* </span>First Name </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please enter a first name. </span>
                      </span>
                    </div>
                  </div>
                  <!-- Last Name -->
                  <div class="form message">
                    <div class="form__field-label">
                      <input type="text" name="ShippingLastName" id="ShippingLastName" placeholder="*Last Name" data-required="true" autocomplete="shipping family-name" class="dtm__restyle form__field  shipping__field  o-grid__col @xs-u-vw--100"
                        value="">
                      <label for="ShippingLastName" class="message__label">
                        <span class="form__error">* </span>Last Name </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please enter a last name. </span>
                      </span>
                    </div>
                  </div>
                  <!-- Street -->
                  <div class="fieldset__take-all form message">
                    <div class="form__field-label">
                      <input type="text" name="ShippingStreet" id="ShippingStreet" placeholder="*Address" data-required="true" autocomplete="section-ship shipping address-line1"
                        class="dtm__restyle form__field  shipping__field  o-grid__col @xs-u-vw--100 ui-autocomplete-input" value="">
                      <label for="ShippingStreet" class="message__label">
                        <span class="form__error">* </span>Address </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please enter an address. </span>
                      </span>
                    </div>
                  </div>
                  <!-- Street 2 -->
                  <div class="fieldset__take-all form message">
                    <div class="form__field-label">
                      <input type="text" name="ShippingStreet2" id="ShippingStreet2" autocomplete="shipping address-line2" placeholder="Suite / Apt" aria-describedby="ShippingStreet2Description"
                        class="dtm__restyle form__field shipping__field  o-grid__col @xs-u-vw--100" value="">
                      <label for="ShippingStreet2" class="message__label"> Address 2 </label>
                      <span class="message__group" role="alert">
                        <small id="ShippingStreet2Description" class="message__label">Example: Street / Apt., etc.</small>
                        <span class="message__invalid"> Please enter an address. </span>
                      </span>
                    </div>
                  </div>
                  <!-- City -->
                  <div class="fieldset__take-some form message">
                    <div class="form__field-label">
                      <input type="text" name="ShippingCity" id="ShippingCity" placeholder="*City" autocomplete="shipping address-level2" data-required="true" class="dtm__restyle form__field  shipping__field  o-grid__col @xs-u-vw--100" value="">
                      <label for="ShippingCity" class="message__label">
                        <span class="form__error">* </span>City </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please enter a city. </span>
                      </span>
                    </div>
                  </div>
                  <!-- State -->
                  <div class="fieldset__take-some form message">
                    <div class="form__field-label" id="shipStateParent">
                      <div class="form form--select message__select">
                        <div class="form__contain">
                          <select autocomplete="shipping address-level1" class="dtm__restyle form__field shipping__field" id="ShippingState" name="ShippingState">
                            <option value="AL">Alabama</option>
                            <option value="AK">Alaska</option>
                            <option value="AB">Alberta</option>
                            <option value="AZ">Arizona</option>
                            <option value="AR">Arkansas</option>
                            <option value="BC">British Columbia</option>
                            <option value="CA">California</option>
                            <option value="CO">Colorado</option>
                            <option value="CT">Connecticut</option>
                            <option value="DE">Delaware</option>
                            <option value="DC">District Of Columbia</option>
                            <option value="FL">Florida</option>
                            <option value="GA">Georgia</option>
                            <option value="GU">Guam</option>
                            <option value="HI">Hawaii</option>
                            <option value="ID">Idaho</option>
                            <option value="IL">Illinois</option>
                            <option value="IN">Indiana</option>
                            <option value="IA">Iowa</option>
                            <option value="KS">Kansas</option>
                            <option value="KY">Kentucky</option>
                            <option value="LA">Louisiana</option>
                            <option value="ME">Maine</option>
                            <option value="MB">Manitoba </option>
                            <option value="MD">Maryland</option>
                            <option value="MA">Massachusetts</option>
                            <option value="MI">Michigan</option>
                            <option value="MN">Minnesota</option>
                            <option value="MS">Mississippi</option>
                            <option value="MO">Missouri</option>
                            <option value="MT">Montana</option>
                            <option value="NE">Nebraska</option>
                            <option value="NV">Nevada</option>
                            <option value="NB">New Brunswick</option>
                            <option value="NH">New Hampshire</option>
                            <option value="NJ">New Jersey</option>
                            <option value="NM">New Mexico</option>
                            <option value="NY">New York</option>
                            <option value="NL">Newfoundland and Labrador</option>
                            <option value="NC">North Carolina</option>
                            <option value="ND">North Dakota</option>
                            <option value="NT">Northwest Territories</option>
                            <option value="NS">Nova Scotia</option>
                            <option value="NU">Nunavut</option>
                            <option value="OH">Ohio</option>
                            <option value="OK">Oklahoma</option>
                            <option value="ON">Ontario</option>
                            <option value="OR">Oregon</option>
                            <option value="PA">Pennsylvania</option>
                            <option value="PE">Prince Edward Island</option>
                            <option value="PR">Puerto Rico</option>
                            <option value="QC">Quebec</option>
                            <option value="RI">Rhode Island</option>
                            <option value="SK">Saskatchewan</option>
                            <option value="SC">South Carolina</option>
                            <option value="SD">South Dakota</option>
                            <option value="TN">Tennessee</option>
                            <option value="TX">Texas</option>
                            <option value="UT">Utah</option>
                            <option value="VT">Vermont</option>
                            <option value="VI">Virgin Islands</option>
                            <option value="VA">Virginia</option>
                            <option value="WA">Washington</option>
                            <option value="WV">West Virginia</option>
                            <option value="WI">Wisconsin</option>
                            <option value="WY">Wyoming</option>
                            <option value="YT">Yukon</option>
                          </select>
                          <span class="form__field form__button">
                            <svg class="icon">
                              <use href="#icon-chevron"></use>
                            </svg>
                          </span>
                        </div>
                      </div>
                      <label for="ShippingState" class="message__label">
                        <span class="form__error">* </span>State </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please choose a state. </span>
                      </span>
                    </div>
                  </div>
                  <!-- Zip Code -->
                  <div class="fieldset__take-some form message">
                    <div class="form__field-label">
                      <input type="text" name="ShippingZip" id="ShippingZip" placeholder="*Zip Code" autocomplete="shipping postal-code" data-required="true" class="dtm__restyle form__field  o-grid__col @xs-u-vw--100" value="">
                      <label for="ShippingZip" class="message__label">
                        <span class="form__error">* </span>Zip Code </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please enter a zip code. </span>
                      </span>
                    </div>
                  </div>
                  <!-- Country -->
                  <div class="form message">
                    <div class="form__field-label">
                      <div class="form form--select message__select">
                        <div class="form__contain">
                          <select autocomplete="shipping country" class="dtm__restyle form__field" id="ShippingCountry" name="ShippingCountry">
                            <option value="CAN">Canada</option>
                            <option value="USA">United States</option>
                          </select>
                          <span class="form__field form__button">
                            <svg class="icon">
                              <use href="#icon-chevron"></use>
                            </svg>
                          </span>
                        </div>
                      </div>
                      <label for="ShippingCountry" class="message__label">
                        <span class="form__error">* </span>Country </label>
                      <span class="message__group" role="alert">
                        <span class="message__invalid"> Please choose a country. </span>
                      </span>
                    </div>
                  </div>
                </div>
              </fieldset>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="checkout__copy checkout__action-text">
      <div class="checkout__action checkout__copy">
        <div id="recaptcha-container" class="FormSubmit checkout__take-all checkout__action express-checkout__element" data-express-checkout-order-type="card">
          <div id="recaptchaCt" class="g-recaptcha" data-sitekey="6LevkygUAAAAACSI4y0E3v_NE16sCJtu-NM14cq_" data-callback="callBack" data-size="normal">
            <div style="width: 304px; height: 78px;">
              <div><iframe title="reCAPTCHA" width="304" height="78" role="presentation" name="a-veiqthpj4mpq" frameborder="0" scrolling="no"
                  sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation allow-modals allow-popups-to-escape-sandbox allow-storage-access-by-user-activation"
                  src="https://www.google.com/recaptcha/api2/anchor?ar=1&amp;k=6LevkygUAAAAACSI4y0E3v_NE16sCJtu-NM14cq_&amp;co=aHR0cHM6Ly93d3cuc2lsdmVyYnVsbGV0b2ZmZXIuY29tOjQ0Mw..&amp;hl=zh-CN&amp;v=-QbJqHfGOUB8nuVRLvzFLVed&amp;size=normal&amp;cb=kcy5m42d0jj"></iframe>
              </div><textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response"
                style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px; resize: none; display: none;"></textarea>
            </div><iframe style="display: none;"></iframe>
          </div>
        </div>
        <button type="submit" id="AcceptOfferButton" name="acceptOffer" class="button express-checkout__element" data-express-checkout-order-type="card" style="display: none;">
          <span class="order-btn">
            <span>Process Order</span>
          </span>
        </button><button type="submit" id="braintreeSubmit" name="braintreeSubmit" class="button express-checkout__element AcceptOfferButton" data-express-checkout-order-type="card" style="display: none;">
          <span class="order-btn">
            <span>Process Order</span>
          </span>
        </button>
        <div id="paypal-button" class="checkout__paypal express-checkout__element" data-express-checkout-order-type="paypal">
          <div id="zoid-paypal-button-a2897c92bf" class="paypal-button paypal-button-context-iframe paypal-button-label-checkout paypal-button-size-responsive paypal-button-layout-horizontal" data-paypal-smart-button-version="4.0.338" style="">
            <style>
              #zoid-paypal-button-a2897c92bf {
                font-size: 0;
                width: 100%;
                overflow: hidden;
                min-width: 75px;
              }

              #zoid-paypal-button-a2897c92bf.paypal-button-size-responsive {
                text-align: center;
              }

              #zoid-paypal-button-a2897c92bf>.zoid-outlet {
                display: inline-block;
                min-width: 75px;
                max-width: 750px;
                position: relative;
              }

              #zoid-paypal-button-a2897c92bf.paypal-button-layout-vertical>.zoid-outlet {
                min-width: 75px;
              }

              #zoid-paypal-button-a2897c92bf>.zoid-outlet {
                width: 150px;
                height: 25px;
              }

              #zoid-paypal-button-a2897c92bf.paypal-button-size-responsive>.zoid-outlet {
                width: 100%;
              }

              #zoid-paypal-button-a2897c92bf>.zoid-outlet>iframe {
                min-width: 100%;
                max-width: 100%;
                width: 75px;
                height: 100%;
                position: absolute;
                top: 0;
                left: 0;
              }

              #zoid-paypal-button-a2897c92bf>.zoid-outlet>iframe.zoid-component-frame {
                z-index: 100;
              }

              #zoid-paypal-button-a2897c92bf>.zoid-outlet>iframe.zoid-prerender-frame {
                transition: opacity .2s linear;
                z-index: 200;
              }

              #zoid-paypal-button-a2897c92bf>.zoid-outlet>iframe.zoid-visible {
                opacity: 1;
              }

              #zoid-paypal-button-a2897c92bf>.zoid-outlet>iframe.zoid-invisible {
                opacity: 0;
                pointer-events: none;
              }
            </style>
            <div class="zoid-outlet" style=""><iframe class="zoid-component-frame zoid-visible" frameborder="0" allowtransparency="true"
                name="xcomponent__ppbutton__4__pmrhk2leei5cen3emuzgiy3fheyweirmej2gczzchirhaylzobqwyllcov2hi33oeiwcey3pnvyg63tfnz2faylsmvxhiir2pmrhezlgei5ce5dpoarh2lbcojsw4zdfojigc4tfnz2ceot3ejzgkzrchirhi33qej6syitqojxxa4zchj5se5dzobsseorcojqxoirmej3gc3dvmurdu6zcmvxhmir2ejyhe33eovrxi2lpnyrcyittor4wyzjchj5se3dbmjswyir2ejrwqzldnnxxk5bcfqrhg2l2murduitsmvzxa33oonuxmzjcfqrhg2dbobsseorcojswg5bcfqrgg33mn5zceorcm5xwyzbcpuwce4dbpfwwk3tuei5hwis7l52hs4dfl5pseorcl5pwm5lomn2gs33ol5pse7jmej3gc3djmrqxizjchj5sex27or4xazk7l4rduis7l5thk3tdoruw63s7l4rh2lbcn5xeg3djmnvseot3ejpv65dzobsv6xzchirf6x3govxgg5djn5xf6xzcpuwce33oif2xi2dpojuxuzjchj5sex27or4xazk7l4rduis7l5thk3tdoruw63s7l4rh2lbcn5xegylomnswyir2pmrf6x3upfygkx27ei5cex27mz2w4y3unfxw4x27ej6syitpnzcxe4tpoirdu6zcl5pxi6lqmvpv6ir2ejpv6ztvnzrxi2lpnzpv6it5fqrgi33nmfuw4ir2ej3xo5zoonuwy5tfojrhk3dmmv2g6ztgmvzc4y3pnurcyittmvzxg2lpnzeuiir2ej2wszc7gvqtknjrga3domlel5wxiyzwnv2hkntomruselbcmj2xi5dpnzjwk43tnfxw4skeei5ce5ljmrpwinlcha3dembsme2v63lumm3g25dvgzxgi5jcfqrhezlomrsxezleij2xi5dpnzzseorcobqxs4dbnqrcyittorxxeylhmveuiir2ej2wszc7ha4dszlehbswkn3cl5wxiyzwnv2hkntomruselbcnvsxiyjchj5x2lbcmvxgcytmmvhgc5djozsug2dfmnvw65luei5gmylmonssyitdnruwk3tuei5hw7jmejzw65lsmnsseorcnvqw45lbnqrcyitqojswmzlumnuey33hnfxceotgmfwhgzjmej2xazdborsug3djmvxhiq3pnztgsz3vojqxi2lpnyrdu5dsovssyitbov2gqq3pmrsseorceiwceztvnzsgs3thei5hwitbnrwg653fmqrduw25fqrgi2ltmfwgy33xmvsceos3ej3gk3tnn4rf2lbcojsw2zlnmjsxezleei5fwxjmejzgk3lfnvrgk4rchj5sex27or4xazk7l4rduis7l5thk3tdoruw63s7l4rh27jmejrw63lnnf2ceotgmfwhgzjmejxw4utfnzsgk4rchj5sex27or4xazk7l4rduis7l5thk3tdoruw63s7l4rh2lbcn5xfezltnf5gkir2pmrf6x3upfygkx27ei5cex27mz2w4y3unfxw4x27ej6syitmn5rwc3dfei5cezlol5kvgirmejwg6z2mmv3gk3bchirhoylsnyrcyitbo5qws5cqn5yhk4ccojuwiz3fei5hwis7l52hs4dfl5pseorcl5pwm5lomn2gs33ol5pse7jmejtwk5cqmftwkvlsnqrdu6zcl5pxi6lqmvpv6ir2ejpv6ztvnzrxi2lpnzpv6it5fqrhizltoqrdu6zcmfrxi2lpnyrduitdnbswg23pov2ce7jmej2wszbchirgcmryhe3wgojsmjtcelbcozsxe43jn5xceorcgqrh27jmejrwq2lmmrcg63lbnfxceorcnb2hi4dthixs653xo4xhaylzobqwyltdn5wselbcnfsceorcmq2ggzrwgyztknrueiwcezdpnvqws3rchirgq5duobztulzpo53xolttnfwhmzlsmj2wy3dforxwmztfoixgg33nej6q__"
                title="PayPal" scrolling="no" allowpaymentrequest="allowpaymentrequest"
                src="https://www.paypal.com/smart/button?env=production&amp;style.label=checkout&amp;style.size=responsive&amp;style.shape=rect&amp;style.color=gold&amp;domain=www.silverbulletoffer.com&amp;sessionID=uid_5a5510671d_mtc6mtu6ndi&amp;buttonSessionID=uid_d5b86202a5_mtc6mtu6ndu&amp;renderedButtons=paypal&amp;storageID=uid_889ed8ee7b_mtc6mtu6ndi&amp;funding.disallowed=venmo&amp;locale.x=en_US&amp;logLevel=warn&amp;sdkMeta=eyJ1cmwiOiJodHRwczovL3d3dy5wYXlwYWxvYmplY3RzLmNvbS9hcGkvY2hlY2tvdXQuanMifQ&amp;uid=a2897c92bf&amp;version=4&amp;xcomponent=1"
                style="background-color: transparent;"></iframe></div>
          </div>
        </div>
      </div>
      <p id="ProcessOrderDisclaimer" data-express-checkout-order-type="card" class="express-checkout__element">By clicking Process Order, your credit card will be charged the amount above. Click only once.</p>
      <div class="checkout__ssl">
        <img src="/shared/images/PositiveSSL_tl_trans.png" alt="Secure Site SSL Encryption" width="100" height="100" loading="lazy">
      </div>
    </div>
  </div>
  <span class="svg-symbols">
    <svg>
      <symbol id="icon-chevron" x="0px" y="0px" viewBox="0 0 25.228 14.029">
        <g transform="translate(1.414 1.414)">
          <path d="M0,11.2,11.2,0m0,22.4L0,11.2" transform="translate(0 11.2) rotate(-90)" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"></path>
        </g>
      </symbol>
    </svg>
  </span>
</form>

Text Content

Skip To Main Content?
Order
Now Watch The Show
The Amazing Hassle Free Hose That Grows!
Order Now
Special Limited Time Offer


DOUBLE OFFER *

*Just pay a separate $14.99 fee for the 2nd hose
Starting At Only $19.99 Plus $7.99 S&H
Starting At Only $ 19 99 Plus $7.99 S&H
Order Now

You'll Get TWO! Two 25ft** Pocket Hose® Silver Bullet™ Hoses + Two FREE Turbo
Shot Jet Nozzles: **Larger hoses available upon checkout





FEATURES & BENEFITS

 * Hassle Free - Expands & Contracts On Its Own
 * Super Lightweight & Will Never Kink
 * Lead Free So Its Suitable For Drinking
 * Shrinks Back To Size For Easy Storage
 * Strong & Durable - Outer Casing Won't Snag, Tear, or Wear
 * 100% Satisfaction Guarantee


HANDS-FREE SUPER LIGHTWEIGHT HOSE THAT NEVER KINKS!

 * NO WINDING
 * NO COILING
 * NO MUDDY WET MESSES


OUR TOUGHEST, MOST VERSATILE DESIGN YET:


Compact size stores easily

Super Lightweight

Outer casing won't snag, tear or wear

Re-engineered inner-tube won't kink

Lead free & suitable for drinking

Connector-protectors won't leak



NO MORE

Stop struggling with your dirty, heavy, leaky old hose and upgrade today!

Order Now

This Offer Is Not Available In Stores
Fill out the form below to order your Pocket Hose® Silver Bullet™ Now!
*Indicates required field


STEP 1: SELECT YOUR POCKET HOSE® SILVER BULLET™ SIZE AND OFFER

25 Foot Length $19.99 + $7.99 S&H

Yes, I would like to add the SPECIAL OFFER 25 Foot Pocket Hose® Silver Bullet™ &
Free Turbo Shot Jet Nozzle to my order today and just pay $14.99 plus NO
additional shipping & handling!
50 Foot Length $39.98 + $7.99 S&H

Yes, I would like to add the SPECIAL OFFER 50 Foot Pocket Hose® Silver Bullet™ &
Free Turbo Shot Jet Nozzle to my order today and just pay $29.99 plus NO
additional shipping & handling!
100 Foot Length $49.98 + $7.99 S&H

Yes, I would like to add the SPECIAL OFFER 100 Foot Pocket Hose® Silver Bullet™
& Free Turbo Shot Jet Nozzle to my order today and just pay $37.49 plus NO
additional shipping & handling!
Please choose a product.


STEP 2: REVIEW YOUR ORDER

STEP 2: Review Your Order

Item Quantity Price S&H Sub Total $0.00 Shipping & Handling $0.00 State Tax:  
Order Total $0.00




STEP 3: SELECT PAYMENT TYPE



* Card Number Please enter a valid card number.

*Expiration Date: Please choose an expiration month.

* CVV2 Please enter a CVV number. What is CVV2?


STEP 4: BILLING ADDRESS

* First Name Please enter a first name.
* Last Name Please enter a last name.
* Address Please enter an address.
Address 2 Example: Suite / Apt., etc. Please enter an address.
* City Please enter a city.
Alabama Alaska Alberta Arizona Arkansas British Columbia California Colorado
Connecticut Delaware District Of Columbia Florida Georgia Guam Hawaii Idaho
Illinois Indiana Iowa Kansas Kentucky Louisiana Maine Manitoba Maryland
Massachusetts Michigan Minnesota Mississippi Missouri Montana Nebraska Nevada
New Brunswick New Hampshire New Jersey New Mexico New York Newfoundland and
Labrador North Carolina North Dakota Northwest Territories Nova Scotia Nunavut
Ohio Oklahoma Ontario Oregon Pennsylvania Prince Edward Island Puerto Rico
Quebec Rhode Island Saskatchewan South Carolina South Dakota Tennessee Texas
Utah Vermont Virgin Islands Virginia Washington West Virginia Wisconsin Wyoming
Yukon
* State Please choose a state.
* Zip Code Please enter a zip code.
Canada United States
* Country Please choose a country.
* Phone Please enter a phone number.
* Email Please enter an email address.
Check if your shipping address is different than your billing address.


STEP 5: SHIPPING ADDRESS

* First Name Please enter a first name.
* Last Name Please enter a last name.
* Address Please enter an address.
Address 2 Example: Street / Apt., etc. Please enter an address.
* City Please enter a city.
Alabama Alaska Alberta Arizona Arkansas British Columbia California Colorado
Connecticut Delaware District Of Columbia Florida Georgia Guam Hawaii Idaho
Illinois Indiana Iowa Kansas Kentucky Louisiana Maine Manitoba Maryland
Massachusetts Michigan Minnesota Mississippi Missouri Montana Nebraska Nevada
New Brunswick New Hampshire New Jersey New Mexico New York Newfoundland and
Labrador North Carolina North Dakota Northwest Territories Nova Scotia Nunavut
Ohio Oklahoma Ontario Oregon Pennsylvania Prince Edward Island Puerto Rico
Quebec Rhode Island Saskatchewan South Carolina South Dakota Tennessee Texas
Utah Vermont Virgin Islands Virginia Washington West Virginia Wisconsin Wyoming
Yukon
* State Please choose a state.
* Zip Code Please enter a zip code.
Canada United States
* Country Please choose a country.

Process Order Process Order


By clicking Process Order, your credit card will be charged the amount above.
Click only once.


OFFER DETAILS:

Order today and you’ll receive the 25' Pocket Hose® Silver Bullet™ + Free Turbo
Shot Jet Nozzle for just $19.99 plus $7.99 shipping and handling! And today, as
our way of saying thanks you can receive a 2nd 25' Pocket Hose® Silver Bullet™ &
Free Turbo Shot Jet Nozzle for just a separate fee of $14.99 plus NO additional
S&H.

You can even upgrade to the 50' length for just $39.98 or the 100' length for
just $49.98. Best of all, shipping and handling is just $7.99 no matter what
length you select!

An additional $10 shipping surcharge is added for items sent outside of the
Contiguous United States

*Sales tax will be applied to all orders from NJ, WA & CA

Home Customer Service Terms & Conditions Purchasing Policy Shipping Policy
Return Policy Privacy Policy Security Policy Site Map Order Now

©2023 Pocket Hose® Silver Bullet™ All Rights Reserved.

Manage Contact Settings