PageSourceSearch

https://act.nsndp.ca/donate/default?source=NDPCA_DONATE_NAVBAR

html nsndp.ca collected 2026-10-02 19:04:56 UTC 217,773 bytes, 5,575 lines download raw bytes

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>&nbsp;<span class="lastname"></span>
3723					</div>
3724					<div class="address">
3725						<span class="addr2"></span><span class="address1"></span><br><span class="city"></span>,&nbsp;<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>&nbsp;<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,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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);
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.