');
$('#donate-info-toggle').click(function () {
$("#donate-info").slideToggle('slow', function () {
$('#donate-info-toggle').text(($('#donate-info').is(':visible') ? 'Hide' : 'See where your gift goes'));
});
});
}
};
var countriesWithoutPostalCodes = ['AO', 'AG', 'AW', 'BS', 'BZ', 'BJ', 'BW', 'BF', 'BI', 'CM', 'CF', 'KM', 'CG', 'CD', 'CK', 'CI', 'CW', 'DJ', 'DM', 'TL', 'GQ', 'ER', 'FJ', 'TF', 'GM', 'GH', 'GD', 'GN', 'GY', 'IE', 'KE', 'KI', 'KP', 'KW', 'MO', 'MW', 'ML', 'MR', 'MU', 'MS', 'NR', 'NU', 'QA', 'KN', 'LC', 'ST', 'SC', 'SX', 'SL', 'SB', 'SO', 'SR', 'SY', 'TZ', 'TG', 'TK', 'TO', 'TV', 'UG', 'AE', 'VU', 'YE', 'ZW'];
$(function () {
// Display the form that starts out hidden for noscript users.
$('#donate-page-loading').remove();
$('.pane-donate-form #edit-amount, .pane-donate-form #edit-payment').show();
// Noscript user edge case: always enable the submit button first thing.
$('#edit-stripe-fields-payment-stripe').prop('disabled', false);
// Check for test mode.
function get_query_string() {
var result = {},
query_string = location.search.substring(1),
re = /([^&=]+)=([^&]*)/g,
m;
while (m = re.exec(query_string)) {
result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
}
return result;
}
// Test mode?
var test_mode = get_query_string()['test'] ? true : false;
if (test_mode) {
$('#test-mode').val('true');
$('h2.node-title').append(' (test mode)');
}
// Credit card fields need name attributes for jquery validate to work.
var add_cc_names = function () {
$('#edit-stripe-fields-cc-number').attr('name', 'stripe_fields[cc_number]');
$('#edit-stripe-fields-cc-security').attr('name', 'stripe_fields[cc_security]');
$('#edit-stripe-fields-cc-exp-month').attr('name', 'stripe_fields[cc_exp_month]');
$('#edit-stripe-fields-cc-exp-year').attr('name', 'stripe_fields[cc_exp_year]');
};
var remove_cc_names = function () {
$('#edit-stripe-fields-cc-number').removeAttr('name');
$('#edit-stripe-fields-cc-security').removeAttr('name');
$('#edit-stripe-fields-cc-exp-month').removeAttr('name');
$('#edit-stripe-fields-cc-exp-year').removeAttr('name');
};
add_cc_names();
// Validation function for making sure selected premium is available.
$.validator.addMethod('premiums', function (value, element, params) {
if ($('.premium[premium_title="' + value + '"]').hasClass('unavailable')) {
alert('You have to donate more to get the selected gift');
$('.no-premium .premium-short').click();
return false;
}
return true;
});
// Validation function for amount.
$.validator.addMethod('amount', function (value, element, params) {
if (isNaN(Number(value)) || Number(value) < 5) {
return false;
}
return true;
}, function () {
return 'We can only accept online donations of at least $5.';
});
// Validation function for billing state.
$.validator.addMethod('billing_state', function (value, element, params) {
// If there are no state options, it's always valid.
if ($('#edit-stripe-fields-billing-state option').length == 1) {
return true;
}
// otherwise, a state option must be selected.
return ($('#edit-stripe-fields-billing-state').val() != '');
}, 'This field is required.');
// Validation function for shipping state.
$.validator.addMethod('shipping_state', function (value, element, params) {
// If there are no state options, it's always valid.
if ($('#edit-stripe-fields-shipping-state option').length == 1) {
return true;
}
// otherwise, a state option must be selected.
return ($('#edit-stripe-fields-shipping-state').val() != '');
}, 'This field is required.');
$.validator.addMethod('btc_shipping_state', function (value, element, params) {
// If there are no state options, it's always valid.
if ($('#edit-btc-fields-shipping-state option').length == 1) {
return true;
}
// otherwise, a state option must be selected.
return ($('#edit-btc-fields-shipping-state').val() != '');
}, 'This field is required.');
// Load stripe.js.
var stripe_initialized = false;
function init_stripe(callback) {
if (stripe_initialized) {
callback();
}
else {
$.getScript('https://js.stripe.com/v1/', function () {
var stripe_test_key = 'pk_zsaYnD562T3EQCeakZzwl3TVQMUcg';
var stripe_live_key = 'pk_ruK5pncGF7ezRz2vgzmZFzbMH4AYD';
if (test_mode) {
Stripe.setPublishableKey(stripe_test_key);
}
else {
Stripe.setPublishableKey(stripe_live_key);
}
stripe_initialized = true;
callback();
});
}
}
// Before validating, we need a way of knowing which submit button was clicked.
var setPaymentProcessor = function () {
if ($('#stripe-label').is('[aria-checked=true]')) {
$('#payment-processor').val('stripe');
}
else if ($('#btc-label').is('[aria-checked=true]')) {
$('#payment-processor').val('btc');
}
else if ($('#paypal-label').is('[aria-checked=true]')) {
$('#payment-processor').val('paypal');
}
};
// Validate the form.
$('.pane-donate-form form').validate({
ignore: '.ignore', // So hidden fields get validated.
onkeyup: false,
errorPlacement: function (error, element) {
if (element.attr('name') == 'amount[levels][amount]') {
error.appendTo($('#amount-error'));
}
else {
error.insertAfter(element);
}
},
submitHandler: function (form) {
remove_cc_names();
setPaymentProcessor();
if ($('#payment-processor').val() == 'btc') {
if ($("input[name='amount[levels][recurring]']:checked").val() > 0) {
ariaRadioCheck('#edit-amount-levels-recurring-0');
recurring_toggle();
$('#btc-recurring').show(200);
alert('We cannot yet process recurring Bitcoin or BCH donations. Your donation has been converted to a non-recurring donation');
return false;
}
$('#edit-btc-fields input, #edit-btc-fields select').removeClass('btc-error');
$('#btc-messages').html('Creating wallet for your donation...');
$('#btc-messages-wrapper').show(200);
form.submit();
}
else if ($('#payment-processor').val() == 'stripe') {
$('#edit-stripe-fields input, #edit-stripe-fields select').removeClass('stripe-error');
$('#stripe-messages').html('Loading payment processor code
If you\'re a NoScript user, please allow stripe.com and then hard refresh this page.
');
$('#stripe-messages-wrapper').show(200);
// Disable the stripe submit button.
$('#edit-stripe-fields-payment-stripe').prop('disabled', true);
init_stripe(function () {
// Create a stripe token.
$('#stripe-messages').html('Checking credit card');
var name = $('#edit-stripe-fields-first-name').val() + ' ' + $('#edit-stripe-fields-last-name').val();
Stripe.createToken({
number: $('#edit-stripe-fields-cc-number').val(),
cvc: $('#edit-stripe-fields-cc-security').val(),
exp_month: $('#edit-stripe-fields-cc-exp-month').val(),
exp_year: $('#edit-stripe-fields-cc-exp-year').val(),
name: name,
address_line1: $('#edit-stripe-fields-billing-street-address').val(),
address_state: $('#edit-stripe-fields-billing-state').filter(':selected').html(),
address_zip: $('#edit-stripe-fields-billing-postal-code').val(),
address_country: Drupal.settings.effDonatePages.isoCodes[$('#edit-stripe-fields-billing-country').val()]
}, function (status, response) {
if (response.error) {
switch (response.error.code) {
case 'invalid_number':
case 'incorrect_number':
$('#edit-stripe-fields-cc-number').addClass('stripe-error');
break;
case 'invalid_expiry_month':
$('#edit-stripe-fields-cc-exp-month').addClass('stripe-error');
break;
case 'invalid_expiry_year':
$('#edit-stripe-fields-cc-exp-year').addClass('stripe-error');
break;
case 'invalid_cvc':
case 'incorrect_cvc':
$('#edit-stripe-fields-cc-security').addClass('stripe-error');
break;
}
alert(response.error.message);
$('#stripe-messages').html('');
$('#stripe-messages-wrapper').hide(200);
// re-enable submit button.
add_cc_names();
$('#edit-stripe-fields-payment-stripe').prop('disabled', false);
}
else {
var token = response['id'];
// Card is valid, go through with the transaction.
$('#stripe-messages').html('Credit card valid, charging card');
$('#stripe-token').val(token);
form.submit();
}
});
});
}
else {
form.submit();
}
return false;
}
});
// add/remove validations onto fields.
$('#membership-premiums-selection').rules('add', 'premiums');
$('#edit-amount-levels-amount').rules('add', 'amount');
$('#edit-stripe-fields-first-name').rules('add', 'required');
$('#edit-stripe-fields-last-name').rules('add', 'required');
$('#edit-stripe-fields-email').rules('add', 'required');
$('#edit-stripe-fields-cc-number').rules('add', {required: true, creditcard: true});
$('#edit-stripe-fields-cc-security').rules('add', 'required');
$('#edit-stripe-fields-cc-exp-month').rules('add', 'required');
$('#edit-stripe-fields-cc-exp-year').rules('add', 'required');
$('#edit-stripe-fields-billing-street-address').rules('add', 'required');
$('#edit-stripe-fields-billing-city').rules('add', 'required');
$('#edit-stripe-fields-billing-country').rules('add', 'required');
$('#edit-stripe-fields-billing-state').rules('add', 'billing_state');
$('#edit-stripe-fields-billing-postal-code').rules('add', 'required');
$('#edit-stripe-fields-shipping-street-address').rules('add', 'required');
$('#edit-stripe-fields-shipping-city').rules('add', 'required');
$('#edit-stripe-fields-shipping-country').rules('add', 'required');
$('#edit-stripe-fields-shipping-state').rules('add', 'shipping_state');
$('#edit-stripe-fields-shipping-postal-code').rules('add', 'required');
var btc_required = function () {
stripe_not_required();
if (!$('.no-premium[aria-checked=true]')) {
$('#edit-btc-fields-first-name').rules('add', 'required');
$('#edit-btc-fields-last-name').rules('add', 'required');
$('#edit-btc-fields-email').rules('add', 'required');
$('#edit-btc-fields-shipping-street-address').rules('add', 'required');
$('#edit-btc-fields-shipping-city').rules('add', 'required');
$('#edit-btc-fields-shipping-country').rules('add', 'required');
$('#edit-btc-fields-shipping-state').rules('add', 'btc_shipping_state');
$('#edit-btc-fields-shipping-postal-code').rules('add', 'required');
}
else {
$('#edit-btc-fields-first-name').rules('remove', 'required');
$('#edit-btc-fields-last-name').rules('remove', 'required');
$('#edit-btc-fields-email').rules('remove', 'required');
$('#edit-btc-fields-shipping-street-address').rules('remove', 'required');
$('#edit-btc-fields-shipping-city').rules('remove', 'required');
$('#edit-btc-fields-shipping-country').rules('remove', 'required');
$('#edit-btc-fields-shipping-state').rules('remove', 'btc_shipping_state');
$('#edit-btc-fields-shipping-postal-code').rules('remove', 'required');
}
};
var btc_not_required = function () {
$('#edit-btc-fields-first-name').rules('remove', 'required');
$('#edit-btc-fields-last-name').rules('remove', 'required');
$('#edit-btc-fields-email').rules('remove', 'required');
$('#edit-btc-fields-shipping-street-address').rules('remove', 'required');
$('#edit-btc-fields-shipping-city').rules('remove', 'required');
$('#edit-btc-fields-shipping-country').rules('remove', 'required');
$('#edit-btc-fields-shipping-state').rules('remove', 'btc_shipping_state');
$('#edit-btc-fields-shipping-postal-code').rules('remove', 'required');
};
var stripe_required = function () {
btc_not_required();
$('#edit-stripe-fields-first-name').removeClass('ignore');
$('#edit-stripe-fields-last-name').removeClass('ignore');
$('#edit-stripe-fields-email').removeClass('ignore');
$('#edit-stripe-fields-cc-number').removeClass('ignore');
$('#edit-stripe-fields-cc-security').removeClass('ignore');
$('#edit-stripe-fields-cc-exp-month').removeClass('ignore');
$('#edit-stripe-fields-cc-exp-year').removeClass('ignore');
$('#edit-stripe-fields-billing-street-address').removeClass('ignore');
$('#edit-stripe-fields-billing-city').removeClass('ignore');
$('#edit-stripe-fields-billing-country').removeClass('ignore');
$('#edit-stripe-fields-billing-state').removeClass('ignore');
$('#edit-stripe-fields-billing-postal-code').removeClass('ignore');
$('#edit-stripe-fields-shipping-street-address').removeClass('ignore');
$('#edit-stripe-fields-shipping-city').removeClass('ignore');
$('#edit-stripe-fields-shipping-country').removeClass('ignore');
$('#edit-stripe-fields-shipping-state').removeClass('ignore');
$('#edit-stripe-fields-shipping-postal-code').removeClass('ignore');
};
var stripe_not_required = function () {
$('#edit-stripe-fields-first-name').addClass('ignore');
$('#edit-stripe-fields-last-name').addClass('ignore');
$('#edit-stripe-fields-email').addClass('ignore');
$('#edit-stripe-fields-cc-number').addClass('ignore');
$('#edit-stripe-fields-cc-security').addClass('ignore');
$('#edit-stripe-fields-cc-exp-month').addClass('ignore');
$('#edit-stripe-fields-cc-exp-year').addClass('ignore');
$('#edit-stripe-fields-billing-street-address').addClass('ignore');
$('#edit-stripe-fields-billing-city').addClass('ignore');
$('#edit-stripe-fields-billing-country').addClass('ignore');
$('#edit-stripe-fields-billing-state').addClass('ignore');
$('#edit-stripe-fields-billing-postal-code').addClass('ignore');
$('#edit-stripe-fields-shipping-street-address').addClass('ignore');
$('#edit-stripe-fields-shipping-city').addClass('ignore');
$('#edit-stripe-fields-shipping-country').addClass('ignore');
$('#edit-stripe-fields-shipping-state').addClass('ignore');
$('#edit-stripe-fields-shipping-postal-code').addClass('ignore');
};
$('#edit-paypal-fields-payment-paypal').click(stripe_not_required);
$('#edit-paypal-fields-payment-paypal').click(btc_not_required);
$('#edit-btc-fields-payment-btc').click(btc_required);
$('#edit-stripe-fields-payment-stripe').click(stripe_required);
// Membership warning.
var membership_warning_show = function (text) {
$('#membership-warning').html(text);
if ($('body.donate-powerup').length > 0) {
$('#membership-warning').css('display', 'block');
}
else {
$('#membership-warning').css('display', 'inline-block');
}
$('.form-item-create-membership-container-create-membership').addClass('membership-warning');
$('#create-membership').prop('disabled', true);
};
var membership_warning_hide = function () {
$('#membership-warning').html('');
$('#membership-warning').hide();
$('.form-item-create-membership-container-create-membership').removeClass('membership-warning');
$('#create-membership').prop('disabled', false);
};
$('#edit-btc-fields-shipping-country').change(function () {
update_states('#edit-btc-fields-shipping-country', '#edit-btc-fields-shipping-state');
});
$('#edit-stripe-fields-billing-country').change(function () {
update_states('#edit-stripe-fields-billing-country', '#edit-stripe-fields-billing-state');
});
$('#edit-stripe-fields-shipping-country').change(function () {
update_states('#edit-stripe-fields-shipping-country', '#edit-stripe-fields-shipping-state');
});
// Look up states on country change.
var update_states = function (country_selector, state_selector, finish_callback) {
var country_id = $(country_selector + ' option:selected').val();
$.ajax({
url: '/recurring/ajax',
type: 'get',
dataType: 'json',
data: {
action: 'states',
country_id: country_id
},
success: function (data) {
if (!data.error) {
var selected = $(state_selector).val();
$(state_selector).children().detach().remove();
$(state_selector).append($('').attr('value', '').html('- select a state -'));
$.each(data.states, function (state_id, name) {
if (state_id != '') {
var option$ = $('').attr('value', state_id).html(name);
$(state_selector).append(option$);
}
});
$(state_selector).val(selected);
}
if (finish_callback) {
finish_callback();}
}
});
};
$('#edit-btc-fields-shipping-country option[value=""]').remove();
$('#edit-btc-fields-shipping-country').prepend($('').attr('value', '').html('- select a country -'));
$('#edit-stripe-fields-billing-country option[value=""]').remove();
$('#edit-stripe-fields-billing-country').prepend($('').attr('value', '').html('- select a country -'));
$('#edit-stripe-fields-shipping-country option[value=""]').remove();
$('#edit-stripe-fields-shipping-country').prepend($('').attr('value', '').html('- select a country -'));
var update_given_amount = function () {
var amount = $('#edit-amount-levels-amount').val();
amount = Number(amount);
displayPowerUpAmount();
};
// Amount.
var update_highlights = function () {
$('.form-item-amount-levels-levels-one-time').removeClass('highlight');
$('.form-item-amount-levels-levels-recurring').removeClass('highlight');
$('.form-item-amount-levels-levels-one-time input:checked').parent().addClass('highlight');
$('.form-item-amount-levels-levels-recurring input:checked').parent().addClass('highlight');
// Highlight premium stuff.
$('#edit-membership-premiums legend').css('color', '#000');
$('.no-premium .premium-short').css('color', '#000');
// Mousing over premiums has a pointer cursor.
$('.premium-short').css('cursor', 'pointer');
// also, update which premiums are unavailable.
$('.premium').removeClass('unavailable');
$('.premium-unavailable-one-time').hide();
$('.premium-unavailable-recurring').hide();
$('.premium-unavailable-doit').hide();
var amount = Number($('#edit-amount-levels-amount').val());
if (!isNaN(amount)) {
$('.premium').each(function (index, el) {
var price = 0;
// If recurring.
if ($("input[name='amount[levels][recurring]']:checked").val() == 1) {
price = $(el).attr('premium_price_recurring');
}
// If one-time.
else {
price = $(el).attr('premium_price_one_time');
}
price = Number(price);
if (price > amount) {
$('.premium-unavailable-doit', el).html('Donate $' + price + ' Instead');
$(el).addClass('unavailable');
}
});
}
// If recurring.
if ($("input[name='amount[levels][recurring]']:checked").val() == 1) {
$('.premium.unavailable .premium-unavailable-one-time').hide();
$('.premium.unavailable .premium-unavailable-recurring').show();
$('.premium.unavailable .premium-unavailable-doit').show();
}
// If one-time.
else {
$('.premium.unavailable .premium-unavailable-one-time').show();
$('.premium.unavailable .premium-unavailable-recurring').hide();
$('.premium.unavailable .premium-unavailable-doit').show();
}
if (isNaN(amount)) {
amount = 0;
}
if ($("input[name='amount[levels][recurring]']:checked").val() === '1') {
$('#eff-donate-pages-donate-form .form-submit').val(Drupal.t('Donate $@amount/mo', {'@amount': amount.toLocaleString()}));
}
else {
$('#eff-donate-pages-donate-form .form-submit').val(Drupal.t('Donate $@amount', {'@amount': amount.toLocaleString()}));
}
};
if (Drupal.settings.eff_donate_pages.discount) {
for (var level in Drupal.settings.eff_donate_pages.levels.discount) {
$('#edit-amount-levels-levels-one-time-' + level).data('amount', Drupal.settings.eff_donate_pages.levels.discount[level].amount);
}
}
else {
for (var level in Drupal.settings.eff_donate_pages.levels.one_time) {
$('#edit-amount-levels-levels-one-time-' + level).data('amount', Drupal.settings.eff_donate_pages.levels.one_time[level].amount);
}
}
for (var level in Drupal.settings.eff_donate_pages.levels.recurring) {
$('#edit-amount-levels-levels-recurring-' + level.replace('_', '-')).data('amount', Drupal.settings.eff_donate_pages.levels.recurring[level].amount);
}
var amount_update = function () {
membership_warning_hide();
// don't update amounts if they pressed the 'other button'.
if (document.getElementById('edit-amount-levels-levels-one-time-other').checked) {
}
else if (document.getElementById('edit-amount-levels-levels-recurring-other').checked) {
}
else {
var amount;
// If recurring.
if ($("input[name='amount[levels][recurring]']:checked").val() == 1) {
amount = $('input[name="amount[levels][levels_recurring]"]:checked').data('amount');
$('#create-membership').prop('checked');
}
// If one-time.
else {
amount = $('input[name="amount[levels][levels_one_time]"]:checked').data('amount');
$('#create-membership').prop('checked');
}
$('#edit-amount-levels-amount').val(amount);
update_given_amount();
update_highlights();
}
};
var other_checked = function () {
if (document.getElementById('edit-amount-levels-levels-one-time-other').checked) {
$('.form-radio').each(function () {
$(this).next().addClass('other-checked');
});
}
else if (document.getElementById('edit-amount-levels-levels-recurring-other').checked) {
$('.form-radio').each(function () {
$(this).next().addClass('other-checked');
});
}
else {
$('.form-radio').each(function () {
$(this).next().removeClass('other-checked');
});
}
};
var radio_select = function () {
amount_update();
other_checked();
};
$('input[name="amount[levels][levels_one_time]"]').change(radio_select);
$('input[class="form-radio"][name="amount[levels][levels_recurring]"]').change(radio_select);
$('input[name="amount[levels][levels_recurring]"]').change(amount_update);
amount_update();
var no_membership_amount_update = function () {
// If membership is enabled, don't update.
if ($('#create-membership').prop('checked')) {
return;}
ariaRadioUncheck('#edit-amount-levels-levels-one-time input, #edit-amount-levels-levels-recurring input');
$('.form-item-amount-levels-levels-one-time, .form-item-amount-levels-levels-recurring').removeClass('highlight');
var amount = Number($('#edit-amount-levels-amount').val());
// If recurring.
if ($("input[name='amount[levels][recurring]']:checked").val() == 1) {
for (var level in Drupal.settings.eff_donate_pages.levels.recurring) {
if (amount == Drupal.settings.eff_donate_pages.levels.recurring[level].amount) {
ariaRadioCheck('#edit-amount-levels-levels-recurring-' + level.replace('_', '-'));
break;
}
}
}
// If one-time.
else {
if (Drupal.settings.eff_donate_pages.discount) {
for (var level in Drupal.settings.eff_donate_pages.levels.discount) {
if (amount == Drupal.settings.eff_donate_pages.levels.discount[level].amount) {
ariaRadioCheck('#edit-amount-levels-levels-one-time-' + level);
break;
}
}
}
else {
for (var level in Drupal.settings.eff_donate_pages.levels.one_time) {
if (amount == Drupal.settings.eff_donate_pages.levels.one_time[level].amount) {
ariaRadioCheck('#edit-amount-levels-levels-one-time-' + level);
break;
}
}
}
}
};
no_membership_amount_update();
// Update the membership levels.
var update_levels = function () {
var amount = $('#edit-amount-levels-amount').val();
amount = Number(amount);
membership_warning_hide();
var checked;
// If recurring.
if ($("input[name='amount[levels][recurring]']:checked").val() == 1) {
for (var level in Drupal.settings.eff_donate_pages.levels.recurring) {
if (amount == Drupal.settings.eff_donate_pages.levels.recurring[level].amount) {
ariaRadioCheck('#edit-amount-levels-levels-recurring-' + level.replace('_', '-'));
checked = true;
break;
}
}
if (!checked) {
ariaRadioCheck('#edit-amount-levels-levels-recurring-other');
}
}
// If one-time.
else {
if (Drupal.settings.eff_donate_pages.discount) {
for (var level in Drupal.settings.eff_donate_pages.levels.discount) {
if (amount == Drupal.settings.eff_donate_pages.levels.discount[level].amount) {
ariaRadioCheck('#edit-amount-levels-levels-one-time-' + level);
checked = true;
break;
}
}
}
else {
for (var level in Drupal.settings.eff_donate_pages.levels.one_time) {
if (amount == Drupal.settings.eff_donate_pages.levels.one_time[level].amount) {
ariaRadioCheck('#edit-amount-levels-levels-one-time-' + level);
checked = true;
break;
}
}
}
if (!checked) {
ariaRadioCheck('#edit-amount-levels-levels-one-time-other');
if (amount >= 5 && !isNaN(amount) && amount < Drupal.settings.eff_donate_pages.minimum_membership) {
var diff = Drupal.settings.eff_donate_pages.minimum_membership - amount;
membership_warning_show('Thanks for your support! Donate $' + diff + ' more and become a card-carrying member.');
}
}
}
update_highlights();
};
$('#edit-amount-levels-amount').focus(function () { ariaRadioCheck(this) });
$('#edit-amount-levels-amount').change(update_levels);
$('#edit-amount-levels-amount').keyup(update_given_amount);
// Change donation amount button for premiums you can't afford.
$('.premium-unavailable-doit').click(function () {
var premium$ = $(this).parent();
// What price are we setting?
var price = 0;
if ($("input[name='amount[levels][recurring]']:checked").val() == 1) {
price = premium$.attr('premium_price_recurring');
}
else {
price = premium$.attr('premium_price_one_time');
}
price = Number(price);
// Set it.
$('#edit-amount-levels-amount').val(price);
update_levels();
});
// Membership toggle.
var membership_toggle = function () {
// Turning membership on.
if ($('#create-membership').prop('checked')) {
// Make membership level names black again.
$('#edit-amount-levels').removeClass('no-membership');
// Update levels and highlights.
update_levels();
update_highlights();
}
// Turning membership off.
else {
// Grey out show membership level names.
$('#edit-amount-levels').addClass('no-membership');
no_membership_amount_update();
// Update highlights.
update_highlights();
// Remove membership warning, if there is one.
membership_warning_hide();
}
};
$('#create-membership').click(membership_toggle);
membership_toggle();
// Recurring toggle.
var recurring_toggle = function () {
// If recurring.
$(".form-item-amount-levels-amount").detach().appendTo($('.form-item-amount-levels-levels-one-time').last());
if ($("input[name='amount[levels][recurring]']:checked").val() > 0) {
$('.form-item-amount-levels-recurring .highlight').css('display', 'inline-block');
$('.form-item-amount-levels-recurring .highlight').html('Thank you — we really appreciate it!');
if ($("input[name='amount[levels][recurring]']:checked").val() == 1) {
$('#edit-amount-levels-levels-recurring').show();
$('#edit-amount-levels-levels-one-time').hide();
membership_warning_hide();
document.getElementById('create-membership').checked = true;
membership_toggle();
$(".form-item-amount-levels-amount").detach().appendTo($('.form-item-amount-levels-levels-recurring').last());
}
if ($("input[name='amount[levels][recurring]']:checked").val() == 2) {
$('#edit-amount-levels-levels-recurring').hide();
$('#edit-amount-levels-levels-one-time').show();
}
}
// If one-time.
else {
$('#edit-amount-levels-levels-recurring').hide();
$('#edit-amount-levels-levels-one-time').show();
$('.form-item-amount-levels-recurring .highlight').hide();
}
update_levels();
// Force re-check membership amount.
$('#edit-amount-levels-amount').valid();
};
$("input[name='amount[levels][recurring]']").change(recurring_toggle);
recurring_toggle();
// Premiums.
$('.premium').hover(function () {
$(this).addClass('hover');
}, function () {
$(this).removeClass('hover');
});
$('.premium .premium-button-view').click(function (event) {
event.stopPropagation();
event.preventDefault();
$(this).parent().parent().addClass('expanded');
});
$('.premium .premium-button-close').click(function (event) {
event.stopPropagation();
event.preventDefault();
$(this).parent().parent().removeClass('expanded');
});
$('.premium').click(function (e) {
if (e.target.nodeName != "SELECT") {
ariaRadioCheck(this, !!e.originalEvent);
}
// Update hidden fields.
var premium_id = $(this).attr('premium_id');
var premium_title = $(this).attr('premium_title');
$('#membership-premiums-id').val(premium_id);
$('#membership-premiums-selection').val(premium_title);
var premium_option;
if ($('.premium-size-select', $(this))) {
premium_option = $('.premium-size-select', $(this)).val();
}
else {
premium_option = '';
}
$('#membership-premiums-option').val(premium_option);
});
$('.premium .premium-size-select').change(function () {
var premium_option = $(this).val();
$('#membership-premiums-option').val(premium_option);
});
var selected = $('#membership-premiums-option').val();
$('.premium-size-select').val(selected);
selected = $('#membership-premiums-selection').val().replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
$('.premium[premium_title="' + selected.replace(/"/g, '\\"') + '"] .premium-short').click();
// Pay with BTC button.
$('#btc-label').hover(function () {
$('#btc-label').addClass('hover');
}, function () {
$('#btc-label').removeClass('hover');
});
$('#btc-label').click(function () {
if ($('#btc-label').is('[aria-checked=true]')) {
ariaRadioUncheck('#btc-label');
$('#edit-btc-fields').hide(200);
}
else {
$('#edit-btc-fields .amount-warning').remove();
ariaRadioCheck('#btc-label');
$('#edit-stripe-fields').hide(200);
$('#edit-paypal-fields').hide(200);
$('#edit-btc-fields').show(200);
if ($("input[name='amount[levels][recurring]']:checked").val() > 0) {
ariaRadioCheck('#edit-amount-levels-recurring-0');
recurring_toggle();
$('#btc-recurring').show(200);
}
}
});
// Pay with PayPal button.
$('#paypal-label').hover(function () {
$('#paypal-label').addClass('hover');
}, function () {
$('#paypal-label').removeClass('hover');
});
$('#paypal-label').click(function () {
if ($('#paypal-label').is('[aria-checked=true]')) {
ariaRadioUncheck('#paypal-label');
$('#edit-paypal-fields').hide(200);
}
else {
ariaRadioCheck('#paypal-label');
$('#edit-stripe-fields').hide(200);
$('#edit-btc-fields').hide(200);
$('#edit-paypal-fields').show(200);
}
});
// Pay with credit card button.
$('#stripe-label').hover(function () {
$('#stripe-label').addClass('hover');
}, function () {
$('#stripe-label').removeClass('hover');
});
$('#stripe-label').click(function () {
if ($('#stripe-label').is('[aria-checked=true]')) {
ariaRadioUncheck('#stripe-label');
$('#edit-stripe-fields').hide(200);
}
else {
ariaRadioCheck('#stripe-label');
$('#edit-btc-fields').hide(200);
$('#edit-paypal-fields').hide(200);
$('#edit-stripe-fields').show(200);
}
});
selected = $('#payment-processor').val();
$('#' + selected + '-label').trigger('click');
// Shipping address is the same as billing address.
var toggle_shipping_same_as_billing = function () {
if ($('#edit-stripe-fields-shipping-same-as-billing').prop('checked')) {
$('#shipping-address').hide(test_mode ? null : 200);
}
else {
// Only prefill values if they are emptt.
if (!$('#edit-stripe-fields-shipping-street-address').val()) {
$('#edit-stripe-fields-shipping-street-address').val($('#edit-stripe-fields-billing-street-address').val());
$('#edit-stripe-fields-shipping-city').val($('#edit-stripe-fields-billing-city').val());
var val = $('#edit-stripe-fields-billing-country').val();
$('#edit-stripe-fields-shipping-country option').prop('selected', false);
$('#edit-stripe-fields-shipping-country option[value="' + val + '"]').prop('selected', true);
val = $('#edit-stripe-fields-billing-state').val();
$('#edit-stripe-fields-shipping-state option').prop('selected', false);
$('#edit-stripe-fields-shipping-state option[value="' + val + '"]').prop('selected', true);
$('#edit-stripe-fields-shipping-postal-code').val($('#edit-stripe-fields-billing-postal-code').val());
}
$('#shipping-address').show(200);
}
};
toggle_shipping_same_as_billing();
$('#edit-stripe-fields-shipping-same-as-billing').change(toggle_shipping_same_as_billing);
var copy_billing_address_to_shipping_address = function () {
if ($('#edit-stripe-fields-shipping-same-as-billing').prop('checked')) {
$('#edit-stripe-fields-shipping-street-address').val($('#edit-stripe-fields-billing-street-address').val());
$('#edit-stripe-fields-shipping-city').val($('#edit-stripe-fields-billing-city').val());
var val = $('#edit-stripe-fields-billing-country').val();
$('#edit-stripe-fields-shipping-country option').prop('selected', false);
$('#edit-stripe-fields-shipping-country option[value="' + val + '"]').prop('selected', true);
update_states('#edit-stripe-fields-shipping-country', '#edit-stripe-fields-shipping-state', function () {
var val = $('#edit-stripe-fields-billing-state').val();
$('#edit-stripe-fields-shipping-state option').prop('selected', false);
$('#edit-stripe-fields-shipping-state option[value="' + val + '"]').prop('selected', true);
});
$('#edit-stripe-fields-shipping-postal-code').val($('#edit-stripe-fields-billing-postal-code').val());
}
};
// Copy billing address to shipping address.
$('#edit-stripe-fields-billing-street-address').change(function () {
if ($('#edit-stripe-fields-shipping-same-as-billing').prop('checked')) {
$('#edit-stripe-fields-shipping-street-address').val($('#edit-stripe-fields-billing-street-address').val());
}
});
$('#edit-stripe-fields-billing-city').change(function () {
if ($('#edit-stripe-fields-shipping-same-as-billing').prop('checked')) {
$('#edit-stripe-fields-shipping-city').val($('#edit-stripe-fields-billing-city').val());
}
});
$('#edit-stripe-fields-billing-country').change(function () {
if ($('#edit-stripe-fields-shipping-same-as-billing').prop('checked')) {
var val = $('#edit-stripe-fields-billing-country').val();
$('#edit-stripe-fields-shipping-country option').prop('selected', false);
$('#edit-stripe-fields-shipping-country option[value="' + val + '"]').prop('selected', true);
update_states('#edit-stripe-fields-shipping-country', '#edit-stripe-fields-shipping-state', function () {
var val = $('#edit-stripe-fields-billing-state').val();
$('#edit-stripe-fields-shipping-state option').prop('selected', false);
$('#edit-stripe-fields-shipping-state option[value="' + val + '"]').prop('selected', true);
});
}
});
$('#edit-stripe-fields-billing-state').change(function () {
if ($('#edit-stripe-fields-shipping-same-as-billing').prop('checked')) {
var val = $('#edit-stripe-fields-billing-state').val();
$('#edit-stripe-fields-shipping-state option').prop('selected', false);
$('#edit-stripe-fields-shipping-state option[value="' + val + '"]').prop('selected', true);
}
});
$('#edit-stripe-fields-billing-postal-code').change(function () {
if ($('#edit-stripe-fields-shipping-same-as-billing').prop('checked')) {
$('#edit-stripe-fields-shipping-postal-code').val($('#edit-stripe-fields-billing-postal-code').val());
}
});
// Organization donations.
if ($('#edit-org-donations').length) {
var toggle_org_donation = function () {
if ($('#edit-org-donations-is-org').prop('checked')) {
$('.form-item-org-donations-org-name').show(200);
$('#edit-org-donations-org-name').rules('add', 'required');
}
else {
$('.form-item-org-donations-org-name').hide(200);
$('#edit-org-donations-org-name').rules('remove', 'required');
}
};
toggle_org_donation();
$('#edit-org-donations-is-org').change(toggle_org_donation);
}
// Size chart links.
$('a.sizechart')
.attr('href', '/sites/all/modules/custom/eff_donate_pages/html/shirt_sizes.html')
.attr('data-fancybox-type', 'iframe')
.addClass('fancybox');
// Disable form submit when enter is pressed on certain fields.
$('input#edit-amount-levels-amount, input#edit-amount-powerup-name').keypress(function (e) {
if (e.which == 13) {
e.preventDefault();}
});
if (location.hash == '#unplug-big-brother') {
$("div[premium_id='18271'] div.premium-short").click();
}
});
})(jQuery);