Index: pages/donate.raw |
=================================================================== |
new file mode 100644 |
--- /dev/null |
+++ b/pages/donate.raw |
@@ -0,0 +1,516 @@ |
+<head> |
+<style type="text/css"> |
+h2 |
+{ |
+ padding-top: 20px; |
+ border-top: 1px solid #ccc; |
+} |
+ |
+label |
+{ |
+ display: block; |
+} |
+ |
+input |
+{ |
+ vertical-align: top; |
+} |
+ |
+button, label |
+{ |
+ display: inline-block; |
+ margin-bottom: 0; |
+ font-weight: 400; |
+ text-align: center; |
+ vertical-align: middle; |
+ cursor: pointer; |
+ background-image: none; |
+ border: 1px solid transparent; |
+ white-space: nowrap; |
+ padding: 6px 12px; |
+ font-size: 14px; |
+ line-height: 1.42857143; |
+ border-radius: 4px; |
+ -webkit-user-select: none; |
+ -moz-user-select: none; |
+ -ms-user-select: none; |
+ user-select: none; |
+ color: #333; |
+ background-color: #fff; |
+ border-color: #ccc; |
+} |
+ |
+button:hover |
+{ |
+ background-color: #ebebeb; |
+ border-color: #adadad; |
+} |
+ |
+button:active |
+{ |
+ background-color: #ebebeb; |
+ border-color: #adadad; |
+ outline: 0; |
+ -webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,.125); |
+ box-shadow: inset 0 3px 5px rgba(0,0,0,.125); |
+} |
+ |
+.hidden |
+{ |
+ display: none; |
+} |
+ |
+.contentfield_content .hidden |
+{ |
+ display: block; |
+} |
+ |
+#form strong |
+{ |
+ display: block; |
+ margin: 10px 0px; |
+} |
+ |
+#form button |
+{ |
+ font-size: 18px; |
+} |
+ |
+/* Credit Card */ |
+ |
+#form.none button.credit-card, |
+#form.credit-card button.credit-card |
+{ |
+ color: #fff; |
+ background-color: #d9534f; |
+ border-color: #d43f3a; |
+} |
+ |
+#form.none button.credit-card:hover, |
+#form.credit-card button.credit-card:hover |
+{ |
+ background-color: #d2322d; |
+ border-color: #ac2925; |
+} |
+ |
+/* Paypal */ |
+ |
+#form.none button.paypal, |
+#form.paypal button.paypal |
+{ |
+ color: #fff; |
+ background-color: #428bca; |
+ border-color: #357ebd; |
+} |
+ |
+#form.none button.paypal:hover, |
+#form.paypal button.paypal:hover |
+{ |
+ background-color: #3276b1; |
+ border-color: #285e8e; |
+} |
+ |
+/* Bitcoin */ |
+ |
+#form.none button.bitcoin, |
+#form.bitcoin button.bitcoin |
+{ |
+ color: #fff; |
+ background-color: #f0ad4e; |
+ border-color: #eea236; |
+} |
+ |
+#form.none button.bitcoin:hover, |
+#form.bitcoin button.bitcoin:hover |
+{ |
+ background-color: #ed9c28; |
+ border-color: #d58512; |
+} |
+ |
+/* Secondary Form Elements */ |
+ |
+#form-fields |
+{ |
+ display: none; |
+} |
+ |
+#form.credit-card #form-fields, |
+#form.paypal #form-fields, |
+#form.bitcoin #form-fields |
+{ |
+ display: block; |
+} |
+ |
+#form.bitcoin #form-price |
+{ |
+ display: none; |
+} |
+ |
+#donate |
+{ |
+ color: #fff; |
+ background-color: #5cb85c; |
+ border-color: #4cae4c; |
+} |
+ |
+#donate:hover |
+{ |
+ background-color: #47a447; |
+ border-color: #398439; |
+} |
+ |
+#error |
+{ |
+ color: #d9534f; |
+ vertical-align: middle; |
+} |
+ |
+#refund-message |
+{ |
+ margin-top: 50px; |
+ font-style: italic; |
+} |
+ |
+#refund-message * |
+{ |
+ font-size: 12px; |
+} |
+ |
+#refund-message div |
+{ |
+ margin-bottom: 5px; |
+} |
+ |
+#refund-message ul |
+{ |
+ padding-top: 0px; |
+ margin-top: 0px; |
+} |
+ |
+.custom-input |
+{ |
+ display: inline-block; |
+ margin-left: 6px; |
+} |
+ |
+.custom-input .addon |
+{ |
+ padding: 2px 6px; |
+ text-align: center; |
+ color: #555; |
+ font-size: 14px; |
+ border: 1px solid #ccc; |
+ border-right: 0; |
+ border-radius: 3px; |
+ border-bottom-right-radius: 0; |
+ border-top-right-radius: 0; |
+ background-color: #eee; |
+} |
+ |
+.custom-input input |
+{ |
+ width: 75px; |
+ margin: 0px; |
+ padding: 2px; |
+ text-align: right; |
+ font-size: 14px; |
+ color: #555; |
+ border: 1px solid #ccc; |
+ border-radius: 4px; |
+ border-bottom-left-radius: 0; |
+ border-top-left-radius: 0; |
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); |
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075); |
+ -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; |
+ transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s; |
+} |
+</style> |
+ |
+<script type="text/javascript"> |
+// <!-- |
+(function() |
+{ |
+ var textAttr = ("textContent" in document.documentElement) ? "textContent" : "innerText"; |
+ |
+ var formValues = { |
+ currency: "USD", |
+ description: null, |
+ name: null |
+ }; |
+ |
+ var priceValue = { |
+ get: function() |
+ { |
+ var value = document.querySelector("input[name=price]:checked").value; |
+ if (value == 0) |
+ value = document.getElementById("price-other").value >> 0; |
+ return value; |
+ }, |
+ verify: function() |
+ { |
+ var selected = document.querySelector("input[name=price]:checked"); |
+ if (!selected) |
+ return "Please select an amount"; |
+ if (selected.value == 0) |
+ { |
+ var other = document.getElementById("price-other"); |
+ if (other.value < 0 || isNaN(other.value)) |
+ return "Please select a valid amount"; |
+ } |
+ return null; |
+ } |
+ }; |
+ |
+ var langValue = { |
+ get: function(langs) |
+ { |
+ var lang = document.documentElement.lang; |
+ if (lang in langs) |
+ return langs[lang]; |
+ if ("en" in langs) |
+ return langs["en"]; |
+ return "en"; |
+ } |
+ }; |
+ |
+ var recurrenceValue = { |
+ get: function(recurrences) |
+ { |
+ var checked = document.getElementById("recurrence").checked; |
+ return (checked && recurrences.monthly) ? recurrences.monthly : undefined |
+ } |
+ }; |
+ |
+ var providers = { |
+ "bitcoin": function() |
+ { |
+ var recurring = recurrenceValue.get({ |
+ "monthly": "https://coinbase.com/checkouts/d46825e3f22461f6a25b3249f8ce7c2a" |
+ }); |
+ openProviderPage({ |
+ action: (recurring) ? recurring : "https://coinbase.com/checkouts/ab08a165e21d72b503cff8f30bece652" |
+ }); |
+ }, |
+ "credit-card": function() |
+ { |
+ if (verify(priceValue)) |
+ return; |
+ |
+ openProviderPage({ |
+ action: "https://www.2checkout.com/checkout/purchase", |
+ fields: { |
+ sid: "202208429", |
+ mode: "2CO", |
+ currency_code: formValues.currency, |
+ lang: langValue.get({ |
+ "de": "gr", |
+ "en": "en", |
+ "es": "es_ib", |
+ "fr": "fr", |
+ "nl": "nl", |
+ "pt_br": "pt", |
+ "zh_cn": "zh", |
+ "zh_tw": "zh" |
+ }), |
+ pay_method: "CC", // CC: Credit Card, PPI: PayPal |
+ li_0_type: "product", |
+ li_0_name: formValues.name, |
+ li_0_description: formValues.description, |
+ li_0_price: priceValue.get(), |
+ li_0_tangible: "N", |
+ li_0_recurrence: recurrenceValue.get({ |
+ "monthly": "1 Month" |
+ }) |
+ } |
+ }); |
+ }, |
+ // see https://developer.paypal.com/webapps/developer/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/#id08A6HI00JQU |
+ "paypal": function() |
+ { |
+ if (verify(priceValue)) |
+ return; |
+ |
+ var recurrence = recurrenceValue.get({ |
+ "monthly": "M" |
+ }); |
+ |
+ var fields = { |
+ business: "jobp@adblockplus.org", |
+ item_name: formValues.name, |
+ currency_code: formValues.currency, |
+ lc: langValue.get({ |
+ "de": "DE", |
+ "en": "US", |
+ "es": "ES", |
+ "fr": "FR", |
+ "nl": "NL", |
+ "pt_br": "BR", |
+ "zh_cn": "C2", |
+ "zh_tw": "TW" |
+ }) |
+ }; |
+ if (recurrence) |
+ { |
+ fields.cmd = "_xclick-subscriptions"; |
+ fields.a3 = priceValue.get(); |
+ fields.p3 = 1; |
+ fields.t3 = recurrence; |
+ fields.src = 1; |
+ fields.modify = 1; |
+ } |
+ else |
+ { |
+ fields.cmd = "_donations"; |
+ fields.amount = priceValue.get(); |
+ } |
+ |
+ openProviderPage({ |
+ action: "https://www.paypal.com/cgi-bin/webscr", |
+ fields: fields |
+ }); |
+ } |
+ }; |
+ |
+ function verify() |
+ { |
+ var error = null; |
+ for (var i in arguments) |
+ { |
+ error = arguments[i].verify(); |
+ if (error) |
+ { |
+ document.getElementById("error")[textAttr] = error; |
+ break; |
+ } |
+ } |
+ return error; |
+ } |
+ |
+ function openProviderPage(provider) |
+ { |
+ document.getElementById("error")[textAttr] = ""; |
+ |
+ var form = document.createElement("form"); |
+ form.target = "_blank"; |
+ form.action = provider.action; |
+ |
+ var fields = provider.fields; |
+ if (fields) |
+ { |
+ for (var i in fields) |
+ { |
+ var field = document.createElement("input"); |
+ field.name = i; |
+ field.value = fields[i]; |
+ form.appendChild(field); |
+ } |
+ } |
+ |
+ // To submit a form in Firefox it needs to be part of the DOM |
+ document.head.appendChild(form); |
+ form.submit(); |
+ document.head.removeChild(form); |
+ } |
+ |
+ function getText(id) |
+ { |
+ var element = document.getElementById(id); |
+ return element[textAttr]; |
+ } |
+ |
+ document.addEventListener("DOMContentLoaded", function() |
+ { |
+ formValues.description = getText("i18n_description"); |
+ formValues.name = getText("i18n_name"); |
+ |
+ document.getElementById("payment").addEventListener("click", function(event) |
+ { |
+ if (event.target.localName != "button") |
+ return; |
+ |
+ document.getElementById("form").className = event.target.className; |
+ }, true); |
+ document.getElementById("donate").addEventListener("click", function(event) |
+ { |
+ var provider = providers[document.getElementById("form").className]; |
+ if (provider) |
+ provider(); |
+ }, false); |
+ }, false); |
+})(); |
+ |
+// --> |
+</script> |
+</head> |
+<span class="hidden" id="i18n_name">$s1$ </span> |
+<span class="hidden" id="i18n_description">$s2$</span> |
+ |
+<p> |
+ $s3$ |
+</p> |
+ |
+<div class="paypal" id="form"> |
+ <p id="payment"> |
+ <strong>$s4$</strong> |
+ |
+ <button class="paypal">$s5$</button> |
+<!-- Commented out until it works properly, see https://issues.adblockplus.org/ticket/732 |
+ <button class="credit-card">Credit Card</button> |
+--> |
+ <button class="bitcoin">$s6$</button> |
+ </p> |
+ |
+ <div id="form-fields"> |
+ <p id="form-price"> |
+ <strong>$s7$</strong> |
+ |
+ <label> |
+ <input name="price" type="radio" value="5"> |
+ $s8$ |
+ </label> |
+ <label> |
+ <input name="price" type="radio" value="10"> |
+ $s9$ |
+ </label> |
+ <label> |
+ <input name="price" type="radio" value="20"> |
+ $s10$ |
+ </label> |
+ <label> |
+ <input name="price" type="radio" value="40"> |
+ $s11$ |
+ </label> |
+ <label> |
+ <input name="price" type="radio" value="0"> |
+ $s12$ |
+ <span class="custom-input"> |
+ <span class="addon">$s13$</span><input id="price-other" min="1" type="number" value="1"> |
+ </span> |
+ </label> |
+ </p> |
+ |
+ <p id="form-recurrence"> |
+ <label> |
+ <input id="recurrence" type="checkbox"> |
+ $s14$ |
+ </label> |
+ </p> |
+ |
+ <button id="donate">$s15$</button> |
+ <span id="error"></span> |
+ |
+ <div id="refund-message"> |
+ <div> |
+ $s16(mailto:info@adblockplus.org)$ |
+ </div> |
+ <div> |
+ $s17$ |
+ <ul> |
+ <li><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_manage-paylist" target="_blank">$s18$</a></li> |
+ <li><a href="mailto:info@adblockplus.org" target="_blank">$s19$</a></li> |
+ <li><a href="https://coinbase.com/recurring_payments" target="_blank">$s20$</a></li> |
+ </ul> |
+ </div> |
+ </div> |
+ </div> |
+</div> |