1<!DOCTYPE html> 2<html class="xndp-wrapper-html" lang="en"> 3<head> 4 5 6 7 <meta charset="utf-8"> 8 <title>Donate | Nova Scotia New Democratic Party</title> 9
9<script nonce="7199847af64d558f3d181de59088025e" src="//client.px-cloud.net/PX2LvE3z86/main.min.js"></script>
9<script nonce="7199847af64d558f3d181de59088025e">startTime=new Date()</script>
9 10 <meta http-equiv="X-UA-Compatible" content="IE=edge;chrome=1"> 11 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> 12 13 14 15 16 <link rel="icon" href="https://s3.amazonaws.com/s3-ak-nsndp/images/icon--nsndp-favicon.svg" type="image/png"> 17 <link rel="shortcut icon" href="https://s3.amazonaws.com/s3-ak-nsndp/images/icon--nsndp-favicon.svg" type="image/png"> 18 19 20 21 22 23 <meta property="og:title" content="Donate" /> 24 <meta property="og:description" content="Making life better for you and your family Every little bit helps us move forward." /> 25 26 <meta property="og:url" content="https://act.nsndp.ca/donate/default" /> 27 <meta property="og:site_name" content="Nova Scotia New Democratic Party"> 28 <meta property="og:type" content="article"> 29 <meta name="twitter:card" content="summary"> 30 31 32 33 34 35 36 37 38 <link href="//fonts.googleapis.com/css?family=Open+Sans:100,300,400,600,700" rel="stylesheet" type="text/css"> 39 <link href="/media/modern/actionkit.min.css?1=22" rel="stylesheet" type="text/css"> 40 41 42 43 44 <!-- fonte-awesome --> 45 46 <link rel="stylesheet" href="https://use.fontawesome.com/b2ee5e333f.css" /> 47 48 49 50
50<script nonce='7199847af64d558f3d181de59088025e'>/*From load_prefill snippet*/actionkitWantDatabag=1;</script>
50 51 52
52<script nonce="7199847af64d558f3d181de59088025e" type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
52 53
53<script nonce="7199847af64d558f3d181de59088025e" type="text/javascript" src="/resources/actionkit.min.js"></script>
53 54 55 56 57 58 59 <style> 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 .ak-target-phone .ak-target-label, span.office_phone_label, 83 span.ak-target-fax, span.ak-target-separator { display: none } 84 .ak-event-description, .ak-event-note-to-attendees, .ak-event-directions { white-space: pre-line; } 85 </style> 86 87
88<script nonce="7199847af64d558f3d181de59088025e" language="javascript"> 89//<!-- 90 function clear_radio_buttons() { 91 $('input.ak-amount-radio-button').prop('checked', false); 92 } 93 94 function clear_other() { 95 $('#ak-other-amount-field').val(""); 96 } 97 98 function product_info(id) { 99 var product_element = $("#product_" + id), 100 quantity = 0, 101 price = parseFloat($("#product_" + id + "_price").data("price")); 102 103 if (product_element.is(':checkbox')) { 104 if (product_element.is(':checked')) { 105 quantity = 1; 106 } 107 } else if (product_element.val() != "") { 108 quantity = parseInt(product_element.val()); 109 } 110 111 return { 112 'id': id, 113 'price': price, 114 'quantity': quantity, 115 'subtotal': (price * quantity) 116 } 117 } 118 119 function update_total() { 120 var total = 0.0; 121 122 product_infos().forEach(function(info) { 123 total += (info.subtotal > 0 ? info.subtotal : 0); 124 }); 125 126 $('.ak_candidate_inputs').each(function (i) { 127 // check that amount is a valid amount 128 var amount = this.value; 129 if (amount.length == 0 || ! /^[\d,]*(\.\d{1,2})?$/.test(amount)) { 130 return; 131 } 132 133 total += parseFloat(amount.replace(',', '')); 134 }); 135 136 // look for checked off donation amounts 137 var amount_checked = $('input:radio[name=amount]:checked').val(); 138 if (amount_checked) { 139 total += parseFloat(amount_checked); 140 } else { 141 // or other amounts 142 var other = $('#ak-other-amount-field').val(); 143 if (typeof other !== "undefined" && 144 other.length && /^[\d,]*(\.\d{1,2})?$/.test(other)) 145 total += parseFloat(other.replace(',', '')); 146 } 147 148 var new_total = total == 0 ? "" : "" + total.toFixed(2); 149 $('.ak-donation-total-amount').html(new_total); 150 return total; 151 } 152 153 $(function() { 154 $('.ak_product_inputs').on('change blur', update_total); 155 $('.ak_candidate_inputs').on('change blur', update_total); 156 $('.ak-amount-radio-button').on('change blur', update_total) 157 .on('click', clear_other) 158 .on('click', update_total); 159 $('#ak-other-amount-field').on('change blur', update_total) 160 .on('click keyup', clear_radio_buttons) 161 .on('click', update_total); 162 $('input[type=radio][name=payment_method]').change(function() { 163 if (this.value == 'ach') { 164 $('.ach_payment_options').show(); 165 $('.cc_payment_options').hide(); 166 } else { 167 $('.ach_payment_options').hide(); 168 $('.cc_payment_options').show(); 169 } 170 }); 171 $('input[type=radio][name=ach_method]').change(function() { 172 if (this.value == 'account_number') { 173 $('.account_number_options').show(); 174 } else { 175 $('.account_number_options').hide(); 176 } 177 }); 178 $('#ak-ownership_type').change(function() { 179 if (this.value == 'business') { 180 $('#ak-fieldbox-business_name').show(); 181 } else { 182 $('#ak-fieldbox-business_name').hide(); 183 } 184 }); 185 }); 186 187 /* Amount buttons */ 188 function highlight_selected_amount_button() { 189 $('label.ak-radio-checked').removeClass('ak-radio-checked'); 190 $(this).closest('label').addClass('ak-radio-checked'); 191 } 192 $(function() { 193 $('input[name="amount"]').on( 194 'click', highlight_selected_amount_button); 195 $('input[name="amount_other"]').on( 196 'click change', highlight_selected_amount_button); 197 198 // Make sure label is highlighted if an amount is pre-selected 199 highlight_selected_amount_button.call( 200 $('input[name="amount"]:checked').get(0) //|| 201 //$('input[name="amount_other"]').get(0) 202 ); 203 }); 204 205 /* Currency symbols */ 206 function redraw_currency_symbol() { 207 var id = $('input[id^=id_currency_]:checked, option[id^=id_currency_]:selected').attr('id'); 208 var iso_code_match = /([A-Z][A-Z][A-Z])$/.exec(id); 209 if ( ! iso_code_match ) { 210 return 211 } 212 var iso_code = iso_code_match[1];
213 var currency_sym = actionkit.utils.currencySymbols[iso_code]; 214 $('.ak-currency-sym').text( currency_sym || '' ); 215 } 216 217 $(function() { 218 $('input[id^=id_currency_], select[name="currency"], select[name="payment_account"]').on('change', redraw_currency_symbol); 219 redraw_currency_symbol(); 220 }); 221 222 223 var address_fields = [ 224 'address1', 'address2', 'city', 'state', 'zip' 225 , 'postal', 'region', 'country' 226 ]; 227 228 229 function country_change() { 230 if ( $('#id_country').val() == 'United States' ) { 231 $('.ak-us-billing-fields').show(); 232 $('.ak-intl-billing-fields').hide(); 233 } else { 234 $('.ak-us-billing-fields').hide(); 235 $('.ak-intl-billing-fields').show(); 236 } 237 sync_to_shipping(); 238 } 239 function shipping_country_change() { 240 if ( $('#id_shipping_country').val() == 'United States' ) { 241 $('.ak-us-shipping-fields').show(); 242 $('.ak-intl-shipping-fields').hide(); 243 } else { 244 $('.ak-us-shipping-fields').hide(); 245 $('.ak-intl-shipping-fields').show(); 246 } 247 } 248 $( function () { 249 $('#id_country').on('change blur', country_change); 250 $('#id_shipping_country').on('change blur', shipping_country_change); 251 country_change(); 252 shipping_country_change(); 253 } ); 254 255 256 257 function toggle_shipping() { 258 if ( $('#ak-shipping-same').prop("checked") ) { 259 sync_to_shipping(); 260 $('#ak-shipping-fields').slideUp(); 261 if($('.ak-shipping-required').length) 262 $('.ak-shipping-required').remove(); 263 } else { 264 clear_shipping(); 265 $('#ak-shipping-fields').slideDown(); 266 $('#ak-shipping-fields').append( 267 "<input type='hidden' name='required' value='shipping_address1' class='ak-shipping-required'>"); 268 $('#ak-shipping-fields').append( 269 "<input type='hidden' name='required' value='shipping_city' class='ak-shipping-required'>"); 270 $('#ak-shipping-fields').append( 271 "<input type='hidden' name='required' value='shipping_state' class='ak-shipping-required'>"); 272 $('#ak-shipping-fields').append( 273 "<input type='hidden' name='required' value='shipping_zip' class='ak-shipping-required'>"); 274 } 275 } 276 277 function clear_shipping(e) { 278 var i, field, ship_field; 279 for (i in address_fields) { 280 field = address_fields[i]; 281 ship_field = $('#id_shipping_' + field); 282 ship_field.val("").change().prop("readonly", false); 283 } 284 285 shipping_country_change(); 286 287 } 288 289 function sync_to_shipping(e) { 290 if ( ! $('#ak-shipping-same').prop("checked") ) { 291 return; 292 } 293 var i, field, ship_field, bill_value; 294 for (i in address_fields) { 295 field = address_fields[i]; 296 ship_field = $('#id_shipping_' + field); 297 bill_value = $('#id_' + field).val(); 298 ship_field.val(bill_value).change().prop("readonly", true); 299 } 300 301 shipping_country_change(); 302 303 } 304 305 $( function () { 306 $('#ak-shipping-same').on('change', toggle_shipping); 307 toggle_shipping(); 308 309 $('#id_address1, #id_address2, #id_city, #id_state, #id_zip, ' + 310 '#id_region, #id_postal').on('change blur', sync_to_shipping); 311 } ); 312 313 var three_step_initialized = 0; 314 function three_step_reveal() { 315 var current_step = $('input[name="ak-donate-step"]:checked').val(); 316 if ( current_step != "2" && current_step != "3" ) { 317 current_step = "1" 318 } 319 var speed = three_step_initialized ? 1 : 400; 320 if ( current_step == "1" ) { 321 $('.ak-donate-area-step-2, .ak-donate-area-step-3').hide(); 322 $('.ak-donate-area-step-1, #ak-continue-button').fadeIn( speed ); 323 324 } else if ( current_step == "2" ) { 325 $('.ak-donate-area-step-1, .ak-donate-area-step-3').hide(); 326 $('.ak-donate-area-step-2, #ak-continue-button').fadeIn( speed, 327 focus_field_if_blank( $('#id_name') ) 328 ); 329 } else if ( current_step == "3" ) { 330 $('.ak-donate-area-step-1, .ak-donate-area-step-2, #ak-continue-button').hide(); 331 $('.ak-donate-area-step-3').fadeIn( speed, 332 focus_field_if_blank( $('#ak-card_num') ) 333 ); 334 } 335 } 336 337 function focus_field_if_blank ( field_elt ) { 338 return ( function () { 339 if ( ! field_elt.val() ) { 340 field_elt.focus() 341 } 342 } ) 343 } 344 345 var step_has_errors = false;
346 function three_step_advance() { 347 // trigger validation on the step we're leaving 348 var current_step = $('input[name="ak-donate-step"]:checked').val(); 349 validate_step(current_step); 350 351 if (!step_has_errors) { 352 $('input[name="ak-donate-step"]:checked').closest('label'). 353 next('label').find('input[type="radio"]').prop('checked', true); 354 three_step_reveal(); 355 } 356 } 357 358 function three_step_goto(next) { 359 // trigger validation on the step we're leaving 360 var current_step = $('input[name="ak-donate-step"]:checked').val(); 361 362 // skip validation if we're going backwards 363 if (current_step < next) { 364 validate_step(current_step); 365 } 366 367 // can't skip over a step unless it's already been completed 368 if ( (! step_has_errors) && (current_step == 1) && (next == 3) ) { 369 validate_step(2); 370 if ( step_has_errors ) { 371 $('#ak-donate-step-2').prop('checked', true); 372 three_step_reveal(); 373 return; 374 } 375 } 376 377 // allow the user to go back even if there are errors 378 if (current_step > next || !step_has_errors) { 379 $('#ak-donate-step-' + next).prop('checked', true); 380 three_step_reveal(); 381 } 382 } 383 384 function validate_product_count ( field ) { 385 var product_count = field.value; 386 if (product_count == "" || product_count == "0") { 387 return true 388 } 389 product_count = parseInt( product_count ); 390 var product_max = parseInt( $(field).attr('max') ); 391 if ( product_max && product_count > product_max ) { 392 var err_msg = actionkit.forms.errorMessage('product:max'); 393 err_msg = err_msg.replace("{0}", product_max); 394 return err_msg 395 } 396 return true 397 } 398 399 /* used to limit AK built-in validation to particular fields by step */ 400 var doing_step_validation = false; 401 var validate_fields = []; 402 function validate_step(step) { 403 step_has_errors = false; 404 if (step == "1") { 405 validate_fields = ["amount"]; 406 } else if (step == "2") { 407 validate_fields = ["email", "first_name", "last_name", "name", 408 "phone", 409 "address1", "address2", "city", "state", "zip", 410 "country", "region", "postal", 411 "shipping_address1", "shipping_address2", 412 "shipping_city", "shipping_state", 413 "shipping_zip", "shipping_country", 414 "shipping_region", "shipping_postal", 415 "privacy" 416 ]; 417 } else { 418 validate_fields = ["card_num", "card_code", 419 "exp_date_year", "exp_date_month", "exp_date"]; 420 } 421 422 doing_step_validation = true; 423 actionkit.forms.validate(); 424 doing_step_validation = false; 425 426 if (step == "1") { 427 step_has_errors = step_1_validation(); 428 } 429 430 if (step == "2" && !step_has_errors) { 431 step_has_errors = step_2_validation(); 432 } 433 434 435 if (step == "3" && !step_has_errors) { 436 step_has_errors = step_3_validation(); 437 } 438 } 439 440 function do_validate_credit_card() { 441 if (actionkit.donations && actionkit.donations.skip_cc_validation) { 442 return false; 443 } 444 445 return true; 446 } 447 448 function step_3_validation() { 449 var step_has_errors = false; 450 if (!actionkit.errors) { 451 actionkit.errors = {}; 452 } 453 454 var payment_method = actionkit.form["payment_method"] && actionkit.form["payment_method"].value; 455 if (payment_method == 'ach') { 456 if ($('#ak-ownership_type').val() == 'business') { 457 if (!$('#ak-business_name').val()) { 458 actionkit.errors['business_name:missing'] = actionkit.forms.errorMessage('business_name:missing'); 459 step_has_errors = true; 460 } 461 } 462 var ach_method = actionkit.form["ach_method"] && actionkit.form["ach_method"].value; 463 if (ach_method != 'bank_login') { 464 var bank_account = $('#ak-bank_account').val(); 465 if (!bank_account) { 466 actionkit.errors['bank_account:missing'] = actionkit.forms.errorMessage('bank_account:missing'); 467 step_has_errors = true; 468 } else if (!valid_bank_account_number(bank_account)) { 469 actionkit.errors['bank_account:invalid'] = actionkit.forms.errorMessage('bank_account:invalid'); 470 step_has_errors = true; 471 } 472 var routing_number = $('#ak-routing_number').val(); 473 if (!routing_number) { 474 actionkit.errors['routing_number:missing'] = actionkit.forms.errorMessage('routing_number:missing'); 475 step_has_errors = true; 476 } else if (!valid_bank_routing_number(routing_number)) { 477 actionkit.errors['routing_number:invalid'] = actionkit.forms.errorMessage('routing_number:invalid'); 478 step_has_errors = true; 479 } 480 } 481 482 } else { 483 if (!do_validate_credit_card()) { 484 return step_has_errors; 485 } 486 487 if (!valid_credit_card($('#ak-card_num').val())) { 488 actionkit.errors['card_num:invalid'] = actionkit.forms.errorMessage('card_num:invalid'); 489 step_has_errors = true; 490 } 491 492 if (!valid_credit_card_code($('#ak-card_code').val())) { 493 actionkit.errors['card_code:invalid'] = actionkit.forms.errorMessage('card_code:invalid'); 494 step_has_errors = true; 495 } 496 } 497 498 if (step_has_errors) { 499 actionkit.forms.onValidationErrors(actionkit.errors); 500 } 501 502 return step_has_errors; 503 } 504 505 function step_2_validation() { 506 var step_has_errors = false;
507 if (!valid_email($('#id_email').val())) { 508 if (!actionkit.errors) 509 actionkit.errors = {}; 510 actionkit.errors['email:invalid'] = actionkit.forms.errorMessage('email:invalid'); 511 actionkit.forms.onValidationErrors(actionkit.errors); 512 step_has_errors = true; 513 } 514 return step_has_errors; 515 } 516 517 function step_1_validation() { 518 var step_has_errors = false; 519 520 // look for product selections 521 var selected_products = false; 522 product_infos().forEach(function(info) { 523 if (info.quantity) { 524 selected_products = true; 525 } 526 }); 527 528 // look for candidate selections 529 var selected_candidates = false; 530 $('.ak_candidate_inputs').each( 531 function(i) { 532 if ($(this).val() != "") 533 selected_candidates = true; 534 }); 535 536 // there's no built-in validation for amounts, so do it here 537 if (!selected_products && !selected_candidates && 538 !$('.ak-amount-radio-button').is(':checked') && 539 $('#ak-other-amount-field').val() == "") { 540 if (!actionkit.errors) 541 actionkit.errors = {}; 542 actionkit.errors['amount:missing'] = actionkit.forms.errorMessage('amount:missing'); 543 actionkit.forms.onValidationErrors(actionkit.errors); 544 step_has_errors = true; 545 546 } else if (($('#ak-other-amount-field').val() != "" && 547 $('#ak-other-amount-field').val() != undefined) && 548 !/^[\d,]*(\.\d{1,2})?$/.test($('#ak-other-amount-field').val())) { 549 if (!actionkit.errors) 550 actionkit.errors = {}; 551 actionkit.errors['amount:invalid'] = actionkit.forms.errorMessage('amount:invalid'); 552 actionkit.forms.onValidationErrors(actionkit.errors); 553 step_has_errors = true; 554 } 555 556 557 var total = update_total(); 558 if (!step_has_errors && total < 5.00) { 559 if (!actionkit.errors) { 560 actionkit.errors = {}; 561 } 562 err = actionkit.forms.errorMessage('amount:minimum'); 563 err = err.replace("{0}", "5.00"); 564 actionkit.errors['amount:minimum'] = err; 565 actionkit.forms.onValidationErrors(actionkit.errors); 566 step_has_errors = true; 567 } 568 569 570 return step_has_errors; 571 } 572 573 function actionkitValidationErrors(errors, field) { 574 // only want this running during step validation 575 if (!doing_step_validation) { 576 return; 577 } 578 579 // trim out validation errors we don't care about on this step 580 var to_delete = []; 581 step_has_errors = false; 582 for (var key in errors) { 583 parts = key.split(':'); 584 if (validate_fields.indexOf(parts[0]) == -1) { 585 to_delete.push(key); 586 } else { 587 step_has_errors = true; 588 } 589 } 590 for (var i = 0; i < to_delete.length; i++) { 591 delete errors[to_delete[i]]; 592 } 593 } 594 595 function three_step_initialize() { 596 if (actionkit.errors) { 597 var has_errors = []; 598 if ($('.ak-donate-area-step-1').find('.ak-err').length) { 599 has_errors.push($('.ak-donate-area-step-1')); 600 } 601 if ($('.ak-donate-area-step-2').find('.ak-err').length) { 602 has_errors.push($('.ak-donate-area-step-2')); 603 } 604 if ($('.ak-donate-area-step-3').find('.ak-err').length) { 605 has_errors.push($('.ak-donate-area-step-3')); 606 } 607 608 if (has_errors.length == 1) { 609 // just one pane with errors? show it 610 has_errors[0].show(); 611 } else { 612 // otherwise show all steps 613 $('.ak-donate-area-step-1, .ak-donate-area-step-2, .ak-donate-area-step-3').show(); 614 $('#ak-continue-button').hide(); 615 } 616 } 617 three_step_initialized = 1; 618 } 619 620 $(function() { 621 // three-step vs. one-step UI 622 if ( $('form.ak-donate-three-step').length == 0 ) { 623 $('.ak-donate-three-step-visible').hide(); 624 } else { 625 $('.ak-donate-three-step-hidden').hide(); 626 three_step_reveal(); 627 window.actionkitFormReady = three_step_initialize; 628 // $('.ak-donate-menu input[type="radio"]').on('change', three_step_reveal); 629 $('#ak-continue-button').on('click', function (evt) { 630 // letting this event go will trigger our onsubmit and lead to validation woe 631 evt.preventDefault(); 632 three_step_advance(); 633 }); 634 $('.ak-donate-step-1').on('click', function (evt) { 635 evt.preventDefault(); 636 three_step_goto('1'); 637 }); 638 $('.ak-donate-step-2').on('click', function (evt) { 639 evt.preventDefault(); 640 three_step_goto('2'); 641 }); 642 $('.ak-donate-step-3').on('click', function (evt) { 643 evt.preventDefault(); 644 three_step_goto('3'); 645 }); 646 } 647 648 }); 649 650 function product_ids() { 651 return $("[data-product]").map(function(i, el) { 652 return $(el).data("product"); 653 }).toArray(); 654 } 655 656 function product_infos() { 657 return product_ids().map(function(id) { 658 return product_info(id); 659 }); 660 } 661 662 // calculate subtotals if products exist 663 function calculate_product_subtotals() { 664 var subtotal = 0;
665 product_infos().forEach(function(info) { 666 if (info.subtotal < 0) { info.subtotal = 0 } 667 $('.ak_product_subtotal_' + info.id).text(info.subtotal.toFixed(2)); 668 subtotal += info.subtotal; 669 }); 670 $('#ak-donation-subtotal-amount').text(subtotal.toFixed(2)); 671 } 672 673 $(function() { 674 calculate_product_subtotals(); 675 676 $('.ak_product_inputs').on('change', function() { 677 calculate_product_subtotals(); 678 }); 679 }); 680 681 // Standard luhn check to detect mistyped credit card numbers 682 // from https://gist.github.com/DiegoSalazar/4075533 683 function valid_credit_card(value) { 684 if (/[^0-9-\s]/.test(value)) { 685 return false; 686 } 687 var nCheck = 0, nDigit = 0, bEven = false; 688 value = value.replace(/\D/g, ""); 689 690 for (var n = value.length - 1; n >= 0; n--) { 691 var cDigit = value.charAt(n), 692 nDigit = parseInt(cDigit, 10); 693 694 if (bEven) { 695 if ((nDigit *= 2) > 9) { 696 nDigit -= 9; 697 } 698 } 699 700 nCheck += nDigit; 701 bEven = !bEven; 702 } 703 704 return (nCheck % 10) == 0; 705 } 706 707 function valid_credit_card_code(value) { 708 if (/[^0-9-\s]/.test(value)) { 709 return false; 710 } 711 value = value.replace(/\D/g, ""); 712 if (value.length == 3 || value.length == 4) { 713 return true; 714 } 715 return false; 716 } 717 718 function valid_bank_account_number(value) { 719 return /^\d{4,17}$/.test(value); 720 } 721 722 function valid_bank_routing_number(value) { 723 value = value.replace(/\D/g,''); 724 725 if (value.length != 9) { return false; } 726 727 var checksum = 0; 728 for (var i = 0; i < value.length; i += 3) { 729 checksum += parseInt(value.charAt(i), 10) * 3 730 + parseInt(value.charAt(i + 1), 10) * 7 731 + parseInt(value.charAt(i + 2), 10); 732 } 733 734 if (checksum == 0 || checksum % 10 != 0) { return false; } 735 736 return true; 737 } 738 739 // not 100% the same as Django but pretty close 740 var email_regExp = /^\s*((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\s*$/i; 741 function valid_email(email) { 742 return email_regExp.test(email); 743 } 744 745 function submit_paypal() { 746 747 748 /* set the paypal=1 hidden field */ 749 $('#ak-pay-by-paypal').val(1); 750 751 /* clear out CC info if entered */ 752 $('#ak-card_num').val(''); 753 $('#ak-card_code').val(''); 754 755 /* disable CC requirements */ 756 $('#ak-card_num-required').remove(); 757 $('#ak-card_code-required').remove(); 758 $('#ak-exp_date_month-required').remove(); 759 $('#ak-exp_date_year-required').remove(); 760 761 /* and keep submitting */ 762 return true; 763 } 764 765 function submit_cc() { 766 /* clear paypal=1 hidden field, only needed if someone hit back */ 767 $('#ak-pay-by-paypal').val(0); 768 769 if ($('button.ak-submit-button').hasClass('is-submitted')) { 770 return false 771 } 772 773 if ( $('form.ak-donate-three-step').length > 0 ) { 774 validate_step("3"); 775 776 if (step_has_errors) { 777 return false;
778 } else { 779 $('button.ak-submit-button').addClass('is-submitted'); 780 return true; 781 } 782 } 783 784 785 /* not doing 3-step, so we need to do all the validation here, 786 * don't want to short-circuit and only run one step, better 787 * to run all three even if all three have errors */ 788 actionkit.forms.validate(); 789 results = [step_1_validation(), 790 step_2_validation(), 791 step_3_validation()]; 792 var ok = !(results[0] || results[1] || results[2]); 793 if (ok) { 794 $('button.ak-submit-button').addClass('is-submitted'); 795 } 796 return ok 797 } 798 799 $( function () { 800 $('#ak-paypal-button').on('click', submit_paypal); 801 $('.ak-submit-button').on('click', submit_cc); 802 $(window).on('pagehide', function() { 803 $('button.ak-submit-button').removeClass('is-submitted'); 804 }); 805 806 807 $('#ak-paypal-button').on('mousedown', function () { 808 var form_elt = $(this).closest('form'); 809 var required_fields = form_elt.find('input[name="required"]'); 810 if ( required_fields.length ) { 811 required_fields.remove(); 812 $('body').on('mouseup', function ( event ) { 813 form_elt.append( required_fields ); 814 $( this ).unbind( event ); 815 } ); 816 } 817 } ); 818 819 } ); 820 821//--> 822</script>
822 823 824 825
826<script nonce="7199847af64d558f3d181de59088025e" id="pp_info" 827 data-client_token="eyJ2ZXJzaW9uIjoyLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiJleUpyYVdRaU9pSXlNREU0TURReU5qRTJMWEJ5YjJSMVkzUnBiMjRpTENKcGMzTWlPaUpvZEhSd2N6b3ZMMkZ3YVM1aWNtRnBiblJ5WldWbllYUmxkMkY1TG1OdmJTSXNJbUZzWnlJNklrVlRNalUySW4wLmV5SmxlSEFpT2pFM09URXdOVFF5T1RRc0ltcDBhU0k2SWpjd01XVmxOalEyTFRVeFltWXROR1F6TkMwNFkyTmlMVFJrTkdVMU5qVTROelkyWmlJc0luTjFZaUk2SWprM2VYRTJPR2huYmpsb1p6YzNibW9pTENKcGMzTWlPaUpvZEhSd2N6b3ZMMkZ3YVM1aWNtRnBiblJ5WldWbllYUmxkMkY1TG1OdmJTSXNJbTFsY21Ob1lXNTBJanA3SW5CMVlteHBZMTlwWkNJNklqazNlWEUyT0dobmJqbG9aemMzYm1vaUxDSjJaWEpwWm5sZlkyRnlaRjlpZVY5a1pXWmhkV3gwSWpwbVlXeHpaU3dpZG1WeWFXWjVYM2RoYkd4bGRGOWllVjlrWldaaGRXeDBJanBtWVd4elpYMHNJbkpwWjJoMGN5STZXeUp0WVc1aFoyVmZkbUYxYkhRaVhTd2ljMk52Y0dVaU9sc2lRbkpoYVc1MGNtVmxPbFpoZFd4MElpd2lRbkpoYVc1MGNtVmxPa05zYVdWdWRGTkVTeUpkTENKdmNIUnBiMjV6SWpwN2ZYMC43M2k1WEhKektpOVI5TmV0UVFWblcxckQwZ0hvbGUwNVcwMmpjNkdQNjZMaklMMFh3UE5oZlZRaDVkWHFhNlM2ZThScjJpVWhSOXlSUWc1X1ZIeFhlUSIsImNvbmZpZ1VybCI6Imh0dHBzOi8vYXBpLmJyYWludHJlZWdhdGV3YXkuY29tOjQ0My9tZXJjaGFudHMvOTd5cTY4aGduOWhnNzduai9jbGllbnRfYXBpL3YxL2NvbmZpZ3VyYXRpb24iLCJncmFwaFFMIjp7InVybCI6Imh0dHBzOi8vcGF5bWVudHMuYnJhaW50cmVlLWFwaS5jb20vZ3JhcGhxbCIsImRhdGUiOiIyMDE4LTA1LTA4IiwiZmVhdHVyZXMiOlsidG9rZW5pemVfY3JlZGl0X2NhcmRzIl19LCJjbGllbnRBcGlVcmwiOiJodHRwczovL2FwaS5icmFpbnRyZWVnYXRld2F5LmNvbTo0NDMvbWVyY2hhbnRzLzk3eXE2OGhnbjloZzc3bmovY2xpZW50X2FwaSIsImVudmlyb25tZW50IjoicHJvZHVjdGlvbiIsIm1lcmNoYW50SWQiOiI5N3lxNjhoZ245aGc3N25qIiwiYXNzZXRzVXJsIjoiaHR0cHM6Ly9hc3NldHMuYnJhaW50cmVlZ2F0ZXdheS5jb20iLCJhdXRoVXJsIjoiaHR0cHM6Ly9hdXRoLnZlbm1vLmNvbSIsInZlbm1vIjoib2ZmIiwiY2hhbGxlbmdlcyI6W10sInRocmVlRFNlY3VyZUVuYWJsZWQiOmZhbHNlLCJhbmFseXRpY3MiOnsidXJsIjoiaHR0cHM6Ly9jbGllbnQtYW5hbHl0aWNzLmJyYWludHJlZWdhdGV3YXkuY29tLzk3eXE2OGhnbjloZzc3bmoifSwicGF5cGFsRW5hYmxlZCI6ZmFsc2V9" 828 829 data-public_key="yxzt8kv8fp9tgdfp" 830 ></script>
830 831 832 833 834<style type="text/css"> 835.hosted-field { 836 height: 2.375em; 837 padding: 7px 7px; 838 margin-bottom: 6px; 839 background-color: white; 840 border: 1px solid #ccc; 841} 842.hosted-field.braintree-hosted-fields-invalid { 843 border-color: #d00; 844 background-color: #FFC8C8; 845} 846</style>
847<script nonce="7199847af64d558f3d181de59088025e" src="https://js.braintreegateway.com/web/3.134.0/js/client.min.js"></script>
vendor: 1 bytes, line 847
847
848<script nonce="7199847af64d558f3d181de59088025e" src="https://js.braintreegateway.com/web/3.134.0/js/three-d-secure.min.js"></script>
vendor: 1 bytes, line 848
848
849<script nonce="7199847af64d558f3d181de59088025e" src="https://js.braintreegateway.com/web/3.134.0/js/hosted-fields.min.js"></script>
vendor: 1 bytes, line 849
849
850<script nonce="7199847af64d558f3d181de59088025e" src="https://js.braintreegateway.com/web/3.134.0/js/data-collector.min.js"></script>
vendor: 1 bytes, line 850
850
851<script nonce="7199847af64d558f3d181de59088025e" src="https://js.braintreegateway.com/web/3.134.0/js/us-bank-account.min.js"></script>
851 852
853<script nonce="7199847af64d558f3d181de59088025e" src="/resources/ak_braintree_vzero.js"></script>
vendor: 1 bytes, line 853
853
854<script nonce="7199847af64d558f3d181de59088025e"> 855$(function() { 856 var form = document.querySelector("#act"), 857 options = { 858 form: form, 859 fields: { 860 number: { 861 selector: '#ak-card_num-hosted' 862 }, 863 cvv: { 864 selector: '#ak-card_code-hosted' 865 }, 866 expirationDate: { 867 selector: '#ak-exp_date-hosted', 868 placeholder: 'MM / YYYY' 869 } 870 }, 871 styles: { 872 'input': { 873 'font-family': 'sans-serif', 874 'font-size': '16.5px', 875 'color': '#4b4b4b' 876 }, 877 'input.invalid': { 878 'color': '#d00', 879 'background-color': '#FFC8C8' 880 }, 881 'input.valid': { 882 'color': 'green' 883 } 884 }, 885 submitOnEmpty: function() { 886 return $('#ak-pay-by-paypal').val() == 1; 887 }, 888 submit: form.querySelector(".ak-submit-button"), 889 890 }, 891 toRemove = ["#ak-card_num", "#ak-card_code", "#ak-exp_date_month", 892 "#ak-exp_date_year", "#ak-card_num-required", 893 "#ak-card_code-required", "#ak-exp_date_month-required", 894 "#ak-exp_date_year-required"]; 895 896 toRemove.forEach(function(el) { 897 $(el).remove(); 898 }); 899 900 actionkit.donations.handleError = function(err) { 901 if (window.console) { 902 window.console.log(err); 903 } 904 905 if (!actionkit.errors) { 906 actionkit.errors = {}; 907 } 908 909 switch (err.code) { 910 case 'HOSTED_FIELDS_FIELDS_EMPTY': 911 actionkit.errors['card_num:invalid'] = "Credit card fields are empty."; 912 break; 913 case 'HOSTED_FIELDS_FIELDS_INVALID': 914 err.details.invalidFieldKeys.forEach(function(key) { 915 var map = { 916 'number': 'card_num', 917 'cvv': 'card_code', 918 'expirationDate': 'card_exp' 919 }; 920 actionkit.errors[map[key] + ':invalid'] = "This field is invalid.";; 921 }); 922 break; 923 case 'HOSTED_FIELDS_FAILED_TOKENIZATION': 924 actionkit.errors['card_num:invalid'] = "Please check that your credit card is valid."; 925 break; 926 case 'HOSTED_FIELDS_TOKENIZATION_NETWORK_ERROR': 927 actionkit.errors['card_num:invalid'] = "Network error."; 928 break; 929 default: 930 actionkit.errors['card_num:invalid'] = "An error occurred: " + err.message; 931 } 932 933 $("button.ak-submit-button").removeClass("is-submitted"); 934 actionkit.forms.onValidationErrors(actionkit.errors); 935 }; 936 937 938 actionkit.donations.initClient(document.getElementById("pp_info").getAttribute("data-client_token"), options); 939 940 941 // read by 3-step validation 942 actionkit.donations.skip_cc_validation = true; 943 actionkit.donations.vzero = true; 944}); 945</script>
945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961<link href="//fonts.googleapis.com/css?family=Source+Serif+Pro:400,600,700|Roboto:300,400,400i,500,700" rel="stylesheet"> 962 963<style> 964/* wrapper.html */ 965.xndp-wrapper-html body { 966 display: -webkit-box; 967 display: -ms-flexbox; 968 display: flex; 969 -webkit-box-orient: vertical; 970 -webkit-box-direction: normal; 971 -ms-flex-direction: column; 972 flex-direction: column; 973 -webkit-box-pack: start; 974 -ms-flex-pack: start; 975 justify-content: flex-start; 976 -webkit-box-align: center; 977 -ms-flex-align: center; 978 align-items: center; 979 min-height: 100vh; 980 position: relative; 981} 982/* .xndp-wrapper-html #preview_pane { 983 position: absolute; 984 top:100%; 985} */ 986.action-title h1, .action-title h2 { 987 margin-top:0; 988} 989/* xndp-ak-text */ 990.xndp-ak-text > *:first-child { 991 margin-top:0; 992} 993.xndp-ak-text > *:last-child { 994 margin-bottom:0; 995} 996.xndp-ak-text { 997 color: #58595b; 998 font-family: 'Open Sans',sans-serif; 999 font-size: 16px; 1000 line-height: 1.45; 1001} 1002.xndp-ak-text p { 1003 font-size: 16px; 1004 line-height: 1.45; 1005} 1006.xndp-ak-text a { 1007 color: #F58220; 1008} 1009.xndp-ak-text h1 { 1010 color: #F58220; 1011} 1012.xndp-ak-text blockquote { 1013 border-color: #F58220; 1014} 1015.xndp-ak-text strong, 1016.xndp-ak-text b { 1017 font-family: 'Open Sans',sans-serif; 1018 font-weight: bold; 1019} 1020 1021.xndp-ak-text em, 1022.xndp-ak-text i { 1023 font-family: 'Open Sans',sans-serif; 1024 font-style: italic; 1025} 1026 1027.xndp-ak-text h1, 1028.xndp-ak-text h2, 1029.xndp-ak-text h3, 1030.xndp-ak-text h4, 1031.xndp-ak-text h5, 1032.xndp-ak-text h6 { 1033 font-family: 'Open Sans',sans-serif; 1034 font-weight: bold; 1035} 1036 1037.xndp-ak-text h1 strong, 1038.xndp-ak-text h1 b, 1039.xndp-ak-text h2 strong, 1040.xndp-ak-text h2 b, 1041.xndp-ak-text h3 strong, 1042.xndp-ak-text h3 b, 1043.xndp-ak-text h4 strong, 1044.xndp-ak-text h4 b, 1045.xndp-ak-text h5 strong, 1046.xndp-ak-text h5 b, 1047.xndp-ak-text h6 strong, 1048.xndp-ak-text h6 b { 1049 font-family: 'Open Sans',sans-serif; 1050 font-weight: bold; 1051} 1052 1053.xndp-ak-text ul { 1054 list-style: disc outside; 1055 padding-left: 1em; 1056} 1057 1058.xndp-ak-text ol { 1059 list-style: decimal outside; 1060 padding-left: 1em; 1061} 1062 1063.xndp-ak-text blockquote { 1064 padding-left: 1.25em; 1065 border-left-width: 2px; 1066 border-left-style: solid; 1067} 1068 1069.xndp-ak-text a { 1070 text-decoration: underline; 1071} 1072 1073.xndp-ak-text p, 1074.xndp-ak-text ul, 1075.xndp-ak-text ol, 1076.xndp-ak-text li, 1077.xndp-ak-text h1, 1078.xndp-ak-text h2, 1079.xndp-ak-text h3, 1080.xndp-ak-text h4, 1081.xndp-ak-text h5, 1082.xndp-ak-text h6 { 1083 margin-top: 1em; 1084 margin-bottom: 1em; 1085} 1086.xndp-ak-text blockquote { 1087 margin-top: 1.5em; 1088 margin-bottom: 1.5em; 1089} 1090.xndp-ak-text h2, 1091.xndp-ak-text h3, 1092.xndp-ak-text h4, 1093.xndp-ak-text h5, 1094.xndp-ak-text h6 { 1095 font-size: 20px; 1096 line-height: 1.25; 1097} 1098.xndp-ak-text h1 { 1099 font-size: 22px; 1100 line-height: 1.25; 1101} 1102 1103@media (min-width: 420px) { 1104 1105 .xndp-ak-text { 1106 font-size: 18px; 1107 line-height: 1.45; 1108 } 1109 .xndp-ak-text p { 1110 font-size: 18px; 1111 line-height: 1.45; 1112 } 1113 .xndp-ak-text h2, 1114 .xndp-ak-text h3, 1115 .xndp-ak-text h4, 1116 .xndp-ak-text h5, 1117 .xndp-ak-text h6 { 1118 font-size: 22px; 1119 line-height: 1.25; 1120 } 1121 .xndp-ak-text h1 { 1122 font-size: 26px; 1123 line-height: 1.25; 1124 } 1125} 1126 1127@media (min-width: 750px) { 1128 .xndp-ak-text { 1129 font-size: 22px; 1130 line-height: 1.45; 1131 } 1132 .xndp-ak-text h2, 1133 .xndp-ak-text h3, 1134 .xndp-ak-text h4, 1135 .xndp-ak-text h5, 1136 .xndp-ak-text h6 { 1137 font-size: 25px; 1138 line-height: 1.25; 1139 } 1140 .xndp-ak-text h1 { 1141 font-size: 30px; 1142 line-height: 1.25; 1143 } 1144} 1145</style> 1146 1147<!-- ak.wysiwyg=code --> 1148 1149
1149<script nonce="7199847af64d558f3d181de59088025e"> 1150(function(crosssite){ 1151 1152 var $ = jQuery; 1153 1154 var debug = false; 1155 crosssite.debug = function() { debug = true; return debug; } 1156 1157 crosssite.postmessage = function(obj,messagetype,messagedata){ 1158 1159 if (debug) console.log("Sending message: "+messagetype); 1160 1161 // window: use obj if it has a postmessage function attached 1162 if ( 1163 typeof obj === "object" && 1164 typeof obj.postMessage === "function" 1165 ) { 1166 var target = obj; 1167 } 1168 // iframe: use obj.contentWindow if it has a postmessage function attached 1169 else if ( 1170 typeof $(obj)[0] === "object" && 1171 typeof $(obj)[0].contentWindow == "object" && 1172 typeof $(obj)[0].contentWindow.postMessage == "function" 1173 ) { 1174 var target = $(obj)[0].contentWindow; 1175 } 1176 // throw error if no target found 1177 if ( 1178 typeof target !== "object" || 1179 typeof target.postMessage !== "function" 1180 ) { 1181 throw 'No message target found'; 1182 return; 1183 } 1184 // prepare encoded message to send 1185 var encodedmessage = {}; 1186 encodedmessage[ messagetype ] = messagedata; 1187 encodedmessage = JSON.stringify(encodedmessage); 1188 // send message 1189 target.postMessage( encodedmessage ,'*'); 1190 1191 if (debug) console.log("Message sent: "+encodedmessage); 1192 1193 }; 1194 1195 crosssite.onmessage = function(messagetype,callback){ 1196 1197 if (debug) console.log("Listening for: "+messagetype); 1198 1199 $(window).on("message", function(e) { 1200 1201 var encodedmessage = e.originalEvent.data; 1202 1203 try { var messagedata = JSON.parse(encodedmessage); } 1204 catch(e) { return; } 1205 1206 if (messagedata.hasOwnProperty(messagetype)) { 1207 var typedata = messagedata[messagetype]; 1208 } else { 1209 return; 1210 } 1211 1212 if (typeof callback !== 'function') { 1213 throw "No callback function provided"; 1214 return; 1215 } 1216 1217 if (debug) console.log("Message recieved: "+encodedmessage); 1218 1219 callback(typedata); 1220 1221 }); 1222 1223 }; 1224 1225 1226})(window.crosssite = {}); 1227</script>
1227 1228
1229<script nonce="7199847af64d558f3d181de59088025e"> 1230(function(){ 1231 1232crosssite.onmessage('ndptools.fields.autofill',function(data){ 1233 if (data.firstname) $('input[name=first_name]').val(data.firstname); 1234 if (data.lastname) $('input[name=last_name]').val(data.lastname); 1235 if (data.addr1) $('input[name=address1]').val(data.addr1); 1236 if (data.addr2) $('input[name=address2]').val(data.addr2); 1237 if (data.city) $('input[name=city]').val(data.city); 1238 if (data.postalcode) $('input[name=postal]').val(data.postalcode); 1239 if (data.email) $('input[name=email]').val(data.email); 1240 if (data.phone) $('input[name=phone]').val(data.phone); 1241 if (data.amount) { 1242 $('.xndp-amount-other-holder .ak-amount-radio-button').prop('checked',true); 1243 $('input[name=amount_other]').val(data.amount); 1244 $('input[name=amount_other]').trigger('click'); 1245 $('.xndp-amount-watermark').text('$'+data.amount).show(); 1246 } 1247 if (data.custom_action_fields) { 1248 // console.log("Adding custom action fields:"); 1249 for(field_name in data.custom_action_fields) { 1250 // skip if name conflicts with another field 1251 var conflict_field = $('[name='+field_name+']').not('.custom-action-field-autofill'); 1252 if (conflict_field.length > 0) { continue; } 1253 // delete existing field if it's another custom action field 1254 var existing_custom_action_field = $('[name='+field_name+'].custom-action-field-autofill'); 1255 if (existing_custom_action_field.length > 0) { $(existing_custom_action_field).remove(); } 1256 // create new hidden custom field 1257 var new_hidden_custom_action_field = $('<input type="hidden" class="custom-action-field-autofill" />'); 1258 var input_value = data.custom_action_fields[ field_name ]; 1259 new_hidden_custom_action_field.attr('name',field_name); 1260 new_hidden_custom_action_field.val(input_value); 1261 // attaching new field to form 1262 $('form').prepend(new_hidden_custom_action_field); 1263 } 1264 } 1265}); 1266var error_watch_interval = null; 1267crosssite.onmessage('ndptools.donate.submit',function(data){ 1268 1269 console.log('Submitting...'); 1270 1271 var verify_amount = data.verify_amount; 1272 var on_page_amount = get_total_donation(); 1273 1274 if (isNaN(verify_amount)) 1275 throw "Verify amount value not found: "+verify_amount; 1276 1277 if (isNaN(on_page_amount)) 1278 throw "Could not get on page donation amount: "+on_page_amount; 1279 1280 verify_amount = parseFloat(verify_amount); 1281 on_page_amount = parseFloat(on_page_amount); 1282 1283 if (verify_amount != on_page_amount) 1284 throw "Submit amount did not verify: "+verify_amount+" vs "+on_page_amount; 1285 1286 $('form.xndp-donate-form button[type=submit]').trigger('click'); 1287 1288 clearInterval(error_watch_interval); 1289 error_watch_interval = setInterval(function(){ 1290 if (Object.keys(actionkit.errors).length > 0) { 1291 crosssite.postmessage(window.top,'actionkit.checkout.errors',actionkit.errors); 1292 clearInterval(error_watch_interval); 1293 } 1294 },100); 1295 1296}); 1297function get_total_donation() { 1298 var total = 0.0; 1299 // look for checked off donation amounts 1300 var amount_checked = $('input:radio[name=amount]:checked').val(); 1301 if (amount_checked) { 1302 total += parseFloat(amount_checked); 1303 } else { 1304 // or other amounts 1305 var other = $('#ak-other-amount-field').val(); 1306 if (typeof other !== "undefined" && 1307 other.length && /^[\d,]*(\.\d{1,2})?$/.test(other)) 1308 total += parseFloat(other.replace(',', '')); 1309 } 1310 1311 var new_total = total.toFixed(2); 1312 1313 return new_total; 1314 1315} 1316 1317})(); </script>
1317 1318
1319<script nonce="7199847af64d558f3d181de59088025e"> 1320jQuery(function($){ 1321 1322 if (window == window.top) { 1323 // console.log('Not iframed'); 1324 return; 1325 } 1326 1327 if ($('.xndp-crosssite-iframe-resize-area').length == 0) { 1328 // console.log('No resize area defined'); 1329 return; 1330 } 1331 1332 // console.log('Enabling crosssite iframe resize'); 1333 1334 var lastwidth = null; 1335 var lastheight = null; 1336 1337 $(window).resize(function(){ 1338 1339 var widthnow = $('.xndp-crosssite-iframe-resize-area').outerWidth(); 1340 var heightnow = $('.xndp-crosssite-iframe-resize-area').outerHeight(); 1341 1342 if (widthnow != lastwidth || heightnow != lastheight) { 1343 1344 var messagedata = { 1345 width : widthnow, 1346 height : heightnow 1347 }; 1348 1349 crosssite.postmessage(window.top,'actionkit.content.resize',messagedata); 1350 1351 lastwidth = widthnow; 1352 lastheight = heightnow; 1353 } 1354 }); 1355 1356 setTimeout(function(){ 1357 $(window).trigger('resize'); 1358 }) 1359 1360}); 1361 </script>
1361 1362 1363 1364 1365 1366 1367 1368 1369</head> 1370<body class="ak-pagetype-donate ak-lang-unknown ak-no-js "> 1371 1372 1373 1374
1374<script nonce="7199847af64d558f3d181de59088025e" type="text/javascript"> 1375 actionkit.forms.initPage() 1376 </script>
1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391<div class="block--wrapper-captive align-left 1392"> 1393 1394 1395 1396 1397 1398 1399<div class="block--header-captive"> 1400 <div class="bars-basic-top"> 1401 <div class="top-header-wordmark"></div> 1402 </div> 1403</div> 1404 1405<style> 1406 .block--header-captive { 1407 position: relative; 1408 display: -webkit-box; 1409 display: -ms-flexbox; 1410 display: flex; 1411 -webkit-box-orient: vertical; 1412 -webkit-box-direction: normal; 1413 -ms-flex-direction: column; 1414 flex-direction: column; 1415 width:100%; 1416 } 1417 .block--header-captive .bars-basic-top { 1418 position: relative; 1419 height: 45px; 1420 padding: 5px; 1421 background: #FF9900; 1422 border-bottom:5px solid #FFF; 1423 z-index: 9; 1424 } 1425 .block--header-captive .top-header-wordmark { 1426 height: 100%; 1427 background: transparent; 1428 background-image:url("https://s3.amazonaws.com/s3-ak-nsndp/images/NSNDP-logo_white.png"); 1429 background-size: contain; 1430 background-repeat: no-repeat; 1431 background-position: center; 1432 } 1433 @media (min-width: 750px) { 1434 .block--header-captive .bars-basic-top { 1435 height: 75px; 1436 padding: 10px; 1437 } 1438 } 1439</style> 1440 1441 1442 1443 1444 <div class="bars-basic-wrapped-content"> 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490
1491<script nonce="7199847af64d558f3d181de59088025e"> 1492jQuery(function($){ 1493 1494 // amount button elements 1495 var amount_buttons = []; 1496 var index = 1; 1497 var custom_donation_button = $('.xndp-amount-wrapper .xndp-amount-item-0'); 1498 if (custom_donation_button.length >= 1) 1499 { 1500 amount_buttons.push(custom_donation_button); 1501 } 1502 do { 1503 var button = $('.xndp-amount-wrapper .xndp-amount-item-'+index); 1504 if (button.length < 1) break; 1505 amount_buttons.push(button); 1506 } while(index++); 1507 1508 // one time gift spread 1509 var default_spread = []; 1510 for(i in amount_buttons) { 1511 default_spread[i] = parseFloat($(amount_buttons[i]).find('input').val()); 1512 } 1513 var default_ask = default_spread[0]; 1514 var default_ask_top = default_spread[ default_spread.length-1 ]; 1515 var default_ask_interval = (default_ask_top-default_ask) / default_spread.length; 1516 1517 // recurring spread 1518 var max = parseFloat("1725"); 1519 if (max) { 1520 if (default_ask_top < max / 12.0) { 1521 var default_recurring_spread = default_spread; 1522 } 1523 } 1524 if (!default_recurring_spread) { 1525 var default_recurring_ask = nearestfive(default_ask / 12.0); 1526 var default_recurring_ask_interval = default_ask_interval / 12.0; 1527 var default_recurring_spread = []; 1528 for(i in amount_buttons) { 1529 default_recurring_spread[i] = nearestfive( default_recurring_ask + (default_recurring_ask_interval*i) ); 1530 } 1531 } 1532 1533 console.log(default_spread); 1534 console.log(default_recurring_spread); 1535 1536 update_spread(); 1537 1538 $('form input[name=donation_type]').on('click change blur',function(){ 1539 update_spread(); 1540 }); 1541 1542 $(window).on('update-spread',function(){ 1543 update_spread(); 1544 }); 1545 1546 // helper functions 1547 function update_spread() { 1548 1549 // get amount spread 1550 var spread = calculate_spread(); 1551 1552 console.log(spread); 1553 1554 if (spread) for(i in [0,1,2,3,4,5,6]) { 1555 update_amount_button( amount_buttons[i], spread[i] ); 1556 } 1557 1558 // reclick select amount to trigger recalculations 1559 $('.ak-radio-checked input').trigger('click'); 1560 1561 } 1562 function getask() { 1563 if (window.ask) { 1564 return window.ask; 1565 } else { 1566 return getparam('ask'); 1567 } 1568 } 1569 function calculate_spread() { 1570 1571 var ask = parseFloat(getask()); 1572 var ytd = parseFloat(getparam('ytd')); 1573 var max = parseFloat("1725"); 1574 var recurring = detect_is_monthly(); 1575 1576 var use_ask = !isNaN(ask) && (ask!=null); 1577 var use_ytd = !isNaN(ytd) && (ytd!=null); 1578 var use_max = !isNaN(max) && (max!=null); 1579 1580 // console.log("ask: "+ask+" ytd: "+ytd+" max: "+max); 1581 1582 // return if no ask passed 1583 1584 if (!use_ask) { 1585 if (recurring) { return default_recurring_spread; } 1586 else { return default_spread; } 1587 }; 1588 1589 // continue if ask was passed 1590 1591 if (!use_max) { 1592 1593 // no max value set 1594 var ask_interval = ask; 1595 ask_interval = Math.max(ask_interval,5); 1596 var use_max_as_last_button = true; 1597 1598 } else { 1599 1600 // max value set 1601 1602 if (!use_ytd) { 1603 // max value set, no ytd set 1604 var max_allowed = max; 1605 } else { 1606 // max value and ytd set 1607 var max_allowed = max - ytd; 1608 } 1609 1610 if ((ask * 7.0) <= max_allowed) { 1611 // simple multiples -- largest amount is less than max 1612 var ask_interval = ask; 1613 ask_interval = Math.max(ask_interval,5); 1614 var use_max_as_last_button = false; 1615 } else { 1616 // equally divided remaining contribution room -- largest amount would be greater than max 1617 var ask_interval = parseFloat(((max_allowed - ask) / 7.0).toFixed(0)); 1618 ask_interval = Math.max(ask_interval,5); 1619 var use_max_as_last_button = true; 1620 } 1621 1622 } 1623 1624 if (recurring) { 1625 ask = parseFloat(ask) / 12.0; 1626 ask = Math.max(ask,5); 1627 ask = nearestfive(ask); 1628 ask_interval = parseFloat(ask_interval) / 12.0; 1629 ask_interval = Math.max(ask_interval,5); 1630 if (use_max) { 1631 max_allowed = parseFloat(max_allowed) / 12.0; 1632 max_starting_ask = max_allowed - (ask_interval*6.0); 1633 ask = Math.min(ask,max_starting_ask); 1634 } 1635 } 1636 1637 // amount button spread 1638 var amount_button_values = [ 1639 parseFloat(ask).toFixed(0), 1640 (ask + (ask_interval * 1.0)).toFixed(0), 1641 nearestfive(ask + (ask_interval * 2.0)), 1642 nearestfive(ask + (ask_interval * 3.0)), 1643 nearestfive(ask + (ask_interval * 4.0)), 1644 nearestfive(ask + (ask_interval * 5.0)), 1645 use_max_as_last_button ? max_allowed : nearestfive(ask + (ask_interval * 6.0)) 1646 ]; 1647 1648 return amount_button_values; 1649 } 1650 function detect_is_monthly() { 1651 var donation_type = $('form input[name=donation_type]:checked').val(); 1652 return (donation_type=='recurring'); 1653 } 1654 function update_amount_button(obj,new_amount) { 1655 var new_id = 'id_amount_'+new_amount; 1656 var new_value = parseFloat(new_amount); 1657 $(obj).find('label').attr('for',new_id); 1658 $(obj).find('input').attr('id',new_id); 1659 $(obj).find('input').val(new_value); 1660 $(obj).find('.xndp-amount-num').text(new_value); 1661 } 1662 function getparam(getkey) { 1663 var result = {}; 1664 var items = location.search.substr(1).split("&"); 1665 for (var index = 0; index < items.length; index++) { 1666 var eqbroken = items[index].split("="); 1667 var k = eqbroken[0]; 1668 var v = decodeURIComponent(eqbroken[1]); 1669 result[k] = v; 1670 } 1671 return typeof(result[getkey])!='undefined' ? result[getkey] : null; 1672 } 1673 function nearestfive(amount) { 1674 return Math.ceil( amount / 5.0 ) * 5.0; 1675 } 1676 1677}); 1678</script>
1678 1679 1680<!-- ak.wysiwyg=code --> 1681 1682 1683 1684 1685<div class="max-reached-notice" style="display:none"> 1686 <nobr> 1687 <span class="message">MAXIMUM AMOUNT IS </span><span class="symbol">$</span><span class="amount"></span> 1688 </nobr> 1689</div> 1690 1691<style> 1692.max-reached-notice { 1693 margin-right: 0; 1694 width: 100%; 1695 color: #c41134; 1696 background: #FFFFFF; 1697 border: 3px solid #c41134; 1698 line-height: 1.0; 1699 text-align: center; 1700 border-radius: 10px; 1701 padding: 13px; 1702 display: block; 1703 font-weight: bold; 1704 font-size: 18px; 1705 line-height: 1.0; 1706 margin-top: 20px; 1707} 1708.max-reached-notice { 1709 top: 0; 1710 right: 0; 1711 visibility: visible; 1712 z-index: 999; 1713} 1714.max-reached-notice:before { 1715 border-right: 14px solid #c41134; 1716} 1717.max-reached-notice .symbol { 1718 color: #c41134; 1719} 1720.max-reached-notice .amount { 1721 color: #c41134; 1722} 1723.max-error-hide { 1724 display:none !important; 1725} 1726</style> 1727
1728<script nonce="7199847af64d558f3d181de59088025e"> 1729jQuery(function($){ 1730 1731 var notice_obj = $('.max-reached-notice').detach(); 1732 1733 $(notice_obj).insertAfter("#ak-continue-button"); 1734 1735 $('.ak-amount-radio-button').on('change blur click', function(){ 1736 recheck_if_donation_is_within_limit(); 1737 }) 1738 $('#ak-other-amount-field').on('change blur click keyup', function(){ 1739 recheck_if_donation_is_within_limit(); 1740 }); 1741 $('form input[name=donation_type]').on('click change blur',function(){ 1742 recheck_if_donation_is_within_limit(); 1743 }); 1744 recheck_if_donation_is_within_limit(); 1745 1746 function recheck_if_donation_is_within_limit() { 1747 1748 var ytd = parseFloat(getparam('ytd')); 1749 var max = parseFloat("1725"); 1750 var recurring = detect_is_monthly(); 1751 1752 var use_ytd = !isNaN(ytd) && (ytd!=null); 1753 var use_max = !isNaN(max) && (max!=null); 1754 1755 // return if no ask passed 1756 1757 if (!use_max) return; 1758 1759 // continue if ask was passed 1760 1761 if (!use_ytd) { 1762 // max value set, no ytd set 1763 var max_allowed = parseFloat(max); 1764 } else { 1765 // max value and ytd set 1766 var max_allowed = parseFloat(max - ytd); 1767 } 1768 1769 if (recurring) { 1770 max_allowed = parseFloat(max_allowed) / 12.0; 1771 } 1772 1773 $('.max-reached-notice .amount').text(max_allowed.toFixed(0)); 1774 1775 var current_total = parseFloat( get_total_donation() ); 1776 var is_allowed = (current_total <= max_allowed); 1777 if (is_allowed) { 1778 set_donation_is_allowed(); 1779 } else { 1780 set_donation_not_allowed(); 1781 } 1782 1783 } 1784 function set_donation_is_allowed() { 1785 console.log("DONATION IS ALLOWED"); 1786 $('#ak-continue-button').removeClass("max-error-hide"); 1787 $('.ak-submit-button').removeClass("max-error-hide"); 1788 $(notice_obj).hide(); 1789 } 1790 function set_donation_not_allowed() { 1791 console.log("DONATION NOT ALLOWED"); 1792 $('#ak-continue-button').addClass("max-error-hide"); 1793 $('.ak-submit-button').addClass("max-error-hide"); 1794 $(notice_obj).show(); 1795 } 1796 function get_total_donation() { 1797 var total = 0.0; 1798 // look for checked off donation amounts 1799 var amount_checked = $('input:radio[name=amount]:checked').val(); 1800 if (amount_checked) { 1801 total += parseFloat(amount_checked); 1802 } else { 1803 // or other amounts 1804 var other = $('#ak-other-amount-field').val(); 1805 if (typeof other !== "undefined" && 1806 other.length && /^[\d,]*(\.\d{1,2})?$/.test(other)) 1807 total += parseFloat(other.replace(',', '')); 1808 } 1809 1810 var new_total = total.toFixed(2); 1811 1812 return new_total; 1813 1814 } 1815 function detect_is_monthly() { 1816 var donation_type = $('form input[name=donation_type]:checked').val(); 1817 return (donation_type=='recurring'); 1818 } 1819 function getparam(getkey) { 1820 var result = {}; 1821 var items = location.search.substr(1).split("&"); 1822 for (var index = 0; index < items.length; index++) { 1823 var eqbroken = items[index].split("="); 1824 var k = eqbroken[0]; 1825 var v = decodeURIComponent(eqbroken[1]); 1826 result[k] = v; 1827 } 1828 return typeof(result[getkey])!='undefined' ? result[getkey] : null; 1829 } 1830 1831}); 1832</script>
1832 1833 1834<!-- ak.wysiwyg=code --> 1835 1836
1837<script nonce="7199847af64d558f3d181de59088025e"> 1838jQuery(function($){ 1839 1840 // get regular phone field 1841 var user_phone_field = $('form input[name=phone]'); 1842 // if no phone field found, log it 1843 if ($(user_phone_field).length==0) { console.log("No phone field found"); } 1844 // get form that holds form field 1845 var user_phone_field_form = $(user_phone_field).parents('form'); 1846 // add hidden action_phone field to end of form 1847 $(user_phone_field_form).append('<input type="hidden" name="action_phone" />'); 1848 // get action phone field 1849 var action_phone_field = $(user_phone_field_form).find('input[name=action_phone]'); 1850 // on change, blur, paste - copy phone to action_phone 1851 $(user_phone_field).on('change blur paste',function(){ 1852 var phone_value = $(user_phone_field).val(); 1853 $(action_phone_field).val( phone_value ); 1854 }); 1855 1856}); 1857</script>
1857 1858 1859 1860<!-- ak.wysiwyg=code --> 1861
1862<script nonce="7199847af64d558f3d181de59088025e"> 1863jQuery(function($){ 1864 1865 1866 $('form input[name=donation_type]').on('click change blur',function(){ 1867 update_page(); 1868 }); 1869 update_page(); 1870 1871 function update_page() { 1872 if (detect_is_monthly()) { 1873 apply_page_tweaks(); 1874 } else { 1875 remove_page_tweaks(); 1876 } 1877 } 1878 function apply_page_tweaks() { 1879 $('.xndp-recurring-show').show(); 1880 } 1881 function remove_page_tweaks() { 1882 $('.xndp-recurring-show').hide(); 1883 } 1884 function detect_is_monthly() { 1885 var donation_type = $('form input[name=donation_type]:checked').val(); 1886 return (donation_type=='recurring'); 1887 } 1888 1889}); 1890</script>
1890 1891 1892<!-- ak.wysiwyg=code --> 1893 1894 1895 1896
1897<script nonce="7199847af64d558f3d181de59088025e"> 1898jQuery(function($){ 1899 1900 update_recurring(); 1901 1902 function update_recurring() { 1903 1904 var param_recurring = getparam('recurring'); 1905 console.log("recurring: "+param_recurring); 1906 1907 1908 var recurring_default_field = false; 1909 1910 1911 if (param_recurring || recurring_default_field) { 1912 setTimeout(function(){ 1913 console.log("setting recurring"); 1914 $('#id_donation_type_recurring').trigger('click'); 1915 }) 1916 } 1917 1918 } 1919 function getparam(getkey) { 1920 var result = {}; 1921 var items = location.search.substr(1).split("&"); 1922 for (var index = 0; index < items.length; index++) { 1923 var eqbroken = items[index].split("="); 1924 var k = eqbroken[0]; 1925 var v = decodeURIComponent(eqbroken[1]); 1926 result[k] = v; 1927 } 1928 return typeof(result[getkey])!='undefined' ? result[getkey] : null; 1929 } 1930 1931}); 1932</script>
1932 1933 1934 1935 1936
1937<script nonce="7199847af64d558f3d181de59088025e"> 1938jQuery(function($){ 1939 1940 var errors = geterrors(); 1941 if (errors.length > 0) { 1942 1943 console.log("Processing error:"); 1944 console.log(errors); 1945 1946 1947 1948 $('.xndp-page-donate-error').show(); 1949 $('.xndp-page-donate').css({ 'visibility':'hidden','position':'absolute' }); 1950 setTimeout(function(){ 1951 $('.xndp-page-donate').hide(); 1952 },1000); 1953 1954 1955 var firstname = getparam("first_name"); 1956 var lastname = getparam("last_name"); 1957 var email = getparam("email"); 1958 var address1 = getparam("address1"); 1959 var address2 = getparam("address2"); 1960 var city = getparam("city"); 1961 var region = getparam("region"); 1962 var postalcode = getparam("postal"); 1963 var phone = getparam("phone"); 1964 1965 $('.xndp-page-donate-error .firstname').text(firstname); 1966 $('.xndp-page-donate-error .lastsname').text(lastname); 1967 $('.xndp-page-donate-error .email').text(email); 1968 $('.xndp-page-donate-error .phone').text(phone); 1969 $('.xndp-page-donate-error .address1').text(address1); 1970 $('.xndp-page-donate-error .address2').text(address2); 1971 $('.xndp-page-donate-error .postal').text(postalcode); 1972 $('.xndp-page-donate-error .city').text(city); 1973 $('.xndp-page-donate-error .region').text(region); 1974 1975 $('.xndp-js-return-to-step-2').on('click',function(ev){ 1976 ev.preventDefault(); 1977 $('#ak-donate-step-2').click(); 1978 $('.xndp-page-donate-error').hide(); 1979 $('.xndp-page-donate').show(); 1980 $('.xndp-page-donate').css({ 'visibility':'','position':'' }); 1981 }); 1982 $('.xndp-js-return-to-step-3').on('click',function(ev){ 1983 ev.preventDefault(); 1984 $('#ak-donate-step-3').click(); 1985 $('.xndp-page-donate-error').hide(); 1986 $('.xndp-page-donate').show(); 1987 $('.xndp-page-donate').css({ 'visibility':'','position':'' }); 1988 }); 1989 } 1990 1991 function geterrors() { 1992 var params = getparams(); 1993 var errors = []; 1994 for(key in params) { 1995 if ( key=="error_card_num" || key.match(/^error_card_num\:/) ) 1996 errors.push({ key:key, value:params[key] }); 1997 } 1998 return errors; 1999 2000 } 2001 function getparam(getkey) { 2002 var result = {}; 2003 var items = location.search.substr(1).split("&"); 2004 for (var index = 0; index < items.length; index++) { 2005 var eqbroken = items[index].split("="); 2006 var k = decodeURIComponent(eqbroken[0]); 2007 var v = decodeURIComponent(eqbroken[1]); 2008 result[k] = v; 2009 } 2010 return typeof(result[getkey])!='undefined' ? result[getkey] : null; 2011 } 2012 function getparams() { 2013 var result = {}; 2014 var items = location.search.substr(1).split("&"); 2015 for (var index = 0; index < items.length; index++) { 2016 var eqbroken = items[index].split("="); 2017 var k = decodeURIComponent(eqbroken[0]); 2018 var v = decodeURIComponent(eqbroken[1]); 2019 result[k] = v; 2020 } 2021 return result; 2022 } 2023 2024 2025}); 2026</script>
2026 2027 2028<!-- ak.wysiwyg=code --> 2029 2030 2031 2032 2033<template class="xndp-feature-amount-labels" style="display:none" id="xndp-feature-amount-labels"> 2034 2035</template> 2036 2037<style type="text/css"> 2038.xndp-amount-label { 2039 position: relative; 2040 width: 100%; 2041 color: #585858; 2042 font-weight: 400; 2043 line-height: 1; 2044 font-size: 14px; 2045 display:block; 2046 text-align:center; 2047 height: 17px; 2048} 2049</style> 2050
2051<script nonce="7199847af64d558f3d181de59088025e"> 2052jQuery(function($){ 2053 2054 var template = $("#xndp-feature-amount-labels").html().trim(); 2055 var lines = template.split("\n"); 2056 var labels = {}; 2057 for(index in lines) { 2058 var line = lines[index]; 2059 var keyvaluepair = line.split(":"); 2060 if (keyvaluepair.length!=2) continue; 2061 var key = (keyvaluepair[0]+"").trim(); 2062 if (key=="") continue; 2063 var value = (keyvaluepair[1]+"").trim(); 2064 if (value=="") continue; 2065 labels[key] = value; 2066 } 2067 console.log(labels); 2068 for(amount in labels) { 2069 var label = labels[amount]; 2070 var id = "#id_amount_"+amount; 2071 var label_span = '<span class="xndp-amount-label">'+label+'</span>'; 2072 $(id).parents('li').prepend(label_span); 2073 } 2074 2075}); 2076</script>
2076 2077 2078 2079 2080<template style="display:none" id="xndp-feature-constit-select-list-options"> 2081 2082</template> 2083<template style="display:none" id="xndp-feature-constit-select-list"> 2084 <select class="xndp-feature-constit-select-input"> 2085 </select> 2086</template> 2087 2088<style type="text/css"> 2089.xndp-feature-constit-select-input { 2090 margin:15px 0; 2091 max-width:100%; 2092} 2093</style> 2094
2095<script nonce="7199847af64d558f3d181de59088025e"> 2096jQuery(function($){ 2097 2098 var select_html = $("#xndp-feature-constit-select-list").html().trim(); 2099 var select_obj = $(select_html); 2100 var template = $("#xndp-feature-constit-select-list-options").html().trim(); 2101 if (template=="") return; 2102 var lines = template.split("\n"); 2103 var options = {}; 2104 for(index in lines) { 2105 var line = lines[index]; 2106 var keyvaluepair = line.split(":"); 2107 //if (keyvaluepair.length!=2) continue; 2108 var key = (""+keyvaluepair[0]).trim(); 2109 if (key=="") continue; 2110 var value = (""+keyvaluepair[1]).trim(); 2111 if (value=="") continue; 2112 options[key] = value; 2113 2114 } 2115 2116 for(value in options) { 2117 var label = options[value]; 2118 if (label=="undefined") { label = value; value = ""; } 2119 var option_tag = '<option value="'+value+'">'+label+'</option>'; 2120 $(select_obj).append( option_tag ); 2121 } 2122 2123 $('.xndp-donate-header').append( select_obj ); 2124 2125 $(select_obj).change(function(ev){ 2126 ev.preventDefault(); 2127 var value = $(select_obj).val(); 2128 if (value.trim()=='') return; 2129 window.location.href='/donate/'+value; 2130 }) 2131 2132 2133}); 2134</script>
2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156<template style="display:none" id="xndp-feature-recurring-checkbox"> 2157 <div class="xndp-recurring-checkbox ak-donate-area-step-1 xndp-checkout-hide"> 2158 <div class="onetime_monthly-holder checkbox-holder validate-holder qd-hide"><!-- 2159 --><label class="onetime_monthly-beforefield-label checkbox-beforefield-label" for="onetime_monthly-input"></label><!-- 2160 --><div class="onetime_monthly-input-holder checkbox-input-holder"><!-- 2161 --><input class="onetime_monthly-input checkbox-input" id="onetime_monthly-input" type="checkbox" name="onetime_monthly" value="1"><!-- 2162 --><label class="onetime_monthly-box-label checkbox-box-label" for="onetime_monthly-input"></label><!-- 2163 --><span class="onetime_monthly-status checkbox-status validate-status" style="cursor: pointer;"><span class="onetime_monthly-status-message checkbox-status-message validate-status-message"></span><!-- 2164 --></span></div><!-- 2165 --><label class="onetime_monthly-afterfield-label checkbox-afterfield-label" for="onetime_monthly-input">Please make this a monthly recurring donation. 2166</label><!-- 2167 --></div> 2168 </div> 2169</template> 2170 2171<style type="text/css"> 2172 .xndp-recurring-checkbox { 2173 text-align:left; 2174 padding-top:15px; 2175 } 2176 .xndp-recurring-checkbox label > *:first-child { 2177 margin-top:0; 2178 } 2179 .xndp-recurring-checkbox label > *:last-child { 2180 margin-bottom:0; 2181 } 2182 .xndp-recurring-checkbox .checkbox-holder { 2183 display:flex; 2184 } 2185 .xndp-recurring-checkbox .checkbox-input { 2186 opacity:0; 2187 position: absolute; 2188 } 2189 .xndp-recurring-checkbox .checkbox-input-holder { 2190 display:block; 2191 } 2192 .xndp-recurring-checkbox .checkbox-box-label { 2193 display:flex; 2194 vertical-align:top; 2195 background:#fff; 2196 background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFQAAABICAYAAABof9IhAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplZTU1MzJhNC0zMzNjLTQ2N2MtYWJhNi0wNTc3MDdhNWZkY2UiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTdDOTg0RDA0Njc1MTFFNDhCRUI4QjhFMURGRjRDRDEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTdDOTg0Q0Y0Njc1MTFFNDhCRUI4QjhFMURGRjRDRDEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YWQ5Njk1NWQtZWYyMi00NjBlLWI4NzMtYWY5ZTcwYTUxNjg2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmVlNTUzMmE0LTMzM2MtNDY3Yy1hYmE2LTA1NzcwN2E1ZmRjZSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnyiIDkAAAHUSURBVHja7NwxTgJBFMbxYdWWRqg
2196whkrlAnCCPQRooiZYeA1NvIKFJGqMewlOABfAkhi3oqMlgm90ig1Rsdi3Msz/S15CgDD7fjvLTjNbWiwWhuSXEqCAAgooARRQQMmfQNvtk+X3mlJdqViqJrXjeY8zqVSqL9WTGmY/TJKnXAeLMq/LUs9SA6kLqfoGYBrXQ931NHA9lrUGizKY9gx2ArgqO67XsiborbvUQ0nT9awC2gxkZn43U5saoN2Ab8pdDdA4YNBYA7QWMGjuvW+vWhrt79XM2fmpqVarXklNJhPzcP9oXt/SVUuq3EF/jcU8ajS8m3q7lcrnsV9d3xQ6brTqC77NzGwODg8KHzMyG5wo2gLU+5MIAaCAAkoABRRQAiiggBJAAQUUUAIooIASQAEFlAAKKKAEUEABBZQACiigBFBAASWAAgooARRQQAElgHoGanf1+pqX0Wj9QO0WaXtg8/m7d5j22IuO3d5tn2v0475xu9+86C3SBWamMUPTgP/yUg3QfsCgfQ3QXsCgPQ1Q+yy4JEDMxCw9By/Pu/ylxo+vcYauZ7Vl09R8PcMoCWRmxq5n1XWoHeBYqiV1JzXWWFb809Jo7HpquR6nWoN9CDAAOW1l830US8sAAAAASUVORK5CYII=); 2197 background-repeat: no-repeat; 2198 background-size: contain; 2199 position:relative; 2200 width:24px; 2201 height:24px; 2202 cursor: pointer; 2203 } 2204 .xndp-recurring-checkbox .checkbox-input:checked + .checkbox-box-label { 2205 background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFQAAABICAYAAABof9IhAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplZTU1MzJhNC0zMzNjLTQ2N2MtYWJhNi0wNTc3MDdhNWZkY2UiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkE5MEVFQjk0NzFFMTFFNDkwNjBGOUVFOTExMzQxNTIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkE5MEVFQjg0NzFFMTFFNDkwNjBGOUVFOTExMzQxNTIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YWQ5Njk1NWQtZWYyMi00NjBlLWI4NzMtYWY5ZTcwYTUxNjg2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmVlNTUzMmE0LTMzM2MtNDY3Yy1hYmE2LTA1NzcwN2E1ZmRjZSIvPiA8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); 2206 background-repeat: no-repeat; 2207 background-size: contain; 2208 } 2209 .xndp-recurring-checkbox .checkbox-input:focus + .checkbox-box-label { 2210 background:url(data:image/png;base64,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GYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZWU1NTMyYTQtMzMzYy00NjdjLWFiYTYtMDU3NzA3YTVmZGNlIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjNGRDZERDA4QkFDRjExRTRCNzVGQ0YzNDQ4Q0NFRjYxIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjNGRDZERDA3QkFDRjExRTRCNzVGQ0YzNDQ4Q0NFRjYxIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE3Qzk4NENGNDY3NTExRTQ4QkVCOEI4RTFERkY0Q0QxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE3Qzk4NEQwNDY3NTExRTQ4QkVCOEI4RTFERkY0Q0QxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9ERbxQAAAcRJREFUeNrs3LFOwkAcx/EDZXHoIp1IkAnlBeoTdHB1hBUHn8HVd3CAVUZXhz4BvACMxISpm4mJSSP4v3gDISZ06B857/tL/gsQ6P/TK70Od7XNZmNIdalDACiggBJAAQWUlEnt4/Fi97VEaiiVSrWkGp73WEitpDKpsdRs+82zh6XaCI2knqWmUndSnX+AaVwPHdfT1PUYaV/ykTuD/QCuyr7rNdIEfXKXeihJXM8qoEkgI/O3kZpogA4DvikPNUDTgEFTDdBWwKCV935aZmr0dvtq4jj2SirPc9N+uSkzpaocdC/mVa/n3dA7bzbNQo69BOphHz19G5nb6V52eZavtLn6CaDen0QIAAUUUAIooIASQAEFlAAKKKCAEkABBZQACiigBFBAASWAAgoooARQQAElgAIKKAEUUEAJoIACCigB1DNQu6rX1yzm8+MDtat57YGt11/eYR56JbKNXd5t9zVq7EP99Gx0tst9rNAYoauA//JWGqBZwKCZBug4YNCxBqjdC24SIObE7OyDV+Vd/l7jy484M9ez2rTp3fzsYTQJZGSmrmfVeaj9gYHUtdRIaqkxrfiDFK6XkettoIVp8y3AACk/S4SaI7YNAAAAAElFTkSuQmCC); 2211 background-repeat: no-repeat; 2212 background-size: contain; 2213 } 2214 .xndp-recurring-checkbox .checkbox-input:focus:checked + .checkbox-box-label { 2215 background:url(data:image/png;base64,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GYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZWU1NTMyYTQtMzMzYy00NjdjLWFiYTYtMDU3NzA3YTVmZGNlIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjNGRDZERDA0QkFDRjExRTRCNzVGQ0YzNDQ4Q0NFRjYxIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjNGRDZERDAzQkFDRjExRTRCNzVGQ0YzNDQ4Q0NFRjYxIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJBOTBFRUI4NDcxRTExRTQ5MDYwRjlFRTkxMTM0MTUyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBOTBFRUI5NDcxRTExRTQ5MDYwRjlFRTkxMTM0MTUyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+TmtTsQAABsNJREFUeNrsnH1QFHUYx5897oQ7DQuhJAtII0FrpJzRnMTMl6wwdRwcE7VMkaQmc1LHpv6x0mwaJnPGxBQ1R0HUfIMmR/E1fMNofOVEp0ZGxTQq34C9vb3b7dllzzmYw9vbt2N37zvzcHD7wv0+9zzP73n2fnsEy7IQUYuaF6e0t8mKthNtHlqt/wbHZ3WtdrREMAaFSQgws9AuoC0QnguoCNDgWi7A9OlrtHLBayNAQ9RctPc
2215DPM8BPoFmiwAVr3FoBQ/Y3h/tLKaKVlCJyKQUMH++gPa7yMN/RXsFJycm4qEBRHptT+LDbyEcMgTth0jIB9BlMi7OHkU7JXDJRS8fz4d806LkthsHcDugjUTrESjx6kw0Wj1aBVoRhubJQOHubHrM3qfzTa4sSpbxv+L934lYtGK0KrSZaCkGgAnCGFKEMVUhwGK0WP8dztxLtCLMAzJhctro89BY4R0cYJLo5rx0WG5NZlNR30quSN+ENlHmOT1oqT4PLTQRTMC6JgkfooU/lygFE9NJnVUAmWMimG6WJbJnOgf/h96ZK7SSisD0zfK5JoIJCPPDPOfgo4V9jnGT7molYfqAjjQLUGL0d2cQ5qrv04/3tRHevUrD9AHtYQaY9LAvTzn6jeu3LO1E92iL57QSMNHq2m6wiimNrozfDQkJCboC2NDQAEnbX+d/bxq0oCph0NSBDHkbOkfRNdDOlSK5MEHMiTmYaenpuvPIbvHxUIuv3X5pV2XysPxMxt0M7rVjuE1xasEUBVRvnumv3mlp+4j09BHAeMBT+i4wt6+AmjCN3sufIghiOJ8/y+eD52qV3POlBYMJMnNJR9fz3A/voW+APr9D7rmeRftTzI6GvtrEnCkF6ugKJWDWiN3ZsEDZuiPg+vkTTWEaF2jDRSCLp2gO05hAG28A2VIeaQ7TeECpe+Ba8yawHiosMI0F1EsBtX4CMI0NYYNpHKAMA+7N74G3oTasMA0D1LP7U/BcPhR2mIYA6j22HNynSzsETN0DZZ1lQB0sUARm21V0pgPKXqsGcsdsWTBzazIVhalfoLcug2vDRCVgEkrCVAcozrhM9TrwHvhKHZjN/wJZlAUs45UNs6hvZU//DUrAVfZqk+sOUJumgff6Kf5Pe0IqEM9NUO787uaWwh0fpcgxfRfkzC3wweRcnFuT1FVJBFYlw5BcOxZY1937T5Fl88ERnwqQmKGA53uA2pgDzN3rkmFCYj/3t72rOsda3UuhZSWJ4lIm5G+cB3LliFYw70Ndn83313LTCL19Nnj/Oi0LpvvS/jkI88SDYMoNe/lA/3ZC85rR7eY01uvBMB3Lh6vkWnP/IqAv/iLpWPvUTRxMijq8tNCzdUaBUCqpJnlA71wDEnNaUAdrvAnukrd5TwvZOXGCo06ulQZzSjEQSYMoV9m8494jyz7iHFDtAkQ6UKqxZYIQOdt66qv5FjGkWvOPfeDa87l0mMkvuamtef8w534aGlKKkBH2koG6t+QBQ94K7RhsEZnqH8Xn5c25cmBy4UB4L+3VdCGHJKDM2S3guXJMWmW1ZyGwwY69dx3IdWPlwPSNTfP1raEDxcmFkvlZjWvjFMy/V9utZclVr0kq3P1gypbUsA8daCcHxGQXyuvDWQbz7xj+Cnsr0SS42tSy4YCpecgTz4wC+7Rt8kpLzL/Uhhy+YPcV7u7S6cDcqtMtTFmTEtGjPzjy9wNhjZZeX948B/Suj3mYdPkCzMvHdQ1Tfh0a1wvsHxwGi0P6+ivaWQauFUOBPr+tw8GUkkfld0pdukNM/kGwPJwkPfyxQdC7Zyrby8d0hZi8PWB9vL8mL7qjwlQOKCebHTq9sxlsqa8aCmaoYa/sBWaLFWzZK6FTxiTTeaY6QPkzWsCatQSih8wxHUx1gAqKypwDMVmLDQEzlLBX9UM6S8ZksL+1xhSeqQlQvgHoNRwc03cCYYkKHeak9bqCqQlQXokZYJ+1L6Suyp69AoieL3cYUGLDXrvP5R95CruqSrB0SRAHs/cboEdpu9Chy6MQM+sARHV72pAwtQfKKfohiJ5RDtYnBhgOZniA+rqqqSVg84OnB5hi8mj47lPiuqrxy4GoWAhRKS/q3jPDD9TXVY36AoykoEC5u3q5G1H1qNoLFyBJ47APmkO5W6S5F8ZIX+0WPpjC7d1aeyj3vUa2YFBdOvNOkZ5JqzHL14N5Va8G0AoTA61QA2iRiYEWqQGU+5atEhPCLBHGrkqnlK/GyTuwTgpjVq315Na+jDSJp5YIY72rJlAf1MloA6HlG7fq1CgrwiBaGMtqYWyT1YLJ6X8BBgDMdG9+ZdMrTwAAAABJRU5ErkJggg==); 2216 background-repeat: no-repeat; 2217 background-size: contain; 2218 } 2219 .xndp-recurring-checkbox .checkbox-afterfield-label { 2220 color:#58595b; 2221 font-size: 16px; line-height: 1.4; 2222 font-family: sans-serif; font-weight: normal; 2223 display: inline-block; 2224 margin-left:8px; 2225 xmax-width:calc(100% - 50px); 2226 vertical-align: top; 2227 cursor: pointer; 2228 } 2229 .xndp-recurring-checkbox .checkbox-status { 2230 display:none; 2231 } 2232 .xndp-recurring-checkbox .checkbox-status-message { 2233 display:none; 2234 } 2235 .xndp-recurring-checkbox .checkbox-holder.validate-error .checkbox-beforefield-label { 2236 color:#c41134; 2237 } 2238 .xndp-recurring-checkbox .checkbox-holder.validate-error .checkbox-status { 2239 display:block; 2240 } 2241 .xndp-recurring-checkbox .checkbox-holder.validate-error .checkbox-status:before { 2242 border:1px solid #c41134; 2243 display:block; 2244 color:#c41134; 2245 font-family:verdana,sans-serif; 2246 font-size:20px; 2247 line-height:1.2; 2248 position:absolute; 2249 right:0px; 2250 top:0px; 2251 padding:4px 10px; 2252 content:"!"; 2253 background:rgba(255,255,255,0.8); 2254 vertical-align: middle; 2255 text-align: center; 2256 border-radius: 3px; 2257 } 2258 .xndp-recurring-checkbox .checkbox-holder.validate-error .checkbox-afterfield-label { 2259 color:#c41134; 2260 } 2261</style> 2262
2263<script nonce="7199847af64d558f3d181de59088025e"> 2264jQuery(function($){ 2265 2266 var template = $("#xndp-feature-recurring-checkbox").html().trim(); 2267 if (template=="") return; 2268 2269 $(template).insertAfter('#ak-recurring-type'); 2270 $('#ak-recurring-type').removeClass('ak-donate-area-step-1').hide(); 2271 2272 var ak_event_in_progress = false; 2273 var xndp_event_in_progress = false; 2274 2275 $('#id_donation_type_single, #id_donation_type_recurring').on('click change',function(){ 2276 if (xndp_event_in_progress) return; 2277 ak_event_in_progress = true; 2278 var ak_is_recurring = $('#id_donation_type_recurring').prop('checked'); 2279 if (ak_is_recurring) { 2280 $('.xndp-recurring-checkbox input[type=checkbox]').prop('checked',true); 2281 } else { 2282 $('.xndp-recurring-checkbox input[type=checkbox]').prop('checked',false); 2283 } 2284 ak_event_in_progress = false; 2285 }); 2286 2287 $('.xndp-recurring-checkbox').on('click change focus blur keypress',function(){ 2288 if (ak_event_in_progress) return; 2289 xndp_event_in_progress = true; 2290 var self_is_recurring = $('.xndp-recurring-checkbox input[type=checkbox]').prop('checked'); 2291 if (self_is_recurring) { 2292 // $('#id_donation_type_single').prop('checked',false); 2293 // $('#id_donation_type_recurring').prop('checked',true); 2294 $('#id_donation_type_recurring').trigger('click'); 2295 } else { 2296 // $('#id_donation_type_single').prop('checked',true); 2297 // $('#id_donation_type_recurring').prop('checked',false); 2298 $('#id_donation_type_single').trigger('click'); 2299 } 2300 xndp_event_in_progress = false; 2301 }); 2302 2303 $('.xndp-recurring-checkbox') 2304 2305 2306}); 2307</script>
2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330
2331<script nonce="7199847af64d558f3d181de59088025e"> 2332(function(validate){ 2333 2334 window.validate_form = validate_form; 2335 validate.validate_form = validate_form; 2336 validate.register_func = register_func; 2337 validate.register = register; 2338 validate.alert_messages = alert_messages; 2339 validate.validate_required_fields = validate_required_fields; 2340 validate.validate_float_fields = validate_float_fields; 2341 validate.validate_max_fields = validate_max_fields; 2342 validate.validate_min_fields = validate_min_fields; 2343 validate.validate_clear_errors = validate_clear_errors; 2344 validate.validate_apply_error = validate_apply_error; 2345 2346 var registered = []; 2347 var messages = ''; 2348 2349 var text_invalid_email_address_message = (window.lang=='fr') ? 2350 'Veuillez saisir une adresse de courriel valide.' : 2351 'Please enter a valid email address.'; 2352 var text_invalid_postal_code_message = (window.lang=='fr') ? 2353 'Veuillez saisir un code postal valide.' : 2354 'Please enter a valid postal code.'; 2355 var text_mismatch_message = (window.lang=='fr') ? 2356 'Veuillez entrer le même valeur' : 2357 'Values do not match.'; 2358 var text_invalid_phone_message = (window.lang=='fr') ? 2359 'Veuillez saisir un numéro de téléphone valide.' : 2360 'Please enter a valid phone number.'; 2361 var text_required_any_message = (window.lang=='fr') ? 2362 'Veuillez remplir une de ces champs obligatoires.' : 2363 'Please fill in one of these required fields.'; 2364 var text_field_required_message = (window.lang=='fr') ? 2365 'Veuillez remplir ce champ obligatoire.' : 2366 'Please fill in this required field.'; 2367 var text_invalid_number_message = (window.lang=='fr') ? 2368 'Veuillez saisir un valeur numérique.' : 2369 'Please enter a numeric value.'; 2370 var text_invalid_min_message = (window.lang=='fr') ? 2371 'Veuillez saisir un valeur minimum de :min.' : 2372 'Please enter a minimum value of :min.'; 2373 var text_invalid_max_message = (window.lang=='fr') ? 2374 'Veuillez saisir un valeur maximum de :max.' : 2375 'Please enter a maximum value of :max.'; 2376 2377 function alert_messages() { 2378 alert(messages); 2379 } 2380 function register(validation_type,validation_func) { 2381 2382 var selector = '.'+validation_type; 2383 var error_code = validation_type+'-error'; 2384 var error_message = "Invalid ("+error_code+')'; 2385 2386 registered.push(function(form){ 2387 // get form elements 2388 var fields_to_validate = jQuery(form).find( selector ); 2389 // if no fields selected, return true 2390 if (jQuery(fields_to_validate).length < 1) return true; 2391 // default error to false 2392 var error = false; 2393 // validate bc postal code 2394 jQuery(fields_to_validate).each(function(index,obj){ 2395 // get field value 2396 var val = $.trim( $(obj).val() ); 2397 // skip if field is empty 2398 var empty = ( val == "" ); 2399 if (empty) return; 2400 // check if field is valid 2401 var valid = validation_func(obj); 2402 // if doesn't start with V, error 2403 if (!valid) { 2404 validate.validate_apply_error(form,obj,error_code,error_message); 2405 error = true; 2406 } 2407 }); 2408 if (error) { return false; } 2409 return true; 2410 }); 2411 } 2412 2413 function register_func(func) { 2414 registered.push(func); 2415 } 2416 function validate_form(form,silent) { 2417 // default silent to false 2418 if (!silent) silent = false; 2419 // init validation error flag 2420 var validation_error = false; 2421 // clear errors 2422 validate_clear_errors(form); 2423 // reset messages 2424 messages = ''; 2425 // validate required fields 2426 var valid_required = validate_required_fields(form,'.validate-required',false,silent); 2427 if (!valid_required) { validation_error = true; } 2428 // validate required fields 2429 var valid_required_any = validate_required_any_fields(form,'.validate-required-any',false,silent); 2430 if (!valid_required_any) { validation_error = true; } 2431 // validate fields that should match 2432 var valid_match = validate_matching_fields(form,'.validate-match',false,silent); 2433 if (!valid_match) { validation_error = true; } 2434 // validate phone numbers 2435 var valid_phone = validate_phone_fields(form,'.validate-phone',false,silent); 2436 if (!valid_phone) { validation_error = true; } 2437 // validate postal codes 2438 var valid_postal_code = validate_postal_code_fields(form,'.validate-postal-code, .validate-postalcode',false,silent); 2439 if (!valid_postal_code) { validation_error = true; } 2440 // validate email addresses
2441 var valid_email = validate_email_fields(form,'.validate-email',false,silent); 2442 if (!valid_email) { validation_error = true; } 2443 // validate email addresses 2444 var valid_float = validate_float_fields(form,'.validate-float',false,silent); 2445 if (!valid_float) { validation_error = true; } 2446 // registered types 2447 if (registered) for(var i=0; i<registered.length; i++) { 2448 var valid_custom = registered[i](form); 2449 if (!valid_custom) { validation_error = true; } 2450 } 2451 // show error if there is one 2452 if (validation_error) { 2453 // stop 2454 return false; 2455 } 2456 else { 2457 return true; 2458 } 2459 2460 } 2461 function validate_clear_errors(form) { 2462 jQuery(form).find(".validate-error").add( jQuery(form).filter('.validate-error') ).each(function(index,obj){ 2463 jQuery(obj).removeClass(function(i,css){ 2464 return (css.match(/(^|\s)validate-(\S+-)?error/g) || []).join(' '); 2465 }); 2466 }); 2467 // legacy 2468 jQuery(form).find('.validate-error-icon').add( jQuery(form).filter('.validate-error-icon') ).remove(); 2469 jQuery(form).find('.validate-error').add( jQuery(form).filter('.validate-error') ).removeClass('validate-error').css({'border-color':''}); 2470 } 2471 2472 function validate_apply_error(form,obj,errorclass,message) { 2473 var name = jQuery(obj).attr('name').replace(/[^a-zA-Z0-9\-\_]+/gi,'-').replace(/^-+/gi,'').replace(/-+$/gi,''); 2474 messages += name+' : '+errorclass+" : "+message+"\n"; 2475 var validate_obj = jQuery(obj); 2476 var validate_holder = jQuery(obj).parents('.validate-holder:first'); 2477 if (name) validate_holder = jQuery(validate_holder).add( jQuery(form).find('.validate-holder-'+name) ); 2478 var validate_status = jQuery(validate_holder).find('.validate-status'); 2479 if (name) validate_status = jQuery(validate_status).add( jQuery(form).find('.validate-status-'+name) ); 2480 var validate_status_message = jQuery(validate_holder).find('.validate-status-message'); 2481 if (validate_holder.length>0) { 2482 jQuery(validate_obj).addClass('validate-error').addClass(errorclass); 2483 jQuery(validate_holder).addClass('validate-error').addClass(errorclass); 2484 jQuery(validate_status).addClass('validate-error').addClass(errorclass); 2485 jQuery(validate_status_message).addClass('validate-error').addClass(errorclass).html(message); 2486 } else { 2487 // legacy 2488 jQuery('<div class="validate-error-icon" style="color:white;padding:0.5em 1em;background:red;border-radius:2em;font-size:12px;line-height:1em;font-weight:bold; opacity:0.8; position:absolute;display:inline-block;top:8px;right:10px;vertical-align:middle;" data-nonced-handlers data-onclick-7199847af64d558f3d181de59088025e="alert(\''+message+'\')">!</div>').insertBefore(obj); 2489 jQuery(obj).addClass('validate-error').css({ 'border-color' : 'red' }); 2490 } 2491 } 2492 2493 function validate_email_fields(form,selector,field_error_message,silent) { 2494 // default error message 2495 if (!field_error_message) field_error_message = text_invalid_email_address_message; 2496 // get form elements 2497 var email_fields = jQuery(form).find( selector ); 2498 // if no fields selected, return true 2499 if (jQuery(email_fields).length < 1) return true; 2500 // default error to false 2501 var error = false; 2502 // validate email addresses 2503 jQuery(email_fields).each(function(index,obj){ 2504 var val = validate_get_value(form,obj); 2505 if (val=='') return; 2506 if (!check_email_valid(val)) { 2507 if (!silent) validate_apply_error(form,obj,'validate-email-error',field_error_message); 2508 error = true; 2509 } 2510 // var valid = error ? "invalid" : "valid"; 2511 // var name = $(obj).attr('name'); 2512 // console.log("validate_email_fields: "+name+" "+valid+" ("+val+")"); 2513 }); 2514 if (error) return false; 2515 return true; 2516 } 2517 function validate_postal_code_fields(form,selector,field_error_message,silent) { 2518 // default error message 2519 if (!field_error_message) field_error_message = text_invalid_postal_code_message; 2520 // get form elements 2521 var postal_code_fields = jQuery(form).find( selector ); 2522 // if no fields selected, return true 2523 if (jQuery(postal_code_fields).length < 1) return true; 2524 // default error to false 2525 var error = false; 2526 // validate email addresses 2527 jQuery(postal_code_fields).each(function(index,obj){ 2528 var val = validate_get_value(form,obj); 2529 if (val=='') return; 2530 if (!check_postal_code_valid(val)) { 2531 if (!silent) validate_apply_error(form,obj,'validate-postalcode-error',field_error_message); 2532 error = true; 2533 } 2534 // var valid = error ? "invalid" : "valid"; 2535 // var name = $(obj).attr('name'); 2536 // console.log("validate_postal_code_fields: "+name+" "+valid+" ("+val+")"); 2537 }); 2538 if (error) return false;
2539 return true; 2540 } 2541 function validate_matching_fields(form,selector,field_error_message,silent) { 2542 // default error message 2543 if (!field_error_message) field_error_message = text_mismatch_message; 2544 // get form elements 2545 var mismatch_fields = jQuery(form).find( selector ); 2546 // if no fields selected, return true 2547 if (jQuery(mismatch_fields).length < 1) return true; 2548 // default error to false 2549 var error = false; 2550 // validate email addresses 2551 var matchvalue = mismatch_fields.first().val(); 2552 jQuery(mismatch_fields).each(function(index,obj){ 2553 var val = validate_get_value(form,obj); 2554 if (val=='') return; 2555 if (val !== matchvalue) { 2556 if (!silent) validate_apply_error(form,obj,'validate-match-error',field_error_message); 2557 error = true; 2558 } 2559 }); 2560 if (error) return false; 2561 return true; 2562 } 2563 function validate_phone_fields(form,selector,field_error_message,silent) { 2564 // default error message 2565 if (!field_error_message) field_error_message = text_invalid_phone_message; 2566 // get form elements 2567 var phone_fields = jQuery(form).find( selector ); 2568 // if no fields selected, return true 2569 if (jQuery(phone_fields).length < 1) return true; 2570 // default error to false 2571 var error = false; 2572 // validate email addresses 2573 jQuery(phone_fields).each(function(index,obj){ 2574 var val = validate_get_value(form,obj); 2575 if (val=='') return; 2576 if (!check_phone_valid(val)) { 2577 if (!silent) validate_apply_error(form,obj,'validate-phone-error',field_error_message); 2578 error = true; 2579 } 2580 // var valid = error ? "invalid" : "valid"; 2581 // var name = $(obj).attr('name'); 2582 // console.log("validate_phone_fields: "+name+" "+valid+" ("+val+")"); 2583 }); 2584 if (error) return false; 2585 return true; 2586 } 2587 function validate_float_fields(form,selector,field_error_message,silent) { 2588 // default error message 2589 if (!field_error_message) field_error_message = text_invalid_number_message; 2590 // get form elements 2591 var float_fields = jQuery(form).find( selector ); 2592 // if no fields selected, return true 2593 if (jQuery(float_fields).length < 1) return true; 2594 // default error to false 2595 var error = false; 2596 // validate email addresses 2597 jQuery(float_fields).each(function(index,obj){ 2598 var val = validate_get_value(form,obj); 2599 if (val=='') return; 2600 if (!check_float_valid(val)) { 2601 if (!silent) validate_apply_error(form,obj,'validate-float-error',field_error_message); 2602 error = true; 2603 } 2604 }); 2605 if (error) return false; 2606 return true; 2607 } 2608 function validate_min_fields(form,selector,min,field_error_message,silent) { 2609 // default error message 2610 if (!field_error_message) field_error_message = text_invalid_min_message.replace(':min',min); 2611 // get form elements 2612 var min_fields = jQuery(form).find( selector ); 2613 // if no fields selected, return true 2614 if (jQuery(min_fields).length < 1) return true; 2615 // default error to false 2616 var error = false; 2617 // validate email addresses 2618 jQuery(min_fields).each(function(index,obj){ 2619 var val = validate_get_value(form,obj); 2620 if (val=='') return; 2621 if (!check_min_valid(val,min)) { 2622 if (!silent) validate_apply_error(form,obj,'validate-min-error',field_error_message); 2623 error = true; 2624 } 2625 }); 2626 if (error) return false; 2627 return true; 2628 } 2629 function validate_max_fields(form,selector,max,field_error_message,silent) { 2630 // default error message 2631 if (!field_error_message) field_error_message = text_invalid_max_message.replace(':max',max); 2632 // get form elements 2633 var max_fields = jQuery(form).find( selector ); 2634 // if no fields selected, return true 2635 if (jQuery(max_fields).length < 1) return true; 2636 // default error to false 2637 var error = false; 2638 // validate email addresses 2639 jQuery(max_fields).each(function(index,obj){ 2640 var val = validate_get_value(form,obj); 2641 if (val=='') return; 2642 if (!check_max_valid(val,max)) { 2643 if (!silent) validate_apply_error(form,obj,'validate-max-error',field_error_message); 2644 error = true; 2645 } 2646 }); 2647 if (error) return false; 2648 return true; 2649 } 2650 function validate_required_any_fields(form,selector,field_error_message,silent) { 2651 // default error message 2652 if (!field_error_message) field_error_message = text_required_any_message; 2653 // get form elements 2654 var required_any_fields = jQuery(form).find( selector ); 2655 // if no fields selected, return true 2656 if (jQuery(required_any_fields).length < 1) return true; 2657 // error is assumed true 2658 var error = true; 2659 // look through fields, if any exists set error to false 2660 jQuery(required_any_fields).each(function(index,obj){ 2661 var val = validate_get_value(form,obj); 2662 if (val!='') { error = false; } 2663 }); 2664 // if error, apply error 2665 if (error) jQuery(required_any_fields).each(function(index,obj){ 2666 if (!silent) validate_apply_error(form,obj,'validate-required-any-error',field_error_message); 2667 }); 2668 // if error return false 2669 if (error) return false;
2670 // if we got this far, return true 2671 return true; 2672 } 2673 function validate_required_fields(form,selector,field_error_message,silent) { 2674 // default error message 2675 if (!field_error_message) field_error_message = text_field_required_message; 2676 // get form elements 2677 var required_fields = jQuery(form).find( selector ); 2678 // if no fields selected, return true 2679 if (jQuery(required_fields).length < 1) return true; 2680 // default error to false 2681 var error = false; 2682 // validate required fields 2683 jQuery(required_fields).each(function(index,obj){ 2684 var val = validate_get_value(form,obj); 2685 if (val=='') { 2686 if (!silent) validate_apply_error(form,obj,'validate-required-error',field_error_message); 2687 error = true; 2688 } 2689 // var valid = error ? "invalid" : "valid"; 2690 // var name = $(obj).attr('name'); 2691 // console.log("validate_required_fields: "+name+" "+valid+" ("+val+")"); 2692 }); 2693 if (error) return false; 2694 return true; 2695 } 2696 function validate_get_value(form,obj) { 2697 var name = jQuery(obj).attr('name'); 2698 var tagname = (jQuery(obj).prop('tagName')+"").toLowerCase(); 2699 var type = (jQuery(obj).attr('type')+"").toLowerCase(); 2700 var checked = jQuery(obj).prop('checked'); 2701 2702 var input_radio = ( tagname=='input' && type=='radio' ); 2703 var input_checkbox = ( tagname=='input' && type=='checkbox' ); 2704 2705 if (input_radio || input_checkbox) { 2706 var obj_checked = jQuery(form).find( tagname+'[name="'+name+'"]:checked'); 2707 if (obj_checked.length < 1) { 2708 return ''; 2709 } else { 2710 return 'checked'; 2711 } 2712 } else { 2713 var value = jQuery(obj).val(); 2714 } 2715 return value; 2716 } 2717 2718 // form validation funcitons 2719 function check_float_valid(float) { 2720 var num = parseFloat(float); 2721 return isNaN(num) ? false : true; 2722 } 2723 function check_min_valid(num,min) { 2724 min = parseFloat(min); 2725 num = parseFloat(num); 2726 if (isNaN(num) || isNaN(min)) return false; 2727 var is_num_gte_min = num >= min; 2728 return is_num_gte_min ? true : false; 2729 } 2730 function check_max_valid(num,max) { 2731 max = parseFloat(max); 2732 num = parseFloat(num); 2733 if (isNaN(num) || isNaN(max)) return false; 2734 var is_num_lte_max = num <= max; 2735 return is_num_lte_max ? true : false; 2736 } 2737 function check_email_valid(email) { 2738 var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/; 2739 return regex.test(email); 2740 } 2741 function check_phone_valid(phone) { 2742 var phone_digits = (phone+"").replace(/\D/g, ''); // digits only 2743 var is_10_digits = phone_digits.length==10; 2744 var is_first_digit_1 = phone_digits.charAt(0)=='1'; 2745 var is_11_digits = phone_digits.length==11; 2746 return is_10_digits || (is_11_digits && is_first_digit_1); 2747 //var regex = /^[^0-9]*([0-9][^0-9]*){10}.*$/; 2748 //return regex.test(phone); 2749 } 2750 function check_postal_code_valid(postal_code) { 2751 // get string input 2752 var postal_code = String(postal_code); 2753 // trim input 2754 postal_code = postal_code.replace(/^\s+|\s+$/g, ""); 2755 // convert to lowercase 2756 postal_code = postal_code.toLowerCase() 2757 // replace O and I with 0 and 1 in case someone made a mistake 2758 postal_code = postal_code.replace(/i/g, '1').replace(/o/g, '0'); 2759 // Validation pattern : 2760 // Postal codes do not include the letters D, F, I, O, Q or U, and the first position also does not make use of the letters W or Z. 2761 // http://en.wikipedia.org/wiki/Postal_codes_in_Canada 2762 var regex = /^([abceghjklmnprstvxy]){1}[0-9]{1}[abceghjklmnprstvwxyz]{1}[^a-z0-9]*[0-9]{1}[abceghjklmnprstvwxyz]{1}[0-9]{1}$/; 2763 // validate 2764 return regex.test(postal_code); 2765 } 2766 2767 /////////////////////////////////// 2768 /// FIRE VALIDATE REGISTER EVENT // 2769 /////////////////////////////////// 2770 2771 jQuery(window).trigger('validate-register'); 2772 2773 /////////////////////////////////// 2774 /// END /////////////////////////// 2775 /////////////////////////////////// 2776 2777 2778})(window.validate = window.validate || {}); 2779</script>
2779 2780 2781 2782<style> 2783.xndp-page-donate .validate-error.validate-error input, 2784.xndp-page-donate .validate-error.validate-error .xndp-input-holder, 2785.xndp-page-donate .validate-error.validate-error label, 2786.xndp-user-form-field.validate-error input, 2787.xndp-user-form-field.validate-error label { 2788 color: #cc1133; 2789 border-color:#cc1133; 2790} 2791.xndp-user-form-field.validate-error input { 2792 background-color: #FFC8C8; 2793} 2794</style> 2795
2796<script nonce="7199847af64d558f3d181de59088025e"> 2797jQuery(function($){ 2798 2799 // do not load this if window.validate is not found 2800 if (!window.validate) { 2801 console.log("Cound not find window.validate library. Custom validation is disabled"); 2802 return; 2803 } 2804 2805 // store actionkit written functions so we can call them 2806 // from our own function 2807 var ak_validate_form = actionkit.forms.validate; 2808 var ak_validate_step = window.validate_step; 2809 2810 // xndp functions that will be used to replace and wrap actionkit functions 2811 function xndp_validate_form(name) { 2812 var target = xndp_get_validate_form_target(name); 2813 var valid = validate.validate_form(target); 2814 if (!valid) { 2815 return false; 2816 } else { 2817 return ak_validate_form(name); 2818 } 2819 } 2820 function xndp_get_validate_form_target(name) { 2821 if (name) return $('form [name='+name+']').parents('.validate-holder'); 2822 2823 //if we're not given a specific name/target and we're on the donation page, find out what step we're on and only validate that step 2824 if ($('.xndp-page-donate').length){ 2825 if ($('.ak-donate-area-step-1.xndp-checkout-hide:visible:not(.xndp-feature-signup-privacy-policy-text)').length){ 2826 return $('.ak-donate-area-step-1'); 2827 } 2828 if ($('.ak-donate-area-step-2.xndp-checkout-hide:visible:not(.xndp-feature-signup-privacy-policy-text)').length){ 2829 return $('.ak-donate-area-step-2'); 2830 } 2831 if ($('.ak-donate-area-step-3.xndp-checkout-hide:visible:not(.xndp-feature-signup-privacy-policy-text)').length){ 2832 return $('.ak-donate-area-step-3'); 2833 } 2834 } 2835 2836 return $('form'); 2837 } 2838 function xndp_validate_step(step) { 2839 window.step_has_errors = false; 2840 if (step==2) { 2841 var valid = validate.validate_form(jQuery(".ak-donate-area-step-2")); 2842 if (!valid) { 2843 window.step_has_errors = true; 2844 return false; 2845 } else { 2846 return ak_validate_step(step); 2847 } 2848 } else if (step==3){ 2849 var valid = validate.validate_form(jQuery(".ak-donate-area-step-3")); 2850 if (!valid) { 2851 window.step_has_errors = true; 2852 return false; 2853 } else { 2854 return ak_validate_step(step); 2855 } 2856 } 2857 } 2858 2859 // replace actionkit functions with xndp functions 2860 actionkit.forms.validate = xndp_validate_form; 2861 window.validate_step = xndp_validate_step; 2862 2863}); 2864 2865jQuery(function($){ 2866 //add class validate-[FIELDNAME] to all <input> tags inside validate-holder. This allows xndp_import_validate_js.html included from xndp_feature_custom_validation.html to validate those fields. 2867 $('div.validate-holder > input').addClass(function(){ 2868 return "validate-"+$(this).attr("name"); 2869 }); 2870 2871 //normalize the phone fields so they can all be validated in the custom validations using validate-phone class 2872 $('div.validate-holder > input.validate-mobile_phone').addClass('validate-phone'); 2873 $('div.validate-holder > input.validate-emergency_phone').addClass('validate-phone'); 2874 $('div.validate-holder > input.validate-home_phone').addClass('validate-phone'); 2875 $('div.validate-holder > input.validate-work_phone').addClass('validate-phone'); 2876 2877 //normalize postal code field so they can all be validated in the custom validations using validate-postalcode class 2878 $('div.validate-holder > input.validate-postal').addClass('validate-postalcode'); 2879}); 2880</script>
2880 2881 2882 2883
2884<script nonce="7199847af64d558f3d181de59088025e"> 2885// This hijack needs to be done synchrounously, if this done only 2886// from the jQuery(function(){ }) event, it will be too late. 2887(function(feature){ 2888 2889 // debug flag to trigger console output 2890 feature.debug = false; 2891 2892 // do not load this if window.validate is not found 2893 if (!window.submit_cc) { 2894 console.log("Cound not find window.submit_cc function."); 2895 return; 2896 } 2897 2898 // store actionkit written functions so we can call them 2899 // from our own function 2900 var ak_submit_cc_function = window.submit_cc; 2901 2902 // flag which will be set to true when donate button is clicked 2903 var submit_inprogress_flag = false; 2904 2905 // xndp functions that will be used to replace and wrap actionkit functions 2906 function xndp_submit_cc_function(ev) { 2907 2908 // if inprogres flag is true, block this click 2909 if (submit_inprogress_flag) { 2910 if (feature.debug) console.log("double-click blocked"); 2911 ev.preventDefault(); 2912 ev.stopPropagation(); 2913 return; 2914 } 2915 2916 // if we got this far, set in progress flag to true 2917 submit_inprogress_flag = true; 2918 2919 // output that click was allowed 2920 if (feature.debug) console.log("single-click allowed"); 2921 2922 // set two-second timeout and them clear in progress flag 2923 setTimeout(function(){ 2924 submit_inprogress_flag = false; 2925 if (feature.debug) console.log("removed double-click blocker"); 2926 },2000); 2927 2928 // run built-in AK submit function actually submit 2929 return ak_submit_cc_function(ev); 2930 2931 } 2932 2933 // replace actionkit functions with xndp functions 2934 window.submit_cc = xndp_submit_cc_function; 2935 2936})(window.xndp_feature_preventdoublesubmit = {}); 2937</script>
2937 2938 2939 2940 2941 2942 2943 2944<template id="xndp_feature_taxcalc_bubble"> 2945<div class="xndp-feature-taxcalc" style="display:none"> 2946 <div class="taxbubble-inner"> 2947 <div class="taxcalc-bubble"> 2948 <div class="bubble-holder"> 2949 <div class="bubble-cost"> 2950 <label class="bubble-cost-text header-text"> 2951 --- 2952 </label> 2953 </div> 2954 <div class="bubble-info"> 2955 <div class="bubble-info-text"> 2956 <span class="symbol">$</span><span class="amount">000</span> 2957 </div> 2958 </div> 2959 <div class="bubble-learnmore footer-text"> 2960 --- 2961 </div> 2962 2963 </div> 2964 </div> 2965 </div> 2966</div> 2967</template> 2968 2969<template id="xndp_feature_taxcalc_config"> 2970{"uitext":{"lang":"en","header":"After this donation, you'll get back:"}} 2971{"uitext":{"lang":"en","footer":"This reflects your total tax credit for this year."}} 2972{"uitext":{"lang":"fr","header":"Après ce don, votre remboursement sera de :"}} 2973{"uitext":{"lang":"fr","footer":"Ceci représente votre crédit d'impôt total pour cette annee."}} 2974 2975{"tier":{"floor":"0","ceiling":"1000","percent":"75.00","maxcredit":"750"}} 2976</template> 2977 2978<style> 2979/* xndp_feature_taxcalc.css */ 2980.xndp-feature-taxcalc { 2981 margin-bottom:20px; 2982} 2983.xndp-feature-taxcalc .bubble-cost { 2984 display: inline-block; 2985} 2986.xndp-feature-taxcalc .bubble-cost-text { 2987 color:#58595b; 2988 font-size:18px; 2989 line-height: 1.0; 2990 font-weight:600; 2991 letter-spacing: -0.02em;; 2992 display: block; 2993} 2994.xndp-feature-taxcalc .bubble-learnmore { 2995 display: inline-block; 2996 font-size: 13px; line-height: 1; 2997 color:#aaa; 2998 margin-top: 6px; 2999} 3000.xndp-feature-taxcalc .bubble-info { 3001 display: block; 3002 vertical-align: top; 3003} 3004.xndp-feature-taxcalc .bubble-info-text .label { 3005 font-size: 20px; 3006 line-height: 1.0; 3007 font-weight: bold; 3008 display:inline-block; 3009 margin:0 1px; 3010 vertical-align: text-top; 3011 color:#60b94d; 3012} 3013.xndp-feature-taxcalc .bubble-info-text .symbol { 3014 font-size: 20px; 3015 line-height: 1.0; 3016 vertical-align: middle; 3017 color:#60b94d; 3018} 3019.xndp-feature-taxcalc .bubble-info-text .amount { 3020 font-size: 22px; 3021 line-height: 1.0; 3022 font-weight: bold; 3023 font-family: 'Helvetica-Bold',Helvetica,arial,sans-serif; 3024 display:inline-block; 3025 margin:0 1px; 3026 vertical-align: middle; 3027 color:#60b94d; 3028} 3029 3030@media (min-width: 0) { 3031 .xndp-feature-taxcalc .tax-credit-help:before { 3032 content: none; 3033 color: #58595b; 3034 font-size: 12px; 3035 line-height: 1.2; 3036 font-weight: bold; 3037 display: none; 3038 text-transform: uppercase; 3039 } 3040 .xndp-feature-taxcalc .taxcalc-bubble { 3041 margin-right: 0; 3042 width: 100%; 3043 color: #58595B; 3044 background: #FFFFFF; 3045 border: 3px solid #58595B; 3046 line-height: 1.4; 3047 text-align: left; 3048 border-radius: 10px; 3049 padding: 14px; 3050 display: block; 3051 } 3052 .xndp-feature-taxcalc .taxcalc-bubble { 3053 xtop: 60px; 3054 xright: 0; 3055 visibility: visible; 3056 z-index: 999; 3057 } 3058 3059 .xndp-feature-taxcalc .taxcalc-bubble.max-reached:before { 3060 border-right: 14px solid #c41134; 3061 } 3062 .xndp-feature-taxcalc .taxcalc-bubble.max-reached { 3063 border-color: #c41134; 3064 } 3065 .xndp-feature-taxcalc .taxcalc-bubble.max-reached nobr { 3066 vertical-align: text-top; 3067 } 3068 .xndp-feature-taxcalc .taxcalc-bubble.max-reached .bubble-info-text .symbol { 3069 color: #c41134; 3070 } 3071 .xndp-feature-taxcalc .taxcalc-bubble.max-reached .bubble-info-text .amount { 3072 color: #c41134; 3073 } 3074 .xndp-feature-taxcalc .taxcalc-bubble.max-reached .bubble-cost { 3075 display: none; 3076 } 3077} 3078@media (min-width: 750px) { 3079 .xndp-feature-taxcalc { 3080 margin: 0; 3081 } 3082 .xndp-feature-taxcalc .taxcalc-bubble { 3083 position: relative; 3084 /* 3085 -webkit-transform: translate(0, 50%); 3086 -moz-transform: translate(0, 50%); 3087 -ms-transform: translate(0, 50%); 3088 -o-transform: translate(0, 50%); 3089 transform: translate(0, 50%); 3090 */ 3091 3092 } 3093 .xndp-feature-taxcalc .taxcalc-bubble:before { 3094 content: ''; 3095 top: 50%; 3096 position: absolute; 3097 width: 0; height: 0; 3098 } 3099 .xndp-feature-taxcalc .taxcalc-bubble:after { 3100 content: ''; 3101 top: 50%; 3102 position: absolute; 3103 width: 0; height: 0; 3104 } 3105 .align-right .xndp-feature-taxcalc .taxcalc-bubble:before { 3106 left: auto; 3107 right: 0; 3108 margin-right: -14px; 3109 margin-top: -14px; 3110 border-left: 14px solid #58595B; 3111 border-top: 14px solid transparent; 3112 border-bottom: 14px solid transparent; 3113 3114 } 3115 .align-right .xndp-feature-taxcalc .taxcalc-bubble:after { 3116 left:auto; 3117 right: 0; 3118 margin-right: -10px; 3119 margin-top: -10px; 3120 border-left: 10px solid #FFFFFF; 3121 border-top: 10px solid transparent; 3122 border-bottom: 10px solid transparent; 3123 } 3124 .align-left .xndp-feature-taxcalc .taxcalc-bubble:before { 3125 left: 0; 3126 margin-left: -14px; 3127 margin-top: -14px; 3128 border-right: 14px solid #58595B; 3129 border-top: 14px solid transparent; 3130 border-bottom: 14px solid transparent; 3131 3132 } 3133 .align-left .xndp-feature-taxcalc .taxcalc-bubble:after { 3134 left: 0; 3135 margin-left: -10px; 3136 margin-top: -10px; 3137 border-right: 10px solid #FFFFFF; 3138 border-top: 10px solid transparent; 3139 border-bottom: 10px solid transparent; 3140 } 3141 .align-left .xndp-feature-taxcalc .taxcalc-bubble.max-reached:before { 3142 border-right: 14px solid #c41134; 3143 } 3144 .align-right .xndp-feature-taxcalc .taxcalc-bubble.max-reached:after { 3145 border-left: 14px solid #c41134; 3146 } 3147 3148} 3149@media (min-width: 750px) {
3150 #ak-donation-details#ak-donation-details { 3151 overflow:visible; 3152 } 3153 .xndp-amount-wrapper { 3154 position:relative; 3155 } 3156 .align-center .xndp-feature-taxcalc, 3157 .align-left .xndp-feature-taxcalc { 3158 position:absolute; 3159 top:0; 3160 left:calc(100% + 0px); 3161 width:200px; 3162 } 3163 .align-right .xndp-feature-taxcalc { 3164 position:absolute; 3165 top:0; 3166 right:calc(100% + 0px); 3167 width:200px; 3168 } 3169 .align-center .xndp-feature-taxcalc .taxcalc-bubble:before, 3170 .align-left .xndp-feature-taxcalc .taxcalc-bubble:before { 3171 left: 0; 3172 margin-left: -14px; 3173 margin-top: -14px; 3174 border-right: 14px solid #58595B; 3175 border-top: 14px solid transparent; 3176 border-bottom: 14px solid transparent; 3177 } 3178 .align-center .xndp-feature-taxcalc .taxcalc-bubble:after, 3179 .align-left .xndp-feature-taxcalc .taxcalc-bubble:after { 3180 left: 0; 3181 margin-left: -10px; 3182 margin-top: -10px; 3183 border-right: 10px solid #FFFFFF; 3184 border-top: 10px solid transparent; 3185 border-bottom: 10px solid transparent; 3186 } 3187 .align-right .xndp-feature-taxcalc .taxcalc-bubble:before { 3188 left: auto; 3189 right: 0; 3190 margin-right: -14px; 3191 margin-top: -14px; 3192 border-left: 14px solid #58595B; 3193 border-top: 14px solid transparent; 3194 border-bottom: 14px solid transparent; 3195 } 3196 .align-right .xndp-feature-taxcalc .taxcalc-bubble:after { 3197 left: auto; 3198 right: 0; 3199 margin-right: -10px; 3200 margin-top: -10px; 3201 border-left: 10px solid #FFFFFF; 3202 border-top: 10px solid transparent; 3203 border-bottom: 10px solid transparent; 3204 } 3205} 3206</style> 3207
3208<script nonce="7199847af64d558f3d181de59088025e"> 3209 3210 3211 3212 3213 3214// 3215// xndp_feature_taxcalc.jquery.js 3216// 3217 3218// place template within html body 3219jQuery(function($){ 3220 // load template html 3221 var template = $("#xndp_feature_taxcalc_bubble").html().trim(); 3222 // inject html at the top of every <form> tag 3223 $(template).prependTo('form .xndp-amount-wrapper'); 3224}); 3225 3226// apply event handlers that cause taxcalc to update 3227jQuery(function($){ 3228 // update whenever amount button changes 3229 $('.ak-amount-radio-button').on('change blur click', function(){ 3230 taxcalc.bubble.update_tax_calculator(); 3231 }) 3232 // update whenever amount other field changes 3233 $('#ak-other-amount-field').on('change blur click keyup', function(){ 3234 taxcalc.bubble.update_tax_calculator(); 3235 }); 3236 // update whenever donation type changes 3237 $('form input[name=donation_type]').on('click change blur',function(){ 3238 taxcalc.bubble.update_tax_calculator(); 3239 }); 3240 // update whenever donation spread changes 3241 $(window).on('update-spread',function(){ 3242 taxcalc.bubble.update_tax_calculator(); 3243 }); 3244 // update 500ms after the page loads 3245 setTimeout(function(){ 3246 taxcalc.bubble.update_tax_calculator(); 3247 taxcalc.bubble.init(); 3248 },500); 3249}); 3250 3251// taxcalc function library 3252(function(taxcalc){ 3253 3254 taxcalc.debug = false; 3255 3256 // 3257 // xndp_feature_taxcalc.bubble.js 3258 // 3259 3260 var lang = "en"; 3261 3262 // init taxcalc.bubble 3263 taxcalc.bubble = taxcalc.bubble || {}; 3264 3265 // static 3266 var taxcalc_bubble_inited = false; 3267 3268 // taxcalc.bubble.init() 3269 taxcalc.bubble.init = function() { 3270 taxcalc_bubble_inited = true; 3271 taxcalc.bubble.update_tax_calculator(); 3272 } 3273 3274 // taxcalc.bubble.show() 3275 taxcalc.bubble.show = function() { 3276 if (!taxcalc_bubble_inited) return; 3277 var total_donation_is_zero = taxcalc.bubble.get_total_donation() == 0; 3278 if (total_donation_is_zero) return; 3279 if (!$('.xndp-feature-taxcalc').is(":visible")) { 3280 $('.xndp-feature-taxcalc').fadeIn(); 3281 } 3282 } 3283 3284 // taxcalc.bubble.hide() 3285 taxcalc.bubble.hide = function() { 3286 if (!taxcalc_bubble_inited) return; 3287 if ($('.xndp-feature-taxcalc').is(":visible")) { 3288 $('.xndp-feature-taxcalc').fadeOut(); 3289 } 3290 } 3291 3292 // taxcalc.bubble.update_bubble_visible() 3293 taxcalc.bubble.update_bubble_visible = function() { 3294 if (!taxcalc_bubble_inited) return; 3295 // hide bubble if recurring or zero amount
3296 var is_recurring_selected = taxcalc.bubble.is_recurring_selected(); 3297 if (is_recurring_selected) { 3298 taxcalc.bubble.hide(); 3299 return; 3300 } 3301 // if we got this far, show bubble 3302 taxcalc.bubble.show(); 3303 } 3304 3305 // taxcalc.bubble.update_tax_calculator() 3306 taxcalc.bubble.update_tax_calculator = function() { 3307 if (!taxcalc_bubble_inited) return; 3308 taxcalc.bubble.update_bubble_visible(); 3309 var is_recurring_selected = taxcalc.bubble.is_recurring_selected(); 3310 var total_donation_is_zero = taxcalc.bubble.get_total_donation() == 0; 3311 if (!is_recurring_selected && !total_donation_is_zero) { 3312 var uitext = taxcalc.config.uitext(); 3313 $('.xndp-feature-taxcalc .header-text').text(uitext[lang].header); 3314 $('.xndp-feature-taxcalc .footer-text').text(uitext[lang].footer); 3315 var amount = taxcalc.bubble.get_total_donation(); 3316 var ytd = taxcalc.bubble.get_ytd_url_param_amount(); 3317 3318 if (taxcalc.debug) console.log("YTD: "+ytd) 3319 var taxback = taxcalc.math.calc_tax_back(amount,ytd) 3320 var taxback_display = taxback.toFixed(2); 3321 $('.xndp-feature-taxcalc .amount').text(taxback_display); 3322 } 3323 } 3324 3325 // taxcalc.bubble.get_total_donation 3326 taxcalc.bubble.get_total_donation = function() { 3327 3328 var total = 0.0; 3329 // look for checked off donation amounts 3330 var amount_checked = $('input:radio[name=amount]:checked').val(); 3331 if (amount_checked) { 3332 total += parseFloat(amount_checked); 3333 } else { 3334 // or other amounts 3335 var other = $('#ak-other-amount-field').val(); 3336 if (typeof other !== "undefined" && 3337 other.length && /^[\d,]*(\.\d{1,2})?$/.test(other)) 3338 total += parseFloat(other.replace(',', '')); 3339 } 3340 3341 var new_total = total.toFixed(2); 3342 3343 return new_total; 3344 3345 } 3346 3347 // taxcalc.bubble.get_ytd_url_param_amount 3348 taxcalc.bubble.get_ytd_url_param_amount = function() { 3349 var ytdparam = getparam('ytd'); 3350 if (isNaN(ytdparam)) return 0.0; 3351 return parseFloat(ytdparam); 3352 } 3353 // taxcalc.bubble.is_recurring_selected 3354 taxcalc.bubble.is_recurring_selected = function() { 3355 var donation_type = $('form input[name=donation_type]:checked').val(); 3356 return (donation_type=='recurring'); 3357 } 3358 3359 function getparam(getkey) { 3360 var result = {}; 3361 var items = location.search.substr(1).split("&"); 3362 for (var index = 0; index < items.length; index++) { 3363 var eqbroken = items[index].split("="); 3364 var k = eqbroken[0]; 3365 var v = decodeURIComponent(eqbroken[1]); 3366 result[k] = v; 3367 } 3368 return typeof(result[getkey])!='undefined' ? result[getkey] : null; 3369 } 3370 3371 // 3372 // xndp_feature_taxcalc.config.js 3373 // 3374 3375 // init taxcalc.config 3376 taxcalc.config = taxcalc.config || {}; 3377 3378 // static 3379 var taxcalc_config_object = null; 3380 var taxcalc_config_tiers = null; 3381 var taxcalc_config_uitext = null; 3382 3383 // taxcalc.config.get_config_lines() 3384 taxcalc.config.get_config_lines = function() { 3385 3386 var taxconfig_lines = []; 3387 3388 var configstring = jQuery('#xndp_feature_taxcalc_config').html(); 3389 if (taxcalc.debug) console.log({ 'configstring' : configstring }); 3390 3391 var configstring_lines = configstring.replace(/^\s+|\s+$/g, '').split("\n"); 3392 if (taxcalc.debug) console.log({ 'configstring_lines' : configstring_lines }); 3393 3394 taxconfig_lines = []; 3395 3396 for(index in configstring_lines) { 3397 var configstring_line = configstring_lines[index]; 3398 if (configstring_line=="") continue; 3399 if (taxcalc.debug) console.log({ 'configstring_line' : configstring_line }); 3400 try { 3401 var configstring_line_parsed = JSON.parse(configstring_line); 3402 if (taxcalc.debug) console.log({ 'configstring_line_parsed' : configstring_line_parsed }); 3403 taxconfig_lines.push( configstring_line_parsed ); 3404 } catch (j) { 3405 throw "Could not parse json: "+configstring_line+' '+j ; 3406 } 3407 } 3408 3409 if (taxcalc.debug) console.log({ 'taxconfig_lines' : taxconfig_lines }); 3410 return taxconfig_lines; 3411 3412 } 3413 3414 // taxcalc.config.get_config_object() 3415 taxcalc.config.get_config_object = function() { 3416 3417 if (taxcalc_config_object) 3418 return taxcalc_config_object; 3419 3420 var taxconfig_lines = taxcalc.config.get_config_lines(); 3421 var taxconfig_object = {}; 3422 3423 for(i in taxconfig_lines) { 3424 for(j in taxconfig_lines[i]) { 3425 if (typeof taxconfig_lines[i][j] == 'object') { 3426 if (typeof taxconfig_object[j] == 'undefined') taxconfig_object[j] = []; 3427 taxconfig_object[j].push( taxconfig_lines[i][j] ); 3428 } else { 3429 taxconfig_object[j] = taxconfig_lines[i][j]; 3430 } 3431 } 3432 } 3433 if (taxcalc.debug) console.log({ 'taxconfig_object' : taxconfig_object }); 3434 3435 taxcalc_config_object = taxconfig_object; 3436 3437 return taxconfig_object; 3438 3439 } 3440 3441 // taxcalc.config.config() 3442 taxcalc.config.config = function() { 3443 var config = taxcalc.config.get_config_object(); 3444 try { 3445 var config = taxcalc.config.get_config_object(); 3446 } catch(e) { 3447 if (taxcalc.debug) console.log("No taxconfig object found"); 3448 var config = {}; 3449 } 3450 return config; 3451 } 3452 3453 // taxcalc.config.uitext() 3454 taxcalc.config.uitext = function() { 3455 3456 var taxconfig = taxcalc.config.config(); 3457 3458 if (taxcalc_config_uitext) 3459 return taxcalc_config_uitext; 3460 3461 try { 3462 var uitexts = taxconfig.uitext; 3463 } catch(e) { 3464 if (taxcalc.debug) console.log("No uitext found in taxconfig"); 3465 var texts = []; 3466 } 3467 3468 taxcalc_config_uitext = {}; 3469 3470 for(t in uitexts) { 3471 var uitext = uitexts[t]; 3472 var uitext_lang = uitext.lang; 3473 for(tt in uitext) { 3474 uitext_item = uitext[tt]; 3475 taxcalc_config_uitext[ uitext_lang ] = taxcalc_config_uitext[ uitext_lang ] || {}; 3476 taxcalc_config_uitext[ uitext_lang ][ tt ] = uitext_item; 3477 } 3478 } 3479 3480 return taxcalc_config_uitext; 3481 3482 } 3483 3484 // taxcalc.config.tiers() 3485 taxcalc.config.tiers = function() { 3486 3487 var taxconfig = taxcalc.config.config(); 3488 3489 if (taxcalc_config_tiers) 3490 return taxcalc_config_tiers; 3491 3492 try { 3493 var tiers = taxconfig.tier; 3494 } catch(e) { 3495 if (taxcalc.debug) console.log("No tiers found in taxconfig"); 3496 var tiers = []; 3497 } 3498 3499 var sorted_tier_keys = []; 3500 var tiers_by_key = {}; 3501 3502 for(t in tiers) { 3503 var tier = tiers[t]; 3504 3505 // config ceiling -- required 3506 var config_ceiling = parseFloat(tier.ceiling); 3507 if (true) { 3508 if (isNaN(config_ceiling)) throw "ceiling is not a number: "+config_ceiling; 3509 if (!(config_ceiling > 0)) throw "ceiling is not greater than zero: "+config_ceiling; 3510 tier.config_ceiling = config_ceiling; 3511 delete tier.ceiling; 3512 } 3513 3514 // config percent -- required 3515 var config_percent = parseFloat(tier.percent); 3516 if (true) { 3517 if (isNaN(config_percent)) throw "percent is not a number: "+config_percent; 3518 if (!(config_percent >= 0)) throw "percent is not greater than or equal to zero: "+config_percent; 3519 if (!(config_percent <= 100)) throw "percent is not less than or equal to 100: "+config_percent; 3520 tier.config_percent = config_percent; 3521 delete tier.percent; 3522 } 3523 3524 // config floor -- optional 3525 var config_floor = parseFloat(tier.floor); 3526 if (!isNaN(config_floor)) { 3527 if (isNaN(config_floor)) throw "floor is not a number: "+config_floor; 3528 if (!(config_floor >= 0)) throw "floor is not greater than or equal to zero: "+config_floor; 3529 if (!(config_floor <= config_ceiling)) throw "floor is not less than or equal to ceiling: "+config_floor; 3530 tier.config_floor = config_floor; 3531 delete tier.floor; 3532 } 3533 3534 // config ratio -- optional 3535 var config_ratio = parseFloat(tier.ratio); 3536 if (!isNaN(config_ratio)) { 3537 if (isNaN(config_ratio)) throw "ratio is not a number: "+config_ratio; 3538 if (!(config_ratio >= 0.0)) throw "ratio is not greater than or equal to 1.0: "+config_ratio; 3539 if (!(config_ratio <= 1.0)) throw "ratio is not less than or equal to 1.0: "+config_ratio; 3540 tier.config_ratio = config_ratio; 3541 delete tier.ratio; 3542 } 3543 3544 // config maxcredit -- optional 3545 var config_maxcredit = parseFloat(tier.maxcredit); 3546 if (!isNaN(config_maxcredit)) { 3547 if (isNaN(config_maxcredit)) throw "maxcredit is not a number: "+config_maxcredit; 3548 if (!(config_maxcredit >= 0.0)) throw "maxcredit is not greater than or equal to 1.0: "+config_maxcredit; 3549 tier.config_maxcredit = config_maxcredit; 3550 delete tier.maxcredit; 3551 } 3552 3553 var tier_key = parseInt(tier.config_ceiling) 3554 tiers_by_key[tier_key] = tier; 3555 sorted_tier_keys.push(tier_key); 3556 } 3557 3558 sorted_tier_keys.sort(function(a, b) { return a - b; }); 3559 var prev_tier = null; 3560 var return_tiers = []; 3561 3562 if (taxcalc.debug) console.log({ 'sorted_tier_keys' : sorted_tier_keys }); 3563 3564 for(s in sorted_tier_keys) { 3565 var tier_key = sorted_tier_keys[s]; 3566 var tier = tiers_by_key[tier_key]; 3567 3568 if (taxcalc.debug) console.log({ 'tier-before': tier }); 3569 3570 // set gift ceiling 3571 tier.gift_ceiling = tier.config_ceiling; 3572 // set gift floor 3573 if (prev_tier === null) tier.gift_floor = 0.0; 3574 if (prev_tier !== null) tier.gift_floor = parseFloat(prev_tier.config_ceiling); 3575 // set gift size 3576 tier.gift_size = tier.gift_ceiling - tier.gift_floor; 3577 // set credit precent 3578 tier.credit_percent = tier.config_percent; 3579 // set credit ratio 3580 tier.credit_ratio = parseFloat(tier.config_percent) / 100.0; 3581 // set credit floor 3582 if (prev_tier === null) tier.credit_floor = 0.0; 3583 if (prev_tier !== null) tier.credit_floor = parseFloat(prev_tier.credit_ceiling); 3584 // set credit size 3585 if (!tier.config_maxcredit) tier.credit_size = parseFloat(tier.gift_size) * parseFloat(tier.credit_ratio); 3586 if (tier.config_maxcredit) tier.credit_size = parseFloat(tier.config_maxcredit) - parseFloat(tier.credit_floor); 3587 // set credit ceiling 3588 if (!tier.config_maxcredit) tier.credit_ceiling = tier.credit_floor + tier.credit_size; 3589 if (tier.config_maxcredit) tier.credit_ceiling = tier.config_maxcredit; 3590 3591 // config tests 3592 if (!isNaN(tier.config_floor)) 3593 if (tier.gift_floor != tier.config_floor) 3594 throw "gift_floor ("+tier.gift_floor+") does not match config_floor ("+tier.config_floor
3594+") " 3595 if (!isNaN(tier.config_ceiling)) 3596 if (tier.gift_ceiling != tier.config_ceiling) 3597 throw "gift_ceiling ("+tier.gift_ceiling+") does not match config_ceiling ("+tier.config_ceiling+") " 3598 if (!isNaN(tier.config_percent)) 3599 if (tier.credit_percent != tier.config_percent) 3600 throw "credit_percent ("+tier.credit_percent+") does not match config_percent ("+tier.config_percent+") " 3601 if (!isNaN(tier.config_ratio)) 3602 if (tier.credit_ratio != tier.config_ratio) 3603 throw "credit_ratio ("+tier.credit_ratio+") does not match config_ratio ("+tier.config_ratio+") " 3604 if (!isNaN(tier.config_maxcredit)) 3605 if (tier.credit_ceiling != tier.config_maxcredit) 3606 throw "credit_ceiling ("+tier.credit_ceiling+") does not match config_maxcredit ("+tier.config_maxcredit+") " 3607 3608 // prev tier tests 3609 if (prev_tier !== null) 3610 if (tier.gift_floor != prev_tier.gift_ceiling) 3611 throw "gift_floor ("+tier.gift_floor+") does not prev tier gift_ceiling ("+prev_tier.gift_ceiling+") " 3612 if (prev_tier !== null) 3613 if (tier.credit_floor != prev_tier.credit_ceiling) 3614 throw "credit_floor ("+tier.credit_floor+") does not prev tier credit_ceiling ("+prev_tier.credit_ceiling+") " 3615 3616 // greater than tests 3617 if (!(tier.gift_ceiling > tier.gift_floor)) 3618 throw "gift_ceiling ("+tier.gift_ceiling+") is not greater than gift_floor ("+prev_tier.gift_floor+") " 3619 if (!(tier.credit_ceiling > tier.credit_floor)) 3620 throw "credit_ceiling ("+tier.credit_ceiling+") is not greater than credit_floor ("+prev_tier.credit_floor+") " 3621 3622 if (taxcalc.debug) console.log({ 'tier-after': tier }); 3623 3624 // add to return tiers 3625 return_tiers.push(tier); 3626 3627 // set this tier as previous tier 3628 prev_tier = tier; 3629 3630 } 3631 3632 taxcalc_config_tiers = return_tiers; 3633 3634 return return_tiers; 3635 } 3636 3637 // 3638 // xndp_feature_taxcalc.math.js 3639 // 3640 3641 // init taxcalc.math 3642 taxcalc.math = taxcalc.math || {}; 3643 3644 taxcalc.math.calc_tax_back = function(amount,ytd) { 3645 // validate 3646 var amount = parseFloat(amount); 3647 var ytd = parseFloat(ytd); 3648 if (!isNaN(ytd)) amount += ytd; 3649 if (isNaN(amount)) amount = 0.0; 3650 if (taxcalc.debug) console.log('$'+amount); 3651 var tax_back = 0; 3652 var tiers = taxcalc.config.tiers(); 3653 for(t in tiers) { 3654 var tier = tiers[t]; 3655 if (amount >= tier.gift_floor) { 3656 var tier_amount = Math.min( 3657 amount - tier.gift_floor, 3658 tier.gift_size 3659 ); 3660 if (taxcalc.debug) console.log("+"+tier_amount); 3661 var tier_credit = Math.min( 3662 tier_amount * tier.credit_ratio, 3663 tier.credit_size 3664 ); 3665 tax_back += tier_credit; 3666 } 3667 } 3668 if (taxcalc.debug) console.log("="+tax_back); 3669 return tax_back; 3670 } 3671 3672 3673 3674})(window.taxcalc = window.taxcalc || {}); 3675</script>
3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696<div class="xndp-page-donate-error align-left 3697" style="display:none"> 3698 <div class="xndp-error-inner"> 3699 <div class="xndp-error-main"> 3700 3701 <div class="step-processing-error-holder step-holder" style="display: block;"> 3702 3703 <div class="notification notification-error notification-processing"> 3704 <i class="fa fa-times-circle-o"></i> 3705 <h1> Your contribution could not be authorized. </h1> 3706 </div> 3707 <div class="notification-container"> 3708 <h2 class="explain-title"> Please review your information. </h2> 3709 <p class="explain"> 3710You may have accidentally entered your credit card number or expiration date incorrectly. Possibly the address you provided does not match the billing address. If the contribution still does not process, contact your credit card company. 3711</p> 3712 </div> 3713 <div class="notification-container info-review"> 3714 <div class="update-info-billing tab-info"> 3715 <h3> Billing Information </h3> 3716 <span class="update-info xndp-js-return-to-step-2"><i class="fa fa-pencil"></i> Update </span> 3717 </div> 3718 <div class="asset--donate-contact-billing-filled"> 3719 <div class="your-information"> 3720 <div class="grid-don grid-don-6"> 3721 <div class="name"> 3722 <span class="firstname"></span> <span class="lastname"></span> 3723 </div> 3724 <div class="address"> 3725 <span class="addr2"></span><span class="address1"></span><br><span class="city"></span>, <span class="region"></span><br><span class="postal"></span> 3726 </div> 3727 </div><!-- 3728 --><div class="grid-don grid-don-6"> 3729 <div class="email-container"> 3730 <label class="email-lbl"> Email : </label><span class="email"></span> 3731 </div> 3732 <div class="phone-container"> 3733 <label class="email-lbl"> Phone : </label><span class="phone"></span> 3734 </div> 3735 <div class="change-info tab-info"><i class="fa fa-pencil"></i> Update </div> 3736 </div> 3737 </div> 3738 </div> </div> 3739 <div class="notification-container info-review last"> 3740 <div class="update-info-payment tab-info"> 3741 <h3> Payment Information </h3> 3742 <span class="update-info xndp-js-return-to-step-3"><i class="fa fa-pencil"></i> Update </span> 3743 </div> 3744 <dl class="payment-info"><label> Name on credit card : <dt class="name"><span class="firstname"></span> <span class="lastname"></span></dt></label> 3745 <label style="font-weight:normal;color:#aaa"> Re-enter credit card number to try again </label> 3746 </dl></div> 3747 </div> 3748 </div> 3749 </div> 3750</div> 3751 3752<style> 3753 /* thanks */ 3754 .xndp-page-donate-error .share-btn-holder { 3755 display: -webkit-box; 3756 display: -ms-flexbox; 3757 display: flex; 3758 } 3759 .xndp-page-donate-error .share-btn-holder > * { 3760 -ms-flex-preferred-size:50%; 3761 flex-basis:50%; 3762 } 3763 .xndp-page-donate-error .share-btn-holder > *:first-child { 3764 padding-right:10px; 3765 } 3766 .xndp-page-donate-error .share-btn-holder > *:last-child { 3767 padding-left:10px; 3768 } 3769 .xndp-page-donate-error { 3770 display:-webkit-box; 3771 display:-ms-flexbox; 3772 display:flex; 3773 -webkit-box-pack: center; 3774 -ms-flex-pack: center; 3775 justify-content: center; 3776 width:100%; 3777 -webkit-box-flex:1; 3778 -ms-flex-positive:1; 3779 flex-grow:1 3780 } 3781 .xndp-page-donate-error .xndp-error-inner { 3782 max-width:1200px; 3783 width:100%; 3784 } 3785 /* donate.html */ 3786 .xndp-page-donate-error ul.ak-err { 3787 display: none !important; 3788 } 3789 .xndp-page-donate-error .xndp-hide-form { 3790 display:none; 3791 } 3792 3793 @media (min-width: 750px) { 3794 .xndp-page-donate-error .xndp-error-form { 3795 background:white; 3796 width: 530px; 3797 margin-top:40px; 3798 margin-bottom:30px; 3799 padding-left:30px; 3800 padding-right:30px; 3801 } 3802 .xndp-page-donate-error .xndp-error-main { 3803 background:white; 3804 border-radius:6px; 3805 width:100%; 3806 } 3807 .xndp-page-donate-error .xndp-error-inner { 3808 display: -webkit-box; 3809 display: -ms-flexbox; 3810 display: flex; 3811 -webkit-box-orient: vertical; 3812 -webkit-box-direction: normal; 3813 -ms-flex-direction: column; 3814 flex-direction: column; 3815 -webkit-box-pack:center; 3816 -ms-flex-pack:center; 3817 justify-content:center; 3818 padding:50px; 3819 }
3820 .xndp-page-donate-error.align-left .xndp-error-inner { 3821 -webkit-box-align: start; 3822 -ms-flex-align: start; 3823 align-items: flex-start; 3824 } 3825 .xndp-page-donate-error.align-right .xndp-error-inner { 3826 -webkit-box-align: end; 3827 -ms-flex-align: end; 3828 align-items: flex-end; 3829 } 3830 .xndp-page-donate-error.align-center .xndp-error-inner { 3831 -webkit-box-align: center; 3832 -ms-flex-align: center; 3833 align-items: center; 3834 } 3835 } 3836 .xndp-page-donate-error .your-information { 3837 display: -webkit-box; 3838 display: -ms-flexbox; 3839 display: flex; 3840 /* padding:30px; */ 3841 } 3842 .xndp-page-donate-error .your-info-colummn { 3843 -ms-flex-preferred-size:100%; 3844 flex-basis:100%; 3845 text-align:left; 3846 } 3847 @media(min-width:750px) { 3848 3849 .xndp-page-donate-error .your-info-colummn { 3850 flex-basis:50%; 3851 } 3852 } 3853 3854 .xndp-page-donate-error .step-processing-error-holder h1 { 3855 display: inline-block; 3856 font-size: 24px; 3857 line-height: 40px; 3858 margin: 0 0 0.25em 45px; 3859 } 3860 .xndp-page-donate-error .step-processing-error-holder .your-information-title { 3861 font-size: 24px; 3862 text-align: center; 3863 margin: 10px 0; 3864 } 3865 3866 .xndp-page-donate-error .step-processing-error-holder .notification { 3867 border-bottom: 3px solid #F37021; 3868 padding: 40px 20px 10px; 3869 } 3870 .xndp-page-donate-error .step-processing-error-holder .notification .fa { 3871 display: inline-block; 3872 font-size: 40px; 3873 margin-right: 10px; 3874 position: absolute; 3875 } 3876 /* .xndp-page-donate-error .step-processing-error-holder .asset--donate-contact-billing-filled { 3877 background-color: #F8F8F8; 3878 border-bottom-left-radius: 6px; 3879 border-bottom-right-radius: 6px; 3880 padding: 20px 30px; 3881 } */ 3882 .xndp-page-donate-error .step-processing-error-holder .notification.notification-error { 3883 background-color: rgba(196, 17, 52, 0.1); 3884 border-color: #c41134; 3885 color: #c41134; 3886 } 3887 .xndp-page-donate-error .step-processing-error-holder .notification.notification-warning { 3888 background-color: rgba(243, 112, 33, 0.1); 3889 border-color: #F37021; 3890 color: #F37021; 3891 } 3892 .xndp-page-donate-error .step-processing-error-holder .explain { 3893 margin: 0; 3894 } 3895 .xndp-page-donate-error .step-processing-error-holder .explain-title { 3896 color: #c41134; 3897 } 3898 .xndp-page-donate-error .step-processing-error-holder .notification-container { 3899 padding: 15px 30px; 3900 color: #58595b; 3901 } 3902 .xndp-page-donate-error .step-processing-error-holder .notification-container.info-review { 3903 background-color: #fff; 3904 } 3905 .xndp-page-donate-error .step-processing-error-holder .notification-container.info-review .payment-info{ 3906 background-color: #fff; 3907 } 3908 .xndp-page-donate-error .step-processing-error-holder .payment-info label { 3909 font-weight: bold; 3910 display: block; 3911 } 3912 .xndp-page-donate-error .step-processing-error-holder .payment-info { 3913 padding: 0 5px; 3914 } 3915 .xndp-page-donate-error .step-processing-error-holder .payment-info dt, 3916 .xndp-page-donate-error .step-processing-error-holder .payment-info dd { 3917 display: inline; 3918 font-weight: lighter; 3919 } 3920 .xndp-page-donate-error .step-processing-error-holder .thanks-para { 3921 padding: 0 65px; 3922 text-align: left; 3923 } 3924 3925 .xndp-page-donate-error .step-processing-error-holder .donation-made { 3926 overflow: auto; 3927 text-align: center; 3928 } 3929 .xndp-page-donate-error .step-processing-error-holder .donation-made h3 { 3930 color: #999; 3931 } 3932 .xndp-page-donate-error .step-processing-error-holder .donation-made .thanks-para .current-don-cont { 3933 font-size: 16px; 3934 color: #58595b; 3935 margin: 0; 3936 3937 } 3938 .xndp-page-donate-error .step-processing-error-holder .donation-made .current-don-cont { 3939 margin: 20px; 3940 color: #60b94d; 3941 font-size: 46px; 3942 font-weight: bolder; 3943 } 3944 .xndp-page-donate-error .step-processing-error-holder .donation-made-footer { 3945 background-color: rgba(96, 185, 77, 0.1); 3946 color: #60b94d; 3947 padding: 10px 0; 3948 }
3949 .xndp-page-donate-error .step-processing-error-holder .remaining-don { 3950 font-weight: bolder; 3951 } 3952 .xndp-page-donate-error .step-processing-error-holder .current-don { 3953 font-weight: bolder; 3954 } 3955 .xndp-page-donate-error .step-processing-error-holder .change-info { 3956 display: none; 3957 } 3958 3959 .xndp-page-donate-error .step-processing-error-holder .asterix-disclaimer { 3960 font-size: 14px; 3961 color: #808285; 3962 margin: 0.5em; 3963 } 3964 3965 .xndp-page-donate-error .step-processing-error-holder .info-review h3 { 3966 font-size: 120%; 3967 display: inline-block; 3968 color: #aaa; 3969 } 3970 .xndp-page-donate-error .step-processing-error-holder .update-info { 3971 background-color: #F37021; 3972 border-radius: 6px; 3973 color: #fff; 3974 cursor: pointer; 3975 text-align: right; 3976 margin: 1em 0; 3977 float: right; 3978 font-size: 80%; 3979 padding: 10px; 3980 } 3981 .xndp-page-donate-error .step-processing-error-holder .update-info:hover { 3982 text-decoration: underline; 3983 } 3984 .xndp-page-donate-error .step-processing-error-holder .info-review { 3985 border-top: 1px solid #eee; 3986 } 3987 .xndp-page-donate-error .step-processing-error-holdern.info-review.last { 3988 border-bottom: 1px solid #eee; 3989 padding-bottom: 30px; 3990 } 3991 3992 .xndp-page-donate-error .step-processing-error-holder .next-btn { 3993 background-color: #F37021; 3994 background-position: 6% 50%; 3995 background-size: auto 70%; 3996 background-repeat: no-repeat; 3997 border-radius: 6px; 3998 color: #fff; 3999 display: inline-block; 4000 font-size: 20px; 4001 margin: 12px 0 0; 4002 padding: 18px 12px 18px 52px; 4003 text-align: center; 4004 width: 100%; 4005 } 4006 .xndp-page-donate-error .step-processing-error-holder .next-btn.donate { 4007 position: relative; 4008 } 4009 .xndp-page-donate-error .step-processing-error-holder .next-btn.donate .fa { 4010 position: absolute; 4011 left: 6%; 4012 top: 0; 4013 font-size: 35px; 4014 vertical-align: middle; 4015 line-height: 42px; 4016 color: #F37021; 4017 background-color: #fff; 4018 border-radius: 45px; 4019 width: 46px; 4020 margin: 10px 0; 4021 } 4022 .xndp-page-donate-error .step-processing-error-holder .membership-review { 4023 border-top: 1px solid #fff; 4024 } 4025 .xndp-page-donate-error .step-processing-error-holder .membership-review .membership-fee { 4026 font-weight: bolder; 4027 } 4028 .xndp-page-donate-error .step-processing-error-holder .donation-review,
4029 .xndp-page-donate-error .step-processing-error-holder .membership-review { 4030 background-color: #EEEEEE; 4031 color: #58595B; 4032 padding: 10px 20px; 4033 font-size: 24px; 4034 } 4035 .xndp-page-donate-error .step-processing-error-holder .donation-review.ytd-review { 4036 border-bottom-left-radius: 6px; 4037 border-bottom-right-radius: 6px; 4038 } 4039 .xndp-page-donate-error .step-processing-error-holder .grid { 4040 display: inline-block; 4041 } 4042 .xndp-page-donate-error .step-processing-error-holder .grid-6 { 4043 width: 100%; 4044 vertical-align: top; 4045 } 4046 .xndp-page-donate-error .step-processing-error-holder .after-donate-thanks { 4047 padding: 20px; 4048 } 4049 .xndp-page-donate-error .step-processing-error-holder .after-donate-thanks p { 4050 color: #58595B; 4051 text-align: center; 4052 font-size: 18px; 4053 margin: 0; 4054 } 4055 .xndp-page-donate-error .step-processing-error-holder .after-donate-thanks .ty-title { 4056 font-size: 20px; 4057 margin: 10px 0; 4058 } 4059 4060 @media(min-width: 750px) { 4061 .xndp-page-donate-error .step-processing-error-holder .after-donate-thanks { 4062 padding: 50px; 4063 } 4064 .xndp-page-donate-error .step-processing-error-holder .next-btn { 4065 width: 32%; 4066 margin-right: 2%; 4067 } 4068 .xndp-page-donate-error .step-processing-error-holder .next-btn:last-child { 4069 margin-right: 0; 4070 } 4071 .xndp-page-donate-error .step-processing-error-holder .donation-review, 4072 .xndp-page-donate-error .step-processing-error-holder .membership-review { 4073 padding: 10px 35px; 4074 } 4075 .xndp-page-donate-error .step-processing-error-holder .grid-6 { 4076 width: 50%; 4077 } 4078 .xndp-page-donate-error .step-processing-error-holder .after-donate-thanks p { 4079 font-size: 24px; 4080 } 4081 .xndp-page-donate-error .step-processing-error-holder .after-donate-thanks .ty-title { 4082 font-size: 36px; 4083 margin: 20px 0; 4084 } 4085 } 4086} 4087.xndp-page-donate-error .asset--donate-contact-billing-filled { 4088 position: relative; 4089 text-align: left; 4090 color: #58595b; 4091} 4092 4093.xndp-page-donate-error .asset--donate-contact-billing-filled .name { 4094 font-weight: bolder; 4095 font-size: 120%; 4096} 4097 4098.xndp-page-donate-error .asset--donate-contact-billing-filled label { 4099 font-weight: bolder; 4100} 4101 4102.xndp-page-donate-error .asset--donate-contact-billing-filled .postalcode { 4103 text-transform: uppercase; 4104} 4105.xndp-page-donate-error .asset--donate-contact-billing-filled .change-info { 4106 cursor: pointer; 4107 color: #888; 4108 text-decoration: underline; 4109 margin-top: 5px; 4110 text-align: left 4111} 4112 4113.xndp-page-donate-error .asset--donate-contact-billing-filled .grid-don { 4114 display: inline-block; 4115} 4116.xndp-page-donate-error .asset--donate-contact-billing-filled .grid-don-6 { 4117 width: 100%; 4118 vertical-align: top; 4119} 4120.xndp-page-donate-error .notification-container.info-review .asset--donate-contact-billing-filled { 4121 background-color: #fff; 4122} 4123 4124@media(min-width: 750px) {
4125 .xndp-page-donate-error .asset--donate-contact-billing-filled .grid-don-6 { 4126 width: 50%; 4127 } 4128} 4129 4130</style> 4131 4132<div class="xndp-page-donate align-left 4133 "> 4134 <div class="xndp-donate-inner"> 4135 <form id="act" name="act" class="xndp-donate-form ak-donate-three-step" method="POST" action="/act/" accept-charset="utf-8"> 4136 4137 <input type="hidden" name="page" value="default"> 4138 <input type="hidden" name="orig_akid" value="None"> 4139 4140 <div class="xndp-donate-flex-container" ak-class="ak-grid-row"> 4141 4142 4143 <div class="xndp-donate-header" ak-class="ak-grid-col ak-grid-col-4-of-12"> 4144 4145 <div class="xndp-ak-text"> 4146 4147 <h1><span style="color: #ffffff;">Making life better for you and your family</span></h1> 4148<p><span style="color: #ffffff;">Every little bit helps us move forward.</span></p> 4149 </div> 4150 <div> 4151</div> 4152 </div> 4153 4154 4155 4156 4157 4158 <div class="xndp-donate-main xndp-crosssite-iframe-resize-area" ak-class="ak-grid-col ak-grid-col-8-of-12"> 4159 <div ak-class="ak-field-box"> 4160 4161 <!--Add .ak-donate-three-step for three-step--> 4162 <div class="xndp-donate-menu ak-donate-menu ak-donate-three-step-visible xndp-checkout-hide"> 4163 <span class="xndp-steps-title"> Chip in today </span> 4164 <label class="ak-donate-step ak-donate-step-1"> 4165 <span>Amount</span> 4166 <input type="radio" id="ak-donate-step-1" name="ak-donate-step" value="1" checked="checked"> 4167 <div class="ak-step-number">1</div> 4168 </label> 4169 <label class="ak-donate-step ak-donate-step-2"> 4170 <span>Name</span> 4171 <input type="radio" id="ak-donate-step-2" name="ak-donate-step" value="2"> 4172 <div class="ak-step-number">2</div> 4173 </label> 4174 <label class="ak-donate-step ak-donate-step-3"> 4175 <span>Finish</span> 4176 <input type="radio" id="ak-donate-step-3" name="ak-donate-step" value="3"> 4177 <div class="ak-step-number">3</div> 4178 </label> 4179 </div> 4180 4181 4182 4183 <div id="ak-donation-details" class="xndp-donate-details xak-errs-below"> 4184 4185 4186 4187 <div class="xndp-watermark-holder"> 4188 <div class="xndp-amount-watermark">$105</div> 4189 <div class="xndp-secure-watermark"><i class="fa fa-lock"></i> Secure </div> 4190 </div> 4191 4192 <div class="xndp-membership-hide"> 4193 <div id="ak-product-list" class="ak-donate-area-step-1 ak-errs-below"> 4194 4195 </div><!--product-list--> 4196 </div> 4197 4198 <div id="ak-candidate-list" class="ak-donate-area-step-1 ak-errs-below"> 4199 4200 </div> 4201 4202 4203 4204 <div class="ak-donate-area-step-1 xndp-donate-step-1-title xndp-ak-text xndp-checkout-hide"> 4205 <h2> Select an amount <span class="xndp-recurring-show" style="display:none">(monthly)</span></h2> 4206 </div> 4207 4208 <div id="ak-amount-list" class="xndp-amount-list ak-err-above ak-donate-area-step-1 xndp-checkout-hide"> 4209 4210 4211 4212 <div class="xndp-amount-wrapper ak-amount-wrapper"> 4213 <ul class="ak-unstyled xndp-amount-list"> 4214 4215 4216 4217 <li class="xndp-amount-item xndp-amount-item-1"> 4218 <label for="id_amount_5" class="ak-btn xndp-amount-btn"> 4219 <input type="radio" id="id_amount_5" value="5" class="ak-amount-radio-button" name="amount" checked /> 4220 <span class="ak-currency-sym"><span class="xndp-currency-sym"> 4221$ 4222</span><!-- ak.wysiwyg=code --></span> 4223 <span class="xndp-amount-num">5</span> 4224 4225 </label> 4226 </li> 4227 4228 4229 4230 <li class="xndp-amount-item xndp-amount-item-2"> 4231 <label for="id_amount_25" class="ak-btn xndp-amount-btn"> 4232 <input type="radio" id="id_amount_25" value="25" class="ak-amount-radio-button" name="amount" /> 4233 <span class="ak-currency-sym"><span class="xndp-currency-sym"> 4234$ 4235</span><!-- ak.wysiwyg=code --></span> 4236 <span class="xndp-amount-num">25</span> 4237 4238 </label> 4239 </li> 4240 4241 4242 4243 <li class="xndp-amount-item xndp-amount-item-3"> 4244 <label for="id_amount_50" class="ak-btn xndp-amount-btn"> 4245 <input type="radio" id="id_amount_50" value="50" class="ak-amount-radio-button" name="amount" /> 4246 <span class="ak-currency-sym"><span class="xndp-currency-sym"> 4247$ 4248</span><!-- ak.wysiwyg=code --></span> 4249 <span class="xndp-amount-num">50</span> 4250 4251 </label> 4252 </li> 4253 4254 4255 4256 <li class="xndp-amount-item xndp-amount-item-4"> 4257 <label for="id_amount_100" class="ak-btn xndp-amount-btn"> 4258 <input type="radio" id="id_amount_100" value="100" class="ak-amount-radio-button" name="amount" /> 4259 <span class="ak-currency-sym"><span class="xndp-currency-sym"> 4260$ 4261</span><!-- ak.wysiwyg=code --></span> 4262 <span class="xndp-amount-num">100</span> 4263 4264 </label> 4265 </li> 4266 4267 4268 4269 <li class="xndp-amount-item xndp-amount-item-5"> 4270 <label for="id_amount_250" class="ak-btn xndp-amount-btn"> 4271 <input type="radio" id="id_amount_250" value="250" class="ak-amount-radio-button" name="amount" /> 4272 <span class="ak-currency-sym"><span class="xndp-currency-sym"> 4273$ 4274</span><!-- ak.wysiwyg=code --></span> 4275 <span class="xndp-amount-num">250</span> 4276 4277 </label> 4278 </li> 4279 4280 4281 4282 <li class="xndp-amount-item xndp-amount-item-6"> 4283 <label for="id_amount_500" class="ak-btn xndp-amount-btn"> 4284 <input type="radio" id="id_amount_500" value="500" class="ak-amount-radio-button" name="amount" /> 4285 <span class="ak-currency-sym"><span class="xndp-currency-sym"> 4286$ 4287</span><!-- ak.wysiwyg=code --></span> 4288 <span class="xndp-amount-num">500</span> 4289 4290 </label> 4291 </li> 4292 4293 4294 4295 <li class="xndp-amount-item xndp-amount-item-7"> 4296 <label for="id_amount_1000" class="ak-btn xndp-amount-btn"> 4297 <input type="radio" id="id_amount_1000" value="1000" class="ak-amount-radio-button" name="amount" /> 4298 <span class="ak-currency-sym"><span class="xndp-currency-sym"> 4299$ 4300</span><!-- ak.wysiwyg=code --></span> 4301 <span class="xndp-amount-num">1,000</span> 4302 4303 </label> 4304 </li> 4305 4306 4307 4308 <li id="ak-other-amount-container" class="xndp-amount-other-holder"> 4309 <noscript><input type="radio" value="" class="ak-amount-radio-button" name="amount"></noscript> 4310 <label for="ak-other-amount-field" class="ak-btn xndp-amount-other-inner"> 4311 <span class="ak-currency-sym"><span class="xndp-currency-sym"> 4312$ 4313</span><!-- ak.wysiwyg=code --></span>
4314 <span class="xndp-amount-other-infield-label">Other amount</span> 4315 <input type="text" id="ak-other-amount-field" name="amount_other" size="3" class="xndp-ampunt-other-input" /> 4316 4317 </label> 4318 </li> 4319 4320 4321 </ul> 4322 </div> 4323 </div> 4324 4325 <div class="xndp-membership-hide"> 4326 <div id="ak-donation-total-div"></div> 4327
4327<script nonce="7199847af64d558f3d181de59088025e" type="text/ak-template" for="ak-donation-total-div"> 4328 [% if (has_products || has_candidates) { %] 4329 <p class="ak-donation-total ak-donate-area-step-1"> 4330 <label for="amount"> 4331 Total Amount 4332 </label> 4333 <span class="ak-currency-sym"><span class="xndp-currency-sym"> 4334$ 4335</span><!-- ak.wysiwyg=code --></span><span class="ak-donation-total-amount"></span> 4336 4337 </p> 4338 [% } 4339 setTimeout(update_total, 0); 4340 %] 4341 </script>
4341 4342 </div> 4343 4344 4345 4346 <div id="ak-recurring-type" class="ak-donate-area-step-1"> 4347 <span> 4348 <input type="radio" name="donation_type" id="id_donation_type_single" value="single" checked> 4349 <label for="id_donation_type_single"> One-time</label> 4350 </span> 4351 <span> 4352 <input type="radio" name="donation_type" id="id_donation_type_recurring" value="recurring"> 4353 <label for="id_donation_type_recurring"> Monthly</label> 4354 4355 </span> 4356 </div> 4357 4358 4359 4360 4361 <div id="ak-donation-contact" class="ak-styled-fields ak-donate-area-step-2 ak-errs-below xndp-checkout-hide" ak-class="ak-margin-top-1"> 4362 4363 <ul id="ak-errors"></ul> 4364 <div style="display: none"><div id="known_user"> 4365 Not <span id="known_user_name"></span>? <a href="?" data-nonced-handlers data-onclick-7199847af64d558f3d181de59088025e="return actionkit.forms.logOut()">Click here.</a> 4366 </div></div> 4367 <div id="unknown_user"></div> 4368 4369 <h4 class="ak-donate-three-step-hidden">Billing Address</h4> 4370 4371 <div class="xndp-fields-list ak-errs-below test2" ak-class="ak-labels-overlaid"> 4372 4373 <div class="xndp-field-holder xndp-field-firstname validate-holder"> 4374 <label for="id_first_name"> First name </label> 4375 <div class="xndp-input-holder"> 4376 <input id="id_first_name" type="text" name="first_name" class="validate-required"> 4377 <input type="hidden" name="required" value="first_name"> 4378 </div> 4379 </div> 4380 <div class="xndp-field-holder xndp-field-lastname validate-holder"> 4381 <label for="id_last_name"> Last name </label> 4382 <div class="xndp-input-holder"> 4383 <input id="id_last_name" type="text" name="last_name" class="validate-required"> 4384 <input type="hidden" name="required" value="last_name"> 4385 </div> 4386 </div> 4387 4388 4389 <div class="xndp-field-holder xndp-field-address1 validate-holder"> 4390 <label for="id_address1"> Address </label> 4391 <div class="xndp-input-holder"> 4392 <input id="id_address1" type="text" name="address1" class="validate-required"> 4393 </div> 4394 </div> 4395 <div class="xndp-field-holder xndp-field-address2 validate-holder"> 4396 <label for="id_address2" style="display:none">Address 2 (optional)</label> 4397 <div class="xndp-input-holder"> 4398 <input id="id_address2" type="text" name="address2"> 4399 </div> 4400 </div> 4401 4402 <div class="xndp-field-holder xndp-field-city validate-holder"> 4403 <label for="id_city"> City </label> 4404 <div class="xndp-input-holder"> 4405 <input id="id_city" type="text" name="city" class="validate-required"> 4406 </div> 4407 </div> 4408 <div class="xndp-field-holder xndp-field-state validate-holder ak-us-billing-fields"> 4409 <input type="hidden" name="required" value="state"> 4410 <label for="id_state">State</label> 4411 <select name="state" id="id_state" > 4412 <option value="">State</option> 4413 <option value="AL">Alabama</option> 4414 <option value="AK">Alaska</option> 4415 <option value="AZ">Arizona</option> 4416 <option value="AR">Arkansas</option> 4417 <option value="CA">California</option> 4418 <option value="CO">Colorado</option> 4419 <option value="CT">Connecticut</option> 4420 <option value="DE">Delaware</option> 4421 <option value="DC">District of Columbia</option> 4422 <option value="FL">Florida</option> 4423 <option value="GA">Georgia</option> 4424 <option value="HI">Hawaii</option> 4425 <option value="ID">Idaho</option> 4426 <option value="IL">Illinois</option> 4427 <option value="IN">Indiana</option> 4428 <option value="IA">Iowa</option> 4429 <option value="KS">Kansas</option> 4430 <option value="KY">Kentucky</option> 4431 <option value="LA">Louisiana</option> 4432 <option value="ME">Maine</option> 4433 <option value="MD">Maryland</option> 4434 <option value="MA">Massachusetts</option> 4435 <option value="MI">Michigan</option> 4436 <option value="MN">Minnesota</option> 4437 <option value="MS">Mississippi</option> 4438 <option value="MO">Missouri</option> 4439 <option value="MT">Montana</option> 4440 <option value="NE">Nebraska</option> 4441 <option value="NV">Nevada</option> 4442 <option value="NH">New Hampshire</option> 4443 <option value="NJ">New Jersey</option> 4444 <option value="NM">New Mexico</option> 4445 <option value="NY">New York</option> 4446 <option value="NC">North Carolina</option> 4447 <option value="ND">North Dakota</option> 4448 <option value="OH">Ohio</option> 4449 <option value="OK">Oklahoma</option> 4450 <option value="OR">Oregon</option> 4451 <option value="PA">Pennsylvania</option> 4452 <option value="RI">Rhode Island</option> 4453 <option value="SC">South Carolina</option> 4454 <option value="SD">South Dakota</option> 4455 <option value="TN">Tennessee</option> 4456 <option value="TX">Texas</option> 4457 <option value="UT">Utah</option> 4458 <option value="VT">Vermont</option> 4459 <option value="VA">Virginia</option> 4460 <option value="WA">Washington</option> 4461 <option value="DC">Washington, D.C.</option> 4462 <option value="WV">West Virginia</option> 4463 <option value="WI">Wisconsin</option> 4464 <option value="WY">Wyoming</option> 4465 4466 4467</select> 4468 4469 4470 </div> 4471 <div class="xndp-field-holder xndp-field-zip validate-holder ak-us-billing-fields"> 4472 <input type="hidden" name="required" value="zip"> 4473 <label for="id_zip">Zip</label> 4474 <input id="id_zip" type="text" name="zip" maxlength="5" size="5"> 4475 </div> 4476 4477 <div class="xndp-field-holder xndp-field-postalcode validate-holder"> 4478 <label for="id_postal"> Postal code </label> 4479 <div class="xndp-input-holder"> 4480 <input id="id_postal" type="text" name="postal" size="10" class="validate-required validate-postalcode"> 4481 <input type="hidden" name="required" value="postal"> 4482 </div> 4483 </div> 4484 <div class="xndp-field-holder xndp-field-region validate-holder" style="display:none"> 4485 <label for="id_region">Region</label> 4486 <div class="xndp-input-holder"> 4487 <input id="id_region" type="text" name="region" size="20"> 4488 </div> 4489 </div> 4490 <div class="xndp-field-holder xndp-field-country validate-holder" style="display:none"> 4491 <label for="id_country">Country</label> 4492 4493 4494 4495<input type="hidden" name="country" id="id_country" value="Canada" /> 4496 4497 4498 4499 4500 </div> 4501 4502 4503<div class="ak-privacy ak-errs-below"> 4504</div> 4505 4506 4507 4508 4509 <div class="xndp-field-holder xndp-field-email validate-holder"> 4510 <label class="required" for="id_email"> Email </label> 4511 <div class="xndp-input-holder"> 4512 <input id="id_email" type="text" name="email" class="validate-required validate-email"> 4513 </div> 4514 </div> 4515 <div class="xndp-field-holder xndp-field-phone validate-holder"> 4516 <label class="required" for="id_phone"> Phone </label> 4517 <div class="xndp-input-holder"> 4518 <input id="id_phone" type="text" name="phone" class="validate-required validate-phone"> 4519 <input type="hidden" name="required" value="phone"> 4520 </div> 4521 </div> 4522 </div> <!-- labels overlaid (billing address) --> 4523 4524 4525 4526 4527 4528 </div> <!-- donation contact --> 4529 4530 <div class="ak-labels-above ak-styled-fields ak-donate-area-step-3 ak-errs-below"> 4531 4532 4533 <div class="xndp-fields-list cc_payment_options"> 4534 <div id="ak-fieldbox-card_num" class="xndp-field-holder xndp-field-cardnum val
4534idate-holder"> 4535 <label for="ak-card_num"> Credit card # </label> 4536 <div class="xndp-input-holder"> 4537 <input type="hidden" name="required" value="card_num" id="ak-card_num-required"> 4538 <input id="ak-card_num" type="text" name="card_num" class="xndp-field-hide-following-input"> 4539 <div id="ak-card_num-hosted" class="hosted-field xndp-field-input"></div> 4540 </div> 4541 </div> 4542 <div id="ak-fieldbox-exp_date" class="xndp-field-holder xndp-field-cardexp validate-holder"> 4543 <input type="hidden" name="required" value="exp_date_month" id="ak-exp_date_month-required"> 4544 <label for="ak-exp_date_month"> Expiration date </label> 4545 <div class="xndp-input-holder"> 4546 <select id="ak-exp_date_month" type="text" name="exp_date_month"> 4547 <option value="">MM</option> 4548 <option value="01">01</option> 4549 <option value="02">02</option> 4550 <option value="03">03</option> 4551 <option value="04">04</option> 4552 <option value="05">05</option> 4553 <option value="06">06</option> 4554 <option value="07">07</option> 4555 <option value="08">08</option> 4556 <option value="09">09</option> 4557 <option value="10">10</option> 4558 <option value="11">11</option> 4559 <option value="12">12</option> 4560 </select> 4561 <input type="hidden" name="required" value="exp_date_year" id="ak-exp_date_year-required"> 4562 <select id="ak-exp_date_year" type="text" name="exp_date_year" class="xndp-field-hide-following-input"> 4563 <option value="">YYYY</option> 4564 4565 <option value="26">2026</option> 4566 4567 <option value="27">2027</option> 4568 4569 <option value="28">2028</option> 4570 4571 <option value="29">2029</option> 4572 4573 <option value="30">2030</option> 4574 4575 <option value="31">2031</option> 4576 4577 <option value="32">2032</option> 4578 4579 <option value="33">2033</option> 4580 4581 <option value="34">2034</option> 4582 4583 <option value="35">2035</option> 4584 4585 <option value="36">2036</option> 4586 4587 <option value="37">2037</option> 4588 4589 <option value="38">2038</option> 4590 4591 <option value="39">2039</option> 4592 4593 <option value="40">2040</option> 4594 4595 <option value="41">2041</option> 4596 4597 <option value="42">2042</option> 4598 4599 <option value="43">2043</option> 4600 4601 <option value="44">2044</option> 4602 4603 <option value="45">2045</option> 4604 4605 <option value="46">2046</option> 4606 4607 </select> 4608 <div id="ak-exp_date-hosted" class="hosted-field xndp-field-input"></div> 4609 </div> 4610 </div> 4611 <div id="ak-fieldbox-card_code" class="xndp-field-holder xndp-field-cardcode validate-holder"> 4612 <input type="hidden" name="required" value="card_code" id="ak-card_code-required"> 4613 <label for="ak-card_code">
4613 Verification code </label> 4614 <div class="xndp-input-holder"> 4615 <input id="ak-card_code" type="text" name="card_code" size="4" class="xndp-field-hide-following-input"> 4616 <div id="ak-card_code-hosted" class="hosted-field xndp-field-input"></div> 4617 </div> 4618 </div> 4619 </div> 4620 4621 4622 </div><!--ak-styled-fields--> 4623 4624 <div class="ak-donate-area-step-3 xndp-checkout-hide"> 4625 4626 4627 4628 4629 4630 4631<div class="xndp-legal-confirm-checkbox"><!-- 4632 --><div class="legalconfirm-holder checkbox-holder validate-holder qd-hide xndp-checkout-hide"><!-- 4633 --><label class="legalconfirm-beforefield-label checkbox-beforefield-label" for="legalconfirm-input"></label><!-- 4634 --><div class="legalconfirm-input-holder checkbox-input-holder"><!-- 4635 --><input class="legalconfirm-input checkbox-input validate-required" id="legalconfirm-input" type="checkbox" name="legal_confirm" checked><!-- 4636 --><label class="legalconfirm-box-label checkbox-box-label" for="legalconfirm-input"></label><!-- 4637 --><span class="legalconfirm-status checkbox-status validate-status" style="cursor: pointer;"><span class="legalconfirm-status-message checkbox-status-message validate-status-message"></span><!-- 4638 --></span></div><!-- 4639 --><label class="legalconfirm-afterfield-label checkbox-afterfield-label" for="legalconfirm-input"> 4640 I confirm that I am a resident of Nova Scotia and that I am making this contribution with my personal account and not a corporate account. 4641 </label><!-- 4642 --></div><!-- 4643--></div> 4644 4645<style> 4646 .xndp-legal-confirm-checkbox { 4647 padding-top:20px; 4648 } 4649 .xndp-legal-confirm-checkbox label > *:first-child { 4650 margin-top:0; 4651 } 4652 .xndp-legal-confirm-checkbox label > *:last-child { 4653 margin-bottom:0; 4654 } 4655 .xndp-legal-confirm-checkbox .checkbox-input { 4656 opacity:0; 4657 position: absolute; 4658 } 4659 .xndp-legal-confirm-checkbox .checkbox-input-holder { 4660 display:inline-block; 4661 } 4662 .xndp-legal-confirm-checkbox .checkbox-box-label { 4663 display:inline-block; 4664 vertical-align:top; 4665 background:#fff; 4666 background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFQAAABICAYAAABof9IhAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplZTU1MzJhNC0zMzNjLTQ2N2MtYWJhNi0wNTc3MDdhNWZkY2UiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTdDOTg0RDA0Njc1MTFFNDhCRUI4QjhFMURGRjRDRDEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTdDOTg0Q0Y0Njc1MTFFNDhCRUI4QjhFMURGRjRDRDEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YWQ5Njk1NWQtZWYyMi00NjBlLWI4NzMtYWY5ZTcwYTUxNjg2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmVlNTUzMmE0LTMzM2MtNDY3Yy1hYmE2LTA1NzcwN2E1ZmRjZSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnyiIDkAAAHUSURBVHja7NwxTgJBFMbxYdWWRqg
4666whkrlAnCCPQRooiZYeA1NvIKFJGqMewlOABfAkhi3oqMlgm90ig1Rsdi3Msz/S15CgDD7fjvLTjNbWiwWhuSXEqCAAgooARRQQMmfQNvtk+X3mlJdqViqJrXjeY8zqVSqL9WTGmY/TJKnXAeLMq/LUs9SA6kLqfoGYBrXQ931NHA9lrUGizKY9gx2ArgqO67XsiborbvUQ0nT9awC2gxkZn43U5saoN2Ab8pdDdA4YNBYA7QWMGjuvW+vWhrt79XM2fmpqVarXklNJhPzcP9oXt/SVUuq3EF/jcU8ajS8m3q7lcrnsV9d3xQ6brTqC77NzGwODg8KHzMyG5wo2gLU+5MIAaCAAkoABRRQAiiggBJAAQUUUAIooIASQAEFlAAKKKAEUEABBZQACiigBFBAASWAAgooARRQQAElgHoGanf1+pqX0Wj9QO0WaXtg8/m7d5j22IuO3d5tn2v0475xu9+86C3SBWamMUPTgP/yUg3QfsCgfQ3QXsCgPQ1Q+yy4JEDMxCw9By/Pu/ylxo+vcYauZ7Vl09R8PcMoCWRmxq5n1XWoHeBYqiV1JzXWWFb809Jo7HpquR6nWoN9CDAAOW1l830US8sAAAAASUVORK5CYII=); 4667 background-repeat: no-repeat; 4668 background-size: contain; 4669 position:relative; 4670 width:24px; 4671 height:24px; 4672 cursor: pointer; 4673 } 4674 .xndp-legal-confirm-checkbox .checkbox-input:checked + .checkbox-box-label { 4675 background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFQAAABICAYAAABof9IhAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplZTU1MzJhNC0zMzNjLTQ2N2MtYWJhNi0wNTc3MDdhNWZkY2UiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkE5MEVFQjk0NzFFMTFFNDkwNjBGOUVFOTExMzQxNTIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkE5MEVFQjg0NzFFMTFFNDkwNjBGOUVFOTExMzQxNTIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YWQ5Njk1NWQtZWYyMi00NjBlLWI4NzMtYWY5ZTcwYTUxNjg2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmVlNTUzMmE0LTMzM2MtNDY3Yy1hYmE2LTA1NzcwN2E1ZmRjZSIvPiA8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); 4676 background-repeat: no-repeat; 4677 background-size: contain; 4678 } 4679 .xndp-legal-confirm-checkbox .checkbox-input:focus + .checkbox-box-label { 4680 background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFQAAABICAYAAABof9IhAAAKRWlDQ1BJQ0MgcHJvZmlsZQAAeNqdU2dUU+kWPffe9EJLiICUS29SFQggUkKLgBSRJiohCRBKiCGh2RVRwRFFRQQbyKCIA46OgIwVUSwMigrYB+Qhoo6Do4iKyvvhe6Nr1rz35s3+tdc+56zznbPPB8AIDJZIM1E1gAypQh4R4IPHxMbh5C5AgQokcAAQCLNkIXP9IwEA+H48PCsiwAe+AAF40wsIAMBNm8AwHIf/D+pCmVwBgIQBwHSROEsIgBQAQHqOQqYAQEYBgJ2YJlMAoAQAYMtjYuMAUC0AYCd/5tMAgJ34mXsBAFuUIRUBoJEAIBNliEQAaDsArM9WikUAWDAAFGZLxDkA2C0AMElXZkgAsLcAwM4QC7IACAwAMFGIhSkABHsAYMgjI3gAhJkAFEbyVzzxK64Q5yoAAHiZsjy5JDlFgVsILXEHV1cuHijOSRcrFDZhAmGaQC7CeZkZMoE0D+DzzAAAoJEVEeCD8/14zg6uzs42jrYOXy3qvwb/ImJi4/7lz6twQAAA4XR+0f4sL7MagDsGgG3+oiXuBGheC6B194tmsg9AtQCg6dpX83D4fjw8RaGQudnZ5eTk2ErEQlthyld9/mfCX8BX/Wz5fjz89/XgvuIkgTJdgUcE+ODCzPRMpRzPkgmEYtzmj0f8twv//B3TIsRJYrlYKhTjURJxjkSajPMypSKJQpIpxSXS/2Ti3yz7Az7fNQCwaj4Be5EtqF1jA/ZLJxBYdMDi9wAA8rtvwdQoCAOAaIPhz3f/7z/9R6AlAIBmSZJxAABeRCQuVMqzP8cIAABEoIEqsEEb9MEYLMAGHMEF3MEL/GA2hEIkxMJCEEIKZIAccmAprIJCKIbNsB0qYC/UQB00wFFohpNwDi7CVbgOPXAP+mEInsEovIEJBEHICBNhIdqIAWKKWCOOCBeZhfghwUgEEoskIMmIFFEiS5E1SDFSilQgVUgd8j1yAjmHXEa6kTvIADKC/Ia8RzGUgbJRPdQMtUO5qDcahEaiC9BkdDGajxagm9BytBo9jDah59CraA/ajz5DxzDA6BgHM8RsMC7Gw0KxOCwJk2PLsSKsDKvGGrBWrAO7ifVjz7F3BBKBRcAJNgR3QiBhHkFIWExYTthIqCAcJDQR2gk3CQOEUcInIpOoS7QmuhH5xBhiMjGHWEgsI9YSjxMvEHuIQ8Q3JBKJQzInuZACSbGkVNIS0kbSblIj6SypmzRIGiOTydpka7IHOZQsICvIheSd5MPkM+Qb5CHyWwqdYkBxpPhT4ihSympKGeUQ5TTlBmWYMkFVo5pS3aihVBE1j1pCraG2Uq9Rh6gTNHWaOc2DFklLpa2ildMaaBdo92mv6HS6Ed2VHk6X0FfSy+lH6JfoA/R3DA2GFYPHiGcoGZsYBxhnGXcYr5hMphnTixnHVDA3MeuY55kPmW9VWCq2KnwVkcoKlUqVJpUbKi9Uqaqmqt6qC1XzVctUj6leU32uRlUzU+OpCdSWq
46801WqnVDrUxtTZ6k7qIeqZ6hvVD+kfln9iQZZw0zDT0OkUaCxX+O8xiALYxmzeCwhaw2rhnWBNcQmsc3ZfHYqu5j9HbuLPaqpoTlDM0ozV7NS85RmPwfjmHH4nHROCecop5fzforeFO8p4ikbpjRMuTFlXGuqlpeWWKtIq1GrR+u9Nq7tp52mvUW7WfuBDkHHSidcJ0dnj84FnedT2VPdpwqnFk09OvWuLqprpRuhu0R3v26n7pievl6Ankxvp955vef6HH0v/VT9bfqn9UcMWAazDCQG2wzOGDzFNXFvPB0vx9vxUUNdw0BDpWGVYZfhhJG50Tyj1UaNRg+MacZc4yTjbcZtxqMmBiYhJktN6k3umlJNuaYppjtMO0zHzczNos3WmTWbPTHXMueb55vXm9+3YFp4Wiy2qLa4ZUmy5FqmWe62vG6FWjlZpVhVWl2zRq2drSXWu627pxGnuU6TTque1mfDsPG2ybaptxmw5dgG2662bbZ9YWdiF2e3xa7D7pO9k326fY39PQcNh9kOqx1aHX5ztHIUOlY63prOnO4/fcX0lukvZ1jPEM/YM+O2E8spxGmdU5vTR2cXZ7lzg/OIi4lLgssulz4umxvG3ci95Ep09XFd4XrS9Z2bs5vC7ajbr+427mnuh9yfzDSfKZ5ZM3PQw8hD4FHl0T8Ln5Uwa9+sfk9DT4FntecjL2MvkVet17C3pXeq92HvFz72PnKf4z7jPDfeMt5ZX8w3wLfIt8tPw2+eX4XfQ38j/2T/ev/RAKeAJQFnA4mBQYFbAvv4enwhv44/Ottl9rLZ7UGMoLlBFUGPgq2C5cGtIWjI7JCtIffnmM6RzmkOhVB+6NbQB2HmYYvDfgwnhYeFV4Y/jnCIWBrRMZc1d9HcQ3PfRPpElkTem2cxTzmvLUo1Kj6qLmo82je6NLo/xi5mWczVWJ1YSWxLHDkuKq42bmy+3/zt84fineIL43sXmC/IXXB5oc7C9IWnFqkuEiw6lkBMiE44lPBBECqoFowl8hN3JY4KecIdwmciL9E20YjYQ1wqHk7ySCpNepLskbw1eSTFM6Us5bmEJ6mQvEwNTN2bOp4WmnYgbTI9Or0xg5KRkHFCqiFNk7Zn6mfmZnbLrGWFsv7Fbou3Lx6VB8lrs5CsBVktCrZCpuhUWijXKgeyZ2VXZr/Nico5lqueK83tzLPK25A3nO+f/+0SwhLhkralhktXLR1Y5r2sajmyPHF52wrjFQUrhlYGrDy4irYqbdVPq+1Xl65+vSZ6TWuBXsHKgsG1AWvrC1UK5YV969zX7V1PWC9Z37Vh+oadGz4ViYquFNsXlxV/2CjceOUbh2/Kv5nclLSpq8S5ZM9m0mbp5t4tnlsOlqqX5pcObg3Z2rQN31a07fX2Rdsvl80o27uDtkO5o788uLxlp8nOzTs/VKRU9FT6VDbu0t21Ydf4btHuG3u89jTs1dtbvPf9Psm+21UBVU3VZtVl+0n7s/c/romq6fiW+21drU5tce3HA9ID/QcjDrbXudTVHdI9VFKP1ivrRw7HH77+ne93LQ02DVWNnMbiI3BEeeTp9wnf9x4NOtp2jHus4QfTH3YdZx0vakKa8ppGm1Oa+1tiW7pPzD7R1ureevxH2x8PnDQ8WXlK81TJadrpgtOTZ/LPjJ2VnX1+LvncYNuitnvnY87fag9v77oQdOHSRf+L5zu8O85c8rh08rLb5RNXuFearzpfbep06jz+k9NPx7ucu5quuVxrue56vbV7ZvfpG543zt30vXnxFv/W1Z45Pd2983pv98X39d8W3X5yJ/3Oy7vZdyfurbxPvF/0QO1B2UPdh9U/W/7c2O/cf2rAd6Dz0dxH9waFg8/+kfWPD0MFj5mPy4YNhuueOD45OeI/cv3p/KdDz2TPJp4X/qL+y64XFi9++NXr187RmNGhl/KXk79tfKX96sDrGa/bxsLGHr7JeDMxXvRW++3Bd9x3He+j3w9P5Hwgfyj/aPmx9VPQp/uTGZOT/wQDmPP87zWUggAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAANraVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZWU1NTMyYTQtMzMzYy00NjdjLWFiYTYtMDU3NzA3YTVmZGNlIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjNGRDZERDA4QkFDRjExRTRCNzVGQ0YzNDQ4Q0NFRjYxIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjNGRDZERDA3QkFDRjExRTRCNzVGQ0YzNDQ4Q0NFRjYxIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE3Qzk4NENGNDY3NTExRTQ4QkVCOEI4RTFERkY0Q0QxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE3Qzk4NEQwNDY3NTExRTQ4QkVCOEI4RTFERkY0Q0QxIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9ERbxQAAAcRJREFUeNrs3LFOwkAcx/EDZXHoIp1IkAnlBeoTdHB1hBUHn8HVd3CAVUZXhz4BvACMxISpm4mJSSP4v3gDISZ06B857/tL/gsQ6P/TK70Od7XNZmNIdalDACiggBJAAQWUlEnt4/Fi97VEaiiVSrWkGp73WEitpDKpsdRs+82zh6XaCI2knqWmUndSnX+AaVwPHdfT1PUYaV/ykTuD/QCuyr7rNdIEfXKXeihJXM8qoEkgI/O3kZpogA4DvikPNUDTgEFTDdBWwKCV935aZmr0dvtq4jj2SirPc9N+uSkzpaocdC/mVa/n3dA7bzbNQo69BOphHz19G5nb6V52eZavtLn6CaDen0QIAAUUUAIooIASQAEFlAAKKKCAEkABBZQACiigBFBAASWAAgoooARQQAElgAIKKAEUUEAJoIACCigB1DNQu6rX1yzm8+MDtat57YGt11/eYR56JbKNXd5t9zVq7EP99Gx0tst9rNAYoauA//JWGqBZwKCZBug4YNCxBqjdC24SIObE7OyDV+Vd/l7jy484M9ez2rTp3fzsYTQJZGSmrmfVeaj9gYHUtdRIaqkxrfiDFK6XkettoIVp8y3AACk/S4SaI7YNAAAAAElFTkSuQmCC); 4681 background-repeat: no-repeat; 4682 background-size: contain; 4683 } 4684 .xndp-legal-confirm-checkbox .checkbox-input:focus:checked + .checkbox-box-label { 4685 background:url(data:image/png;base64,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GYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZWU1NTMyYTQtMzMzYy00NjdjLWFiYTYtMDU3NzA3YTVmZGNlIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjNGRDZERDA0QkFDRjExRTRCNzVGQ0YzNDQ4Q0NFRjYxIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjNGRDZERDAzQkFDRjExRTRCNzVGQ0YzNDQ4Q0NFRjYxIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJBOTBFRUI4NDcxRTExRTQ5MDYwRjlFRTkxMTM0MTUyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBOTBFRUI5NDcxRTExRTQ5MDYwRjlFRTkxMTM0MTUyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+TmtTsQAABsNJREFUeNrsnH1QFHUYx5897oQ7DQuhJAtII0FrpJzRnMTMl6wwdRwcE7VMkaQmc1LHpv6x0mwaJnPGxBQ1R0HUfIMmR/E1fMNofOVEp0ZGxTQq34C9vb3b7dllzzmYw9vbt2N37zvzcHD7wv0+9zzP73n2fnsEy7IQUYuaF6e0t8mKthNtHlqt/wbHZ3WtdrREMAaFSQgws9AuoC0QnguoCNDgWi7A9OlrtHLBayNAQ9RctPc
4685DPM8BPoFmiwAVr3FoBQ/Y3h/tLKaKVlCJyKQUMH++gPa7yMN/RXsFJycm4qEBRHptT+LDbyEcMgTth0jIB9BlMi7OHkU7JXDJRS8fz4d806LkthsHcDugjUTrESjx6kw0Wj1aBVoRhubJQOHubHrM3qfzTa4sSpbxv+L934lYtGK0KrSZaCkGgAnCGFKEMVUhwGK0WP8dztxLtCLMAzJhctro89BY4R0cYJLo5rx0WG5NZlNR30quSN+ENlHmOT1oqT4PLTQRTMC6JgkfooU/lygFE9NJnVUAmWMimG6WJbJnOgf/h96ZK7SSisD0zfK5JoIJCPPDPOfgo4V9jnGT7molYfqAjjQLUGL0d2cQ5qrv04/3tRHevUrD9AHtYQaY9LAvTzn6jeu3LO1E92iL57QSMNHq2m6wiimNrozfDQkJCboC2NDQAEnbX+d/bxq0oCph0NSBDHkbOkfRNdDOlSK5MEHMiTmYaenpuvPIbvHxUIuv3X5pV2XysPxMxt0M7rVjuE1xasEUBVRvnumv3mlp+4j09BHAeMBT+i4wt6+AmjCN3sufIghiOJ8/y+eD52qV3POlBYMJMnNJR9fz3A/voW+APr9D7rmeRftTzI6GvtrEnCkF6ugKJWDWiN3ZsEDZuiPg+vkTTWEaF2jDRSCLp2gO05hAG28A2VIeaQ7TeECpe+Ba8yawHiosMI0F1EsBtX4CMI0NYYNpHKAMA+7N74G3oTasMA0D1LP7U/BcPhR2mIYA6j22HNynSzsETN0DZZ1lQB0sUARm21V0pgPKXqsGcsdsWTBzazIVhalfoLcug2vDRCVgEkrCVAcozrhM9TrwHvhKHZjN/wJZlAUs45UNs6hvZU//DUrAVfZqk+sOUJumgff6Kf5Pe0IqEM9NUO787uaWwh0fpcgxfRfkzC3wweRcnFuT1FVJBFYlw5BcOxZY1937T5Fl88ERnwqQmKGA53uA2pgDzN3rkmFCYj/3t72rOsda3UuhZSWJ4lIm5G+cB3LliFYw70Ndn83313LTCL19Nnj/Oi0LpvvS/jkI88SDYMoNe/lA/3ZC85rR7eY01uvBMB3Lh6vkWnP/IqAv/iLpWPvUTRxMijq8tNCzdUaBUCqpJnlA71wDEnNaUAdrvAnukrd5TwvZOXGCo06ulQZzSjEQSYMoV9m8494jyz7iHFDtAkQ6UKqxZYIQOdt66qv5FjGkWvOPfeDa87l0mMkvuamtef8w534aGlKKkBH2koG6t+QBQ94K7RhsEZnqH8Xn5c25cmBy4UB4L+3VdCGHJKDM2S3guXJMWmW1ZyGwwY69dx3IdWPlwPSNTfP1raEDxcmFkvlZjWvjFMy/V9utZclVr0kq3P1gypbUsA8daCcHxGQXyuvDWQbz7xj+Cnsr0SS42tSy4YCpecgTz4wC+7Rt8kpLzL/Uhhy+YPcV7u7S6cDcqtMtTFmTEtGjPzjy9wNhjZZeX948B/Suj3mYdPkCzMvHdQ1Tfh0a1wvsHxwGi0P6+ivaWQauFUOBPr+tw8GUkkfld0pdukNM/kGwPJwkPfyxQdC7Zyrby8d0hZi8PWB9vL8mL7qjwlQOKCebHTq9sxlsqa8aCmaoYa/sBWaLFWzZK6FTxiTTeaY6QPkzWsCatQSih8wxHUx1gAqKypwDMVmLDQEzlLBX9UM6S8ZksL+1xhSeqQlQvgHoNRwc03cCYYkKHeak9bqCqQlQXokZYJ+1L6Suyp69AoieL3cYUGLDXrvP5R95CruqSrB0SRAHs/cboEdpu9Chy6MQM+sARHV72pAwtQfKKfohiJ5RDtYnBhgOZniA+rqqqSVg84OnB5hi8mj47lPiuqrxy4GoWAhRKS/q3jPDD9TXVY36AoykoEC5u3q5G1H1qNoLFyBJ47APmkO5W6S5F8ZIX+0WPpjC7d1aeyj3vUa2YFBdOvNOkZ5JqzHL14N5Va8G0AoTA61QA2iRiYEWqQGU+5atEhPCLBHGrkqnlK/GyTuwTgpjVq315Na+jDSJp5YIY72rJlAf1MloA6HlG7fq1CgrwiBaGMtqYWyT1YLJ6X8BBgDMdG9+ZdMrTwAAAABJRU5ErkJggg==); 4686 background-repeat: no-repeat; 4687 background-size: contain; 4688 } 4689 .xndp-legal-confirm-checkbox .checkbox-afterfield-label { 4690 color:#58595b; 4691 font-size: 16px; line-height: 1.4; 4692 font-family: sans-serif; font-weight: normal; 4693 display: inline-block; 4694 margin-left:8px; 4695 max-width:calc(100% - 50px); 4696 vertical-align: top; 4697 cursor: pointer; 4698 } 4699 .xndp-legal-confirm-checkbox .checkbox-status { 4700 display:none; 4701 } 4702 .xndp-legal-confirm-checkbox .checkbox-status-message { 4703 display:none; 4704 } 4705 .xndp-legal-confirm-checkbox .checkbox-holder.validate-error .checkbox-beforefield-label { 4706 color:#c41134; 4707 } 4708 .xndp-legal-confirm-checkbox .checkbox-holder.validate-error .checkbox-status { 4709 display:block; 4710 } 4711 .xndp-legal-confirm-checkbox .checkbox-holder.validate-error .checkbox-afterfield-label { 4712 color:#c41134; 4713 } 4714 4715 4716</style> 4717 4718 </div> 4719 4720 <button class="ak-donate-three-step-visible" id="ak-continue-button"> Continue <i class="fa fa-arrow-right"></i></button> 4721 4722 4723 4724 4725 4726 <button disabled="true" type="submit" class="ak-submit-button ak-donate-area-step-3 xndp-checkout-hide"> Donate <span class="ak-currency-sym"><span class="xndp-currency-sym"> 4727$ 4728</span><!-- ak.wysiwyg=code --></span><span class="ak-donation-total-amount"></span><span style="display:none;" class="xndp-recurring-show"> per month 4729</span></button> 4730 <noscript> 4731 <p> 4732 <b>JavaScript is required</b> so this page 4733 can securely submit your donation. 4734 </p> 4735 </noscript> 4736 4737 4738 4739 4740 4741 </div> 4742 4743 </div> 4744 4745 </div> 4746 4747 4748 4749 </div> 4750 4751 </form> 4752 </div> 4753</div> 4754 4755<style> 4756 4757 4758 4759 4760 4761.xndp-page-donate .xndp-donate-details { 4762 position:relative; 4763} 4764.xndp-page-donate .xndp-watermark-holder { 4765 position: absolute; 4766 width: 100%; 4767 z-index: 5; 4768 top:2px; 4769 left:0; 4770 display:flex; 4771 justify-content:flex-end; 4772} 4773.xndp-page-donate .xndp-secure-watermark { 4774 padding: 4px 8px; 4775 font-size: 13px; 4776 line-height:1.0; 4777 letter-spacing: 1.5px; 4778 text-transform: uppercase; 4779 color: rgb(204,204,204); 4780 text-align:right; 4781} 4782.xndp-page-donate .xndp-amount-watermark { 4783 display:none; 4784 margin-top:1px; 4785 padding: 3px; 4786 font-size: 10px; 4787 line-height:1.0; 4788 height:18px; 4789 letter-spacing: 1.5px; 4790 text-transform: uppercase; 4791 color: rgb(204,204,204); 4792 text-align:right; 4793 border:1px solid rgb(204,204,204); 4794 border-radius:3px; 4795} 4796.xndp-page-donate .xndp-amount-btn { 4797 position:relative; 4798} 4799.xndp-page-donate #ak-amount-list .xndp-amount-wrapper ul li label.xndp-amount-btn.ak-radio-checked { 4800 padding-left:15px; 4801} 4802.xndp-page-donate .xndp-amount-btn.ak-radio-checked:before { 4803 background-color: rgba(0,0,0,0.2); 4804 border-radius: 20px; 4805 content: "\f00c"; 4806 font-family: 'FontAwesome'; 4807 font-size: 28px; 4808 color: #fff; 4809 position: absolute; 4810 left: 10px; 4811 top: 50%; 4812 line-height: 18px; 4813 margin-top: -10px; 4814 width: 22px; 4815 height: 22px; 4816} 4817.xndp-page-donate .xndp-amount-other-inner { 4818 position:relative; 4819} 4820.xndp-page-donate .xndp-amount-other-inner.ak-radio-checked:after { 4821 background-color: rgba(0,0,0,0.2); 4822 border-radius: 20px; 4823 content: "\f00c"; 4824 font-family: 'FontAwesome'; 4825 font-size: 28px; 4826 color: #fff; 4827 position: absolute; 4828 right: 20px; 4829 top: 50%; 4830 line-height: 18px; 4831 margin-top: -10px; 4832 width: 22px; 4833 height: 22px; 4834} 4835 4836.xndp-page-donate {
4837 display:-webkit-box; 4838 display:-ms-flexbox; 4839 display:flex; 4840 -webkit-box-pack: center; 4841 -ms-flex-pack: center; 4842 justify-content: center; 4843 width:100%; 4844 -webkit-box-flex:1; 4845 -ms-flex-positive:1; 4846 flex-grow:1 4847} 4848.xndp-page-donate .xndp-donate-inner { 4849 max-width:1200px; 4850 width:100%; 4851} 4852.xndp-page-donate .xndp-currency-sym-fr { 4853 margin-left:5px; 4854} 4855.xndp-page-donate #ak-amount-list #ak-other-amount-container .ak-currency-sym.xndp-currency-sym-other-fr { 4856 right:13px; 4857 left:auto; 4858} 4859/* donate.html */ 4860.xndp-page-donate ul.ak-err { 4861 display: none !important; 4862} 4863 4864 4865 4866@media (min-width: 750px) { 4867 .xndp-page-donate .xndp-donate-form { 4868 width: 440px; 4869 margin-top:40px; 4870 margin-bottom:30px; 4871 padding-left:0; 4872 padding-right:0; 4873 } 4874 .xndp-page-donate .xndp-donate-inner { 4875 display: -webkit-box; 4876 display: -ms-flexbox; 4877 display: flex; 4878 -webkit-box-orient: vertical; 4879 -webkit-box-direction: normal; 4880 -ms-flex-direction: column; 4881 flex-direction: column; 4882 } 4883 .xndp-page-donate.align-left .xndp-donate-inner { 4884 -webkit-box-align: start; 4885 -ms-flex-align: start; 4886 align-items: flex-start; 4887 } 4888 .xndp-page-donate.align-right .xndp-donate-inner { 4889 -webkit-box-align: end; 4890 -ms-flex-align: end; 4891 align-items: flex-end; 4892 } 4893 .xndp-page-donate.align-center .xndp-donate-inner { 4894 -webkit-box-align: center; 4895 -ms-flex-align: center; 4896 align-items: center; 4897 } 4898} 4899 4900.xndp-page-donate .ak-amount-wrapper .xndp-amount-btn { 4901 color:white; 4902} 4903.xndp-page-donate .xndp-donate-header { 4904 padding-top:30px; 4905 padding-bottom:30px; 4906} 4907.xndp-page-donate .xndp-donate-header h1 { 4908 margin:0; 4909} 4910.xndp-page-donate .xndp-donate-main { 4911 background: white; 4912} 4913.xndp-page-donate .xndp-donate-menu { 4914 display: -webkit-box; 4915 display: -ms-flexbox; 4916 display: flex; 4917 -webkit-box-pack: space-evenly; 4918 -ms-flex-pack: space-evenly; 4919 justify-content: space-evenly; 4920 position: relative; 4921} 4922.xndp-page-donate .xndp-donate-menu > * { 4923 padding:10px; 4924 background: #eee; 4925 -webkit-box-flex: 1; 4926 -ms-flex-positive: 1; 4927 flex-grow: 1; 4928} 4929.xndp-page-donate .xndp-steps-title { 4930 display: block; 4931 position: absolute; 4932 top:0; 4933 left:0; 4934 right:0; 4935 z-index: 20; 4936 background: transparent; 4937 font-size: 23px; 4938 color: #fff; 4939 line-height: 1.3; 4940 text-align: center; 4941 padding: 8px 5px 5px 5px; 4942 font-weight: 800; 4943} 4944.xndp-page-donate label.ak-donate-step:hover div.ak-step-number { 4945 background:transparent; 4946} 4947.xndp-page-donate .ak-donate-step { 4948 padding:50px 20px 20px 40px; 4949 position: relative; 4950 height: 110px; 4951 display: -webkit-box; 4952 display: -ms-flexbox; 4953 display: flex; 4954 -webkit-box-orient: vertical; 4955 -webkit-box-direction: normal; 4956 -ms-flex-direction: column; 4957 flex-direction: column; 4958 -webkit-box-align: center; 4959 -ms-flex-align: center; 4960 align-items: center; 4961} 4962.xndp-page-donate .ak-donate-step:before { 4963 border-style: solid; 4964 border-width: 60px 0 50px 25px; 4965 border-top-color: transparent; 4966 border-right-color: transparent; 4967 border-bottom-color: transparent; 4968 content: ''; 4969 position: absolute; 4970 left: 100%; 4971 top: 0; 4972 z-index: 15; 4973 width: 0; 4974 height: 0; 4975} 4976 4977@media(min-width:750px) {
4978 .xndp-page-donate .ak-donate-step-1 { 4979 border-top-left-radius: 6px; 4980 } 4981 .xndp-page-donate .ak-donate-step-3 { 4982 border-top-right-radius: 6px; 4983 } 4984} 4985 4986.xndp-page-donate .ak-donate-step-1 { 4987 background:#FF7722; 4988 -webkit-box-align: end; 4989 -ms-flex-align: end; 4990 align-items: flex-end; 4991} 4992.xndp-page-donate .ak-donate-step-1:before { 4993 border-left-color: #FF7722; 4994} 4995.xndp-page-donate .ak-donate-step-2 { 4996 background:#FF8811; 4997 max-width: 100px; 4998} 4999.xndp-page-donate .ak-donate-step-2:before { 5000 border-left-color: #FF8811; 5001} 5002.xndp-page-donate .ak-donate-step-3 { 5003 background:#FF9900; 5004 -webkit-box-align: start; 5005 -ms-flex-align: start; 5006 align-items: flex-start; 5007} 5008.xndp-page-donate .ak-donate-step-3:before { 5009 border-left-color: #FF9900; 5010 display: none; 5011} 5012.xndp-page-donate .ak-donate-step > span { 5013 display: none; 5014} 5015.xndp-page-donate .ak-donate-step .ak-step-number { 5016 background: transparent; 5017 padding: 0; 5018 width: 30px; 5019 height: 30px; 5020 font-size: 16px; 5021 line-height: 1.0; 5022 font-family: 'Open sans',sans-serif; 5023 font-weight: 800; 5024 line-height: 1; 5025 vertical-align: middle; 5026 color: #58595b; 5027 border-radius: 20px; 5028 display: inline-block; 5029 border: 2px solid white; 5030 color: white; 5031 -webkit-appearence: none; 5032 cursor: pointer; 5033 outline: none; 5034 text-align: center; 5035 padding-top:4px; 5036} 5037.xndp-page-donate .ak-donate-menu { 5038 margin:0; 5039} 5040.xndp-page-donate #ak-amount-list .xndp-amount-wrapper label.xndp-amount-btn { 5041 display: -webkit-box; 5042 display: -ms-flexbox; 5043 display: flex; 5044 -webkit-box-align: center; 5045 -ms-flex-align: center; 5046 align-items: center; 5047 -webkit-box-pack: center; 5048 -ms-flex-pack: center; 5049 justify-content: center; 5050} 5051.xndp-page-donate #ak-amount-list li label { 5052 background: #FF9900; 5053} 5054.xndp-page-donate #ak-amount-list li label:hover, 5055.xndp-page-donate #ak-amount-list li label.ak-radio-checked, 5056.xndp-page-donate div#ak-amount-list label[for="amount_other_field"].ak-radio-checked { 5057 background:#FF7722 5058} 5059 5060.xndp-page-donate .ak-donate-menu input:checked + div.ak-step-number, 5061.xndp-page-donate .ak-donate-menu label.xndp-amount-btn.ak-donate-step:hover input:checked + div.ak-step-number { 5062 background: white; 5063 color:#555555; 5064} 5065.xndp-page-donate label.xndp-amount-btn.ak-donate-step:hover div.ak-step-number { 5066 background: transparent; 5067} 5068.xndp-page-donate #ak-donation-details { 5069 padding:30px 5070} 5071.xndp-page-donate #ak-amount-list .xndp-amount-wrapper { 5072 display: -webkit-box; 5073 display: -ms-flexbox; 5074 display: flex; 5075 -webkit-box-pack: space-evenly; 5076 -ms-flex-pack: space-evenly; 5077 justify-content: space-evenly; 5078 margin:-5px; 5079 -webkit-box-orient: vertical; 5080 -webkit-box-direction: normal; 5081 -ms-flex-direction: column; 5082 flex-direction: column; 5083} 5084.xndp-page-donate #ak-amount-list .xndp-amount-list { 5085 display:flex; 5086 flex-wrap: wrap; 5087 margin:-5px; 5088} 5089.xndp-page-donate #ak-amount-list .xndp-amount-wrapper ul.xndp-amount-list { 5090 width:100%; 5091} 5092.xndp-page-donate #ak-amount-list .xndp-amount-list li { 5093 flex-basis:33.33%; 5094} 5095.xndp-page-donate div#ak-amount-list .ak-amount-wrapper li { 5096 padding:5px; 5097 margin:0; 5098} 5099.xndp-page-donate #ak-amount-list .xndp-amount-wrapper ul { 5100 xwidth:33.3%; 5101 xpadding:5px; 5102} 5103.xndp-page-donate #ak-amount-list .xndp-amount-wrapper ul li { 5104 width:100%; 5105 position:relative; 5106 align-self:flex-end; 5107} 5108.xndp-page-donate #ak-amount-list .xndp-amount-wrapper ul li label.xndp-amount-btn { 5109 width: 100%; 5110 font-weight: 800; 5111 font-size: 22px; 5112 line-height: 1.0; 5113 padding:18px 0 19px; 5114} 5115.xndp-page-donate #ak-amount-list .xndp-amount-wrapper .xndp-currency-sym { 5116 font-size:18px; 5117 line-height: 1.0; 5118 font-weight: 400; 5119} 5120.xndp-page-donate #ak-amount-list #ak-other-amount-container.xndp-amount-other-holder { 5121 flex-basis:66.66%; 5122 flex-grow:1; 5123 height:auto; 5124} 5125.xndp-page-donate #ak-amount-list #ak-other-amount-container .xndp-amount-other-inner { 5126 background:transparent; 5127 padding:0; 5128 margin:0; 5129 position: relative; 5130 background: #F0F0F0; 5131 text-align: left; 5132 color: #BBB; 5133 border-radius: 6px; 5134 height:auto; 5135 width: auto; 5136 padding:4px; 5137} 5138.xndp-page-donate #ak-amount-list #ak-other-amount-container .xndp-amount-other-inner.ak-radio-checked { 5139 background: #FF7722; 5140 color:white; 5141} 5142.xndp-page-donate #ak-amount-list #ak-other-amount-container .ak-radio-checked .ak-currency-sym { 5143 color:white; 5144} 5145.xndp-page-donate #ak-amount-list #ak-other-amount-container .ak-radio-checked #ak-other-amount-field { 5146 border-color:white; 5147 outline:none; 5148 color:white; 5149 font-weight: bold; 5150} 5151.xndp-page-donate #ak-amount-list #ak-other-amount-container .ak-currency-sym { 5152 margin: 0px; 5153 display: block; 5154 position: absolute; 5155 font-size: 18px; 5156 line-height: 1.0; 5157 vertical-align: middle; 5158 position: absolute; 5159 top: 0; 5160 left: 13px; 5161 bottom: 0; 5162 height: 18px; 5163 margin: auto 0; 5164 color: #58595b; 5165} 5166.xndp-page-donate #ak-amount-list #ak-other-amount-container .xndp-amount-other-infield-label { 5167 font-size: 22px; 5168 line-height: 1.0; 5169 position: absolute; 5170 top: 0; 5171 left: 24px; 5172 bottom: 0; 5173 height: 24px; 5174 margin: auto 0; 5175 vertical-align: middle; 5176 text-align: left; 5177} 5178.xndp-page-donate #ak-amount-list #ak-other-amount-container .ak-radio-checked .xndp-amount-other-infield-label { 5179 display: none; 5180} 5181.xndp-page-donate div#ak-recurring-type { 5182 text-align: center; 5183 padding:10px; 5184} 5185.xndp-page-donate div#ak-recurring-type span { 5186 margin: 0 10px; 5187} 5188.xndp-page-donate div#ak-amount-list #ak-other-amount-field { 5189 padding: 10px 0px 10px 20px; 5190 width: 100%; 5191 -webkit-appearance: none; 5192 -moz-appearance: textfield; 5193 font-size: 22px; 5194 line-height: 1.0; 5195 display: inline-block; 5196 vertical-align: middle; 5197 text-align: left; 5198 background: rgba(255,255,255,0.1); 5199 color: #58595b; 5200 border: 1px solid #808285; 5201 border-radius: 3px; 5202 height: auto; 5203 top:0; 5204} 5205.xndp-page-donate div#ak-amount-list { 5206 overflow:visible; 5207 padding:0 0 10px 0; 5208} 5209.xndp-page-donate #ak-continue-button, 5210.xndp-page-donate button.ak-submit-button, 5211.xndp-page-donate a.ak-submit-button, 5212.xndp-page-donate .xndp-membership-continue-button { 5213 display: inline-block; 5214 min-width: 240px; 5215 border: 1px solid #fff; 5216 color: #FFF; 5217 padding: 12px; 5218 border-radius: 6px; 5219 font-size: 24px; 5220 line-height: 1; 5221 background: #0099CC; 5222 cursor: pointer; 5223 -webkit-appearence: none; 5224 text-align: center; 5225 width: 100%; 5226 height:auto; 5227 outline:none; 5228 margin-top:20px; 5229 max-width: none; 5230} 5231.xndp-page-donate button:hover, 5232.xndp-page-donate input[type="submit"]:hover, 5233.xndp-page-donate a.ak-button:hover, 5234.xndp-page-donate .ak-button:hover { 5235 background: #0099CC; 5236} 5237.xndp-page-donate .xndp-fields-list { 5238 display: -webkit-box; 5239 display: -ms-flexbox; 5240 display: flex; 5241 -ms-flex-wrap: wrap; 5242 flex-wrap: wrap; 5243 margin:-5px; 5244} 5245.xndp-page-donate .xndp-field-holder { 5246 width:100%; 5247 -ms-flex-preferred-size: 100%; 5248 flex-basis: 100%; 5249 padding:5px; 5250 margin:0; 5251} 5252.xndp-page-donate .xndp-field-city { 5253 -ms-flex-preferred-size: 65%; 5254 flex-basis: 65%; 5255} 5256.xndp-page-donate .xndp-field-postalcode { 5257 -ms-flex-preferred-size: 35%; 5258 flex-basis: 35%; 5259} 5260.xndp-page-donate .xndp-field-firstname, 5261.xndp-page-donate .xndp-field-lastname { 5262 -ms-flex-preferred-size: 50%; 5263 flex-basis: 50%; 5264} 5265.xndp-page-donate .xndp-field-email, 5266.xndp-page-donate .xndp-field-phone { 5267 -ms-flex-preferred-size: 50%; 5268 flex-basis: 50%; 5269} 5270.xndp-page-donate .xndp-field-cardexp, 5271.xndp-page-donate .xndp-field-cardcode { 5272 -ms-flex-preferred-size: 50%; 5273 flex-basis: 50%; 5274} 5275.xndp-page-donate .ak-styled-fields label { 5276 font-size: 12px; 5277 line-height: 1.2; 5278 font-family: sans-serif; 5279 font-weight: bold; 5280 display: block; 5281 padding-bottom: 2px; 5282 text-transform: uppercase; 5283 text-align: left; 5284 letter-spacing: 0.05em; 5285} 5286.xndp-page-donate .ak-styled-fields .xndp-input-holder { 5287 border: 1px solid #58595b; 5288 border-radius: 3px; 5289 position: relative; 5290} 5291.xndp-page-donate .ak-styled-fields .ak-error + .xndp-input-holder { 5292 border-color:#cc1133; 5293} 5294.xndp-page-donate span.ak-error, 5295.xndp-page-donate label.ak-error, 5296.xndp-page-donate .ak-labels-overlaid input.ak-error, 5297.xndp-page-donate .ak-labels-overlaid label.ak-error, 5298.xndp-page-donate .ak-labels-before label.ak-error, 5299.xndp-page-donate .ak-styled-fields select.ak-error { 5300 color: #cc1133; 5301 font-weight: 600; 5302} 5303.xndp-page-donate .ak-styled-fields input[type="text"].ak-error, 5304.xndp-page-donate .ak-styled-fields input[type="password"].ak-error, 5305.xndp-page-donate .ak-styled-fields input[type="number"].ak-error, 5306.xndp-page-donate .ak-styled-fields input[type="email"].ak-error, 5307.xndp-page-donate .ak-styled-fields textarea.ak-error, 5308.xndp-page-donate .ak-styled-fields select.ak-error, 5309.xndp-page-donate input.ak-error, 5310.xndp-page-donate select.ak-error, 5311.xndp-page-donate textarea.ak-error { 5312 background-color: transparent; 5313 border-color: #eeeeee; 5314} 5315.xndp-page-donate .ak-styled-fields .xndp-field-hide-following-input + .xndp-field-input {
5316 display:none; 5317} 5318.xndp-page-donate .ak-styled-fields .xndp-field-input, 5319.xndp-page-donate .ak-styled-fields input[type="text"], 5320.xndp-page-donate .ak-styled-fields input[type="email"] { 5321 border: 4px solid #eeeeee; 5322 padding: 6px 0 6px 6px; 5323 width: 100%; 5324 font-size: 20px; 5325 line-height: 1.2; 5326 font-family: arial,sans-serif; 5327 font-weight: normal; 5328 border-radius: 3px; 5329 color: #58595b; 5330 margin-bottom: 0; 5331} 5332.xndp-page-donate .xndp-ak-text > * { 5333 color:#555555; 5334} 5335.xndp-page-donate .xndp-donate-header { 5336 padding:15px; 5337} 5338.xndp-page-donate .xndp-donate-below-form-text { 5339 padding:30px 15px; 5340 border-top: 1px solid rgba(0,0,0,0.5); 5341} 5342 5343 5344@media (min-width: 750px) { 5345 .xndp-page-donate .xndp-donate-header { 5346 width: 440px; 5347 padding:15px 30px; 5348 } 5349 .xndp-page-donate .xndp-donate-below-form-text { 5350 width: 440px; 5351 padding:30px 30px; 5352 border-top: none; 5353 } 5354 .xndp-page-donate .xndp-donate-main { 5355 width: 440px; 5356 border-radius: 6px; 5357 -webkit-box-shadow: 0 8px 18px rgba(0,0,0,0.5); 5358 box-shadow: 0 8px 18px rgba(0,0,0,0.5); 5359 min-height:585px 5360 } 5361 .xndp-donate-header .xndp-ak-text > *, 5362 .xndp-donate-below-form-text .xndp-ak-text > * { 5363 color:white; 5364 text-shadow: 3px 3px 8px #58595b; 5365 } 5366 5367} 5368 5369.xndp-donate-header .xndp-ak-text > h1, 5370.xndp-donate-below-form-text .xndp-ak-text > h1 { 5371 font-size:24px; 5372 line-height: 1.0; 5373} 5374.xndp-donate-header .xndp-ak-text > p, 5375.xndp-donate-below-form-text .xndp-ak-text > p { 5376 margin-top:0.5em; 5377 margin-bottom:0.5em; 5378 font-size: 20px; 5379 font-weight:400; 5380 line-height: 1.3; 5381} 5382.xndp-donate-header .xndp-ak-text > p:first-child, 5383.xndp-donate-below-form-text .xndp-ak-text > p:first-child { 5384 margin-top:0; 5385} 5386.xndp-donate-header .xndp-ak-text > p:last-child, 5387.xndp-donate-below-form-text .xndp-ak-text > p:last-child { 5388 margin-bottom:0; 5389} 5390.xndp-page-donate .xndp-donate-step-1-title { 5391 padding-bottom: 30px; 5392} 5393.xndp-page-donate .xndp-donate-step-1-title h2 { 5394 font-size: 24px; 5395 line-height: 1.3; 5396 padding: 0; 5397 margin: 0; 5398} 5399</style> 5400 5401 5402 5403 5404 </div> 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417<div class="block--footer-captive"> 5418 <div class="bars-basic-bottom"> 5419 <p class="bottom-footer-text">© 2026 Nova Scotia's NDP - Authorized by the Official Agent of the Nova Scotia NDP 5420</p> 5421 </div> 5422</div> 5423 5424<style> 5425 .block--footer-captive { 5426 position: relative; 5427 display: -webkit-box; 5428 display: -ms-flexbox; 5429 display: flex; 5430 -webkit-box-orient: vertical; 5431 -webkit-box-direction: normal; 5432 -ms-flex-direction: column; 5433 flex-direction: column; 5434 width:100%; 5435 } 5436 .block--footer-captive .bars-basic-bottom { 5437 position: relative; 5438 padding: 10px; 5439 background: #666; 5440 } 5441 .block--footer-captive .bottom-footer-text { 5442 font-size: 16px; 5443 line-height: 1.4; 5444 text-align: center; 5445 color: white; 5446 margin: 0.5em; 5447 } 5448 @media (min-width: 800px) { 5449 .block--footer-captive .bars-basic-bottom { 5450 padding: 15px; 5451 } 5452 } 5453</style> 5454
5455<script nonce="7199847af64d558f3d181de59088025e"> 5456jQuery(function($){ 5457 var text = $(".block--footer-captive .bottom-footer-text").text(); 5458 var text = text.replaceAll('[year]',"2021"); // [year] 5459 var text = text.replaceAll('[ year ]',"2021"); // [ year ] 5460 $(".block--footer-captive .bottom-footer-text").text(text); 5461}); 5462</script>
5462 5463 5464 5465 5466</div> 5467 5468<style> 5469 .block--wrapper-captive { 5470 position: relative; 5471 display: -webkit-box; 5472 display: -ms-flexbox; 5473 display: flex; 5474 -webkit-box-orient: vertical; 5475 -webkit-box-direction: normal; 5476 -ms-flex-direction: column; 5477 flex-direction: column; 5478 -webkit-box-flex: 1; 5479 -ms-flex-positive: 1; 5480 flex-grow: 1; 5481 min-height: 100vh; 5482 width:100%; 5483 } 5484 .block--wrapper-captive .bars-basic-wrapped-content { 5485 position: relative; 5486 display: -webkit-box; 5487 display: -ms-flexbox; 5488 display: flex; 5489 -webkit-box-orient: vertical; 5490 -webkit-box-direction: normal; 5491 -ms-flex-direction: column; 5492 flex-direction: column; 5493 background: white; 5494 padding:0; 5495 margin:0; 5496 border:0; 5497 -webkit-box-flex: 1; 5498 -ms-flex-positive: 1; 5499 flex-grow: 1; 5500 width:100%; 5501 } 5502 @media (min-width: 750px) { 5503 .block--wrapper-captive .bars-basic-wrapped-content { 5504 background-color: #FF9900; 5505 background: -moz-linear-gradient(-45deg, #FF9900 0%, #FF7722 100%); 5506 background: -webkit-linear-gradient(-45deg, #FF9900 0%, #FF7722 100%); 5507 background: linear-gradient(135deg, #FF9900 0%,#FF7722 100%); 5508 } 5509 } 5510 5511 @media(min-width:750px) { 5512 .block--wrapper-captive .bars-basic-wrapped-content { 5513 background: transparent; 5514 background-image: url(https://s3.amazonaws.com/s3-ak-nsndp/images/claudia-hero-placeholder-v4.png); 5515 background-size: cover; 5516 background-position: center; 5517 background-repeat: no-repeat; 5518 /* background-attachment: fixed; */ 5519 } 5520 .block--wrapper-captive.align-left .bars-basic-wrapped-content { 5521 background-position: 66.66% center; 5522 } 5523 .block--wrapper-captive.align-right .bars-basic-wrapped-content { 5524 background-position: 33.33% center; 5525 } 5526 } 5527 5528</style> 5529 5530 5531 5532 5533 5534 5535 5536 5537
5537<script nonce="7199847af64d558f3d181de59088025e" type="text/javascript"> 5538 actionkit.forms.contextRoot = '/context/'; 5539 actionkit.forms.initForm('act'); 5540 </script>
5540 5541 5542 5543 5544 5545 5546 5547 5548 5549
5549<script nonce="7199847af64d558f3d181de59088025e" type="text/javascript"> 5550 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 5551 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 5552 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 5553 })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 5554 5555 ga('create', 'G-VS5JG1S769', 'auto'); 5556 ga('send', 'pageview'); 5557 </script>
5557 5558 5559 5560 5561 5562 5563 <!-- Google Tag Manager --> 5564 <noscript aria-hidden="true"><iframe src="//www.googletagmanager.com/ns.html?id=GTM-5F4BMCG" 5565 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 5566
5566<script nonce="7199847af64d558f3d181de59088025e">
vendor: 333 bytes, lines 5566-5570
5566(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 5567 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 5568 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 5569 '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 5570 })(window,document,'script','dataLayer','
5570GTM-5F4BMCG
vendor: 3 bytes, line 5570
5570');
5570</script>
5570 5571 <!-- End Google Tag Manager --> 5572 5573 5574</body> 5575</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.