localCards.forEach(card => {
      var validationResult = cardValidator.number(card.cardNumber);
      if (!!validationResult && validationResult.isValid) {
        var content = document.createElement("div");
        var cardIcon = document.createElement("i");
        switch (validationResult.card.type) {
          case "visa":
            cardIcon.className = "cc-icons fab fa-cc-visa";
            break;
          case "master-card":
            cardIcon.className = "cc-icons fab fa-cc-mastercard";
            break;
          case "american-express":
            cardIcon.className = "cc-icons fab fa-cc-amex";
            break;
          default:
            cardIcon.className = "cc-icons fa fa-credit-card";
            break;
        }
        var numberContainer = document.createElement("h4");
        numberContainer.className = "cc-numbers";
        numberContainer.innerHTML = "**** " + card.cardNumber.substring(card.cardNumber.length - 4);

        content.appendChild(cardIcon);
        content.appendChild(numberContainer);

        addToInstrumentList(
          content,
          function() {
            requestUnmaskCard(card);
          });
      }
    });
function confirmAddCardClicked(event) {
  var name = document.getElementById("full-name").value;
  var expDate = document.getElementById("exp-date").value;
  var expMonth = expDate.substring(5);
  var expYear = expDate.substring(0, 4);
  var number = document.getElementById("cc-number").value;

  var validationResult = cardValidator.number(number);
  var expDateValidation = cardValidator.expirationDate({ month: expMonth , year: expYear });

  addCardConfirmed(name, number, expMonth, expYear);
  $("#add-card-modal").modal("toggle");
}
function cardInfoUpdated(event) {
  var name = document.getElementById("full-name").value;
  var expDate = document.getElementById("exp-date").value;
  var number = document.getElementById("cc-number").value;

  var validationResult = cardValidator.number(number);
  var expDateValidation = cardValidator.expirationDate({ month: expDate.substring(5) , year: expDate.substring(0, 4) });

  var readyToSave = validationResult.isValid && expDateValidation.isValid && name.length > 0;
  document.getElementById("add-card-confirm-button").disabled = !readyToSave;

  var formattedNumber = formatCardNumber(number);
  if (number !== formattedNumber) {
    document.getElementById("cc-number").value = formattedNumber;
  }
}
function formatCardNumber(number) {
  var validationResult = cardValidator.number(number);

  var formattedNumber = number;
  if (validationResult.isPotentiallyValid && !!(validationResult.card.gaps)) {
    var numberWithoutGaps = number.replace(/ /g, "");
    var slices = [];
    var lastGap = 0;
    validationResult.card.gaps.forEach(gap => {
      if (gap <= numberWithoutGaps.length) {
        slices.push(numberWithoutGaps.substring(lastGap, gap));
        lastGap = gap;
      }
    });
    slices.push(numberWithoutGaps.substring(lastGap));

    formattedNumber = slices.join(" ");
  }

  return formattedNumber;
}