Donations system (running via PayPal).

Implements #211.
NOTE: DB updated needed. Documented in http://boinc.berkeley.edu/trac/wiki/PayPalDonations

svn path=/trunk/boinc/; revision=12754
This commit is contained in:
Rytis Slatkevičius 2007-05-27 17:33:06 +00:00
parent 6ea27e8787
commit 670bbd92d7
9 changed files with 594 additions and 1 deletions

View File

@ -5368,3 +5368,19 @@ David 27 May 2007
sg_ProjectsComponent.cpp
sg_ViewTabPage.cpp
DlgAdvPreferences Base.cpp
Rytis 27 May 2007
- Donations system (running via PayPal).
NOTE: DB updated needed. Documented in
http://boinc.berkeley.edu/trac/wiki/PayPalDonations
db/
schema.sql
html/user/
currency.js
donate.php
donated.php
donation_ipn.php
donations.php
img/
paypal_logo.png

View File

@ -470,3 +470,33 @@ create table credited_job (
userid integer not null,
workunitid bigint not null
) TYPE=MyISAM;
create table donation_items (
id integer unsigned not null auto_increment,
item_name varchar(32) not null,
title varchar(255) not null,
description varchar(255) not null,
required double unsigned not null default '0',
PRIMARY KEY(id)
) TYPE=MyISAM;
create table donation_paypal (
id integer not null auto_increment,
order_time integer unsigned not null,
userid integer not null,
email_addr varchar(255) not null,
order_amount double(6,2) not null,
processed tinyint(1) not null default '0',
payment_time integer unsigned not null,
item_name varchar(255) not null,
item_number varchar(255) not null,
payment_status varchar(255) not null,
payment_amount double(6,2) not null,
payment_fee double(5,2) default null,
payment_currency varchar(255) not null,
txn_id varchar(255) not null,
receiver_email varchar(255) not null,
payer_email varchar(255) not null,
payer_name varchar(255) not null,
PRIMARY KEY(id)
) TYPE=MyISAM;

View File

@ -391,11 +391,42 @@ function update_4_30_2007() {
);
}
function update_5_27_2007() {
do_query("create table donation_items (
id integer unsigned not null auto_increment,
item_name varchar(32) not null,
title varchar(255) not null,
description varchar(255) not null,
required double unsigned not null default '0',
PRIMARY KEY(id)
) TYPE=MyISAM;");
do_query("create table donation_paypal (
id integer not null auto_increment,
order_time integer unsigned not null,
userid integer not null,
email_addr varchar(255) not null,
order_amount double(6,2) not null,
processed tinyint(1) not null default '0',
payment_time integer unsigned not null,
item_name varchar(255) not null,
item_number varchar(255) not null,
payment_status varchar(255) not null,
payment_amount double(6,2) not null,
payment_fee double(5,2) default null,
payment_currency varchar(255) not null,
txn_id varchar(255) not null,
receiver_email varchar(255) not null,
payer_email varchar(255) not null,
payer_name varchar(255) not null,
PRIMARY KEY(id)
) TYPE=MyISAM;");
}
// modify the following to call the function you want.
// Make sure you do all needed functions, in order.
// (Look at your DB structure using "explain" queries to see
// which ones you need).
//update_4_30_2007();
//update_5_27_2007();
?>

95
html/user/currency.js Normal file
View File

@ -0,0 +1,95 @@
// From gocurrency
var currency = new Array("TRY","AFA","DZD","USD","AOA","ANG","ARS","AMD","AWG","AUD","AZM","XOF","XAF","BSD","BBD","BYR","BZD","BMD","BTN","BOB","BAM","BWP","BRL","GBP","BND","BGN","BIF","XPF","KHR","CAD","KYD","CLP","CNY","COP","KMF","CDF","CRC","HRK","CUP","CYP","CZK","DKK","DJF","DOP","XCD","EGP","SVC","ERN","EEK","ETB","EUR","FKP","FJD","GMD","GEL","GHC","GIP","GTQ","GNF","GYD","HTG","HNL","HKD","HUF","IRR","ISK","INR","IDR","IQD","ILS","JMD","JPY","JOD","KZT","KES","KGS","KWD","LAK","LVL","LBP","LSL","LRD","LYD","LTL","MOP","MKD","MGA","MWK","MYR","MVR","MTL","MRO","MUR","MXN","MDL","MNT","MAD","MZM","MMK","NAD","NPR","NZD","NIO","NGN","KPW","NOK","OMR","PKR","PAB","PGK","PYG","PEN","PHP","PLN","CVE","QAR","ROL","RUB","RWF","SHP","STD","SAR","CSD","SCR","SLL","SGD","SKK","SIT","SBD","SOS","WST","ZAR","KRW","LKR","SDD","SRD","SZL","SEK","CHF","SYP","TWD","TZS","THB","TOP","TTD","TND","TRL","TMM","UGX","UAH","UYU","AED","UZS","VUV","VEB","VND","YER","ZMK","ZWD");
var country = new Array("","AF","DZ","US","AO","AN","AR","AM","AW","AU","AZ","XO","XA","BS","BB","BY","BZ","BM","BT","BO","BA","BW","BR","GB","BN","BG","BI","XP","KH","CA","KY","CL","CN","CO","KM","CD","CR","HR","CU","CY","CZ","DK","DJ","DO","XC","EG","SV","ER","EE","ET","EU","FK","FJ","GM","GE","GH","GI","GT","GN","GY","HT","HN","HK","HU","IR","IS","IN","ID","IQ","IL","JM","JP","JO","KZ","KE","KG","KW","LA","LV","LB","LS","LR","LY","LT","MO","MK","MG","MW","MY","MV","MT","MR","MU","MX","MD","MN","MA","MZ","MM","NA","NP","NZ","NI","NG","KP","NO","OM","PK","PA","PG","PY","PE","PH","PL","CV","QA","RO","RU","RW","SH","ST","SA","CS","SC","SL","SG","SK","SI","SB","SO","WS","ZA","KR","LK","SD","SR","SZ","SE","CH","SY","TW","TZ","TH","TO","TT","TN","TR","TM","UG","UA","UY","AE","UZ","VU","VE","VN","YE","ZM","ZW");
var rate = new Array("","43","72.12","1","80.1823","1.78","3.0375","447","1.79","1.34084","4588","528.13","527.06","1","0.37697","1.99","2149.35","1.96","0.98","44.7","7.95","1.5811","5.40541","2.129","0.55944","1.588","1.5727","976","96.2","4005","1.1314","0.82","516.25","8.0095","2352","397.75","425","506.76","5.878","1","0.4633","22.842","5.9995","175.15","32.3","2.67","5.7498","1","13.5","12.6076","8.6896","0.80425","0.62688","1.75439","27.9","1.8098","9100","0.55975","7.572","4450","190","40.9","18.895","7.7531","212.16","9130","74.59","44.88","8805","1469.2","4.5245","62","114.81","0.7085","124.12","71.25","40.9126","0.29201","9950","0.5595","1501","5.95","54","1.3265","2.7767","8.0061","49.47","2175","137.85","3.6415","12.6","0.34594","263.49","30.62","11.1495","12.99","1192","8.8699","26900","6.42","6.0635","71.65","1.60051","17.11","127.5","143.05","6.3052","0.38498","59.95","1","3.08928","5730","3.315","51.83","3.1174","89.3","3.6398","29766","27.402","549.98","0.55975","6940","3.7504","69.73","5.1975","2350","1.5872","29.894","192.65","7.57576","1440","2.89855","6.075","945","102.64","223.5","2.71","6.039","7.4922","1.2674","51.91","31.943","1210","37.63","2.03252","6.269","1.3284","1.325","1345000","5200","1824","5.04","23.95","3.6727","1220.94","111.1","2144.6","15936","196.25","3080","99201.6");
var fromFlag = new Array(3,23,9,50,125,71); var nVal = 1;
var toFlag = new Array(50,23,71,66,9,125);
function numberFormat() {
var fltNum = document.calcForm.outV.value;
var intNum = document.calcForm.outV.value;
intNum = intNum.replace(',','');
intNum = parseFloat(intNum);
if(fltNum.indexOf('.') > 0 )
{
var dec = fltNum.substr(fltNum.indexOf('.')+1,2);
dec = parseInt(dec);
if(dec < 10)
dec = dec * 10;
} else {
var dec = "00";
}
document.calcForm.outV.value = intNum;
}
function Cvalue()
{
var fromR, toR, resultV;
fromR = rate[parseInt(document.calcForm.from.value)];
toR = rate[document.calcForm.to.selectedIndex];
nVal = document.calcForm.inV.value;
if ( IsNumeric(nVal) == false ) {
alert("amount to multiply is not a number\n\nyou can only use\n\n1234567890 and . (dot)");
}
resultV = nVal * ( toR / fromR );
// 6 relevant digits only, or integer
if ( (resultV == parseInt(resultV)) || (resultV > 99999) )
{
// mostly integer
resultV = parseInt( resultV );
}
else
{
if (resultV > 1)
{
resultV = resultV.toString();
resultV = resultV.substring(0,7);
} else {
resultV = resultV.toString();
resultV = resultV.substring(0,8);
}
}
document.calcForm.outV.value = " " + comma(resultV) + " " + currency[document.calcForm.to.selectedIndex];
}
function comma(num)
{
var n = Math.floor(num);
var myNum = num + "";
var myDec = ""
if (myNum.indexOf('.',0) > -1){
myDec = myNum.substring(myNum.indexOf('.',0),myNum.length);
}
var arr=new Array('0'), i=0;
while (n>0)
{arr[i]=''+n%1000; n=Math.floor(n/1000); i++;}
arr=arr.reverse();
for (var i in arr) if (i>0) //padding zeros
while (arr[i].length<3) arr[i]='0'+arr[i];
return arr.join() + myDec;
}
function IsNumeric(strString)
{
var strValidChars = "0123456789.";
var strChar;
var blnResult = true;
for (i = 0; i < strString.length && blnResult == true; i++)
{
strChar = strString.charAt(i);
if (strValidChars.indexOf(strChar) == -1)
{
blnResult = false;
}
}
return blnResult;
}

37
html/user/donate.php Normal file
View File

@ -0,0 +1,37 @@
<?php
// Redirect user to PayPal system
require_once("../inc/util.inc");
db_init();
$logged_in_user = get_logged_in_user(false);
$amount = post_int("inV");
$item_id = post_int("item_id", true);
if ($item_id == null) { $item_id = 1; }
$currency = post_str("currency");
if ((post_int("anonymous", true) == 1) || ($logged_in_user == null)) {
$userid = 0;
} else {
$userid = $logged_in_user->id;
}
$order_time = time();
// Write user id to paypal table, so the return script knows it's expecting this payment
$sql = "INSERT INTO donation_paypal SET order_time = '".$order_time."', userid = '$userid', item_number=".$item_id.", order_amount = '$amount'";
mysql_query($sql);
$payment_id = mysql_insert_id();
$URL = "www.paypal.com/cgi-bin/webscr";
$fields = ("cmd=_xclick&lc=US&business=".PAYPAL_ADDRESS."&quantity=1&item_name=Donation&item_number=".$payment_id."_".$order_time."&amount=".$amount."&no_shipping=1&return=".URL_BASE."donated.php&rm=2&cancel_return=".URL_BASE."donated.php&no_note=1&currency_code=".$currency."&bn=PP-BuyNowBF");
header("Location: http://$URL?$fields");
exit;
?>

17
html/user/donated.php Normal file
View File

@ -0,0 +1,17 @@
<?php
require_once("../inc/util.inc");
page_head("PayPal - Transaction Completed");
if ($st == "Completed") {
echo "<div>Thank you for donating!<br>\n";
echo "Your donation for has been completed.<br>\n";
echo "Your donation will be added to the progress bar after confirmation by PayPal.</div>";
} else {
echo "<strong>You have canceled your donation</strong>";
}
page_tail();
?>

View File

@ -0,0 +1,60 @@
<?php
require_once("../inc/util.inc");
db_init();
// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
// post back to PayPal system to validate
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);
// assign posted variables to local variables
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_fee = $_POST['mc_fee'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];
$payer_name = $_POST['first_name']." ".$_POST['last_name'];
$ip = $_SERVER['REMOTE_ADDR'];
$agent = strtolower($_SERVER[HTTP_USER_AGENT]);
if (!$fp) {
// HTTP ERROR, might want to do additional handling here
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
$item_array = explode("_",$item_number);
$payment_id = abs($item_array[0]);
$order_time = abs($item_array[1]);
$sql = "SELECT * FROM donation_paypal WHERE order_time = '$order_time' AND id = '$payment_id' AND processed = '0'";
$result = mysql_query($sql,$db);
$num_rows = mysql_num_rows($result);
if ($num_rows == 1) {
$row = mysql_fetch_object($result);
$userid = $row->userid;
mysql_query("UPDATE donation_paypal SET processed = '1', payment_time = '".time()."', item_name = '$item_name', item_number = '$item_number', payment_status = '$payment_status', payment_amount = '$payment_amount', payment_fee = '$payment_fee', payment_currency = '$payment_currency', txn_id = '$txn_id', receiver_email = '$receiver_email', payer_email = '$payer_email', payer_name = '$payer_name' WHERE id = '$payment_id'");
if ($userid > 0) {
mysql_query("UPDATE user SET donated = '1' WHERE id = '$userid'");
}
}
}
}
fclose ($fp);
}
?>

307
html/user/donations.php Normal file
View File

@ -0,0 +1,307 @@
<?php
require_once("../inc/util.inc");
if (!defined("PAYPAL_ADDRESS")) {
error_page("This project is not accepting donations.");
}
db_init();
$logged_in_user = get_logged_in_user(false);
if ($logged_in_user) {
$user_id = $logged_in_user->id;
}
page_head(PROJECT." donations");
if (function_exists("donations_intro")) {
donations_intro();
} else {
echo "<div>This project is accepting donations via <a href=\"http://www.paypal.com/\">PayPal</a>.</div>\n";
echo "<div class=\"smalltext\">To donate, fill in the amount you want to donate using the field below. PayPal is accepting
multiple currencies (Canadian Dollars, Euros, Pounds Sterling, U.S. Dollars, Yen, Australian Dollars, New Zealand Dollars,
Swiss Francs, Hong Kong Dollars, Singapore Dollars, Swedish Kronor, Danish Kroner, Polish Zloty, Norwegian Kroner,
Hungarian Forint, Czech Koruna). You can use included currency converter to see the donation amount equivalent in different
currencies (please note that the rates are only estimates and the actual amount may differ).</div>";
}
echo "<script src=\"currency.js\" type=\"text/javascript\"></script>\n";
$query = mysql_query("SELECT * FROM donation_items");
echo "<form name=\"calcForm\" action=\"donate.php\" method=\"post\">\n";
start_table();
// If donation_items table is filled, a list of donation targets is shown
$first_row = true;
while ($row = mysql_fetch_object($query)) {
$col1 = $row->title."<br><span class=\"smalltext\">".$row->description."</span>";
$query_amount = mysql_query("SELECT SUM(payment_amount-payment_fee) AS amount FROM donation_paypal WHERE processed = 1 AND item_number = '".$row->id."'");
$acquired = mysql_fetch_object($query_amount)->amount;
$required = $row->required;
if ($acquired > $required) {
$acquired = $acquired - $required;
$progress = 100;
} else {
$progress = round($acquired / ($required) * 100);
$progress2 = round($acquired / ($required) * 100,1);
}
$col2 = "<input style=\"float: left\" type=\"radio\" name=\"item_id\" value=\"".$row->id."\"";
if ($first_row) {
$first_row = false;
$col2 .= " checked=\"checked\"";
}
$col2 .= ">";
if ($progress == 0) {
$col2 .= "<div style=\"float: left; width: 300px; height: 18px; background-color: red; border: 1px solid #000000\">";
} elseif ($progress == 100) {
$col2 .= "<div style=\"float: left; width: 300px; height: 18px; background-color: green; border: 1px solid #000000\">";
} else {
$col2 .= "<div style=\"float: left; width: ".($progress*3 - 1)."px; height: 18px; background-color: green; border: 1px solid #000000;\" align=\"right\"><b>".$progress2."</b>%</div><div style=\"float: left; width: ".((100-$progress)*3 - 1)."px; height: 18px; background-color: red; border: 1px solid #000000;\">";
}
row2($col1, $col2);
}
$amount .= "<select name=\"from\" onchange=\"Cvalue();numberFormat();\" style=\"width: 200px;\">\n";
if (DONATION_CURRENCY == "EUR") {
$amount .= "<option value=\"51\">Euros</option>\n";
}
elseif (DONATION_CURRENCY == "CAD") {
$amount .= "<option value=\"30\">Canadian Dollars</option>\n";
}
elseif (DONATION_CURRENCY == "GBP") {
$amount .= "<option value=\"24\">Pounds Sterling</option>\n";
}
elseif (DONATION_CURRENCY == "USD") {
$amount .= "<option value=\"2\">U.S. Dollars</option>\n";
}
elseif (DONATION_CURRENCY == "JPY") {
$amount .= "<option value=\"72\">Yen</option>\n";
}
elseif (DONATION_CURRENCY == "AUD") {
$amount .= "<option value=\"9\">Australian Dollars</option>\n";
}
elseif (DONATION_CURRENCY == "NZD") {
$amount .= "<option value=\"102\">New Zealand Dollars</option>\n";
}
elseif (DONATION_CURRENCY == "CHF") {
$amount .= "<option value=\"139\">Swiss Francs</option>\n";
}
elseif (DONATION_CURRENCY == "HKD") {
$amount .= "<option value=\"63\">Hong Kong Dollars</option>\n";
}
elseif (DONATION_CURRENCY == "SGD") {
$amount .= "<option value=\"126\">Singapore Dollars</option>\n";
}
elseif (DONATION_CURRENCY == "SEK") {
$amount .= "<option value=\"138\">Swedish Kronor</option>\n";
}
elseif (DONATION_CURRENCY == "DKK") {
$amount .= "<option value=\"42\">Danish Kroner</option>\n";
}
elseif (DONATION_CURRENCY == "PLN") {
$amount .= "<option value=\"114\">Polish Zloty</option>\n";
}
elseif (DONATION_CURRENCY == "NOK") {
$amount .= "<option value=\"106\">Norwegian Kroner</option>\n";
}
elseif (DONATION_CURRENCY == "HUF") {
$amount .= "<option value=\"64\">Hungarian Forint</option>\n";
}
elseif (DONATION_CURRENCY == "CZK") {
$amount .= "<option value=\"41\">Czech Koruna</option>\n";
}
$amount .= "</select>\n";
$amount .= "<input type=\"hidden\" name=\"currency\" value=\"".DONATION_CURRENCY."\">\n";
$amount .= "<input type=\"text\" name=\"inV\" id=\"inV\" value=\"10.00\" style=\"text-align: right; width: 80px\" onchange=\"Cvalue();numberFormat();\">\n";
$estimated .= "<select name=\"to\" onchange=\"Cvalue();numberFormat();\" style=\"width: 200px;\">";
$estimated .= "<option value=0 selected>Select currency</option>\n";
$estimated .= "<option value=1>Afghanistan Afghani</option>\n";
$estimated .= "<option value=2>Algerian Dinar</option>\n";
$estimated .= "<option value=3>American Dollar</option>\n";
$estimated .= "<option value=4>Angolan New Kwanza</option>\n";
$estimated .= "<option value=5>Antilles Guilder</option>\n";
$estimated .= "<option value=6>Argentine Peso</option>\n";
$estimated .= "<option value=7>Armenia Dram</option>\n";
$estimated .= "<option value=8>Aruba Guilder</option>\n";
$estimated .= "<option value=9>Australian Dollar</option>\n";
$estimated .= "<option value=10>Azerbaijan Manat</option>\n";
$estimated .= "<option value=11>BCEAO Franc</option>\n";
$estimated .= "<option value=12>BEAC Franc</option>\n";
$estimated .= "<option value=13>Bahamanian Dollar</option>\n";
$estimated .= "<option value=14>Bahraini Dinar</option>\n";
$estimated .= "<option value=15>Barbados Dollar</option>\n";
$estimated .= "<option value=16>Belarus Ruble</option>\n";
$estimated .= "<option value=17>Belize Dollar</option>\n";
$estimated .= "<option value=18>Bermuda Dollar</option>\n";
$estimated .= "<option value=19>Bhutan Ngultrum</option>\n";
$estimated .= "<option value=20>Bolivian Boliviano</option>\n";
$estimated .= "<option value=21>Bosnia Marka</option>\n";
$estimated .= "<option value=22>Botswana Pula</option>\n";
$estimated .= "<option value=23>Brazilian Real</option>\n";
$estimated .= "<option value=24>British Pound</option>\n";
$estimated .= "<option value=25>Brunei Dollar</option>\n";
$estimated .= "<option value=26>Bulgarian Lev</option>\n";
$estimated .= "<option value=27>Burundi Franc</option>\n";
$estimated .= "<option value=28>CFP Franc</option>\n";
$estimated .= "<option value=29>Cambodian Riel</option>\n";
$estimated .= "<option value=30>Canadian Dollar</option>\n";
$estimated .= "<option value=31>Cayman Dollar</option>\n";
$estimated .= "<option value=32>Chilean Peso</option>\n";
$estimated .= "<option value=33>Chinese Yuan</option>\n";
$estimated .= "<option value=34>Colombian Peso</option>\n";
$estimated .= "<option value=35>Comoros Franc</option>\n";
$estimated .= "<option value=36>Congolese Franc</option>\n";
$estimated .= "<option value=37>Costa Rican Colon</option>\n";
$estimated .= "<option value=38>Croatian Kuna</option>\n";
$estimated .= "<option value=39>Cuban Peso</option>\n";
$estimated .= "<option value=40>Cyprus Pound</option>\n";
$estimated .= "<option value=41>Czech Koruna</option>\n";
$estimated .= "<option value=42>Danish Krone</option>\n";
$estimated .= "<option value=43>Djibouti Franc</option>\n";
$estimated .= "<option value=44>Dominican R. Peso</option>\n";
$estimated .= "<option value=45>East Caribbean Dollar</option>\n";
$estimated .= "<option value=46>Egyptian Pound</option>\n";
$estimated .= "<option value=47>El Salvador Colon</option>\n";
$estimated .= "<option value=48>Eritrea Nakfa</option>\n";
$estimated .= "<option value=49>Estonian Kroon</option>\n";
$estimated .= "<option value=50>Ethiopian Birr</option>\n";
$estimated .= "<option value=51>Euro</option>\n";
$estimated .= "<option value=52>Falkland Pound</option>\n";
$estimated .= "<option value=53>Fiji Dollar</option>\n";
$estimated .= "<option value=54>Gambia Dalasi</option>\n";
$estimated .= "<option value=55>Georgia Lari</option>\n";
$estimated .= "<option value=56>Ghanaian Cedi</option>\n";
$estimated .= "<option value=57>Gibraltar Pound</option>\n";
$estimated .= "<option value=58>Guatemalan Quetzal</option>\n";
$estimated .= "<option value=59>Guinea Franc</option>\n";
$estimated .= "<option value=60>Guyanese Dollar</option>\n";
$estimated .= "<option value=61>Haitian Gourde</option>\n";
$estimated .= "<option value=62>Honduran Lempira</option>\n";
$estimated .= "<option value=63>Hong Kong Dollar</option>\n";
$estimated .= "<option value=64>Hungarian Forint</option>\n";
$estimated .= "<option value=65>IRR Rial</option>\n";
$estimated .= "<option value=66>Iceland Krona</option>\n";
$estimated .= "<option value=67>Indian Rupee</option>\n";
$estimated .= "<option value=68>Indonesian Rupiah</option>\n";
$estimated .= "<option value=69>Iraqi Dinar</option>\n";
$estimated .= "<option value=70>Israeli New Sheqel</option>\n";
$estimated .= "<option value=71>Jamaican Dollar</option>\n";
$estimated .= "<option value=72>Japanese Yen</option>\n";
$estimated .= "<option value=73>Jordanian Dinar</option>\n";
$estimated .= "<option value=74>Kazakhstan Tenge</option>\n";
$estimated .= "<option value=75>Kenyan Shilling</option>\n";
$estimated .= "<option value=76>Krygyzstan Som</option>\n";
$estimated .= "<option value=77>Kuwaiti Dinar</option>\n";
$estimated .= "<option value=78>Lao Kip</option>\n";
$estimated .= "<option value=79>Latvian Lat</option>\n";
$estimated .= "<option value=80>Lebanese Pound</option>\n";
$estimated .= "<option value=81>Lesotho Maloti</option>\n";
$estimated .= "<option value=82>Liberian Dollar</option>\n";
$estimated .= "<option value=83>Libyan Dinar</option>\n";
$estimated .= "<option value=84>Lithuanian Litas</option>\n";
$estimated .= "<option value=85>Macao Patacas</option>\n";
$estimated .= "<option value=86>Macedonian Denar</option>\n";
$estimated .= "<option value=87>Madagascar Ariary</option>\n";
$estimated .= "<option value=88>Malawi Kwacha</option>\n";
$estimated .= "<option value=89>Malaysian Ringgit</option>\n";
$estimated .= "<option value=90>Maldive Rufiyaa</option>\n";
$estimated .= "<option value=91>Maltese Lira</option>\n";
$estimated .= "<option value=92>Mauritanian Ouguiya</option>\n";
$estimated .= "<option value=93>Mauritian Rupee</option>\n";
$estimated .= "<option value=94>Mexican Peso</option>\n";
$estimated .= "<option value=95>Moldova Leu</option>\n";
$estimated .= "<option value=96>Mongolian Tugrik</option>\n";
$estimated .= "<option value=97>Moroccan Dirham</option>\n";
$estimated .= "<option value=98>Mozambique Metical</option>\n";
$estimated .= "<option value=99>Myanmar Kyat</option>\n";
$estimated .= "<option value=100>Namibia Dollar</option>\n";
$estimated .= "<option value=101>Nepalese Rupee</option>\n";
$estimated .= "<option value=102>New Zealand Dollar</option>\n";
$estimated .= "<option value=103>Nicaraguan Cordoba Oro</option>\n";
$estimated .= "<option value=104>Nigerian Naira</option>\n";
$estimated .= "<option value=105>North Korean Won</option>\n";
$estimated .= "<option value=106>Norwegian Kroner</option>\n";
$estimated .= "<option value=107>Omani Rial</option>\n";
$estimated .= "<option value=108>Pakistan Rupee</option>\n";
$estimated .= "<option value=109>Panamanian Balboa</option>\n";
$estimated .= "<option value=110>Papua New Guinea Kina</option>\n";
$estimated .= "<option value=111>Paraguay Guarani</option>\n";
$estimated .= "<option value=112>Peruvian Nuevo Sol</option>\n";
$estimated .= "<option value=113>Philippine Peso</option>\n";
$estimated .= "<option value=114>Polish Zloty</option>\n";
$estimated .= "<option value=115>Portuguese Escudo</option>\n";
$estimated .= "<option value=116>Qatari Rial</option>\n";
$estimated .= "<option value=117>Romanian Leu</option>\n";
$estimated .= "<option value=118>Russian Ruble</option>\n";
$estimated .= "<option value=119>Rwandan Franc</option>\n";
$estimated .= "<option value=120>Saint Helena Pound</option>\n";
$estimated .= "<option value=121>Sao Tome/Principe Dobra</option>\n";
$estimated .= "<option value=122>Saudi Riyal</option>\n";
$estimated .= "<option value=123>Serbia Dinar</option>\n";
$estimated .= "<option value=124>Seychelles Rupee</option>\n";
$estimated .= "<option value=125>Sierra Leone Leone</option>\n";
$estimated .= "<option value=126>Singapore Dollar</option>\n";
$estimated .= "<option value=127>Slovak Koruna</option>\n";
$estimated .= "<option value=128>Slovenian Tolar</option>\n";
$estimated .= "<option value=129>Solomon Dollar</option>\n";
$estimated .= "<option value=130>Somalia Shiling</option>\n";
$estimated .= "<option value=131>Somoa Tala</option>\n";
$estimated .= "<option value=132>South African Rand</option>\n";
$estimated .= "<option value=133>South Korean Won</option>\n";
$estimated .= "<option value=134>Sri Lanka Rupee</option>\n";
$estimated .= "<option value=135>Sudanese Dinar</option>\n";
$estimated .= "<option value=136>Suriname Dollar</option>\n";
$estimated .= "<option value=137>Swaziland Emalangeni</option>\n";
$estimated .= "<option value=138>Swedish Krona</option>\n";
$estimated .= "<option value=139>Swiss Franc</option>\n";
$estimated .= "<option value=140>Syrian Pound</option>\n";
$estimated .= "<option value=141>Taiwan Dollar</option>\n";
$estimated .= "<option value=142>Tanzania Shiling</option>\n";
$estimated .= "<option value=143>Thai Baht</option>\n";
$estimated .= "<option value=144>Tonga Pa\anga</option>\n";
$estimated .= "<option value=145>Trinidad Dollar</option>\n";
$estimated .= "<option value=146>Tunisia Dinar</option>\n";
$estimated .= "<option value=147>Turkish Lira</option>\n";
$estimated .= "<option value=148>Turkmenistan Manat</option>\n";
$estimated .= "<option value=149>Uganda Shilling</option>\n";
$estimated .= "<option value=150>Ukrainian Hryvnia</option>\n";
$estimated .= "<option value=151>Uruguayan Peso</option>\n";
$estimated .= "<option value=152>Utd. Arab Emir. Dirham</option>\n";
$estimated .= "<option value=153>Uzbekistan Sum</option>\n";
$estimated .= "<option value=154>Vanuatu Vatu</option>\n";
$estimated .= "<option value=155>Venezuelan Bolivar</option>\n";
$estimated .= "<option value=156>Vietnamese Dong</option>\n";
$estimated .= "<option value=157>Yemen Rial</option>\n";
$estimated .= "<option value=158>Zambia Kwacha</option>\n";
$estimated .= "<option value=159>Zimbabwe Dollar</option>\n";
$estimated .= "</select>\n";
$estimated .= "<input name=\"outV\" value=\"0.00\" style=\"text-align: right; width: 80px;\" disabled=\"disabled\">\n";
echo row2("Amount you would like to donate", $amount);
echo row2("Estimated value in", $estimated);
if ($user_id) {
echo row2("Anonymous donation<br><span class=\"smalltext\">Select this if you dont want your name and account number displayed in
donator lists.<br>If not checked, you will be recorded as user ID ".$user_id." (".$logged_in_user->name.")</span>",
"<input type=\"checkbox\" name=\"anonymous\" id=\"anonymous\" value=\"1\"><label for=\"anonymous\">Yes</label>");
} else {
echo row2("Anonymous donation<br><span class=\"smalltext\">To assign the donation with your user ID, please log in.",
"<input type=\"checkbox\" name=\"anonymous\" id=\"anonymous\" value=\"1\" checked=\"checked\" disabled=\"disabled\">
<label for=\"anonymous\">Yes</label>");
}
echo row2("", "<input type=\"submit\" value=\"Proceed\">");
echo row1("Donations are accepted through<br><img src=\"img/paypal_logo.png\" alt=\"PayPal\">");
end_table();
echo "</form>\n";
page_tail();
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB