www.givecampus.com Open in urlscan Pro
2606:4700::6810:c948  Public Scan

Submitted URL: https://t.e2ma.net/click/s0vl6f/csi1104c/8sojrx
Effective URL: https://www.givecampus.com/campaigns/25710/donations/new
Submission: On January 03 via manual from US — Scanned from DE

Form analysis 1 forms found in the DOM

POST /campaigns/25710/donations

<form class="simple_form max-w-full max-h-full" id="contribution_form" aria-label="donation form" action="/campaigns/25710/donations" accept-charset="UTF-8" method="post" novalidate="novalidate"><input name="utf8" type="hidden" value="✓"
    autocomplete="off"><input type="hidden" name="authenticity_token" value="Ll4te1HYMz_rCec41oQHKGmKMtJ_Wvup7IjSelN9TPsJKC4bpnRiUN-v0dm2SgZf8sA9cnIwEeNGWMGc3OqBZw" autocomplete="off"><input type="hidden" name="adid" id="adid"
    autocomplete="off"><input type="hidden" name="nid" id="nid" autocomplete="off">
  <div class="input hidden contribution_event_id"><input class="hidden form-control" autocomplete="off" type="hidden" name="contribution[event_id]" id="contribution_event_id"></div>
  <div class="input hidden contribution_advocate"><input class="hidden form-control" autocomplete="off" type="hidden" name="contribution[advocate]" id="contribution_advocate"></div>
  <div class="input hidden contribution_currency"><input class="hidden form-control" autocomplete="off" type="hidden" value="USD" name="contribution[currency]" id="contribution_currency"></div>
  <script>
    var amountFieldHasChanged = false;
    $(function() {
      var showDefaultAmountOnPageLoad = true;
      if (false) {
        showRecurring(showDefaultAmountOnPageLoad);
      } else {
        showOneTime(showDefaultAmountOnPageLoad);
      }
      amountFieldHasChanged = false;
      document.getElementById("contribution_value").addEventListener('keypress', registerAmountChange);
      $("#contribution_recur").on("change", function() {
        if (this.checked) {
          showRecurring();
        } else {
          showOneTime();
        }
      });
    });
    $(".suggested-amount").click(function() {
      $(".suggested-amount").removeClass("btn-school-primary").addClass("btn-school");
      $(this).addClass("btn-school-primary");
      amountFieldHasChanged = true;
    });

    function registerAmountChange() {
      amountFieldHasChanged = true;
    }

    function showOneTime(setDefaultAmount) {
      $("#one-time-amounts").show();
      $("#recurring-amounts").hide();
      $(".recurring-button").removeClass("btn-school-primary").addClass("btn-school");
      $(".one-time-button").removeClass("btn-school").addClass("btn-school-primary");
      $("#one-time-amounts .suggested-amount").removeClass("btn-school-primary");
      $(".btn-one-time-default").addClass("btn-school-primary");
      var recurringDiv = $("#recurringGift");
      recurringDiv.addClass("hidden");
      recurringDiv.slideUp();
      if (setDefaultAmount) {
        var numToPass = "" + "";
        if (amountFieldHasChanged) {
          $(".suggested-amount").removeClass("btn-school-primary").addClass("btn-school");
          numToPass = $("#contribution_value").val();
        }
        moveNumbers(numToPass, false, null);
      }
    }

    function showRecurring(setDefaultAmount) {
      $("#recurring-amounts").show();
      $("#one-time-amounts").hide();
      $(".one-time-button").removeClass("btn-school-primary").addClass("btn-school");
      $(".recurring-button").removeClass("btn-school").addClass("btn-school-primary");
      $("#recurring-amounts .suggested-amount").removeClass("btn-school-primary");
      $(".btn-recurring-default").addClass("btn-school-primary");
      var recurringDiv = $("#recurringGift");
      recurringDiv.removeClass("hidden");
      recurringDiv.slideDown();
      if (setDefaultAmount) {
        var numToPass = "" + "";
        if (amountFieldHasChanged) {
          $(".suggested-amount").removeClass("btn-school-primary").addClass("btn-school");
          numToPass = $("#contribution_value").val();
        }
        moveNumbers(numToPass, true, $(".btn-recurring-default .suggested-amount-label").text().trim());
      }
    }

    function moveNumbers(num, recur, freq) {
      if (num) {
        var contributionValueInput = $("#contribution_value");
        contributionValueInput.val(num.replace(',', ''));
        // trigger necessary validations
        contributionValueInput.trigger("keyup");
        contributionValueInput.trigger("change");
        contributionValueInput.trigger("blur");
        // Triggers on-change event in React Designations 3.0 component for value field
        if ($('#designation-split-amount-trigger').length) {
          var input = document.querySelector('#designation-split-amount-trigger');
          var nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;
          nativeInputValueSetter.call(input, num.replace(',', ''));
          var ev = new Event('input', {
            bubbles: true
          });
          input.dispatchEvent(ev);
        }
      }
      if (recur) {
        if ($('#contribution_recur').prop('checked') == false && !$("#recurringGift").hasClass("block")) {
          $('#contribution_recur').trigger('click');
        }
      } else if ($('#contribution_recur').prop('checked') == true) {
        $('#contribution_recur').trigger('click');
      }
      if (freq !== null) {
        if (freq === 'per month') {
          $('#contribution_period_monthly').trigger('click');
        } else if (freq === 'per year') {
          $('#contribution_period_yearly').trigger('click');
        }
      }
    }
  </script>
  <div></div><br>
  <div aria-label="Value" class="row" style="padding: 0.5em 0">
    <div class="form-group">
      <div class="col-sm-3"><label class="value required" for="contribution_value" aria-required="true">Amount</label></div>
      <div class="col-sm-8">
        <script>
          // toggle recurring on browser back
          $(document).ready(function() {
            var contributionRecurCheckbox = document.getElementById('contribution_recur');
            var recurringGiftDiv = document.getElementById('recurringGift');
            if (contributionRecurCheckbox.checked) {
              recurringGiftDiv.className += "block";
            }
            $("#contribution_recur").on("change", function() {
              var recurringDiv = $("#recurringGift");
              if ($(this).is(":checked")) {
                recurringDiv.removeClass("hidden");
                recurringDiv.slideDown();
              } else {
                recurringDiv.addClass("hidden");
                recurringDiv.slideUp();
              }
            });
            var $recurInputsContainer = $("#recur-inputs-container");
            var $recurHiddenContainer = $("#recur-hidden-container");
            var $recurSelectContainer = $("#recur-select-container");
            var recurMax = -1;
            var oneYearOnly = recurMax === 1;
            var selectedPeriod = $("input[name='contribution[period]']").val();
            var selectedRecurLength = 0;
            var defaultRecurLengthLabel = $(".recur_length_label").html();
            var defaultRecurLengthOptions = $("#contribution_recur_length").html();
            var maxRecurringMonths = -12;
            var indefiniteEnabled = true
            if (indefiniteEnabled) {
              maxRecurringMonths = 60;
            }

            function toggleRecurringOptions(period) {
              oneYearOnly ? toggleRecurringOptionsOneYear(period) : toggleRecurringOptionsMultiYear(period);
            }

            function toggleRecurringOptionsMultiYear(period) {
              switch (period) {
                case "yearly":
                  $(".recur_length_label").html(defaultRecurLengthLabel);
                  $("#contribution_recur_length").html(defaultRecurLengthOptions);
                  $("#contribution_recur_length option[value='1']").remove();
                  if (selectedRecurLength > 0) {
                    $("#contribution_recur_length").val("");
                  }
                  break;
                case "monthly":
                  $(".recur_length_label").html(defaultRecurLengthLabel);
                  $("#contribution_recur_length").html(defaultRecurLengthOptions);
                  break;
                case "limited_months":
                  $(".recur_length_label").html("For how many months?");
                  // add select options
                  $("#contribution_recur_length").html("");
                  for (var i = maxRecurringMonths; i > 1; i--) {
                    $("#contribution_recur_length").append("<option value='" + i + "'>" + i + "</option>");
                  }
                  break;
                default:
                  $(".recur_length_label").html(defaultRecurLengthLabel);
                  $("#contribution_recur_length").html(defaultRecurLengthOptions);
                  break;
              }
            }

            function toggleRecurringOptionsOneYear(period) {
              switch (period) {
                case "yearly":
                  $recurInputsContainer.prepend($recurHiddenContainer);
                  $recurSelectContainer.remove();
                  break;
                case "monthly":
                  $recurInputsContainer.prepend($recurHiddenContainer);
                  $recurSelectContainer.remove();
                  break;
                case "limited_months":
                  $recurHiddenContainer.remove();
                  $recurInputsContainer.append($recurSelectContainer);
                  $(".recur_length_label").html("For how many months?");
                  // add select options
                  $("#contribution_recur_length").html("");
                  for (var i = maxRecurringMonths; i > 1; i--) {
                    $("#contribution_recur_length").append("<option value='" + i + "'>" + i + "</option>");
                  }
                  break;
                default:
                  $recurInputsContainer.prepend($recurHiddenContainer);
                  $recurSelectContainer.hide();
                  break;
              }
            }
            // load selections on ready
            toggleRecurringOptions(selectedPeriod);
            // toggle options on change
            $("input[name='contribution[period]']").change(function() {
              selectedPeriod = $(this).val();
              toggleRecurringOptions(selectedPeriod);
            });
          });
        </script>
        <div class="row">
          <div class="col-md-12 margin-bottom-10"><input aria-label="value" class="input-lg" id="contribution_value" min="1" name="contribution[value]" placeholder="$" required="required" step="0.01" style=" " type="number" value=""
              aria-required="true">
            <script>
              $(function() {
                // This event handler prevents the user from changing their gift amount by scrolling within any number field.
                $('input[type=number]').off("wheel").on('wheel', function() {
                  return false;
                });
              });
            </script>
          </div>
          <div class="col-sm-12 mobile-margin-top-10">
            <div class="margin-top-10">
              <div class="my-4"><label class="margin-top-10" for="contribution_recur" id="recurring-checkbox-label"><input class="h-4 w-4" id="contribution_recur" name="contribution[recur]" type="checkbox" value="1">Recurring</label>
                <div class="my-4 hidden" id="recurringGift" style="">
                  <div>
                    <div aria-label="This gift will recur monthly" class="text-sm font-semibold text-gray-800 my-2">This gift will recur monthly</div>
                    <div class="input hidden contribution_period"><input value="monthly" class="hidden form-control" autocomplete="off" type="hidden" name="contribution[period]" id="contribution_period"></div>
                  </div>
                  <div class="py-4" id="recur-inputs-container">
                    <div id="recur-hidden-container"></div>
                    <div id="recur-select-container">
                      <div class="recurring-divider text-left"><label class="recur_length_label" for="contribution_recur_length">For how many years?</label>
                        <div class="input select required contribution_recur_length" aria-required="true"><select class="select required form-control black form-control" required="required" aria-required="true" name="contribution[recur_length]"
                            id="contribution_recur_length">
                            <option value="indefinitely">indefinitely</option>
                            <option value="5">5</option>
                            <option value="4">4</option>
                            <option value="3">3</option>
                            <option value="2">2</option>
                            <option value="1">1</option>
                          </select></div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div aria-label="Designation" class="row" style="padding: 0.5em 0">
    <div class="form-group">
      <div class="col-sm-3"></div>
      <div class="col-sm-8">
        <script src="https://dlmrue3jobed1.cloudfront.net/packs/js/designation_nodes-0130f90bf3b579c5f71b.js"></script>
        <div class="input hidden contribution_designation_selection_data"><input class="hidden form-control" autocomplete="off" type="hidden" name="contribution[designation_selection_data]" id="contribution_designation_selection_data" value="[]">
        </div>
        <div data-default-designations="{&quot;nodes&quot;:null,&quot;value&quot;:null}" data-designation-field="{&quot;placeholder&quot;:&quot;Designation&quot;,&quot;helpText&quot;:&quot;&quot;}"
          data-designations="[{&quot;id&quot;:910155,&quot;name&quot;:null,&quot;group&quot;:false,&quot;backend&quot;:&quot;A0300-0001&quot;,&quot;default&quot;:false,&quot;visible&quot;:true,&quot;children&quot;:[],&quot;position&quot;:0,&quot;priority&quot;:false,&quot;deletedAt&quot;:null,&quot;displayName&quot;:&quot;Area of Greatest Need&quot;,&quot;displayType&quot;:&quot;Designation&quot;,&quot;designationId&quot;:5953,&quot;designationName&quot;:&quot;Area of Greatest Need&quot;,&quot;parentDesignationNodeId&quot;:null},{&quot;id&quot;:910154,&quot;name&quot;:null,&quot;group&quot;:false,&quot;backend&quot;:&quot;A0322-0001&quot;,&quot;default&quot;:false,&quot;visible&quot;:true,&quot;children&quot;:[],&quot;position&quot;:1,&quot;priority&quot;:false,&quot;deletedAt&quot;:null,&quot;displayName&quot;:&quot;Academic Programs&quot;,&quot;displayType&quot;:&quot;Designation&quot;,&quot;designationId&quot;:131139,&quot;designationName&quot;:&quot;Academic Programs&quot;,&quot;parentDesignationNodeId&quot;:null},{&quot;id&quot;:910156,&quot;name&quot;:null,&quot;group&quot;:false,&quot;backend&quot;:&quot;A0311-0001&quot;,&quot;default&quot;:false,&quot;visible&quot;:true,&quot;children&quot;:[],&quot;position&quot;:2,&quot;priority&quot;:false,&quot;deletedAt&quot;:null,&quot;displayName&quot;:&quot;Arts&quot;,&quot;displayType&quot;:&quot;Designation&quot;,&quot;designationId&quot;:5954,&quot;designationName&quot;:&quot;Arts&quot;,&quot;parentDesignationNodeId&quot;:null},{&quot;id&quot;:910157,&quot;name&quot;:null,&quot;group&quot;:false,&quot;backend&quot;:&quot;A0313-0001&quot;,&quot;default&quot;:false,&quot;visible&quot;:true,&quot;children&quot;:[],&quot;position&quot;:3,&quot;priority&quot;:false,&quot;deletedAt&quot;:null,&quot;displayName&quot;:&quot;Athletics&quot;,&quot;displayType&quot;:&quot;Designation&quot;,&quot;designationId&quot;:5955,&quot;designationName&quot;:&quot;Athletics&quot;,&quot;parentDesignationNodeId&quot;:null},{&quot;id&quot;:910158,&quot;name&quot;:null,&quot;group&quot;:false,&quot;backend&quot;:&quot;A0324-0001&quot;,&quot;default&quot;:false,&quot;visible&quot;:true,&quot;children&quot;:[],&quot;position&quot;:4,&quot;priority&quot;:false,&quot;deletedAt&quot;:null,&quot;displayName&quot;:&quot;Equity \u0026 Inclusion&quot;,&quot;displayType&quot;:&quot;Designation&quot;,&quot;designationId&quot;:131140,&quot;designationName&quot;:&quot;Equity \u0026 Inclusion&quot;,&quot;parentDesignationNodeId&quot;:null},{&quot;id&quot;:910159,&quot;name&quot;:null,&quot;group&quot;:false,&quot;backend&quot;:&quot;A0310-0001&quot;,&quot;default&quot;:false,&quot;visible&quot;:true,&quot;children&quot;:[],&quot;position&quot;:5,&quot;priority&quot;:false,&quot;deletedAt&quot;:null,&quot;displayName&quot;:&quot;Faculty&quot;,&quot;displayType&quot;:&quot;Designation&quot;,&quot;designationId&quot;:5958,&quot;designationName&quot;:&quot;Faculty&quot;,&quot;parentDesignationNodeId&quot;:null},{&quot;id&quot;:910160,&quot;name&quot;:null,&quot;group&quot;:false,&quot;backend&quot;:&quot;A0317-0001&quot;,&quot;default&quot;:false,&quot;visible&quot;:true,&quot;children&quot;:[],&quot;position&quot;:6,&quot;priority&quot;:false,&quot;deletedAt&quot;:null,&quot;displayName&quot;:&quot;Financial Aid&quot;,&quot;displayType&quot;:&quot;Designation&quot;,&quot;designationId&quot;:5956,&quot;designationName&quot;:&quot;Financial Aid&quot;,&quot;parentDesignationNodeId&quot;:null},{&quot;id&quot;:910161,&quot;name&quot;:null,&quot;group&quot;:false,&quot;backend&quot;:&quot;A0323-0001&quot;,&quot;default&quot;:false,&quot;visible&quot;:true,&quot;children&quot;:[],&quot;position&quot;:7,&quot;priority&quot;:false,&quot;deletedAt&quot;:null,&quot;displayName&quot;:&quot;Health \u0026 Wellness&quot;,&quot;displayType&quot;:&quot;Designation&quot;,&quot;designationId&quot;:131141,&quot;designationName&quot;:&quot;Health \u0026 Wellness&quot;,&quot;parentDesignationNodeId&quot;:null},{&quot;id&quot;:910162,&quot;name&quot;:null,&quot;group&quot;:false,&quot;backend&quot;:&quot;A0316-0001&quot;,&quot;default&quot;:false,&quot;visible&quot;:true,&quot;children&quot;:[],&quot;position&quot;:8,&quot;priority&quot;:false,&quot;deletedAt&quot;:null,&quot;displayName&quot;:&quot;Technology&quot;,&quot;displayType&quot;:&quot;Designation&quot;,&quot;designationId&quot;:5959,&quot;designationName&quot;:&quot;Technology&quot;,&quot;parentDesignationNodeId&quot;:null}]"
          data-hide-designations="false" data-priority-designations="[]" data-priority-designations-enabled="true" data-processing-fee=".032"
          data-project="{&quot;id&quot;:25710,&quot;reqDesigs&quot;:false,&quot;desigPrompt&quot;:&quot;&quot;,&quot;designationWriteinLabel&quot;:&quot;&quot;,&quot;maxDesignationCount&quot;:1,&quot;designationLabel&quot;:&quot;Designation&quot;}"
          data-school="{&quot;brandColor&quot;:&quot;#005596&quot;,&quot;currency&quot;:{&quot;id&quot;:1,&quot;symbol&quot;:&quot;USD&quot;,&quot;minChargeAmount&quot;:&quot;0.5&quot;,&quot;maxChargeAmount&quot;:&quot;999999999.0&quot;,&quot;active&quot;:false,&quot;position&quot;:&quot;left&quot;},&quot;currencySymbol&quot;:&quot;$&quot;,&quot;currencyPosition&quot;:&quot;left&quot;}"
          id="react-designation-nodes-container">
          <div id="designations-ui">
            <div><label for="designation-search-input" class="multiple-designations-label ">Designation</label>
              <div class="mt-4">
                <div id="selected-designations" class="block"><input id="designation-split-amount-trigger" hidden=""></div>
              </div>
              <div class="text-right p-2 hidden"><button type="button" id="add-another-designation-button" class="text-sm cursor-pointer hover:underline">Change Selection</button></div>
              <div class="block">
                <div class="mt-4 text-sm text-gray-700">Make your selection(s):</div>
                <div id="react-designation-nodes">
                  <div id="designations-lists-container">
                    <div>
                      <div id="designation-search" class="flex"><input aria-label="Search or browse other designations" type="search" autocomplete="off" id="designation-search-input" placeholder="Designation" class="w-full"><svg
                          xmlns="http://www.w3.org/2000/svg" class="w-6 h-6 mt-2 -ml-8 text-gray-400 cursor-pointer" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
                          <path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path>
                        </svg></div>
                      <div role="listbox" id="designation-node-container" class="hidden max-h-56 overflow-y-scroll border-l border-r border-b rounded-b-md">
                        <ul role="list" class="designation-node-list text-sm font-medium select-none block ">
                          <li role="listitem" aria-label="Area of Greatest Need" class="node bg-white p-2 pl-4 border-t border-b border-gray-100  undefined">
                            <div class="pl-2 flex justify-between items-center">
                              <div class="text-gray-800 cursor-pointer node hover:underline">Area of Greatest Need</div><button type="button" aria-label="Add Area of Greatest Need" tabindex="0" role="link" class="mr-2 cursor-pointer add-button"><svg
                                  xmlns="http://www.w3.org/2000/svg" class="text-gray-400 h-7 w-7" fill="none" viewBox="0 0 24 24" stroke="currentColor" style="color: rgb(156, 163, 175);">
                                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                                </svg></button>
                            </div>
                          </li>
                          <li role="listitem" aria-label="Academic Programs" class="node bg-white p-2 pl-4 border-t border-b border-gray-100  undefined">
                            <div class="pl-2 flex justify-between items-center">
                              <div class="text-gray-800 cursor-pointer node hover:underline">Academic Programs</div><button type="button" aria-label="Add Academic Programs" tabindex="0" role="link" class="mr-2 cursor-pointer add-button"><svg
                                  xmlns="http://www.w3.org/2000/svg" class="text-gray-400 h-7 w-7" fill="none" viewBox="0 0 24 24" stroke="currentColor" style="color: rgb(156, 163, 175);">
                                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                                </svg></button>
                            </div>
                          </li>
                          <li role="listitem" aria-label="Arts" class="node bg-white p-2 pl-4 border-t border-b border-gray-100  undefined">
                            <div class="pl-2 flex justify-between items-center">
                              <div class="text-gray-800 cursor-pointer node hover:underline">Arts</div><button type="button" aria-label="Add Arts" tabindex="0" role="link" class="mr-2 cursor-pointer add-button"><svg xmlns="http://www.w3.org/2000/svg"
                                  class="text-gray-400 h-7 w-7" fill="none" viewBox="0 0 24 24" stroke="currentColor" style="color: rgb(156, 163, 175);">
                                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                                </svg></button>
                            </div>
                          </li>
                          <li role="listitem" aria-label="Athletics" class="node bg-white p-2 pl-4 border-t border-b border-gray-100  undefined">
                            <div class="pl-2 flex justify-between items-center">
                              <div class="text-gray-800 cursor-pointer node hover:underline">Athletics</div><button type="button" aria-label="Add Athletics" tabindex="0" role="link" class="mr-2 cursor-pointer add-button"><svg
                                  xmlns="http://www.w3.org/2000/svg" class="text-gray-400 h-7 w-7" fill="none" viewBox="0 0 24 24" stroke="currentColor" style="color: rgb(156, 163, 175);">
                                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                                </svg></button>
                            </div>
                          </li>
                          <li role="listitem" aria-label="Equity &amp; Inclusion" class="node bg-white p-2 pl-4 border-t border-b border-gray-100  undefined">
                            <div class="pl-2 flex justify-between items-center">
                              <div class="text-gray-800 cursor-pointer node hover:underline">Equity &amp; Inclusion</div><button type="button" aria-label="Add Equity &amp; Inclusion" tabindex="0" role="link"
                                class="mr-2 cursor-pointer add-button"><svg xmlns="http://www.w3.org/2000/svg" class="text-gray-400 h-7 w-7" fill="none" viewBox="0 0 24 24" stroke="currentColor" style="color: rgb(156, 163, 175);">
                                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                                </svg></button>
                            </div>
                          </li>
                          <li role="listitem" aria-label="Faculty" class="node bg-white p-2 pl-4 border-t border-b border-gray-100  undefined">
                            <div class="pl-2 flex justify-between items-center">
                              <div class="text-gray-800 cursor-pointer node hover:underline">Faculty</div><button type="button" aria-label="Add Faculty" tabindex="0" role="link" class="mr-2 cursor-pointer add-button"><svg
                                  xmlns="http://www.w3.org/2000/svg" class="text-gray-400 h-7 w-7" fill="none" viewBox="0 0 24 24" stroke="currentColor" style="color: rgb(156, 163, 175);">
                                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                                </svg></button>
                            </div>
                          </li>
                          <li role="listitem" aria-label="Financial Aid" class="node bg-white p-2 pl-4 border-t border-b border-gray-100  undefined">
                            <div class="pl-2 flex justify-between items-center">
                              <div class="text-gray-800 cursor-pointer node hover:underline">Financial Aid</div><button type="button" aria-label="Add Financial Aid" tabindex="0" role="link" class="mr-2 cursor-pointer add-button"><svg
                                  xmlns="http://www.w3.org/2000/svg" class="text-gray-400 h-7 w-7" fill="none" viewBox="0 0 24 24" stroke="currentColor" style="color: rgb(156, 163, 175);">
                                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                                </svg></button>
                            </div>
                          </li>
                          <li role="listitem" aria-label="Health &amp; Wellness" class="node bg-white p-2 pl-4 border-t border-b border-gray-100  undefined">
                            <div class="pl-2 flex justify-between items-center">
                              <div class="text-gray-800 cursor-pointer node hover:underline">Health &amp; Wellness</div><button type="button" aria-label="Add Health &amp; Wellness" tabindex="0" role="link" class="mr-2 cursor-pointer add-button"><svg
                                  xmlns="http://www.w3.org/2000/svg" class="text-gray-400 h-7 w-7" fill="none" viewBox="0 0 24 24" stroke="currentColor" style="color: rgb(156, 163, 175);">
                                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                                </svg></button>
                            </div>
                          </li>
                          <li role="listitem" aria-label="Technology" class="node bg-white p-2 pl-4 border-t border-b border-gray-100  undefined">
                            <div class="pl-2 flex justify-between items-center">
                              <div class="text-gray-800 cursor-pointer node hover:underline">Technology</div><button type="button" aria-label="Add Technology" tabindex="0" role="link" class="mr-2 cursor-pointer add-button"><svg
                                  xmlns="http://www.w3.org/2000/svg" class="text-gray-400 h-7 w-7" fill="none" viewBox="0 0 24 24" stroke="currentColor" style="color: rgb(156, 163, 175);">
                                  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                                </svg></button>
                            </div>
                          </li>
                        </ul>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div aria-label="Payer name" class="row" style="padding: 0.5em 0">
    <div class="form-group">
      <div class="col-sm-3"><label class="payer_name required" for="contribution_payer_name" aria-required="true">Name</label></div>
      <div class="col-sm-8"><input aria-label="payer_name" class="input-lg" id="contribution_payer_name" name="contribution[payer_name]" placeholder="First, MI, Last Name" required="required" type="text" aria-required="true"></div>
    </div>
  </div>
  <div aria-label="Payer email" class="row" style="padding: 0.5em 0">
    <div class="form-group">
      <div class="col-sm-3"><label class="payer_email required" for="contribution_payer_email" aria-required="true">Email</label></div>
      <div class="col-sm-8"><input aria-label="payer_email" class="input-lg" id="contribution_payer_email" name="contribution[payer_email]" placeholder="Email" required="required" type="email" aria-required="true"></div>
    </div>
  </div>
  <div aria-label="Addr country" class="row" style="padding: 0.5em 0">
    <div class="form-group">
      <div class="col-sm-3"><label class="addr_country required" for="contribution_addr_country" aria-required="true">Country</label></div>
      <div class="col-sm-8"><select aria-label="address country" class="form-control country-select" id="contribution_addr_country" name="contribution[addr_country]">
          <option data-zip-required="true" value="Canada">Canada</option>
          <option data-zip-required="true" value="United Kingdom">United Kingdom</option>
          <option data-zip-required="true" selected="selected" value="United States">United States</option>
          <option disabled="disabled">---------------------------------------------------------------------------------</option>
          <option data-zip-required="true" value="Afghanistan">Afghanistan</option>
          <option data-zip-required="true" value="Albania">Albania</option>
          <option data-zip-required="true" value="Algeria">Algeria</option>
          <option data-zip-required="true" value="American Samoa">American Samoa</option>
          <option data-zip-required="true" value="Andorra">Andorra</option>
          <option data-zip-required="false" value="Angola">Angola</option>
          <option data-zip-required="true" value="Anguilla">Anguilla</option>
          <option data-zip-required="false" value="Antigua and Barbuda">Antigua and Barbuda</option>
          <option data-zip-required="true" value="Argentina">Argentina</option>
          <option data-zip-required="true" value="Armenia">Armenia</option>
          <option data-zip-required="false" value="Aruba">Aruba</option>
          <option data-zip-required="true" value="Australia">Australia</option>
          <option data-zip-required="true" value="Austria">Austria</option>
          <option data-zip-required="true" value="Azerbaijan">Azerbaijan</option>
          <option data-zip-required="false" value="Bahamas">Bahamas</option>
          <option data-zip-required="true" value="Bahrain">Bahrain</option>
          <option data-zip-required="true" value="Bangladesh">Bangladesh</option>
          <option data-zip-required="true" value="Barbados">Barbados</option>
          <option data-zip-required="true" value="Belarus">Belarus</option>
          <option data-zip-required="true" value="Belgium">Belgium</option>
          <option data-zip-required="false" value="Belize">Belize</option>
          <option data-zip-required="false" value="Benin">Benin</option>
          <option data-zip-required="true" value="Bermuda">Bermuda</option>
          <option data-zip-required="true" value="Bhutan">Bhutan</option>
          <option data-zip-required="true" value="Bolivia">Bolivia</option>
          <option data-zip-required="true" value="Bosnia and Herzegovina">Bosnia and Herzegovina</option>
          <option data-zip-required="false" value="Botswana">Botswana</option>
          <option data-zip-required="true" value="Brazil">Brazil</option>
          <option data-zip-required="true" value="Brunei Darussalam">Brunei Darussalam</option>
          <option data-zip-required="true" value="Bulgaria">Bulgaria</option>
          <option data-zip-required="false" value="Burkina Faso">Burkina Faso</option>
          <option data-zip-required="false" value="Burundi">Burundi</option>
          <option data-zip-required="true" value="Cambodia">Cambodia</option>
          <option data-zip-required="false" value="Cameroon">Cameroon</option>
          <option data-zip-required="true" value="Canada">Canada</option>
          <option data-zip-required="true" value="Cape Verde">Cape Verde</option>
          <option data-zip-required="true" value="Cayman Islands">Cayman Islands</option>
          <option data-zip-required="false" value="Central African Republic">Central African Republic</option>
          <option data-zip-required="true" value="Chad">Chad</option>
          <option data-zip-required="true" value="Chile">Chile</option>
          <option data-zip-required="true" value="China">China</option>
          <option data-zip-required="true" value="Colombia">Colombia</option>
          <option data-zip-required="false" value="Comoros">Comoros</option>
          <option data-zip-required="false" value="Congo">Congo</option>
          <option data-zip-required="false" value="Cook Islands">Cook Islands</option>
          <option data-zip-required="true" value="Costa Rica">Costa Rica</option>
          <option data-zip-required="false" value="Cote D'Ivoire">Cote D'Ivoire</option>
          <option data-zip-required="true" value="Croatia">Croatia</option>
          <option data-zip-required="true" value="Cuba">Cuba</option>
          <option data-zip-required="true" value="Cyprus">Cyprus</option>
          <option data-zip-required="true" value="Czech Republic">Czech Republic</option>
          <option data-zip-required="false" value="Democratic Republic of the Congo">Democratic Republic of the Congo</option>
          <option data-zip-required="true" value="Denmark">Denmark</option>
          <option data-zip-required="false" value="Djibouti">Djibouti</option>
          <option data-zip-required="false" value="Dominica">Dominica</option>
          <option data-zip-required="true" value="Dominican Republic">Dominican Republic</option>
          <option data-zip-required="true" value="Ecuador">Ecuador</option>
          <option data-zip-required="true" value="Egypt">Egypt</option>
          <option data-zip-required="true" value="El Salvador">El Salvador</option>
          <option data-zip-required="false" value="Equatorial Guinea">Equatorial Guinea</option>
          <option data-zip-required="false" value="Eritrea">Eritrea</option>
          <option data-zip-required="true" value="Estonia">Estonia</option>
          <option data-zip-required="true" value="Ethiopia">Ethiopia</option>
          <option data-zip-required="true" value="Falkland Islands (Malvinas)">Falkland Islands (Malvinas)</option>
          <option data-zip-required="true" value="Faroe Islands">Faroe Islands</option>
          <option data-zip-required="false" value="Fiji">Fiji</option>
          <option data-zip-required="true" value="Finland">Finland</option>
          <option data-zip-required="true" value="France">France</option>
          <option data-zip-required="true" value="French Guiana">French Guiana</option>
          <option data-zip-required="true" value="French Polynesia">French Polynesia</option>
          <option data-zip-required="true" value="Gabon">Gabon</option>
          <option data-zip-required="false" value="Gambia">Gambia</option>
          <option data-zip-required="true" value="Georgia">Georgia</option>
          <option data-zip-required="true" value="Germany">Germany</option>
          <option data-zip-required="false" value="Ghana">Ghana</option>
          <option data-zip-required="true" value="Gibraltar">Gibraltar</option>
          <option data-zip-required="true" value="Greece">Greece</option>
          <option data-zip-required="true" value="Greenland">Greenland</option>
          <option data-zip-required="false" value="Grenada">Grenada</option>
          <option data-zip-required="true" value="Guadeloupe">Guadeloupe</option>
          <option data-zip-required="true" value="Guam">Guam</option>
          <option data-zip-required="true" value="Guatemala">Guatemala</option>
          <option data-zip-required="false" value="Guinea">Guinea</option>
          <option data-zip-required="true" value="Guinea-Bissau">Guinea-Bissau</option>
          <option data-zip-required="false" value="Guyana">Guyana</option>
          <option data-zip-required="true" value="Haiti">Haiti</option>
          <option data-zip-required="true" value="Holy See (Vatican City State)">Holy See (Vatican City State)</option>
          <option data-zip-required="true" value="Honduras">Honduras</option>
          <option data-zip-required="false" value="Hong Kong">Hong Kong</option>
          <option data-zip-required="true" value="Hungary">Hungary</option>
          <option data-zip-required="true" value="Iceland">Iceland</option>
          <option data-zip-required="true" value="India">India</option>
          <option data-zip-required="true" value="Indonesia">Indonesia</option>
          <option data-zip-required="true" value="Iran, Islamic Republic of">Iran, Islamic Republic of</option>
          <option data-zip-required="true" value="Iraq">Iraq</option>
          <option data-zip-required="false" value="Ireland">Ireland</option>
          <option data-zip-required="true" value="Israel">Israel</option>
          <option data-zip-required="true" value="Italy">Italy</option>
          <option data-zip-required="false" value="Jamaica">Jamaica</option>
          <option data-zip-required="true" value="Japan">Japan</option>
          <option data-zip-required="true" value="Jordan">Jordan</option>
          <option data-zip-required="true" value="Kazakhstan">Kazakhstan</option>
          <option data-zip-required="false" value="Kenya">Kenya</option>
          <option data-zip-required="false" value="Kiribati">Kiribati</option>
          <option data-zip-required="false" value="Korea, Democratic People's Republic of">Korea, Democratic People's Republic of</option>
          <option data-zip-required="true" value="Kuwait">Kuwait</option>
          <option data-zip-required="true" value="Kyrgyzstan">Kyrgyzstan</option>
          <option data-zip-required="true" value="Lao People's Democratic Republic">Lao People's Democratic Republic</option>
          <option data-zip-required="true" value="Latvia">Latvia</option>
          <option data-zip-required="false" value="Lebanon">Lebanon</option>
          <option data-zip-required="true" value="Lesotho">Lesotho</option>
          <option data-zip-required="true" value="Liberia">Liberia</option>
          <option data-zip-required="true" value="Libyan Arab Jamahiriya">Libyan Arab Jamahiriya</option>
          <option data-zip-required="true" value="Liechtenstein">Liechtenstein</option>
          <option data-zip-required="true" value="Lithuania">Lithuania</option>
          <option data-zip-required="true" value="Luxembourg">Luxembourg</option>
          <option data-zip-required="false" value="Macao">Macao</option>
          <option data-zip-required="true" value="Macedonia, the Former Yugoslav Republic of">Macedonia, the Former Yugoslav Republic of</option>
          <option data-zip-required="true" value="Madagascar">Madagascar</option>
          <option data-zip-required="false" value="Malawi">Malawi</option>
          <option data-zip-required="true" value="Malaysia">Malaysia</option>
          <option data-zip-required="true" value="Maldives">Maldives</option>
          <option data-zip-required="false" value="Mali">Mali</option>
          <option data-zip-required="true" value="Malta">Malta</option>
          <option data-zip-required="true" value="Marshall Islands">Marshall Islands</option>
          <option data-zip-required="true" value="Martinique">Martinique</option>
          <option data-zip-required="false" value="Mauritania">Mauritania</option>
          <option data-zip-required="false" value="Mauritius">Mauritius</option>
          <option data-zip-required="true" value="Mexico">Mexico</option>
          <option data-zip-required="true" value="Micronesia, Federated States of">Micronesia, Federated States of</option>
          <option data-zip-required="true" value="Moldova, Republic of">Moldova, Republic of</option>
          <option data-zip-required="true" value="Monaco">Monaco</option>
          <option data-zip-required="true" value="Mongolia">Mongolia</option>
          <option data-zip-required="false" value="Montenegro">Montenegro</option>
          <option data-zip-required="false" value="Montserrat">Montserrat</option>
          <option data-zip-required="true" value="Morocco">Morocco</option>
          <option data-zip-required="true" value="Mozambique">Mozambique</option>
          <option data-zip-required="true" value="Myanmar">Myanmar</option>
          <option data-zip-required="true" value="Namibia">Namibia</option>
          <option data-zip-required="false" value="Nauru">Nauru</option>
          <option data-zip-required="true" value="Nepal">Nepal</option>
          <option data-zip-required="true" value="Netherlands">Netherlands</option>
          <option data-zip-required="false" value="Netherlands Antilles">Netherlands Antilles</option>
          <option data-zip-required="true" value="New Caledonia">New Caledonia</option>
          <option data-zip-required="true" value="New Zealand">New Zealand</option>
          <option data-zip-required="true" value="Nicaragua">Nicaragua</option>
          <option data-zip-required="true" value="Niger">Niger</option>
          <option data-zip-required="true" value="Nigeria">Nigeria</option>
          <option data-zip-required="false" value="Niue">Niue</option>
          <option data-zip-required="true" value="Norfolk Island">Norfolk Island</option>
          <option data-zip-required="true" value="Northern Mariana Islands">Northern Mariana Islands</option>
          <option data-zip-required="true" value="Norway">Norway</option>
          <option data-zip-required="true" value="Oman">Oman</option>
          <option data-zip-required="true" value="Pakistan">Pakistan</option>
          <option data-zip-required="true" value="Palau">Palau</option>
          <option data-zip-required="true" value="Palestine">Palestine</option>
          <option data-zip-required="false" value="Panama">Panama</option>
          <option data-zip-required="true" value="Papua New Guinea">Papua New Guinea</option>
          <option data-zip-required="true" value="Paraguay">Paraguay</option>
          <option data-zip-required="true" value="Peru">Peru</option>
          <option data-zip-required="true" value="Philippines">Philippines</option>
          <option data-zip-required="true" value="Pitcairn">Pitcairn</option>
          <option data-zip-required="true" value="Poland">Poland</option>
          <option data-zip-required="true" value="Portugal">Portugal</option>
          <option data-zip-required="true" value="Puerto Rico">Puerto Rico</option>
          <option data-zip-required="false" value="Qatar">Qatar</option>
          <option data-zip-required="true" value="Reunion">Reunion</option>
          <option data-zip-required="true" value="Romania">Romania</option>
          <option data-zip-required="true" value="Russia">Russia</option>
          <option data-zip-required="false" value="Rwanda">Rwanda</option>
          <option data-zip-required="true" value="Saint Helena">Saint Helena</option>
          <option data-zip-required="false" value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
          <option data-zip-required="false" value="Saint Lucia">Saint Lucia</option>
          <option data-zip-required="true" value="Saint Pierre and Miquelon">Saint Pierre and Miquelon</option>
          <option data-zip-required="true" value="Saint Vincent and the Grenadines">Saint Vincent and the Grenadines</option>
          <option data-zip-required="true" value="Samoa">Samoa</option>
          <option data-zip-required="true" value="San Marino">San Marino</option>
          <option data-zip-required="false" value="Sao Tome and Principe">Sao Tome and Principe</option>
          <option data-zip-required="false" value="Saudi Arabia">Saudi Arabia</option>
          <option data-zip-required="true" value="Senegal">Senegal</option>
          <option data-zip-required="true" value="Serbia">Serbia</option>
          <option data-zip-required="false" value="Seychelles">Seychelles</option>
          <option data-zip-required="false" value="Sierra Leone">Sierra Leone</option>
          <option data-zip-required="true" value="Singapore">Singapore</option>
          <option data-zip-required="true" value="Slovakia">Slovakia</option>
          <option data-zip-required="true" value="Slovenia">Slovenia</option>
          <option data-zip-required="false" value="Solomon Islands">Solomon Islands</option>
          <option data-zip-required="false" value="Somalia">Somalia</option>
          <option data-zip-required="false" value="South Africa">South Africa</option>
          <option data-zip-required="true" value="South Korea">South Korea</option>
          <option data-zip-required="true" value="Spain">Spain</option>
          <option data-zip-required="true" value="Sri Lanka">Sri Lanka</option>
          <option data-zip-required="true" value="Sudan">Sudan</option>
          <option data-zip-required="false" value="Suriname">Suriname</option>
          <option data-zip-required="true" value="Svalbard and Jan Mayen">Svalbard and Jan Mayen</option>
          <option data-zip-required="true" value="Swaziland">Swaziland</option>
          <option data-zip-required="true" value="Sweden">Sweden</option>
          <option data-zip-required="true" value="Switzerland">Switzerland</option>
          <option data-zip-required="false" value="Syrian Arab Republic">Syrian Arab Republic</option>
          <option data-zip-required="true" value="Taiwan">Taiwan</option>
          <option data-zip-required="true" value="Tajikistan">Tajikistan</option>
          <option data-zip-required="false" value="Tanzania, United Republic of">Tanzania, United Republic of</option>
          <option data-zip-required="true" value="Thailand">Thailand</option>
          <option data-zip-required="true" value="Togo">Togo</option>
          <option data-zip-required="false" value="Tokelau">Tokelau</option>
          <option data-zip-required="false" value="Tonga">Tonga</option>
          <option data-zip-required="false" value="Trinidad and Tobago">Trinidad and Tobago</option>
          <option data-zip-required="true" value="Tunisia">Tunisia</option>
          <option data-zip-required="true" value="Turkey">Turkey</option>
          <option data-zip-required="true" value="Turkmenistan">Turkmenistan</option>
          <option data-zip-required="true" value="Turks and Caicos Islands">Turks and Caicos Islands</option>
          <option data-zip-required="false" value="Tuvalu">Tuvalu</option>
          <option data-zip-required="false" value="Uganda">Uganda</option>
          <option data-zip-required="true" value="Ukraine">Ukraine</option>
          <option data-zip-required="false" value="United Arab Emirates">United Arab Emirates</option>
          <option data-zip-required="true" value="United Kingdom">United Kingdom</option>
          <option data-zip-required="true" value="United States">United States</option>
          <option data-zip-required="true" value="Uruguay">Uruguay</option>
          <option data-zip-required="true" value="Uzbekistan">Uzbekistan</option>
          <option data-zip-required="false" value="Vanuatu">Vanuatu</option>
          <option data-zip-required="true" value="Venezuela">Venezuela</option>
          <option data-zip-required="true" value="Vietnam">Vietnam</option>
          <option data-zip-required="true" value="Virgin Islands, British">Virgin Islands, British</option>
          <option data-zip-required="true" value="Virgin Islands, U.s.">Virgin Islands, U.s.</option>
          <option data-zip-required="true" value="Wallis and Futuna">Wallis and Futuna</option>
          <option data-zip-required="true" value="Western Sahara">Western Sahara</option>
          <option data-zip-required="false" value="Yemen">Yemen</option>
          <option data-zip-required="true" value="Zambia">Zambia</option>
          <option data-zip-required="false" value="Zimbabwe">Zimbabwe</option>
        </select>
        <script>
          var zipcodeRequired = true;
          var zipcodeFieldRequired = true;
          var defaultCountry = "United States";
          // If an autofill token or autofill param is set then the country may be autofilled after we already autofilled state.
          // This would trigger a wipe of the state without this conditional
          var autofill_state_set = "false"
          $("#contribution_addr_country").change(function() {
            var country = {
              name: $(this).val(),
              reqZip: $(this).children('option:selected').data('zip-required')
            };
            if ($("#addr_state").length > 0) {
              if (country.name !== "United States") {
                $("label.addr_state").slideUp();
                $("#addr_state").slideUp();
                $("#addr_state").val("");
              } else {
                $("label.addr_state").slideDown();
                $("#addr_state").slideDown();
                if (autofill_state_set !== "true") {
                  $("#addr_state").val("");
                }
              }
            }
            if ($("#contribution_mail_address").length > 0) {
              if (country.name !== "United States") {
                $("#contribution_mail_address").attr("placeholder", 'Street, City, State')
              } else {
                $("#contribution_mail_address").attr("placeholder", 'Street')
              }
            }
            if (country.reqZip) {
              zipcodeRequired = true;
              $("#contribution_zipcode").slideDown();
              $("label.zipcode").slideDown();
              if (zipcodeFieldRequired) {
                $('#contribution_zipcode').attr('required', 'required');
                $('#contribution_zipcode').attr('aria-required', 'true');
                $('#contribution_zipcode').addClass("required");
                $("label[for='contribution_zipcode']").addClass("required");
              }
            } else {
              zipcodeRequired = false;
              $("label.zipcode").slideUp();
              $("#contribution_zipcode").slideUp();
              $("#contribution_zipcode").val("");
              if (zipcodeFieldRequired) {
                $('#contribution_zipcode').removeAttr('required');
                $('#contribution_zipcode').attr("aria-required", false);
                $('#contribution_zipcode').removeClass('required');
                $("label[for='contribution_zipcode']").removeClass("required");
              }
            }
          });
          $(function() {
            if ("false" !== 'true') {
              $("#contribution_addr_country").val(defaultCountry);
              $("#contribution_addr_country").trigger("change");
            }
          });
        </script>
      </div>
    </div>
  </div>
  <div aria-label="Zipcode" class="row" style="padding: 0.5em 0">
    <div class="form-group">
      <div class="col-sm-3"><label class="zipcode required" for="contribution_zipcode" aria-required="true" style="display: inline-block;">ZIP code</label></div>
      <div class="col-sm-8"><input aria-label="zipcode" class="input-lg required" id="contribution_zipcode" name="contribution[zipcode]" placeholder="ZIP or postal code" required="required" type="text" aria-required="true" style="">
        <div class="help-block zipcode"></div>
      </div>
    </div>
  </div>
  <div aria-label="Comments" class="row" style="padding: 0.5em 0">
    <div class="form-group">
      <div class="col-sm-3"><label class="comments" for="comments">Comments</label></div>
      <div class="col-sm-8"><input aria-label="comments" class="input-lg" id="comments" name="contribution[addtnl_fields][comments]" placeholder="" type="text"></div>
    </div>
  </div>
  <div aria-label="Affiliation" class="row" style="padding: 0.5em 0">
    <div class="form-group">
      <div class="col-sm-3"></div>
      <div class="col-sm-8"></div>
    </div>
  </div><br>
  <div aria-label="affiliations and checkout">
    <div class="affiliation-field-container">
      <style type="text/css">
        .affiliation-select.hidden {
          display: none !important;
        }
      </style>
      <script>
        $(document).ready(function() {
          DependentFields.bind();
        });
      </script><label for="affiliations">Affiliation<span class="ml-1 text-lg font-bold text-red-600"></span></label>
      <div class="input-invalid error-text" id="affiliation-errors" style="display: none"></div>
      <div aria-label="affiliations" class="affiliations" id="affiliations">
        <div class="flex my-2"><input type="checkbox" name="contribution[selected_affiliations][alumni]" id="alumni_checked" value="true" class="inline-block h-4 w-4"><label class="inline-block" for="alumni_checked">Alumnus/a</label></div>
        <div class="js-dependent-fields mb-4  affiliation-select" data-checkbox-id="alumni_checked" data-checkbox-value="true" id="affiliation_select_container_alumni_0" style="display: none;"><label class="hidden"
            for="selected_affiliations_alumni_0">Select a Class Year</label><select class="w-min my-2" name="selected_affiliations[alumni_0]" id="selected_affiliations_alumni_0">
            <option value="">Class Year</option>
            <option value="2032">2032</option>
            <option value="2031">2031</option>
            <option value="2030">2030</option>
            <option value="2029">2029</option>
            <option value="2028">2028</option>
            <option value="2027">2027</option>
            <option value="2026">2026</option>
            <option value="2025">2025</option>
            <option value="2024">2024</option>
            <option value="2023">2023</option>
            <option value="2022">2022</option>
            <option value="2021">2021</option>
            <option value="2020">2020</option>
            <option value="2019">2019</option>
            <option value="2018">2018</option>
            <option value="2017">2017</option>
            <option value="2016">2016</option>
            <option value="2015">2015</option>
            <option value="2014">2014</option>
            <option value="2013">2013</option>
            <option value="2012">2012</option>
            <option value="2011">2011</option>
            <option value="2010">2010</option>
            <option value="2009">2009</option>
            <option value="2008">2008</option>
            <option value="2007">2007</option>
            <option value="2006">2006</option>
            <option value="2005">2005</option>
            <option value="2004">2004</option>
            <option value="2003">2003</option>
            <option value="2002">2002</option>
            <option value="2001">2001</option>
            <option value="2000">2000</option>
            <option value="1999">1999</option>
            <option value="1998">1998</option>
            <option value="1997">1997</option>
            <option value="1996">1996</option>
            <option value="1995">1995</option>
            <option value="1994">1994</option>
            <option value="1993">1993</option>
            <option value="1992">1992</option>
            <option value="1991">1991</option>
            <option value="1990">1990</option>
            <option value="1989">1989</option>
            <option value="1988">1988</option>
            <option value="1987">1987</option>
            <option value="1986">1986</option>
            <option value="1985">1985</option>
            <option value="1984">1984</option>
            <option value="1983">1983</option>
            <option value="1982">1982</option>
            <option value="1981">1981</option>
            <option value="1980">1980</option>
            <option value="1979">1979</option>
            <option value="1978">1978</option>
            <option value="1977">1977</option>
            <option value="1976">1976</option>
            <option value="1975">1975</option>
            <option value="1974">1974</option>
            <option value="1973">1973</option>
            <option value="1972">1972</option>
            <option value="1971">1971</option>
            <option value="1970">1970</option>
            <option value="1969">1969</option>
            <option value="1968">1968</option>
            <option value="1967">1967</option>
            <option value="1966">1966</option>
            <option value="1965">1965</option>
            <option value="1964">1964</option>
            <option value="1963">1963</option>
            <option value="1962">1962</option>
            <option value="1961">1961</option>
            <option value="1960">1960</option>
            <option value="1959">1959</option>
            <option value="1958">1958</option>
            <option value="1957">1957</option>
            <option value="1956">1956</option>
            <option value="1955">1955</option>
            <option value="1954">1954</option>
            <option value="1953">1953</option>
            <option value="1952">1952</option>
            <option value="1951">1951</option>
            <option value="1950">1950</option>
            <option value="1949">1949</option>
            <option value="1948">1948</option>
            <option value="1947">1947</option>
            <option value="1946">1946</option>
            <option value="1945">1945</option>
            <option value="1944">1944</option>
            <option value="1943">1943</option>
            <option value="1942">1942</option>
            <option value="1941">1941</option>
            <option value="1940">1940</option>
            <option value="1939">1939</option>
            <option value="1938">1938</option>
            <option value="1937">1937</option>
            <option value="1936">1936</option>
            <option value="1935">1935</option>
            <option value="1934">1934</option>
            <option value="1933">1933</option>
            <option value="1932">1932</option>
            <option value="1931">1931</option>
            <option value="1930">1930</option>
            <option value="1929">1929</option>
            <option value="1928">1928</option>
            <option value="1927">1927</option>
          </select></div>
        <div class="flex my-2"><input type="checkbox" name="contribution[selected_affiliations][student]" id="student_checked" value="true" class="inline-block h-4 w-4"><label class="inline-block" for="student_checked">Student</label></div>
        <div class="js-dependent-fields mb-4  affiliation-select" data-checkbox-id="student_checked" data-checkbox-value="true" id="affiliation_select_container_student_0" style="display: none;"><label class="hidden"
            for="selected_affiliations_student_0">Select a Class Year</label><select class="w-min my-2" name="selected_affiliations[student_0]" id="selected_affiliations_student_0">
            <option value="">Class Year</option>
            <option value="2031">2031</option>
            <option value="2030">2030</option>
            <option value="2029">2029</option>
            <option value="2028">2028</option>
            <option value="2027">2027</option>
            <option value="2026">2026</option>
            <option value="2025">2025</option>
            <option value="2024">2024</option>
            <option value="2023">2023</option>
          </select></div>
        <div class="flex my-2"><input type="checkbox" name="contribution[selected_affiliations][parent]" id="parent_checked" value="true" class="inline-block h-4 w-4"><label class="inline-block" for="parent_checked">Parent</label></div>
        <div class="js-dependent-fields mb-4  affiliation-select" data-checkbox-id="parent_checked" data-checkbox-value="true" id="affiliation_select_container_parent_0" style="display: none;"><label class="hidden"
            for="selected_affiliations_parent_0">Select a Class Year</label><select class="w-min my-2" name="selected_affiliations[parent_0]" id="selected_affiliations_parent_0">
            <option value="">Class Year</option>
            <option value="2034">2034</option>
            <option value="2033">2033</option>
            <option value="2032">2032</option>
            <option value="2031">2031</option>
            <option value="2030">2030</option>
            <option value="2029">2029</option>
            <option value="2028">2028</option>
            <option value="2027">2027</option>
            <option value="2026">2026</option>
            <option value="2025">2025</option>
            <option value="2024">2024</option>
            <option value="2023">2023</option>
            <option value="2022">2022</option>
            <option value="2021">2021</option>
            <option value="2020">2020</option>
            <option value="2019">2019</option>
            <option value="2018">2018</option>
            <option value="2017">2017</option>
            <option value="2016">2016</option>
            <option value="2015">2015</option>
            <option value="2014">2014</option>
            <option value="2013">2013</option>
            <option value="2012">2012</option>
            <option value="2011">2011</option>
            <option value="2010">2010</option>
            <option value="2009">2009</option>
            <option value="2008">2008</option>
            <option value="2007">2007</option>
            <option value="2006">2006</option>
            <option value="2005">2005</option>
            <option value="2004">2004</option>
            <option value="2003">2003</option>
            <option value="2002">2002</option>
            <option value="2001">2001</option>
            <option value="2000">2000</option>
            <option value="1999">1999</option>
            <option value="1998">1998</option>
            <option value="1997">1997</option>
            <option value="1996">1996</option>
            <option value="1995">1995</option>
            <option value="1994">1994</option>
            <option value="1993">1993</option>
            <option value="1992">1992</option>
            <option value="1991">1991</option>
            <option value="1990">1990</option>
            <option value="1989">1989</option>
            <option value="1988">1988</option>
            <option value="1987">1987</option>
            <option value="1986">1986</option>
            <option value="1985">1985</option>
            <option value="1984">1984</option>
            <option value="1983">1983</option>
            <option value="1982">1982</option>
            <option value="1981">1981</option>
            <option value="1980">1980</option>
            <option value="1979">1979</option>
            <option value="1978">1978</option>
            <option value="1977">1977</option>
            <option value="1976">1976</option>
            <option value="1975">1975</option>
            <option value="1974">1974</option>
            <option value="1973">1973</option>
            <option value="1972">1972</option>
            <option value="1971">1971</option>
            <option value="1970">1970</option>
            <option value="1969">1969</option>
            <option value="1968">1968</option>
            <option value="1967">1967</option>
            <option value="1966">1966</option>
            <option value="1965">1965</option>
            <option value="1964">1964</option>
            <option value="1963">1963</option>
            <option value="1962">1962</option>
            <option value="1961">1961</option>
            <option value="1960">1960</option>
            <option value="1959">1959</option>
            <option value="1958">1958</option>
            <option value="1957">1957</option>
            <option value="1956">1956</option>
            <option value="1955">1955</option>
            <option value="1954">1954</option>
            <option value="1953">1953</option>
            <option value="1952">1952</option>
            <option value="1951">1951</option>
            <option value="1950">1950</option>
            <option value="1949">1949</option>
            <option value="1948">1948</option>
            <option value="1947">1947</option>
            <option value="1946">1946</option>
            <option value="1945">1945</option>
            <option value="1944">1944</option>
            <option value="1943">1943</option>
            <option value="1942">1942</option>
            <option value="1941">1941</option>
            <option value="1940">1940</option>
          </select></div>
        <div class="flex my-2"><input type="checkbox" name="contribution[selected_affiliations][employee]" id="employee_checked" value="true" class="inline-block h-4 w-4"><label class="inline-block" for="employee_checked">Faculty/Staff</label></div>
        <div class="flex my-2"><input type="checkbox" name="contribution[selected_affiliations][friend]" id="friend_checked" value="true" class="inline-block h-4 w-4"><label class="inline-block" for="friend_checked">Friend</label></div>
      </div>
      <script>
        $(function() {
          $(".affiliation-select select option").each(function() {
            var aposReplace = $(this).val().replace(/'/g, '&apos;');
            $(this).val(aposReplace)
          })
        })
        var affiliationLimits = {
          "alumni": 2,
          "student": 2,
          "parent": 2,
          "employee": 2,
          "friend": 2
        }
        var affiliationSteps = {
          "alumni": 0,
          "student": 0,
          "parent": 0,
          "employee": 0,
          "friend": 0
        }

        function addAffiliationSelection(affilName) {
          if (affiliationSteps[affilName] < affiliationLimits[affilName] && $("#" + affilName + "_checked").is(':checked')) {
            affiliationSteps[affilName] += 1;
            $("#affiliation_select_container_" + affilName + "_" + affiliationSteps[affilName].toString()).removeClass("hidden").css("display", "block");
            $("#selected_affiliations_" + affilName + "_" + (affiliationSteps[affilName] + 1).toString()).attr("name", "selected_affiliations[" + affilName + "_" + (affiliationSteps[affilName] + 1).toString() + "]");
            if (affiliationSteps[affilName] === 1) {
              $("#delete_" + affilName).removeClass("hidden")
            }
            if (affiliationSteps[affilName] === affiliationLimits[affilName] - 1) {
              $("#add_" + affilName).addClass("hidden")
            }
          } else {
            return;
          }
        }

        function deleteAffiliationSelection(affilName) {
          if (affiliationSteps[affilName] > 0 && $("#" + affilName + "_checked").is(':checked')) {
            affiliationSteps[affilName] -= 1;
            $("#affiliation_select_container_" + affilName + "_" + (affiliationSteps[affilName] + 1).toString()).addClass("hidden").css("display", "none");
            $("#selected_affiliations_" + affilName + "_" + (affiliationSteps[affilName] + 1).toString()).removeAttr("name");
            if (affiliationSteps[affilName] === (affiliationLimits[affilName] - 2)) {
              $("#add_" + affilName).removeClass("hidden")
            }
            if (affiliationSteps[affilName] === 0) {
              $("#delete_" + affilName).addClass("hidden")
            }
          } else {
            return;
          }
        }
      </script>
    </div>
    <div aria-label="checkout">
      <style type="text/css">
        .g-recaptcha {
          display: inline-block;
          margin-bottom: 10px;
        }
      </style><input aria-hidden="true" aria-label="Country" autocomplete="false" class="contribution-a-zipcode hidden" id="contribution_a_country" name="contribution[a_country]" tabindex="-1" type="text" value="">
      <style type="text/css">
        @keyframes bang {
          from {
            transform: translate3d(0, 0, 0);
            opacity: 1;
          }
        }

        .confetti {
          position: relative;
        }

        .confetti i {
          position: absolute;
          display: block;
          left: 50%;
          top: 0;
          width: 3px;
          height: 8px;
          background: red;
          opacity: 0;
        }
      </style><input aria-hidden="true" aria-label="Recurring Nudge Enabled" autocomplete="false" class="hidden" id="contribution_recurring_nudge_enabled" name="contribution[recurring_nudge_enabled]" tabindex="-1" type="hidden" value="false"><input
        aria-hidden="true" aria-label="Recurring Nudge Shown" autocomplete="false" class="hidden" id="contribution_recurring_nudge_shown" name="contribution[recurring_nudge_shown]" tabindex="-1" type="hidden" value="false"><input aria-hidden="true"
        aria-label="Recurring Nudge Original Amount" autocomplete="false" class="hidden" id="contribution_recurring_nudge_original_amount" name="contribution[recurring_nudge_original_amount]" tabindex="-1" type="hidden">
      <div aria-labelledby="modal-title" aria-modal="true" class="hidden fixed z-50 inset-0 overflow-y-auto ease-out duration-300 opacity-0 ease-in duration-200" id="recurring-gift-nudge-modal" role="dialog">
        <div class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0">
          <div aria-hidden="true" class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"></div><!--This element is to trick the browser into centering the modal contents.--><span aria-hidden="true"
            class="hidden sm:inline-block sm:align-middle sm:h-screen"></span>
          <div class="inline-block align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-sm sm:w-full sm:p-6">
            <div>
              <div class="mx-auto flex items-center justify-center"><img alt="Choate Rosemary Hall" style="max-height: 60px;" src="https://dlmrue3jobed1.cloudfront.net/uploads/school/ChoateRosemaryHall/CRH_SHIELD_GC.jpg"></div>
              <div class="mt-3 sm:mt-5">
                <h3 class="text-lg leading-6 font-bold text-gray-900" id="modal-title">Become a Monthly Supporter</h3>
                <div class="mt-2">
                  <p class="text-sm text-gray-500">Would you consider becoming one of our valued monthly supporters by converting your<span class="font-medium">&nbsp;$<span class="current-gift-amount"></span></span>&nbsp;contribution into a monthly
                    gift?</p>
                  <p class="text-sm text-gray-500 my-4">Ongoing monthly donations allow us to better focus on our mission.</p>
                </div>
              </div>
            </div>
            <div class="mt-5 sm:mt-6"><button
                class="inline-flex justify-center w-full rounded-md border border-transparent shadow-sm px-4 py-2 btn-school-primary text-base font-medium text-white confetti focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:text-sm"
                id="give-monthly-nudge" tabindex="1" type="button">Give<span class="font-medium">&nbsp;$<span class="nudge-amount"></span>/month</span></button><button
                class="inline-flex justify-center w-full rounded-md border border-transparent shadow-sm px-4 py-2 btn-school text-base font-medium text-school mt-4 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 sm:text-sm"
                id="keep-one-time" tabindex="2" type="button">Keep my one-time<span class="font-medium mx-1">$<span class="current-gift-amount"></span>&nbsp;gift</span></button></div>
          </div>
        </div>
      </div>
      <script>
        function RecurringGiftNudgeModal(contributionAmount) {
          this.contributionAmount = contributionAmount;
          this.enabled = false
          this.ranges = [
            [25, 0],
            [50, 5],
            [100, 10],
            [150, 15],
            [200, 20],
            [250, 25],
            [300, 30],
            [350, 35],
            [400, 40],
            [450, 45],
            [500, 50],
            [550, 55],
            [600, 60],
            [650, 65],
            [700, 70],
            [750, 75],
            [800, 80],
            [850, 85],
            [900, 90],
            [950, 95],
            [1000, 100]
          ]
          this.notAlreadyShown = $('#contribution_recurring_nudge_shown').val() == 'false'
          this.notRecurringGift = $('#contribution_recur').prop('checked') == false
          // Internal Functions
          this.nudgeAmount = function() {
            // Im not sure why this variable is necessary but it did not work in-line
            var amount = this.contributionAmount
            if ("Monthly" == "Monthly") {
              var relevantRange = this.ranges.find(function(range) {
                limit = range[0]
                return amount <= limit
              });
              return relevantRange[1]
            } else {
              return amount
            }
          }
          // External Functions
          this.setOriginalContributionValue = function() {
            if ($('#contribution_recurring_nudge_shown').val() == 'false') {
              $('#contribution_recurring_nudge_original_amount').val(this.contributionAmount);
            }
          }
          this.shouldDisplay = function() {
            return this.enabled && this.notAlreadyShown && this.notRecurringGift && this.nudgeAmount() > 0
          }
          this.triggerRecurringNudgeTracking = function() {
            $.ajax({
              url: '/campaigns/25710/conversion_metrics/0',
              method: 'PATCH',
              data: {
                uuid: '82d3e43323f2ecf681268e811a1c99dc',
                recurring_nudge: true
              }
            });
          }
          this.display = function() {
            if ("true" == "true") {
              this.triggerRecurringNudgeTracking();
            }
            $('.nudge-amount').html(this.nudgeAmount());
            $('.current-gift-amount').html(this.contributionAmount);
            $('#recurring-gift-nudge-modal').show();
            $('#recurring-gift-nudge-modal').animate({
              opacity: 25
            }, 100);
          };
        }
        $(document).ready(function() {
          $("#give-monthly-nudge").click(function(event) {
            function random(max) {
              return Math.random() * (max - 0) + 0;
            }
            // Displays a confetti animation
            var confettiContainer = document.createDocumentFragment();
            for (var i = 0; i < 100; i++) {
              var styles = 'transform: translate3d(' + (random(500) - 250) + 'px, ' + (random(200) - 150) + 'px, 0) rotate(' + random(360) + 'deg);\
                    background: hsla(' + random(360) + ',100%,50%,1);\
                    animation: bang 700ms ease-out forwards;\
                    opacity: 0';
              var confetti = document.createElement("i");
              confetti.style.cssText = styles.toString();
              confettiContainer.appendChild(confetti);
            }
            $(this).append(confettiContainer);
            convertContributionToRecurring();
            sendDesignationsAmountSplit();
            submitContributionForm();
          });
          $("#keep-one-time").click(function(event) {
            submitContributionForm();
          });

          function convertContributionToRecurring() {
            var newAmount = $('.nudge-amount').text()
            var donorPaymentFees = 0.0
            if ($("#donor-cover-fees").is(":checked")) {
              donorPaymentFees = .032 * newAmount;
            }
            $("#contribution_donor_covered_payment_fee").val(donorPaymentFees.toFixed(2));
            $('#contribution_recur').prop('checked', true);
            $('#contribution_value').val(newAmount);
            $('#contribution_recur_value').val(newAmount);
            if ("Monthly" == "Monthly") {
              $('#contribution_period_monthly').prop('checked', true);
              $("input[name='contribution[period]']").trigger("change");
            } else {
              $('#contribution_period_yearly').prop('checked', true);
              $("input[name='contribution[period]']").trigger("change");
            }
            $('#contribution_recur_indefinitely').val('true');
            $('#contribution_recur_length').val('indefinitely');
          }

          function sendDesignationsAmountSplit() {
            // Triggers on-change event in React Designations 3.0 component for value field
            var designations_3_enabled = $('#designation-split-amount-trigger').length
            if (!designations_3_enabled) {
              return;
            }
            var amount = $('.nudge-amount').text()
            var input = document.querySelector('#designation-split-amount-trigger');
            var nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;
            nativeInputValueSetter.call(input, amount);
            var event = new Event('input', {
              bubbles: true
            });
            input.dispatchEvent(event);
          }

          function submitContributionForm() {
            $('#contribution_recurring_nudge_shown').val("true");
            $('#contribution_form').submit()
          }
        });
      </script>
      <div aria-label="terms of service" class="w-full my-4 mt-8"><label class="tos_label text-xs text-gray-600" for="contribution_accept_tos" id="tos-checkbox"><input class="checkbox w-4 h-4" id="contribution_accept_tos"
            name="contribution[accept_tos]" type="checkbox" value="0">I have read and agree to the <a target="_blank" class="underline" href="/terms">terms of service</a> and the
          <a target="_blank" class="underline" href="/privacy">privacy policy.</a><span class="text-red-500">*</span></label>
        <div aria-label="checkout button" class="my-4 text-center">
          <script>
            // Updated in `app/views/projects/contributions/_paypal.html.slim`
            var canRenderPayPalBtns = false;
            // Updated in `app/views/form_templates/fields/_google_apple_pay_button.html.slim`
            var canRenderStripeSdkBtns = false;

            function checkAndRenderOrDivider() {
              if (canRenderPayPalBtns || canRenderStripeSdkBtns) {
                $("#or-divider").show();
              }
            }
            $(function() {
              checkAndRenderOrDivider();
            });
          </script>
          <div id="advanced-payprocs-new-donation-form">
            <div id="paypal-payment-button"><button id="paypal-render-tracker" style="display:none;"></button><button id="venmo-render-tracker" style="display:none;"></button><button id="paypal-click-tracker" style="display:none;"></button><button
                id="venmo-click-tracker" style="display:none;"></button>
              <script src="https://www.paypal.com/sdk/js?client-id=AeG7a0wQ2s97hNLb6yWzDqYTsuD-4AaxDHjz4I2EWMKN6vktKYqKJhtGqmH2cNj_JyjHR4Xj9Jt6ORHs&amp;merchant-id=LK9GC6VYCUZZN&amp;components=buttons,funding-eligibility&amp;enable-funding=venmo"
                data-uid-auto="uid_twokulzrjmoacppiskmmkldkgkqxxe"></script>
              <div id="paypal-cover" style="display: none; position: absolute; width: 100%; height: 59px; z-index: 100;"></div>
              <div id="paypal-button-container" style="width: 100%; z-index: 0; position: relative; line-height: 40px;">
                <div id="zoid-paypal-buttons-uid_5844a854b0_mtu6mdq6mta" class="paypal-buttons paypal-buttons-context-iframe paypal-buttons-label-pay paypal-buttons-layout-vertical" data-paypal-smart-button-version="5.0.344"
                  style="height: 45px; transition: all 0.2s ease-in-out 0s;">
                  <style nonce="">
                    #zoid-paypal-buttons-uid_5844a854b0_mtu6mdq6mta {
                      position: relative;
                      display: inline-block;
                      width: 100%;
                      min-height: 35px;
                      min-width: 200px;
                      max-width: 750px;
                      font-size: 0;
                    }

                    #zoid-paypal-buttons-uid_5844a854b0_mtu6mdq6mta>iframe {
                      position: absolute;
                      top: 0;
                      left: 0;
                      width: 100%;
                      height: 100%;
                    }

                    #zoid-paypal-buttons-uid_5844a854b0_mtu6mdq6mta>iframe.component-frame {
                      z-index: 100;
                    }

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

                    #zoid-paypal-buttons-uid_5844a854b0_mtu6mdq6mta>iframe.visible {
                      opacity: 1;
                    }

                    #zoid-paypal-buttons-uid_5844a854b0_mtu6mdq6mta>iframe.invisible {
                      opacity: 0;
                      pointer-events: none;
                    }

                    #zoid-paypal-buttons-uid_5844a854b0_mtu6mdq6mta>.smart-menu {
                      position: absolute;
                      z-index: 300;
                      top: 0;
                      left: 0;
                      width: 100%;
                    }
                  </style><iframe allowtransparency="true"
                    name="__zoid__paypal_buttons__eyJzZW5kZXIiOnsiZG9tYWluIjoiaHR0cHM6Ly93d3cuZ2l2ZWNhbXB1cy5jb20ifSwibWV0YURhdGEiOnsid2luZG93UmVmIjp7InR5cGUiOiJwYXJlbnQiLCJkaXN0YW5jZSI6MH19LCJyZWZlcmVuY2UiOnsidHlwZSI6InJhdyIsInZhbCI6IntcInVpZFwiOlwiem9pZC1wYXlwYWwtYnV0dG9ucy11aWRfNTg0NGE4NTRiMF9tdHU2bWRxNm10YVwiLFwiY29udGV4dFwiOlwiaWZyYW1lXCIsXCJ0YWdcIjpcInBheXBhbC1idXR0b25zXCIsXCJjaGlsZERvbWFpbk1hdGNoXCI6e1wiX190eXBlX19cIjpcInJlZ2V4XCIsXCJfX3ZhbF9fXCI6XCJcXFxcLnBheXBhbFxcXFwuKGNvbXxjbikoOlxcXFxkKyk/JFwifSxcInZlcnNpb25cIjpcIjEwXzFfMFwiLFwicHJvcHNcIjp7XCJmdW5kaW5nU291cmNlXCI6XCJwYXlwYWxcIixcInN0eWxlXCI6e1wiY3VzdG9tXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImxhYmVsXCI6XCJwYXlcIixcImxheW91dFwiOlwidmVydGljYWxcIixcImNvbG9yXCI6XCJnb2xkXCIsXCJzaGFwZVwiOlwicmVjdFwiLFwidGFnbGluZVwiOmZhbHNlLFwiaGVpZ2h0XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcInBlcmlvZFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJtZW51UGxhY2VtZW50XCI6XCJiZWxvd1wifSxcImNyZWF0ZU9yZGVyXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfNTBmMTdkOGMzYl9tdHU2bWRxNm10YVwiLFwibmFtZVwiOlwiY3JlYXRlT3JkZXJcIn19LFwib25BcHByb3ZlXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfMmNhMDI2NTUyNF9tdHU2bWRxNm10YVwiLFwibmFtZVwiOlwib25BcHByb3ZlXCJ9fSxcImNzcE5vbmNlXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcInN0b3JhZ2VTdGF0ZVwiOntcImdldFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzFjYTgyY2Y3NmJfbXR1Nm1kcTZtdGFcIixcIm5hbWVcIjpcImdldFwifX0sXCJzZXRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF8zNjI5MTkxM2Q2X210dTZtZHE2bXRhXCIsXCJuYW1lXCI6XCJzZXRcIn19fSxcInNlc3Npb25TdGF0ZVwiOntcImdldFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkX2YzNGMyN2RjNzhfbXR1Nm1kcTZtdGFcIixcIm5hbWVcIjpcImdldFwifX0sXCJzZXRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF85OTcwNWQ0YWE1X210dTZtZHE2bXRhXCIsXCJuYW1lXCI6XCJzZXRcIn19fSxcImNvbXBvbmVudHNcIjpbXCJidXR0b25zXCIsXCJmdW5kaW5nLWVsaWdpYmlsaXR5XCJdLFwibG9jYWxlXCI6e1wiY291bnRyeVwiOlwiVVNcIixcImxhbmdcIjpcImVuXCJ9LFwiY3JlYXRlQmlsbGluZ0FncmVlbWVudFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJjcmVhdGVTdWJzY3JpcHRpb25cIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwib25Db21wbGV0ZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJvblNoaXBwaW5nQ2hhbmdlXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcIm9uU2hpcHBpbmdBZGRyZXNzQ2hhbmdlXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcIm9uU2hpcHBpbmdPcHRpb25zQ2hhbmdlXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcIm9uQ2FuY2VsXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcIm9uQ2xpY2tcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiZ2V0UHJlcmVuZGVyRGV0YWlsc1wiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkX2U3YmZmNGQzZDhfbXR1Nm1kcTZtdGFcIixcIm5hbWVcIjpcImdldFByZXJlbmRlckRldGFpbHNcIn19LFwiZ2V0UG9wdXBCcmlkZ2VcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF82YWFmZjJhZTM2X210dTZtZHE2bXRhXCIsXCJuYW1lXCI6XCJnZXRQb3B1cEJyaWRnZVwifX0sXCJvbkluaXRcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF9jYmY3ZDg0ODdiX210dTZtZHE2bXRhXCIsXCJuYW1lXCI6XCJvbkluaXRcIn19LFwiZ2V0UXVlcmllZEVsaWdpYmxlRnVuZGluZ1wiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkX2M2ODJhYzU3ZTlfbXR1Nm1kcTZtdGFcIixcIm5hbWVcIjpcImdldFF1ZXJpZWRFbGlnaWJsZUZ1bmRpbmdcIn19LFwiY2xpZW50SURcIjpcIkFlRzdhMHdRMnM5N2hOTGI2eVd6RHFZVHN1RC00QWF4REhqejRJMkVXTUtONnZrdEtZcUtKaHRHcW1IMmNOal9KeWpIUjRYajlKdDZPUkhzXCIsXCJjbGllbnRBY2Nlc3NUb2tlblwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJwYXJ0bmVyQXR0cmlidXRpb25JRFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJtZXJjaGFudFJlcXVlc3RlZFBvcHVwc0Rpc2FibGVkXCI6ZmFsc2UsXCJlbmFibGVUaHJlZURvbWFpblNlY3VyZVwiOmZhbHNlLFwic2RrQ29ycmVsYXRpb25JRFwiOlwiZjk3NTMxNGRjZDQzOVwiLFwic3RvcmFnZUlEXCI6XCJ1aWRfYzI2ZDM3N2U4N19tdHU2bWRxNm10YVwiLFwic2Vzc2lvbklEXCI6XCJ1aWRfY2JjYTA4MTNmZl9tdHU2bWRxNm10YVwiLFwiYnV0dG9uTG9jYXRpb25cIjpcInd3dy5naXZlY2FtcHVzLmNvbVwiLFwiYnV0dG9uU2Vzc2lvbklEXCI6XCJ1aWRfMDkwMGZiNTFjZV9tdHU2bWRxNm10YVwiLFwiZW5hYmxlVmF1bHRcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiZW52XCI6XCJwcm9kdWN0aW9uXCIsXCJhbW91bnRcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwic3RhZ2VIb3N0XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImJ1dHRvblNpemVcIjpcImxhcmdlXCIsXCJhcGlTdGFnZUhvc3RcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiZnVuZGluZ0VsaWdpYmlsaXR5XCI6e1wicGF5cGFsXCI6e1wiZWxpZ2libGVcIjp0cnVlLFwidmF1bHRhYmxlXCI6ZmFsc2V9LFwicGF5bGF0ZXJcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwicHJvZHVjdHNcIjp7XCJwYXlJbjNcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmFyaWFudFwiOm51bGx9LFwicGF5SW40XCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhcmlhbnRcIjpudWxsfSxcInBheWxhdGVyXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhcmlhbnRcIjpudWxsfX19LFwiY2FyZFwiOntcImVsaWdpYmxlXCI6dHJ1ZSxcImJyYW5kZWRcIjpmYWxzZSxcImluc3RhbGxtZW50c1wiOmZhbHNlLFwidmVuZG9yc1wiOntcInZpc2FcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjp0cnVlfSxcIm1hc3RlcmNhcmRcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjp0cnVlfSxcImFtZXhcIjp7XCJlbGlnaWJsZVwiOnRydWUsXCJ2YXVsdGFibGVcIjp0cnVlfSxcImRpc2NvdmVyXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOnRydWV9LFwiaGlwZXJcIjp7XCJlbGlnaWJsZVwiOmZhbHNlLFwidmF1bHRhYmxlXCI6ZmFsc2V9LFwiZWxvXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOnRydWV9LFwiamNiXCI6e1wiZWxpZ2libGVcIjpmYWxzZSxcInZhdWx0YWJsZVwiOnRydWV9fSxcImd1ZXN0RW5hYmxlZFwiOnRydWV9LFwidmVubW9cIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcIml0YXVcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcImNyZWRpdFwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiYXBwbGVwYXlcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInNlcGFcIjp7XCJlbGlnaWJsZVwiOnRydWV9LFwiaWRlYWxcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcImJhbmNvbnRhY3RcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcImdpcm9wYXlcIjp7XCJlbGlnaWJsZVwiOnRydWV9LFwiZXBzXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJzb2ZvcnRcIjp7XCJlbGlnaWJsZVwiOnRydWV9LFwibXliYW5rXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJwMjRcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcInppbXBsZXJcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcIndlY2hhdHBheVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwicGF5dVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwiYmxpa1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwidHJ1c3RseVwiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwib3h4b1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwibWF4aW1hXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJib2xldG9cIjp7XCJlbGlnaWJsZVwiOmZhbHNlfSxcImJvbGV0b2JhbmNhcmlvXCI6e1wiZWxpZ2libGVcIjpmYWxzZX0sXCJtZXJjYWRvcGFnb1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwibXVsdGliYW5jb1wiOntcImVsaWdpYmxlXCI6ZmFsc2V9LFwic2F0aXNwYXlcIjp7XCJlbGlnaWJsZVwiOmZhbHNlfX0sXCJwbGF0Zm9ybVwiOlwiZGVza3RvcFwiLFwicmVtZW1iZXJlZFwiOltdLFwiZXhwZXJpbWVudFwiOntcImVuYWJsZVZlbm1vXCI6ZmFsc2UsXCJlbmFibGVWZW5tb0FwcExhYmVsXCI6ZmFsc2V9LFwicGF5bWVudFJlcXVlc3RcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiZmxvd1wiOlwicHVyY2hhc2VcIixcInJlbWVtYmVyXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfNzY3MDJlYWEzNl9tdHU2bWRxNm10YVwiLFwibmFtZVwiOlwicmVtZW1iZXJcIn19LFwiY3VycmVuY3lcIjpcIlVTRFwiLFwiaW50ZW50XCI6XCJjYXB0dXJlXCIsXCJidXllckNvdW50cnlcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiY29tbWl0XCI6dHJ1ZSxcInZhdWx0XCI6ZmFsc2UsXCJlbmFibGVGdW5kaW5nXCI6W1widmVubW9cIl0sXCJkaXNhYmxlRnVuZGluZ1wiOltdLFwiZGlzYWJsZUNhcmRcIjpbXSxcIm1lcmNoYW50SURcIjpbXCJMSzlHQzZWWUNVWlpOXCJdLFwicmVuZGVyZWRCdXR0b25zXCI6W1wicGF5cGFsXCJdLFwiY3NwXCI6e1wibm9uY2VcIjpcIlwifSxcIm5vbmNlXCI6XCJcIixcImdldFBhZ2VVcmxcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF8wMjZlNTg4NzUzX210dTZtZHE2bXRhXCIsXCJuYW1lXCI6XCJnZXRQYWdlVXJsXCJ9fSxcInVzZXJJRFRva2VuXCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcImNsaWVudE1ldGFkYXRhSURcIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiZGVidWdcIjpmYWxzZSxcInRlc3RcIjp7XCJhY3Rpb25cIjpcImNoZWNrb3V0XCJ9LFwid2FsbGV0XCI6e1wiX190eXBlX19cIjpcInVuZGVmaW5lZFwifSxcInBheW1lbnRNZXRob2ROb25jZVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJwYXltZW50TWV0aG9kVG9rZW5cIjp7XCJfX3R5cGVfX1wiOlwidW5kZWZpbmVkXCJ9LFwiYnJhbmRlZFwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJhcHBsZVBheVN1cHBvcnRcIjpmYWxzZSxcInN1cHBvcnRzUG9wdXBzXCI6dHJ1ZSxcInN1cHBvcnRlZE5hdGl2ZUJyb3dzZXJcIjpmYWxzZSxcInVzZXJFeHBlcmllbmNlRmxvd1wiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJhcHBsZVBheVwiOntcIl9fdHlwZV9fXCI6XCJ1bmRlZmluZWRcIn0sXCJleHBlcmllbmNlXCI6XCJcIixcImFsbG93QmlsbGluZ1BheW1lbnRzXCI6dHJ1ZX0sXCJleHBvcnRzXCI6e1wiaW5pdFwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkX2ZmYTdmOGJlNGRfbXR1Nm1kcTZtdGFcIixcIm5hbWVcIjpcImluaXRcIn19LFwiY2xvc2VcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF9mNjY3N2ZkMDE1X210dTZtZHE2bXRhXCIsXCJuYW1lXCI6XCJjbG9zZTo6bWVtb2l6ZWRcIn19LFwiY2hlY2tDbG9zZVwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzE4OWVhZTUxNGJfbXR1Nm1kcTZtdGFcIixcIm5hbWVcIjpcImNoZWNrQ2xvc2VcIn19LFwicmVzaXplXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfZjMyYjdiY2VkYl9tdHU2bWRxNm10YVwiLFwibmFtZVwiOlwiTmVcIn19LFwib25FcnJvclwiOntcIl9fdHlwZV9fXCI6XCJjcm9zc19kb21haW5fZnVuY3Rpb25cIixcIl9fdmFsX19cIjp7XCJpZFwiOlwidWlkXzIwMjk2M2Y3ZjRfbXR1Nm1kcTZtdGFcIixcIm5hbWVcIjpcIkJlXCJ9fSxcInNob3dcIjp7XCJfX3R5cGVfX1wiOlwiY3Jvc3NfZG9tYWluX2Z1bmN0aW9uXCIsXCJfX3ZhbF9fXCI6e1wiaWRcIjpcInVpZF9jOWI4NmJlYTgyX210dTZtZHE2bXRhXCIsXCJuYW1lXCI6XCJoZVwifX0sXCJoaWRlXCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfZTY5YWRjNDI4NF9tdHU2bWRxNm10YVwiLFwibmFtZVwiOlwiZ2VcIn19LFwiZXhwb3J0XCI6e1wiX190eXBlX19cIjpcImNyb3NzX2RvbWFpbl9mdW5jdGlvblwiLFwiX192YWxfX1wiOntcImlkXCI6XCJ1aWRfOThmMTlkNTdjNF9tdHU2bWRxNm10YVwiLFwibmFtZVwiOlwiVWVcIn19fX0ifX0__"
                    title="PayPal" allowpaymentrequest="allowpaymentrequest" scrolling="no" id="jsx-iframe-4544d75bfb" class="component-frame visible" style="background-color: transparent; border: none;"></iframe>
                  <div id="smart-menu" class="smart-menu"></div>
                  <div id="installments-modal" class="installments-modal"></div><iframe name="__detect_close_uid_c6eedc8ff6_mtu6mdq6mta__" style="display: none;"></iframe>
                </div>
              </div>
            </div>
            <script>
              $("#review_text").removeClass("mobile-margin-bottom-40");
              $(function() {
                var newHeight = $("#paypal-button-container").outerHeight();
                $("#paypal-cover").css("height", newHeight);
                var paypalButton = $("#paypal-payment-button");
                if ($("#contribution_recur").prop('checked') || false) {
                  paypalButton.hide();
                } else {
                  paypalButton.show();
                  if (false) {
                    paypalButton.css("pointer-events", "none");
                  }
                }
                $("#contribution_recur").change(function() {
                  if ($(this).prop('checked')) {
                    paypalButton.slideUp();
                  } else {
                    paypalButton.slideDown();
                  }
                })
              });
              var showSdkErrors = true; // to prevent PayPal errors from overriding controller messages
              var contributionId = 0;
              var projectId = 25710
              var paypalDonationAmount = 0 + parseFloat($("#contribution_donor_covered_payment_fee").val());
              fundingSources().forEach(function(fundingSource) {
                var button = paypal.Buttons({
                  fundingSource: fundingSource,
                  style: {
                    shape: "rect",
                    color: buttonColor(fundingSource),
                    layout: "vertical",
                    label: "pay",
                    tagline: false
                  },
                  createOrder: function(data, actions) {
                    var productType = false ? "SFP Campaign" : "Giving Form"
                    if (true) {
                      showSdkErrors = true;
                      var csrfToken = $("meta[name=csrf-token]").attr("content");
                      trackHeapEvent(1811, 25710, "Form", "Click - User clicks " + fundingSource + " button on pre-payment form for " + productType)
                      // when using designation nodes, trigger its form submitting behavior so the designation selection data gets set
                      if (window.designationSelectors) {
                        window.designationSelectors.submitForm();
                      }
                      if (!document.getElementById("contribution_form").checkValidity() || !checkFormValidity()) {
                        // This is to make the simple_form validations show up; form won't actually submit
                        showSdkErrors = false;
                        $("#contribution_form").submit()
                        // check all fields and exclude Stripe field
                        var invalidFields = [];
                        $("#contribution_form").find("input.error, label.error:visible, .input-invalid.error-text:visible").each(function() {
                          if ($(this).is("label") && $(this).html().includes("Please enter no more than 1 characters.")) {
                            $(this).remove();
                          } else if ($(this).attr("class").includes("__PrivateStripeElement")) {
                            $("#-error").remove();
                          } else {
                            invalidFields.push($(this));
                          }
                        });
                        if (invalidFields.length > 0) {
                          // Get the list of visible errors and then find the fields associated labels and return it as an array ['Amount', 'Zip Code', etc]
                          var errorFieldLabels = $("label.error:visible").map(function() {
                            return $('label[for="' + $(this).attr('id').split('-')[0] + '"]:first-child').text()
                          }).get();
                          var errorMessage = "One or more required fields are missing/invalid. Please correct them and try again.";
                          if (errorFieldLabels.length) {
                            errorMessage = "One or more required fields are missing/invalid. Please correct them and try again. Missing/invalid fields: (" + errorFieldLabels.join(', ') + ")";
                          }
                          return raiseError({
                            error_message: errorMessage,
                            no_redirect: true
                          });
                        }
                      }
                      postBody = $("#contribution_form").serializeJSON();
                      postBody.source_sdk = "paypal";
                      postBody = JSON.stringify(postBody);
                      return fetch("/campaigns/" + projectId + "/donations/", {
                        method: "post",
                        headers: {
                          "content-type": "application/json",
                          "X-Requested-With": "XMLHttpRequest"
                        },
                        body: postBody,
                      }).then(function(response) {
                        return response.json();
                      }).then(function(data) {
                        if (data.error) {
                          showSdkErrors = false;
                          raiseError(data);
                          return false;
                        }
                        contributionId = data.contribution_id;
                        return data.order_id;
                      });
                    } else {
                      clickTrackerButton(fundingSource + "-click-tracker");
                      trackHeapEvent(1811, 25710, "Form", "Click - User clicks " + fundingSource + " button on payment form for " + productType)
                      return actions.order.create({
                        purchase_units: [{
                          amount: {
                            value: paypalDonationAmount
                          },
                          payee: {
                            merchant_id: "LK9GC6VYCUZZN"
                          },
                          invoice_id: contributionId
                        }],
                        application_context: {
                          shipping_preference: "NO_SHIPPING"
                        }
                      });
                    }
                  },
                  onError: function(err) {
                    $("body").css({
                      "pointer-events": "auto",
                      "opacity": 1
                    });
                    raiseError();
                  },
                  onApprove: function(data, actions) {
                    $("#paypal-button-container").append(new Spinner().spin().el);
                    $("body").css({
                      "pointer-events": "none",
                      "opacity": 0.7
                    });
                    return actions.order.capture().then(function(details) {
                      var status = details.status;
                      if (status == "COMPLETED") {
                        $.ajax({
                          url: "/payments/paypal_charges",
                          method: "POST",
                          authenticity_token: $('meta[name=csrf-token]').attr('content'),
                          dataType: "json",
                          data: {
                            project_id: projectId,
                            contribution_id: contributionId,
                            funding_source: fundingSource,
                            details: details
                          }
                        }).then(function() {
                          window.location.replace("/campaigns/" + projectId + "/donations/" + contributionId);
                        });
                      } else {
                        raiseError();
                      }
                    })
                  }
                });
                if (button.isEligible()) {
                  if (true) {
                    canRenderPayPalBtns = true;
                    checkAndRenderOrDivider();
                  } else {
                    clickTrackerButton(fundingSource + "-render-tracker");
                  }
                  button.render("#paypal-button-container");
                }
              });

              function clickTrackerButton(id) {
                $("#" + id).click();
              }

              function fundingSources() {
                var fundingSources = [];
                if ("true" === "true") {
                  fundingSources.push(paypal.FUNDING.VENMO);
                }
                if ("true" === "true") {
                  fundingSources.push(paypal.FUNDING.PAYPAL);
                }
                return fundingSources;
              }

              function raiseError(err = null) {
                if (err) {
                  swal({
                    title: "Payment Error",
                    text: err.error_message,
                    type: "error",
                    timer: 5000,
                  }, function() {
                    if (err.no_redirect) {
                      return false;
                    } else if (err.redirect_path) {
                      window.location.href = (window.location.origin + err.redirect_path);
                    } else {
                      window.location.reload();
                    }
                  })
                } else if (showSdkErrors) {
                  swal({
                    title: "Payment Error",
                    text: "Something went wrong with your payment. Please try again, or use another payment method.",
                    type: "error"
                  }, function() {
                    if (!true) {
                      window.location.reload()
                    }
                  });
                }
              }

              function buttonColor(fundingSource) {
                if (fundingSource === paypal.FUNDING.PAYPAL) {
                  return "gold";
                } else if (fundingSource === paypal.FUNDING.VENMO) {
                  return "blue";
                }
              }
            </script>
            <script src="https://js.stripe.com/v3/"></script>
            <style type="text/css">
              #payment-request-button {
                margin-bottom: 15px;
              }
            </style>
            <div id="payment-request-button" class="StripeElement">
              <div class="__PrivateStripeElement" style="margin: 0px !important; padding: 0px !important; border: none !important; display: block !important; background: transparent !important; position: relative !important; opacity: 1 !important;">
                <iframe name="__privateStripeFrame93211" frameborder="0" allowtransparency="true" scrolling="no" role="presentation" allow="payment *"
                  src="https://js.stripe.com/v3/elements-inner-payment-request-c7b5d82f012116dbb9c1b6c903ea2724.html#wait=false&amp;mids[guid]=NA&amp;mids[muid]=NA&amp;mids[sid]=NA&amp;style[paymentRequestButton][height]=48px&amp;rtl=false&amp;componentName=paymentRequestButton&amp;keyMode=live&amp;apiKey=pk_live_K4b2fnppomknqVdM5jEY4YUR&amp;referrer=https%3A%2F%2Fwww.givecampus.com%2Fcampaigns%2F25710%2Fdonations%2Fnew&amp;controllerId=__privateStripeController9321"
                  title="Secure payment button frame"
                  style="border: none !important; margin: 0px !important; padding: 0px !important; width: 1px !important; min-width: 100% !important; overflow: hidden !important; display: block !important; user-select: none !important; transform: translate(0px) !important; color-scheme: light only !important; height: 48px; min-height: auto;"></iframe><input
                  class="__PrivateStripeElement-input" aria-hidden="true" aria-label=" " autocomplete="false" maxlength="1"
                  style="border: none !important; display: block !important; position: absolute !important; height: 1px !important; top: -1px !important; left: 0px !important; padding: 0px !important; margin: 0px !important; width: 100% !important; opacity: 0 !important; background: transparent !important; pointer-events: none !important; font-size: 16px !important;">
              </div>
            </div>
            <script>
              $(document).ready(function() {
                var stripe = Stripe("pk_live_K4b2fnppomknqVdM5jEY4YUR");
                var clientSecret = "";
                var contributionId = 0;
                var projectId = 25710;
                var paymentRequest = stripe.paymentRequest({
                  country: "US",
                  currency: "usd",
                  total: {
                    label: "Initialized paymentRequest for Standard Giving Form to Share on Quad",
                    amount: 0,
                  },
                });
                var elements = stripe.elements();
                var prButton = elements.create("paymentRequestButton", {
                  paymentRequest: paymentRequest,
                  style: {
                    paymentRequestButton: {
                      height: '48px'
                    },
                  },
                });
                paymentRequest.canMakePayment().then(function(result) {
                  if (result) {
                    prButton.mount("#payment-request-button");
                    canRenderStripeSdkBtns = true;
                    checkAndRenderOrDivider();
                  } else {
                    document.getElementById("payment-request-button").style.display = "none";
                  }
                });
                prButton.on("click", function(event) {
                  var productType = false ? "SFP Campaign" : "Giving Form"
                  trackHeapEvent(1811, 25710, "Form", "Click - User clicks Google/Apple pay button on pre-payment form for " + productType)
                  // when using designation nodes, trigger its form submitting behavior so the designation selection data gets set
                  if (window.designationSelectors) {
                    window.designationSelectors.submitForm();
                  }
                  if (window.directedDesignationSelectors) {
                    window.directedDesignationSelectors.submitForm();
                  }
                  if (!document.getElementById("contribution_form").checkValidity() || !checkFormValidity()) {
                    // This is to make the simple_form validations show up; form won't actually submit
                    event.preventDefault();
                    $("#contribution_form").submit();
                  }
                  var amount = (parseFloat($("#contribution_value").val()) + parseFloat($("#contribution_donor_covered_payment_fee").val() || 0)).toFixed(2);
                  paymentRequest.update({
                    total: {
                      label: "$" + amount + " to Standard Giving Form to Share on Quad",
                      amount: amount * 100
                    }
                  });
                  postBody = $("#contribution_form").serializeJSON();
                  postBody.source_sdk = "stripe_payment_request";
                  postBody = JSON.stringify(postBody)
                  return fetch("/campaigns/" + projectId + "/donations/", {
                    method: "post",
                    headers: {
                      "content-type": "application/json",
                      "X-Requested-With": "XMLHttpRequest"
                    },
                    body: postBody,
                  }).then(function(response) {
                    return response.json();
                  }).then(function(data) {
                    if (data.error) {
                      paymentRequest.abort()
                      raisePaymentError(data);
                    } else {
                      clientSecret = data.client_secret;
                      contributionId = data.contribution_id;
                    }
                  });
                });
                paymentRequest.on("paymentmethod", function(ev) {
                  // Confirm the PaymentIntent without handling potential next actions (yet).
                  stripe.confirmCardPayment(clientSecret, {
                    payment_method: ev.paymentMethod.id
                  }, {
                    handleActions: false
                  }).then(function(confirmResult) {
                    if (confirmResult.error) {
                      // Report to the browser that the payment failed, prompting it to
                      // re-show the payment interface, or show an error message and close
                      // the payment interface.
                      ev.complete("fail");
                      raisePaymentError({
                        error_message: confirmResult.error.message
                      });
                    } else {
                      // Report to the browser that the confirmation was successful, prompting
                      // it to close the browser payment method collection interface.
                      ev.complete("success");
                      // Check if the PaymentIntent requires any actions and if so let Stripe.js
                      // handle the flow. If using an API version older than "2019-02-11" instead
                      // instead check for: `paymentIntent.status === "requires_source_action"`.
                      if (confirmResult.paymentIntent.status === "requires_action") {
                        // Let Stripe.js handle the rest of the payment flow.
                        stripe.confirmCardPayment(clientSecret).then(function(result) {
                          if (result.error) {
                            // The payment failed -- ask your customer for a new payment method.
                            raisePaymentError();
                          } else {
                            // The payment has succeeded.
                            confirmChargeAndRedirect(projectId, contributionId);
                          }
                        });
                      } else {
                        // The payment has succeeded.
                        confirmChargeAndRedirect(projectId, contributionId);
                      }
                    }
                  });
                });
              })

              function confirmChargeAndRedirect(projectId, contributionId) {
                $("#advanced-payprocs-new-donation-form").append(new Spinner().spin().el);
                $("body").css({
                  "pointer-events": "none",
                  "opacity": 0.7
                });
                $.ajax({
                  url: "/payments/stripe_charge",
                  method: "POST",
                  data: {
                    contribution_id: contributionId
                  }
                }).then(function() {
                  window.location.replace("/campaigns/" + projectId + "/donations/" + contributionId);
                });
              }

              function raisePaymentError(err = null) {
                if (err) {
                  swal({
                    title: "Payment Error",
                    text: err.error_message,
                    type: "error",
                    timer: 5000
                  }, function() {
                    if (err.no_redirect) {
                      return false;
                    } else if (err.redirect_path) {
                      window.location.href = (window.location.origin + err.redirect_path);
                    } else {
                      window.location.reload();
                    }
                  })
                } else {
                  swal({
                    title: "Payment Error",
                    text: "Something went wrong with your payment. Please try again, or use another payment method.",
                    type: "error"
                  }, function() {
                    window.location.reload()
                  });
                }
              }
            </script>
          </div><input type="submit" name="commit" value="Go to Checkout" id="payment_button" class="btn-school-primary p-2 w-full rounded cursor-pointer font-medium text-xl" style="height: 48px;" aria-label="Go to Checkout"
            data-disable-with="Go to Checkout">
        </div>
      </div>
      <div class="clearfix"></div>
      <div class="text-xs text-gray-700 my-4 text-center required-fields-message"><span class="text-red-500 text-sm font-bold">*</span><span class="ml-1">Indicates required field</span></div>
      <script>
        var productType = false ? "SFP Campaign" : "Giving Form"
        $(document).ready(function() {
          trackHeapEvent(1811, 25710, "Form", "View - New donation form for " + productType);
          $("#saved_payment_button").click(function() {
            $("#default_payment_method").val("");
          });
          if (false) {
            $("#contribution_phantom").on("change", function() {
              if ($(this).is(':checked')) {
                $("#payment_button").removeClass("hidden");
                $("#preview_pay_button").addClass("hidden");
              } else {
                $("#preview_pay_button").removeClass("hidden");
                $("#payment_button").addClass("hidden");
              }
            });
          }
          // disabled button and un-check tos on load
          var submit = document.querySelector("input[type=submit]");
          if (submit !== null) {
            submit.removeAttribute("disabled");
          }
          var tosCheckbox = document.querySelector("#contribution_accept_tos");
          if (tosCheckbox) {
            tosCheckbox.removeAttribute("checked");
            // setup tos onchange event
            var tosCheckboxChangeEvent = function(event) {
              if (tosCheckbox.checked == true) {
                tosCheckbox.value = 1;
              } else {
                tosCheckbox.value = 0;
              }
            };
            tosCheckbox.onchange = tosCheckboxChangeEvent;
            tosCheckboxChangeEvent();
          }
          validateIncentives();
          // check for tos selected on submit
          $("#contribution_form").submit(function(event) {
            var recurringGiftNudgeModal = new RecurringGiftNudgeModal($("#contribution_value").val());
            if (checkFormValidity()) {
              recurringGiftNudgeModal.setOriginalContributionValue();
              if (recurringGiftNudgeModal.shouldDisplay()) {
                recurringGiftNudgeModal.display();
                event.preventDefault();
                return false;
              } else {
                return true;
              }
            } else {
              event.preventDefault();
              return false;
            }
          });
        });
        var incentiveValidationFields = "#contribution_value, #contribution_recur, #contribution_recur_length, #contribution_period"
        $(incentiveValidationFields).on("change", function() {
          // re-validate incentive requirement whenever a relevant field is edited
          validateIncentives();
        });
        $("#contribution_reward_id").on("change", function() {
          if (donorOptedOutOfIncentive()) {
            disableIncentiveRequirement();
            var incentiveField = $("#contribution_reward_id");
            $("<input type='hidden' name='contribution[intentionally_opted_out_of_reward]' value='true' />").insertBefore(incentiveField);
          } else {
            $("input[name='contribution[intentionally_opted_out_of_reward]']").val("false");
            validateIncentives();
          }
        });

        function validateIncentives() {
          if ($("#contribution_reward_id").length > 0) {
            var contributionValue = $("#contribution_value").val();
            var recur = $("#contribution_recur").prop("checked");
            if (recur) {
              var recurLength = $("#contribution_recur_length").val();
            } else {
              var recurLength = 0;
            }
            var contributionCurrency = $("#contribution_currency").val() || "USD";
            if ($("input[name='contribution[period]']").length == 1) {
              var period = $("#contribution_period").val();
            } else if ($("input[name='contribution[period]']:checked").val()) {
              var period = $("input[name='contribution[period]']:checked").val();
            } else {
              var period = null;
            }
            var inputs = {
              project_id: 25710,
              recur: recur,
              contribution_value: contributionValue,
              currency: contributionCurrency,
              period: period,
              recur_length: recurLength
            };
            $.ajax({
              url: "/rewards/require",
              method: "POST",
              dataType: "json",
              data: {
                inputs: inputs
              }
            }).done(function(data) {
              var required = data.required;
              var applicableIncentiveIds = data.applicable_incentive_ids;
              if (donorOptedOutOfIncentive()) {} else if (required) {
                enableIncentiveRequirement();
              } else {
                disableIncentiveRequirement();
              }
              setIncentiveVisibility(applicableIncentiveIds);
            });
          }
        }

        function disableIncentiveRequirement() {
          var incentiveField = $("#contribution_reward_id");
          incentiveField.removeAttr("required");
          incentiveField.removeClass("required");
          incentiveField.attr("aria-required", false);
          $("label[for='contribution_reward_id']").removeClass("required");
          $("label[for='incentive']").removeClass("required");
        }

        function enableIncentiveRequirement() {
          var incentiveField = $("#contribution_reward_id");
          incentiveField.attr("required", true);
          incentiveField.addClass("required");
          incentiveField.attr("aria-required", true);
          $("label[for='contribution_reward_id']").addClass("required");
          $("label[for='incentive']").addClass("required");
        }

        function setIncentiveVisibility(incentives) {
          var incentiveField = $("#contribution_reward_id");
          var options = incentiveField.children();
          options.each(function() {
            var incentiveId = parseInt($(this).val());
            if (incentives.includes(incentiveId) || isNaN(incentiveId)) {
              $(this).prop("disabled", false);
            } else {
              $(this).prop("disabled", true);
            }
          })
        }

        function donorOptedOutOfIncentive() {
          var incentiveField = $("#contribution_reward_id");
          var incentiveText = incentiveField.children("option:selected").html();
          if (incentiveText) {
            return incentiveText.indexOf("No incentive") >= 0;
          } else {
            return false;
          }
        }
        var userNotYetNotifiedAboutMisspelledEmail = true

        function checkFormValidity() {
          var formIsValid = true;
          var designationsRequired = false;
          var useReactDesignationNodes = true;
          var projectHasDesignations = true
          if (useReactDesignationNodes && designationsRequired && projectHasDesignations && document.querySelectorAll(".selected-designation").length === 0) {
            formIsValid = false;
            $(".designation-search-input").addClass("input-invalid");
            $("#contribution_designation-error").css('display', 'block');
            $("#contribution_designation-error").text("This field is required");
            $(".designation-search-input").focus();
          } else {
            $(".designation-search-input").removeClass("input-invalid");
            $("#contribution_designation-error").css('display', 'none');
          }
          // verify designation was selected and amount was entered
          var allowMultiSplitDesigs = false;
          if (allowMultiSplitDesigs) {
            $("#multiSplitDesignations select, #multiSplitDesignations input").each(function(select) {
              var designationIsInvalid = false && $(this).hasClass("multi-desigs-select") && $(this).val() == "";
              var amountIsBlank = $(this).hasClass("amount-input") && ($(this).val() == "" || $(this).val() == 0);
              if (designationIsInvalid || amountIsBlank) {
                $(this).addClass("input-invalid");
              } else {
                $(this).removeClass("input-invalid");
                $(this).parent(".select2-focusser").removeClass("input-invalid");
              }
            });
            if (hasMultiSplitDesignationValidationErrors()) {
              showMultiSplitDesignationError();
              formIsValid = false;
            } else {
              $(".multi-split-designations-errors").hide();
            }
            if (hasMatchValueError()) {
              showMaxMatchValueWarning();
              formIsValid = false;
            } else {
              $(".match-contribution-value-errors").hide();
            }
          }
          // verify that checked affiliations have class years attached to them
          var givingFormAffiliationFieldRequired = false
          if (givingFormAffiliationFieldRequired) {
            var checked_affiliations = $("[name^='contribution[selected_affiliations]']:checked");
            $("#affiliation-errors").hide();
            for (var i = 0; i < checked_affiliations.length; i++) {
              var affiliation = checked_affiliations[i];
              var affiliation_col_name = affiliation.id.replace("_checked", "");
              var affiliation_year_select = $("select[id=selected_affiliations_" + affiliation_col_name + "_0]")[0]
              if (affiliation_year_select !== undefined) {
                var affiliation_year = affiliation_year_select.value;
                if (affiliation_year === "") {
                  formIsValid = false;
                  $("#affiliation-errors").html("Please make a selection down below.").show();
                }
              }
            }
          }
          // verify tos was accepted
          var tos = $("#contribution_accept_tos");
          if (tos.val() == 0) {
            $(".tos_label").addClass("input-invalid error-text");
            tos.focus();
            $(".tos_label").fadeTo(100, 1.0, function() {
              $(".tos_label").fadeTo(100, 0.3);
            });
            $(".tos_label").fadeTo(100, 0.3, function() {
              $(".tos_label").fadeTo(100, 1.0);
            });
            formIsValid = false;
          } else {
            $(".tos_label").removeClass("input-invalid error-text");
          }
          // verify captcha completed
          var captchaVisibleOnScreen = $(".g-recaptcha").length > 0 && $(".g-recaptcha").is(":visible")
          var captchaNotSet = $("#g-recaptcha-response").length > 0 && $("#g-recaptcha-response").val().length == 0
          if (captchaVisibleOnScreen && captchaNotSet) {
            var captcha = $(".g-recaptcha");
            captcha.focus();
            swal("Please complete captcha before checking out!")
            formIsValid = false;
          }
          if (false) {
            var contribution_value = parseInt($("#contribution_value").val());
            if (true) {
              if (contribution_value < 5000) {
                swal("What a generous gift!", "Please email support@givecampus.com to discuss options for adding matches and challenges under $5,000");
                formIsValid = false;
              }
            }
            $('input[type="datetime-local"]').each(function() {
              var dateString = this.value;
              var year = dateString.split("-")[0];
              if (this.validity.badInput) {
                swal("Check your start or end date", "Please fill out date AND time information if you choose to enter a start or end date", "error")
                formIsValid = false;
              } else if (year && year < 2000) {
                swal("Date too far back in the past", "You've entered a date too far in the past, please enter a date after the year 2000", "error");
                formIsValid = false;
              }
            })
          }
          if (true && $("#contribution_phantom").val() !== "true") {
            if (false && $('#contribution_payer_email').val() !== undefined && ("" !== $('#contribution_payer_email').val().toLowerCase()) && false) {
              swal({
                title: "Warning",
                text: "You are logged into your administrator account, and the email address you entered does not match your profile.\n\n" +
                  "If you are making a gift on behalf of one of your constituents, please logout before returning to this page. " + "That way, the donation will not be tied to your GiveCampus account."
              });
              formIsValid = false;
            }
          }
          if ($("input.error:visible, label.error:visible, .input-invalid.error-text:visible").length) {
            var invalidFields = [];
            $("#contribution_form").find("input.error, label.error:visible, .input-invalid.error-text:visible").each(function() {
              if ($(this).is("label") && $(this).html().includes("Please enter no more than 1 characters.")) {
                $(this).remove();
              } else if ($(this).attr("class").includes("__PrivateStripeElement")) {
                $("#-error").remove();
              } else {
                invalidFields.push($(this));
              }
            });
            if (invalidFields.length > 0) {
              formIsValid = false;
              // Get the list of visible errors and then find the fields associated labels and return it as an array ['Amount', 'Zip Code', etc]
              var errorFieldLabels = $("label.error:visible").map(function() {
                return $('label[for="' + $(this).attr('id').split('-')[0] + '"]:first-child').text()
              }).get();
              var errorMessage = "One or more required fields are missing/invalid. Please correct them and try again.";
              if (errorFieldLabels.length) {
                errorMessage = "One or more required fields are missing/invalid. Please correct them and try again. Missing/invalid fields: (" + errorFieldLabels.join(', ') + ")";
              }
              swal({
                title: "Error",
                text: errorMessage,
                type: "error"
              });
              var errors = [];
              $("label.error:visible, .input-invalid.error-text:visible").each(function() {
                errors.push(`${this.htmlFor}: ${this.innerText}`)
              })
              event.preventDefault();
              trackHeapEvent(1811, 25710, "Form", "Click - User attempts to submit pre-form with errors", {
                errors: errors.join("; ")
              });
            }
          }
          // When using Personalization a submittedEmail will not be present on this page
          var submittedEmail = $("#contribution_payer_email").val()
          if (userNotYetNotifiedAboutMisspelledEmail && submittedEmail && emailHasCommonMisspelling(submittedEmail)) {
            formIsValid = false
            userNotYetNotifiedAboutMisspelledEmail = false
            var submittedEmailDomain = submittedEmail.split("@").pop()
            swal({
              title: 'Is "' + submittedEmailDomain + '" correct?',
              text: "We noticed there might be a typo in your email. If it is correct, please close this window and re-submit!",
              type: "warning",
            })
          }
          return formIsValid;
        }

        function hasMultiSplitDesignationValidationErrors() {
          return $('#multiSplitDesignations .input-invalid').length > 0
        }

        function showMultiSplitDesignationError() {
          if (false) {
            $(".multi-split-designations-errors").html("You must select a designation and enter an amount or remove the designation.");
          } else {
            $(".multi-split-designations-errors").html("You must enter an amount or remove the designation.");
          }
          $(".multi-split-designations-errors").show();
          $('html,body').animate({
            scrollTop: $(".multi-split-designations-errors").offset().top
          });
        }

        function hasMatchValueError() {
          if ($('#contribution_per_unit').length && $('#contribution_per_unit').val().length) {
            return parseFloat($('#contribution_per_unit').val()) > parseFloat($($('input#contribution_value')[1]).val())
          } else {
            return false
          }
        }

        function showMaxMatchValueWarning() {
          $(".match-contribution-value-errors").html("You must enter a value less than your maximum value");
          $(".match-contribution-value-errors").show();
          $('html,body').animate({
            scrollTop: $(".match-contribution-value-errors").offset().top
          });
        }

        function emailHasCommonMisspelling(email) {
          var commonlyMisspelledGmailServers = "gnail,gmali,gmai,gmal,gmil,gamil".split(",") || []
          var commonlyMisspelledYahooServers = "yhoo,yaho".split(",") || []
          var commonlyMisspelledMiscEmailServers = "".split(",") || []
          var commonlyMisspelledComEmailTLDs = "cm,ocm,om,coom,comm,con,vom".split(",") || []
          var commonlyMisspelledNetEmailTLDs = "ne,nt,et".split(",") || []
          var commonlyMisspelledMiscEmailTLDs = "co,ed".split(",") || []
          // match(/(.*)\.(.*)/) will split the domain at the last occurrence of '.' in case the domain has multiple '.'s
          var emailDomain = email.split("@").pop()
          var emailServer = emailDomain.match(/(.*)\.(.*)/)?.[1]
          var emailTLD = emailDomain.match(/(.*)\.(.*)/)?.[2]
          if (commonlyMisspelledGmailServers.includes(emailServer)) {
            $("#contribution_payer_email").val(email.replace(emailDomain, "gmail.com"))
            return false
          } else if (commonlyMisspelledYahooServers.includes(emailServer)) {
            $("#contribution_payer_email").val(email.replace(emailDomain, "yahoo.com"))
            return false
          } else if (commonlyMisspelledMiscEmailServers.includes(emailServer)) {
            appendMisspellingParamsToPostRequest(email, "server")
            return true
          } else if (commonlyMisspelledNetEmailTLDs.includes(emailTLD)) {
            $("#contribution_payer_email").val(email.replace(emailTLD, "net"))
            return false
          } else if (commonlyMisspelledComEmailTLDs.includes(emailTLD)) {
            $("#contribution_payer_email").val(email.replace(emailTLD, "com"))
            return false
          } else if (commonlyMisspelledMiscEmailTLDs.includes(emailTLD)) {
            appendMisspellingParamsToPostRequest(email, "TLD")
            return true
          } else {
            return false
          }
        }

        function appendMisspellingParamsToPostRequest(misspelled_email, misspelled_part) {
          var emailDetails = {
            misspelled_email,
            misspelled_part
          }
          $.each(Object.keys(emailDetails), function(i, key) {
            $('<input />').attr('type', 'hidden').attr('name', key).attr('value', emailDetails[key]).appendTo('#contribution_form')
          })
        }
      </script>
    </div>
  </div><br>
</form>

Text Content

Sign in or create donor account


THANK YOU FOR HELPING MAKE EXTRAORDINARY CONNECTIONS POSSIBLE!

Your gift supports the extraordinary connections with teachers, classmates,
teammates, and friends, which last a lifetime.


THANK YOU FOR HELPING MAKE EXTRAORDINARY CONNECTIONS POSSIBLE!

Your gift supports the extraordinary connections with teachers, classmates,
teammates, and friends, which last a lifetime.



Amount
Recurring
This gift will recur monthly

For how many years?
indefinitely 5 4 3 2 1
Designation

Change Selection
Make your selection(s):
 * Area of Greatest Need
 * Academic Programs
 * Arts
 * Athletics
 * Equity & Inclusion
 * Faculty
 * Financial Aid
 * Health & Wellness
 * Technology

Name

Email

Country
CanadaUnited KingdomUnited
States---------------------------------------------------------------------------------AfghanistanAlbaniaAlgeriaAmerican
SamoaAndorraAngolaAnguillaAntigua and
BarbudaArgentinaArmeniaArubaAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelarusBelgiumBelizeBeninBermudaBhutanBoliviaBosnia
and HerzegovinaBotswanaBrazilBrunei DarussalamBulgariaBurkina
FasoBurundiCambodiaCameroonCanadaCape VerdeCayman IslandsCentral African
RepublicChadChileChinaColombiaComorosCongoCook IslandsCosta RicaCote
D'IvoireCroatiaCubaCyprusCzech RepublicDemocratic Republic of the
CongoDenmarkDjiboutiDominicaDominican RepublicEcuadorEgyptEl SalvadorEquatorial
GuineaEritreaEstoniaEthiopiaFalkland Islands (Malvinas)Faroe
IslandsFijiFinlandFranceFrench GuianaFrench
PolynesiaGabonGambiaGeorgiaGermanyGhanaGibraltarGreeceGreenlandGrenadaGuadeloupeGuamGuatemalaGuineaGuinea-BissauGuyanaHaitiHoly
See (Vatican City State)HondurasHong KongHungaryIcelandIndiaIndonesiaIran,
Islamic Republic
ofIraqIrelandIsraelItalyJamaicaJapanJordanKazakhstanKenyaKiribatiKorea,
Democratic People's Republic ofKuwaitKyrgyzstanLao People's Democratic
RepublicLatviaLebanonLesothoLiberiaLibyan Arab
JamahiriyaLiechtensteinLithuaniaLuxembourgMacaoMacedonia, the Former Yugoslav
Republic ofMadagascarMalawiMalaysiaMaldivesMaliMaltaMarshall
IslandsMartiniqueMauritaniaMauritiusMexicoMicronesia, Federated States
ofMoldova, Republic
ofMonacoMongoliaMontenegroMontserratMoroccoMozambiqueMyanmarNamibiaNauruNepalNetherlandsNetherlands
AntillesNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorfolk IslandNorthern
Mariana IslandsNorwayOmanPakistanPalauPalestinePanamaPapua New
GuineaParaguayPeruPhilippinesPitcairnPolandPortugalPuerto
RicoQatarReunionRomaniaRussiaRwandaSaint HelenaSaint Kitts and NevisSaint
LuciaSaint Pierre and MiquelonSaint Vincent and the GrenadinesSamoaSan MarinoSao
Tome and PrincipeSaudi ArabiaSenegalSerbiaSeychellesSierra
LeoneSingaporeSlovakiaSloveniaSolomon IslandsSomaliaSouth AfricaSouth
KoreaSpainSri LankaSudanSurinameSvalbard and Jan
MayenSwazilandSwedenSwitzerlandSyrian Arab RepublicTaiwanTajikistanTanzania,
United Republic ofThailandTogoTokelauTongaTrinidad and
TobagoTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluUgandaUkraineUnited
Arab EmiratesUnited KingdomUnited
StatesUruguayUzbekistanVanuatuVenezuelaVietnamVirgin Islands, BritishVirgin
Islands, U.s.Wallis and FutunaWestern SaharaYemenZambiaZimbabwe
ZIP code

Comments



Affiliation

Alumnus/a
Select a Class YearClass Year 2032 2031 2030 2029 2028 2027 2026 2025 2024 2023
2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007
2006 2005 2004 2003 2002 2001 2000 1999 1998 1997 1996 1995 1994 1993 1992 1991
1990 1989 1988 1987 1986 1985 1984 1983 1982 1981 1980 1979 1978 1977 1976 1975
1974 1973 1972 1971 1970 1969 1968 1967 1966 1965 1964 1963 1962 1961 1960 1959
1958 1957 1956 1955 1954 1953 1952 1951 1950 1949 1948 1947 1946 1945 1944 1943
1942 1941 1940 1939 1938 1937 1936 1935 1934 1933 1932 1931 1930 1929 1928 1927
Student
Select a Class YearClass Year 2031 2030 2029 2028 2027 2026 2025 2024 2023
Parent
Select a Class YearClass Year 2034 2033 2032 2031 2030 2029 2028 2027 2026 2025
2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009
2008 2007 2006 2005 2004 2003 2002 2001 2000 1999 1998 1997 1996 1995 1994 1993
1992 1991 1990 1989 1988 1987 1986 1985 1984 1983 1982 1981 1980 1979 1978 1977
1976 1975 1974 1973 1972 1971 1970 1969 1968 1967 1966 1965 1964 1963 1962 1961
1960 1959 1958 1957 1956 1955 1954 1953 1952 1951 1950 1949 1948 1947 1946 1945
1944 1943 1942 1941 1940
Faculty/Staff
Friend


BECOME A MONTHLY SUPPORTER

Would you consider becoming one of our valued monthly supporters by converting
your $ contribution into a monthly gift?

Ongoing monthly donations allow us to better focus on our mission.

Give $/monthKeep my one-time$ gift
I have read and agree to the terms of service and the privacy policy.*


*Indicates required field