action.privacyinternational.org Open in urlscan Pro
40.120.60.163  Public Scan

Submitted URL: https://support.privacyinternational.org/
Effective URL: https://action.privacyinternational.org/civicrm/contribute/transact?reset=1&id=1
Submission: On September 22 via automatic, source certstream-suspicious — Scanned from DE

Form analysis 1 forms found in the DOM

Name: MainPOST /civicrm/contribute/transact

<form action="/civicrm/contribute/transact" method="post" name="Main" id="Main" class="CRM_Contribute_Form_Contribution_Main" enctype="multipart/form-data" data-warn-changes="true" novalidate="novalidate">
  <div><input name="qfKey" type="hidden" value="CRMContributeControllerContribution3n5zzsy4ibqc4cwgkckw0s0kcs004ggsww8ogw4coosk00gcok_6864">
    <input name="entryURL" type="hidden" value="https://action.privacyinternational.org/civicrm/contribute/transact?reset=1&amp;amp;id=1">
    <input name="hidden_processor" type="hidden" value="1">
    <input name="payment_processor_id" type="hidden" value="7">
    <input name="priceSetId" type="hidden" value="3">
    <input name="frequency_interval" type="hidden" value="1">
    <input id="selectProduct" name="selectProduct" type="hidden" value="">
    <input name="_qf_default" type="hidden" value="Main:upload">
    <input name="MAX_FILE_SIZE" type="hidden" value="14680064">
  </div>
  <script type="text/javascript">
    // Putting these functions directly in template so they are available for standalone forms
    function useAmountOther() {
      var priceset = 'price_2';
      for (i = 0; i < document.Main.elements.length; i++) {
        element = document.Main.elements[i];
        if (element.type == 'radio' && element.name == priceset) {
          if (element.value == '0') {
            element.click();
          } else {
            element.checked = false;
          }
        }
      }
    }

    function clearAmountOther() {
      var priceset = '#price_3'
      if (priceset) {
        cj(priceset).val('');
        cj(priceset).blur();
      }
      if (document.Main.amount_other == null) return; // other_amt field not present; do nothing
      document.Main.amount_other.value = "";
    }
  </script>
  <div class="crm-contribution-page-id-1 crm-block crm-contribution-main-form-block">
    <div id="intro_text" class="crm-public-form-item crm-section intro_text-section">
      <p><strong>PI FIGHTS FOR PEOPLE’S PRIVACY, DIGNITY, AND FREEDOM AROUND THE WORLD.&nbsp;</strong></p>
      <p>We are a small and fiercely independent charity that picks big fights with companies and governments that attack your privacy, dignity and freedom.<br>
        <br> Our independence means we never accept funds from industry and governments that limit our ability to criticise those same institutions who abuse your privacy, dignity and freedom.&nbsp;<br> &nbsp;<br> To help keep PI independent we need
        your support.
      </p>
      <p>Even though we are a privacy organisation, we are proudly transparent about our funding. You are welcome to look at <a href="https://privacyinternational.org/about/financials">all of our accounts</a>.</p>
      <p>If you are a UK taxpayer and wish to increase the value of your donation using&nbsp;Gift Aid -- which increases the value of your charity donations by 25%, because the charity can reclaim the basic rate of tax on your gift&nbsp;at no extra
        cost to you -- you can <a href="https://www.paypal.com/gb/fundraiser/charity/171215">donate to PI through PayPal's Giving Fund</a>.</p>
      <div data-en-clipboard="true" data-pm-slice="1 1 []"><br>
        <b><i>If you're visiting this page because you're interested in getting a <a href="https://privacyinternational.org/news-analysis/4511/can-covid-19-face-mask-protect-you-facial-recognition-technology-too" target="_blank">PI face mask</a>, in order to be eligible we ask that you donate £20 or more, or set up a monthly donation of £2 or more.</i></b>
      </div>
      <div>&nbsp;</div>
      <div>
        <b><i>Then send us a quick email to <a href="mailto:hello@privacyinternational.org?subject=Face%20mask">hello@privacyinternational.org</a> (please email us from the same email address that you used to make or set up your donation), with 'Mask' in the header. Please provide us with your name and full postal address*. We'll ship your mask within 14 days. Get yours while stocks last!</i></b><br>
        <br>
        <em>*Please be assured we will only use your postal address for the purposes of shipping the mask to you, and we will not store it in our records. We will delete all correspondence with you in relation to the face mask within three months of
          our last correspondence. For more information on how we process your data, please refer to our <a href="https://privacyinternational.org/basic-page/618/how-we-use-and-protect-your-data" target="_blank">Privacy Policy</a>.</em>
      </div>
    </div>
    <div class="crm-public-form-item crm-section">
      <div id="membership" class="crm-group membership-group">
        <div id="priceset">
          <fieldset>
            <div id="priceset" class="crm-section price_set-section">
              <div class="crm-section contribution_amount-section">
                <div class="label"><label>Contribution Amount</label></div>
                <div class="content contribution_amount-content">
                  <div class="price-set-row contribution_amount-row1">
                    <span class="price-set-option-content"><input price="[&quot;price_2&quot;,&quot;10||&quot;]" data-amount="10.000000000" data-currency="GBP"
                        data-price-field-values="{&quot;2&quot;:{&quot;id&quot;:&quot;2&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_10_00&quot;,&quot;amount&quot;:&quot;10.000000000&quot;,&quot;weight&quot;:&quot;1&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;},&quot;3&quot;:{&quot;id&quot;:&quot;3&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_20_00&quot;,&quot;amount&quot;:&quot;20.000000000&quot;,&quot;weight&quot;:&quot;2&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;},&quot;4&quot;:{&quot;id&quot;:&quot;4&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_50_00&quot;,&quot;amount&quot;:&quot;50.000000000&quot;,&quot;weight&quot;:&quot;3&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;},&quot;5&quot;:{&quot;id&quot;:&quot;5&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_100_00&quot;,&quot;amount&quot;:&quot;100.000000000&quot;,&quot;weight&quot;:&quot;4&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;}}"
                        visibility="1" onclick="clearAmountOther();" class="crm-form-radio" value="2" type="radio" id="CIVICRM_QFID_2_price_2" name="price_2"><label for="CIVICRM_QFID_2_price_2"><span class="crm-price-amount-label"></span><span
                          class="crm-price-amount-amount">£ 10.00</span></label></span>
                  </div>
                  <div class="price-set-row contribution_amount-row2">
                    <span class="price-set-option-content"><input price="[&quot;price_2&quot;,&quot;20||&quot;]" data-amount="20.000000000" data-currency="GBP"
                        data-price-field-values="{&quot;2&quot;:{&quot;id&quot;:&quot;2&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_10_00&quot;,&quot;amount&quot;:&quot;10.000000000&quot;,&quot;weight&quot;:&quot;1&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;},&quot;3&quot;:{&quot;id&quot;:&quot;3&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_20_00&quot;,&quot;amount&quot;:&quot;20.000000000&quot;,&quot;weight&quot;:&quot;2&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;},&quot;4&quot;:{&quot;id&quot;:&quot;4&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_50_00&quot;,&quot;amount&quot;:&quot;50.000000000&quot;,&quot;weight&quot;:&quot;3&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;},&quot;5&quot;:{&quot;id&quot;:&quot;5&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_100_00&quot;,&quot;amount&quot;:&quot;100.000000000&quot;,&quot;weight&quot;:&quot;4&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;}}"
                        visibility="1" onclick="clearAmountOther();" class="crm-form-radio" value="3" type="radio" id="CIVICRM_QFID_3_price_2" name="price_2"><label for="CIVICRM_QFID_3_price_2"><span class="crm-price-amount-label"></span><span
                          class="crm-price-amount-amount">£ 20.00</span></label></span>
                  </div>
                  <div class="price-set-row contribution_amount-row3">
                    <span class="price-set-option-content"><input price="[&quot;price_2&quot;,&quot;50||&quot;]" data-amount="50.000000000" data-currency="GBP"
                        data-price-field-values="{&quot;2&quot;:{&quot;id&quot;:&quot;2&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_10_00&quot;,&quot;amount&quot;:&quot;10.000000000&quot;,&quot;weight&quot;:&quot;1&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;},&quot;3&quot;:{&quot;id&quot;:&quot;3&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_20_00&quot;,&quot;amount&quot;:&quot;20.000000000&quot;,&quot;weight&quot;:&quot;2&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;},&quot;4&quot;:{&quot;id&quot;:&quot;4&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_50_00&quot;,&quot;amount&quot;:&quot;50.000000000&quot;,&quot;weight&quot;:&quot;3&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;},&quot;5&quot;:{&quot;id&quot;:&quot;5&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_100_00&quot;,&quot;amount&quot;:&quot;100.000000000&quot;,&quot;weight&quot;:&quot;4&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;}}"
                        visibility="1" onclick="clearAmountOther();" class="crm-form-radio" value="4" type="radio" id="CIVICRM_QFID_4_price_2" name="price_2"><label for="CIVICRM_QFID_4_price_2"><span class="crm-price-amount-label"></span><span
                          class="crm-price-amount-amount">£ 50.00</span></label></span>
                  </div>
                  <div class="price-set-row contribution_amount-row4">
                    <span class="price-set-option-content"><input price="[&quot;price_2&quot;,&quot;100||&quot;]" data-amount="100.000000000" data-currency="GBP"
                        data-price-field-values="{&quot;2&quot;:{&quot;id&quot;:&quot;2&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_10_00&quot;,&quot;amount&quot;:&quot;10.000000000&quot;,&quot;weight&quot;:&quot;1&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;},&quot;3&quot;:{&quot;id&quot;:&quot;3&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_20_00&quot;,&quot;amount&quot;:&quot;20.000000000&quot;,&quot;weight&quot;:&quot;2&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;},&quot;4&quot;:{&quot;id&quot;:&quot;4&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_50_00&quot;,&quot;amount&quot;:&quot;50.000000000&quot;,&quot;weight&quot;:&quot;3&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;},&quot;5&quot;:{&quot;id&quot;:&quot;5&quot;,&quot;price_field_id&quot;:&quot;2&quot;,&quot;name&quot;:&quot;_100_00&quot;,&quot;amount&quot;:&quot;100.000000000&quot;,&quot;weight&quot;:&quot;4&quot;,&quot;is_default&quot;:&quot;0&quot;,&quot;is_active&quot;:&quot;1&quot;,&quot;financial_type_id&quot;:&quot;1&quot;,&quot;non_deductible_amount&quot;:&quot;0.00&quot;,&quot;visibility_id&quot;:&quot;1&quot;}}"
                        visibility="1" onclick="clearAmountOther();" class="crm-form-radio" value="5" type="radio" id="CIVICRM_QFID_5_price_2" name="price_2"><label for="CIVICRM_QFID_5_price_2"><span class="crm-price-amount-label"></span><span
                          class="crm-price-amount-amount">£ 100.00</span></label></span>
                  </div>
                  <div class="price-set-row contribution_amount-row5">
                    <span class="price-set-option-content"><input price="[&quot;price_2&quot;,&quot;0&quot;]" class="crm-form-radio" value="0" type="radio" id="CIVICRM_QFID_0_price_2" name="price_2"><label for="CIVICRM_QFID_0_price_2">Other
                        Amount</label></span>
                  </div>
                </div>
                <div class="clear"></div>
              </div>
              <div class="crm-section other_amount-section">
                <div class="label"><label for="price_3">Other Amount £</label></div>
                <div class="content other_amount-content">
                  <input onclick="useAmountOther();" price="[6,&quot;1||&quot;]" size="4" name="price_3" type="text" id="price_3" class="four crm-form-text">
                </div>
                <div class="clear"></div>
              </div>
              <div id="pricesetTotal" class="crm-section section-pricesetTotal">
                <div id="pricelabel" class="label hiddenElement">
                  <span id="amount_sum_label">Total Amount</span>
                </div>
                <div class="content calc-value" style="display:none;" id="pricevalue">£ 0.00</div>
              </div>
              <script type="text/javascript">
                var thousandMarker = ',';
                var separator = '.';
                var symbol = '£';
                // moneyFormat is part of a temporary fix. it should
                // not be expected to be present in future versions
                // see https://github.com/civicrm/civicrm-core/pull/19151
                var moneyFormat = '£ 1234.56';
                var optionSep = '|';
                // Recalculate the total fees based on user selection
                cj("#priceset [price]").each(function() {
                  var elementType = cj(this).attr('type');
                  if (this.tagName == 'SELECT') {
                    elementType = 'select-one';
                  }
                  switch (elementType) {
                    case 'checkbox':
                      cj(this).click(function() {
                        calculateCheckboxLineItemValue(this);
                        display(calculateTotalFee());
                      });
                      calculateCheckboxLineItemValue(this);
                      break;
                    case 'radio':
                      cj(this).click(function() {
                        calculateRadioLineItemValue(this);
                        display(calculateTotalFee());
                      });
                      calculateRadioLineItemValue(this);
                      break;
                    case 'text':
                      cj(this).bind('keyup', function() {
                        calculateText(this);
                      }).bind('blur', function() {
                        calculateText(this);
                      });
                      //default calculation of element.
                      calculateText(this);
                      break;
                    case 'select-one':
                      calculateSelectLineItemValue(this);
                      cj(this).change(function() {
                        calculateSelectLineItemValue(this);
                        display(calculateTotalFee());
                      });
                      break;
                  }
                  display(calculateTotalFee());
                });
                /**
                 * Calculate the value of the line item for a radio value.
                 */
                function calculateCheckboxLineItemValue(priceElement) {
                  eval('var option = ' + cj(priceElement).attr('price'));
                  optionPart = option[1].split(optionSep);
                  price = parseFloat(0);
                  if (cj(priceElement).prop('checked')) {
                    price = parseFloat(optionPart[0]);
                  }
                  cj(priceElement).data('line_raw_total', price);
                }
                /**
                 * Calculate the value of the line item for a radio value.
                 */
                function calculateRadioLineItemValue(priceElement) {
                  eval('var option = ' + cj(priceElement).attr('price'));
                  optionPart = option[1].split(optionSep);
                  var lineTotal = parseFloat(optionPart[0]);
                  cj(priceElement).data('line_raw_total', lineTotal);
                  var radionGroupName = cj(priceElement).attr("name");
                  // Reset all unchecked options to having a data value of 0.
                  cj('input[name=' + radionGroupName + ']:radio:unchecked').each(function() {
                    cj(this).data('line_raw_total', 0);
                  });
                }
                /**
                 * Calculate the value of the line item for a select value.
                 */
                function calculateSelectLineItemValue(priceElement) {
                  eval('var selectedText = ' + cj(priceElement).attr('price'));
                  var price = parseFloat('0');
                  var option = cj(priceElement).val();
                  if (option) {
                    optionPart = selectedText[option].split(optionSep);
                    price = parseFloat(optionPart[0]);
                  }
                  cj(priceElement).data('line_raw_total', price);
                }
                /**
                 * Calculate the value of the line item for a text box.
                 */
                function calculateText(priceElement) {
                  //CRM-16034 - comma acts as decimal in price set text pricing
                  //CRM-19937 - dollar sign easy mistake to make by users.
                  var textval = parseFloat(cj(priceElement).val().replace(thousandMarker, '').replace(symbol, ''));
                  if (isNaN(textval)) {
                    textval = parseFloat(0);
                  }
                  eval('var option = ' + cj(priceElement).attr('price'));
                  optionPart = option[1].split(optionSep);
                  addprice = parseFloat(optionPart[0]);
                  var curval = textval * addprice;
                  cj(priceElement).data('line_raw_total', curval);
                  display(calculateTotalFee());
                }
                /**
                 * Calculate the total fee for the visible priceset.
                 */
                function calculateTotalFee() {
                  var totalFee = 0;
                  cj("#priceset [price]").each(function() {
                    totalFee = totalFee + cj(this).data('line_raw_total');
                  });
                  return totalFee;
                }
                /**
                 * Display calculated amount.
                 */
                function display(totalfee) {
                  // totalfee is monetary, round it to 2 decimal points so it can
                  // go as a float - CRM-13491
                  totalfee = Math.round(totalfee * 100) / 100;
                  // dev/core#1019 Use the moneyFormat assigned to the template as an interim fix
                  // to support forms using a currency other that the site default. Also make sure to
                  // support various currency formatting options,
                  // temporary measure - pending
                  // our preferred fix.
                  // see https://github.com/civicrm/civicrm-core/pull/19151
                  var totalFormattedFee = CRM.formatMoney(totalfee, false, moneyFormat);
                  cj('#pricevalue').html(totalFormattedFee);
                  cj('#total_amount').val(totalfee);
                  cj('#pricevalue').data('raw-total', totalfee).trigger('change');
                  if (totalfee < 0) {
                    cj('table#pricelabel').addClass('disabled');
                  } else {
                    cj('table#pricelabel').removeClass('disabled');
                  }
                  if (typeof skipPaymentMethod == 'function') {
                    // Advice to anyone who, like me, feels hatred towards this if construct ... if you remove the if you
                    // get an error on participant 2 of a event that requires approval & permits multiple registrants.
                    skipPaymentMethod();
                  }
                }
              </script>
            </div>
          </fieldset>
        </div>
      </div>
      <script type="text/javascript">
        CRM.$(function($) {
          //if price set is set we use below below code to show for showing auto renew
          var autoRenewOption = '';
          var autoRenew = $("#auto_renew_section");
          var autoRenewCheckbox = $("#auto_renew");
          var forceRenew = $("#force_renew");
          autoRenew.hide();
          forceRenew.hide();
          if (autoRenewOption == 1) {
            autoRenew.show();
          } else if (autoRenewOption == 2) {
            autoRenewCheckbox.prop('checked', true);
            autoRenewCheckbox.attr('readonly', true);
            autoRenew.hide();
            forceRenew.show();
          }
        });
      </script>
    </div>
    <div class="crm-public-form-item crm-section is_recur-section">
      <div class="label">&nbsp;</div>
      <div class="content">
        <input id="is_recur" name="is_recur" type="checkbox" value="1" class="crm-form-checkbox"> <label for="is_recur">I want to contribute this amount</label> every <select aria-label="Frequency Unit" name="frequency_unit" id="frequency_unit"
          class="crm-form-select" disabled="">
          <option value="month">month</option>
          <option value="year">year</option>
        </select>
        <div id="recurHelp" class="description" style="display: none;"> Your recurring contribution will be processed automatically. </div>
      </div>
      <div class="clear"></div>
    </div>
    <div id="onBehalfOfOrg" class="crm-public-form-item crm-section">
      <div class="crm-public-form-item" id="on-behalf-block">
      </div>
      <script type="text/javascript">
        CRM.$(function($) {
          var orgOption = $("input:radio[name=org_option]:checked").attr('id');
          var onBehalfRequired = '$onBehalfRequired';
          var onbehalfof_id = $('#onbehalfof_id');
          var is_for_organization = $('#is_for_organization');
          selectCreateOrg(orgOption, false);
          if (is_for_organization.length) {
            showHideOnBehalfOfBlock();
            is_for_organization.on('change', function() {
              showHideOnBehalfOfBlock();
            });
          }

          function showHideOnBehalfOfBlock() {
            $('#on-behalf-block').toggle(is_for_organization.is(':checked'));
            if (is_for_organization.is(':checked')) {
              $('#onBehalfOfOrg select.crm-select2').removeClass('crm-no-validate');
            } else {
              $('#onBehalfOfOrg select.crm-select2').addClass('crm-no-validate');
            }
          }
          $("input:radio[name='org_option']").click(function() {
            var orgOption = $(this).attr('id');
            selectCreateOrg(orgOption, true);
          });
          onbehalfof_id.change(function() {
            setLocationDetails($(this).val());
          }).change();
          if (onbehalfof_id.length) {
            setLocationDetails(onbehalfof_id.val());
          }

          function resetValues() {
            // Don't trip chain-select when clearing values
            $('.crm-chain-select-control', "#select_org div").select2('val', '');
            $('input[type=text], select, textarea', "#select_org div").not('.crm-chain-select-control, #onbehalfof_id').val('').change();
            $('input[type=radio], input[type=checkbox]', "#select_org div").prop('checked', false).change();
            $('#on-behalf-block input').not('input[type=checkbox], input[type=radio], #onbehalfof_id').val('');
            // clear checkboxes and radio
            $('#on-behalf-block').find('input[type=checkbox], input[type=radio]').not('input[name=org_option]').attr('checked', false);
          }

          function selectCreateOrg(orgOption, reset) {
            if (orgOption == 'CIVICRM_QFID_0_org_option') {
              $("#onbehalfof_id").show().change();
              $("input#onbehalf_organization_name").hide();
            } else if (orgOption == 'CIVICRM_QFID_1_org_option') {
              $("input#onbehalf_organization_name").show();
              $("#onbehalfof_id").hide();
              reset = true;
            }
            if (reset) {
              resetValues();
            }
          }

          function setLocationDetails(contactID, reset) {
            resetValues();
            var locationUrl = '' + contactID;
            var submittedOnBehalfInfo = '';
            var submittedCID = "";
            if (submittedOnBehalfInfo) {
              submittedOnBehalfInfo = $.parseJSON(submittedOnBehalfInfo);
              if (submittedCID == contactID) {
                $.each(submittedOnBehalfInfo, function(key, value) {
                  //handle checkboxes
                  if (typeof value === 'object') {
                    $.each(value, function(k, v) {
                      $('#onbehalf_' + key + '_' + k).prop('checked', v);
                    });
                  } else if ($('#onbehalf_' + key).length) {
                    $('#onbehalf_' + key).val(value);
                  }
                  //radio buttons
                  else if ($("input[name='onbehalf[" + key + "]']").length) {
                    $("input[name='onbehalf[" + key + "]']").val([value]);
                  }
                });
                return;
              }
            }
            $.ajax({
              url: locationUrl,
              dataType: "json",
              success: function(data, status) {
                for (var ele in data) {
                  if ($("#" + ele).hasClass('crm-chain-select-target')) {
                    $("#" + ele).data('newVal', data[ele].value).off('.autofill').on('crmOptionsUpdated.autofill', function() {
                      $(this).off('.autofill').val($(this).data('newVal')).change();
                    });
                  } else if ($('#' + ele).data('select2')) {
                    $('#' + ele).select2('val', data[ele].value);
                  }
                  if (data[ele].type == 'Radio') {
                    if (data[ele].value) {
                      var fldName = ele.replace('onbehalf_', '');
                      $("input[name='onbehalf[" + fldName + "]']").filter("[value='" + data[ele].value + "']").prop('checked', true);
                    }
                  } else if (data[ele].type == 'CheckBox') {
                    for (var selectedOption in data[ele].value) {
                      var fldName = ele.replace('onbehalf_', '');
                      $("input[name='onbehalf[" + fldName + "][" + selectedOption + "]']").prop('checked', 'checked');
                    }
                  } else if (data[ele].type == 'AdvMulti-Select') {
                    var customFld = ele.replace('onbehalf_', '');
                    // remove empty value if any
                    $('#onbehalf\\[' + customFld + '\\]-f option[value=""]').remove();
                    $('#onbehalf\\[' + customFld + '\\]-t option[value=""]').remove();
                    for (var selectedOption in data[ele].value) {
                      // remove selected values from left and selected values to right
                      $('#onbehalf\\[' + customFld + '\\]-f option[value="' + selectedOption + '"]').remove().appendTo('#onbehalf\\[' + customFld + '\\]-t');
                      $('#onbehalf_' + customFld).val(selectedOption);
                    }
                  } else {
                    // do not set defaults to file type fields
                    if ($('#' + ele).attr('type') != 'file') {
                      $('#' + ele).val(data[ele].value).change();
                    }
                  }
                }
              },
              error: function(XMLHttpRequest, textStatus, errorThrown) {
                CRM.console('error', "HTTP error status: ", textStatus);
              }
            });
          }
        });
      </script>
    </div>
    <div class="crm-public-form-item crm-section cms_user-section">
    </div>
    <div class="crm-public-form-item crm-section premium_block-section">
    </div>
    <div class="crm-public-form-item crm-group custom_pre_profile-group">
      <fieldset class="crm-profile crm-profile-id-2 crm-profile-name-supporter_profile">
        <legend>Your details</legend>
        <div class="crm-section editrow_first_name-section form-item" id="editrow-first_name">
          <div class="label">
            <label for="first_name"> First Name <span class="crm-marker" title="This field is required.">*</span>
            </label>
          </div>
          <div class="content">
            <input maxlength="64" size="30" name="first_name" type="text" id="first_name" class="big crm-form-text required">
          </div>
          <div class="clear"></div>
        </div>
        <div class="crm-section editrow_last_name-section form-item" id="editrow-last_name">
          <div class="label">
            <label for="last_name"> Last Name <span class="crm-marker" title="This field is required.">*</span>
            </label>
          </div>
          <div class="content">
            <input maxlength="64" size="30" name="last_name" type="text" id="last_name" class="big crm-form-text required">
          </div>
          <div class="clear"></div>
        </div>
        <div class="crm-section editrow_email-Primary-section form-item" id="editrow-email-Primary">
          <div class="label">
            <label for="email-Primary"> Email Address <span class="crm-marker" title="This field is required.">*</span>
            </label>
          </div>
          <div class="content">
            <input maxlength="254" size="30" name="email-Primary" type="text" id="email-Primary" class="big crm-form-text required">
          </div>
          <div class="clear"></div>
        </div>
      </fieldset>
      <script type="text/javascript">
        CRM.$(function($) {
          $('#selector tr:even').addClass('odd-row');
          $('#selector tr:odd ').addClass('even-row');
        });
      </script>
    </div>
    <div id="billing-payment-block" style="display: none;">
      <script type="text/javascript">
        CRM.config.creditCardTypes = {
          "Visa": {
            "label": "Visa",
            "name": "Visa",
            "css_key": "visa",
            "pattern": "4(?:[0-9]{12}|[0-9]{15})"
          },
          "MasterCard": {
            "label": "MasterCard",
            "name": "MasterCard",
            "css_key": "mastercard",
            "pattern": "(5[1-5][0-9]{2}|2[3-6][0-9]{2}|22[3-9][0-9]|222[1-9]|27[0-1][0-9]|2720)[0-9]{12}"
          },
          "Amex": {
            "label": "Amex",
            "name": "Amex",
            "css_key": "amex",
            "pattern": "3[47][0-9]{13}"
          },
          "Discover": {
            "label": "Discover",
            "name": "Discover",
            "css_key": "discover",
            "pattern": "6011[0-9]{12}"
          }
        };
      </script>
      <div id="payment_information" style="display: none;">
      </div>
      <script type="text/javascript" src="/libraries/civicrm/core/templates/CRM/Core/BillingBlock.js?r=cFVxY">
      </script>
    </div>
    <script type="text/javascript">
      /**
       * Show or hide payment options.
       *
       * @param bool $isHide
       *   Should the block be hidden.
       */
      function showHidePayment(isHide) {
        var payment_options = cj(".payment_options-group");
        var payment_processor = cj("div.payment_processor-section");
        var payment_information = cj("div#payment_information");
        // I've added a hide for billing block. But, actually the issue
        // might be that the unselecting of the processor should cause it
        // to be hidden (or removed) in which case it can go from this function.
        var billing_block = cj("div#billing-payment-block");
        if (isHide) {
          payment_options.hide();
          payment_processor.hide();
          payment_information.hide();
          billing_block.hide();
          // Ensure that jquery validation doesn't block submission when we don't need to fill in the billing details section
          cj('#billing-payment-block select.crm-select2').addClass('crm-no-validate');
          // also unset selected payment methods
          cj('input[name="payment_processor_id"]').removeProp('checked');
        } else {
          payment_options.show();
          payment_processor.show();
          payment_information.show();
          billing_block.show();
          cj('#billing-payment-block select.crm-select2').removeClass('crm-no-validate');
          // also set selected payment methods
          cj('input[name="payment_processor_id"][checked=checked]').prop('checked', true);
        }
      }
      /**
       * Hides or shows billing and payment options block depending on whether payment is required.
       *
       * In general incomplete orders or $0 orders do not require a payment block.
       */
      function skipPaymentMethod() {
        var isHide = false;
        var isMultiple = null;
        var alwaysShowFlag = (isMultiple && cj("#additional_participants").val());
        var alwaysHideFlag = (cj("#bypass_payment").val() == 1);
        var total_amount_tmp = cj('#pricevalue').data('raw-total');
        // Hide billing questions if this is free
        if (!alwaysShowFlag && total_amount_tmp == 0) {
          isHide = true;
        } else {
          isHide = false;
        }
        if (alwaysHideFlag) {
          isHide = true;
        }
        showHidePayment(isHide);
      }
      skipPaymentMethod();
      CRM.$(function($) {
        function buildPaymentBlock(type) {
          var $form = $('#billing-payment-block').closest('form');
          var payment_instrument_id = $('#payment_instrument_id').val();
          var dataUrl = "/civicrm/payment/form?formName=Main&currency=GBP&is_back_office=&id=1&pre_profile_id=2&processor_id=" + type;
          if (typeof(CRM.vars) != "undefined") {
            if (typeof(CRM.vars.coreForm) != "undefined") {
              if (typeof(CRM.vars.coreForm.contact_id) != "undefined") {
                dataUrl = dataUrl + "&cid=" + CRM.vars.coreForm.contact_id;
              }
              if (typeof(CRM.vars.coreForm.checksum) != "undefined") {
                dataUrl = dataUrl + "&cs=" + CRM.vars.coreForm.checksum;
              }
            }
          }
          dataUrl = dataUrl + "&payment_instrument_id=" + payment_instrument_id;
          // Processors like pp-express will hide the form submit buttons, so re-show them when switching
          $('.crm-submit-buttons', $form).show().find('input').prop('disabled', true);
          CRM.loadPage(dataUrl, {
            target: '#billing-payment-block'
          });
        }
        $('[name=payment_processor_id]').on('change.paymentBlock', function() {
          buildPaymentBlock($(this).val());
        });
        $('#payment_instrument_id').on('change.paymentBlock', function() {
          buildPaymentBlock(0);
        });
        $('#billing-payment-block').on('crmLoad', function() {
          $('.crm-submit-buttons input').prop('disabled', false);
        })
      });
    </script>
    <div class="crm-public-form-item crm-group custom_post_profile-group">
      <script type="text/javascript">
        CRM.$(function($) {
          $('#selector tr:even').addClass('odd-row');
          $('#selector tr:odd ').addClass('even-row');
        });
      </script>
    </div>
    <div id="crm-submit-buttons" class="crm-submit-buttons">
      <button class="crm-form-submit default validate crm-button crm-button-type-upload crm-button_qf_Main_upload" value="1" type="submit" name="_qf_Main_upload" id="_qf_Main_upload-bottom"><i aria-hidden="true" class="crm-i fa-chevron-right"></i>
        Review your contribution</button>
    </div>
    <div id="footer_text" class="crm-public-form-item crm-section contribution_footer_text-section">
      <p></p>
      <div><span style="float:left">Donate in another currency:
        </span><a class="crm-button" href="/civicrm/contribute/transact?reset=1&amp;id=10" style="margin-left:10px">USD</a><a class="crm-button" href="/civicrm/contribute/transact?reset=1&amp;id=11" style="margin-left:10px">EUR</a><a class="crm-button" href="/civicrm/contribute/transact?reset=1&amp;id=1" style="margin-left:10px">GBP</a>
      </div>
      <p></p>
    </div>
  </div>
  <script type="text/javascript">
    cj('input[name="soft_credit_type_id"]').on('change', function() {
      enableHonorType();
    });

    function enableHonorType() {
      var selectedValue = cj('input[name="soft_credit_type_id"]:checked');
      if (selectedValue.val() > 0) {
        cj('#honorType').show();
      } else {
        cj('#honorType').hide();
      }
    }
    cj('input[id="is_recur"]').on('change', function() {
      toggleRecur();
    });

    function toggleRecur() {
      var isRecur = cj('input[id="is_recur"]:checked');
      var allowAutoRenew = '';
      var quickConfig = 1;
      if (allowAutoRenew && cj("#auto_renew") && quickConfig) {
        showHideAutoRenew(null);
      }
      var frequencyUnit = cj('#frequency_unit');
      var frequencyInerval = cj('#frequency_interval');
      var installments = cj('#installments');
      isDisabled = false;
      if (isRecur.val() > 0) {
        cj('#recurHelp').show();
        frequencyUnit.prop('disabled', false).addClass('required');
        frequencyInerval.prop('disabled', false).addClass('required');
        installments.prop('disabled', false);
        cj('#amount_sum_label').text('Regular amount');
      } else {
        cj('#recurHelp').hide();
        frequencyUnit.prop('disabled', true).removeClass('required');
        frequencyInerval.prop('disabled', true).removeClass('required');
        installments.prop('disabled', true);
        cj('#amount_sum_label').text('Total Amount');
      }
    }

    function pcpAnonymous() {
      // clear nickname field if anonymous is true
      if (document.getElementsByName("pcp_is_anonymous")[1].checked) {
        document.getElementById('pcp_roll_nickname').value = '';
      }
      if (!document.getElementsByName("pcp_display_in_roll")[0].checked) {
        cj('#nickID').hide();
        cj('#nameID').hide();
        cj('#personalNoteID').hide();
      } else {
        if (document.getElementsByName("pcp_is_anonymous")[0].checked) {
          cj('#nameID').show();
          cj('#nickID').show();
          cj('#personalNoteID').show();
        } else {
          cj('#nameID').show();
          cj('#nickID').hide();
          cj('#personalNoteID').hide();
        }
      }
    }
    CRM.$(function($) {
      enableHonorType();
      toggleRecur();
      skipPaymentMethod();
    });
    CRM.$(function($) {
      // highlight price sets
      function updatePriceSetHighlight() {
        $('#priceset .price-set-row span').removeClass('highlight');
        $('#priceset .price-set-row input:checked').parent().addClass('highlight');
      }
      $('#priceset input[type="radio"]').change(updatePriceSetHighlight);
      updatePriceSetHighlight();
      // Update pledge contribution amount when pledge checkboxes change
      $("input[name^='pledge_amount']").on('change', function() {
        var total = 0;
        $("input[name^='pledge_amount']:checked").each(function() {
          total += Number($(this).attr('amount'));
        });
        $("input[name^='price_']").val(total.toFixed(2));
      });
    });
  </script>
  <script type="text/javascript">
    CRM.$(function($) {
      $("form.CRM_Contribute_Form_Contribution_Main").crmValidate();
    });
  </script>
</form>

Text Content

Skip to main content


USER ACCOUNT MENU

 * PI
 * Donate
 * Newsletter
 * Take Action
 * Log in




DONATE TO PROTECT PRIVACY, DIGNITY, AND FREEDOM

PI FIGHTS FOR PEOPLE’S PRIVACY, DIGNITY, AND FREEDOM AROUND THE WORLD. 

We are a small and fiercely independent charity that picks big fights with
companies and governments that attack your privacy, dignity and freedom.

Our independence means we never accept funds from industry and governments that
limit our ability to criticise those same institutions who abuse your privacy,
dignity and freedom. 
 
To help keep PI independent we need your support.

Even though we are a privacy organisation, we are proudly transparent about our
funding. You are welcome to look at all of our accounts.

If you are a UK taxpayer and wish to increase the value of your donation
using Gift Aid -- which increases the value of your charity donations by 25%,
because the charity can reclaim the basic rate of tax on your gift at no extra
cost to you -- you can donate to PI through PayPal's Giving Fund.


If you're visiting this page because you're interested in getting a PI face
mask, in order to be eligible we ask that you donate £20 or more, or set up a
monthly donation of £2 or more.
 
Then send us a quick email to hello@privacyinternational.org (please email us
from the same email address that you used to make or set up your donation), with
'Mask' in the header. Please provide us with your name and full postal address*.
We'll ship your mask within 14 days. Get yours while stocks last!

*Please be assured we will only use your postal address for the purposes of
shipping the mask to you, and we will not store it in our records. We will
delete all correspondence with you in relation to the face mask within three
months of our last correspondence. For more information on how we process your
data, please refer to our Privacy Policy.
Contribution Amount
£ 10.00
£ 20.00
£ 50.00
£ 100.00
Other Amount

Other Amount £


Total Amount
£ 0.00
 
I want to contribute this amount every month year
Your recurring contribution will be processed automatically.




Your details
First Name *


Last Name *


Email Address *




Review your contribution

Donate in another currency: USDEURGBP



empowered by
CiviCRM


CONTACT US

62 Britton Street,
London, EC1M 5UY
UK

Charity Registration No: 1147471

Click here to contact us.

Click here for media and press enquiries.


FOLLOW US

 * Facebook
 * Instagram
 * Mastodon
 * RSS
 * Twitter
 * Youtube


NAVIGATION

 * PI
 * Donate
 * Newsletter
 * Take Action