(function() { var donationForm = document.getElementById('donation-form'); function field(name) { return donationForm.querySelector( 'input[name=donation\\[' + name + '\\]]'); } var checkout = StripeCheckout.configure({ key: donationForm.getAttribute('data-checkout-publishable-key'), image: donationForm.getAttribute('data-checkout-image'), token: function(token) { field('stripe_token').value = token.id; field('stripe_token_type').value = token.type; field('donor_email').value = token.email; donationForm.submit(); }, bitcoin: true }); donationForm.addEventListener('submit', function(e) { if (!field('stripe_token').value) { e.preventDefault(); var amountChoice = donationForm.querySelector('input[name=amount]:checked'); if (amountChoice.value === "custom") { amountChoice = document.getElementById('amount-custom-value'); } // Start parsing at the first digit in the string, to trim leading dollar // signs and what have you. var amountNumberString = (amountChoice.value.match(/[0-9].+/) || [""])[0]; var amount = Math.floor(parseFloat(amountNumberString) * 100); if (!isNaN(amount)) { field('amount').value = amountNumberString; checkout.open({ name: 'Dress to Impress', description: 'Donation (thank you!)', amount: amount, panelLabel: "Donate" }); } } }); var toggle = document.getElementById('success-thanks-toggle-description'); if (toggle) { toggle.addEventListener('click', function() { var desc = document.getElementById('description'); var attr = 'data-show'; if (desc.hasAttribute(attr)) { desc.removeAttribute(attr); } else { desc.setAttribute(attr, true); } }); } document.getElementById('amount-custom').addEventListener('change', function(e) { if (e.target.checked) { document.getElementById('amount-custom-value').focus(); } }); })();