Index: donation.module
===================================================================
--- donation.module	
+++ donation.module
@@ -10,6 +10,8 @@
 
 define('DONATION_PAGER',               25);
 
+define('DONATION_FORCE_DEFAULT_CURRENCY',	'donation_force_default_currency');
+define('DONATION_DEFAULT_CURRENCY',		 'donation_default_currency');
 define('DONATION_EMAIL',               'donation_email');
 define('DONATION_STATE',               'donation_state');
 define('DONATION_THANKS_TEXT',         'donation_thanks_text');
@@ -119,7 +121,39 @@
 }
 
 function donation_settings() {
-  $form[DONATION_EMAIL] = array(
+  $form['currency_settings'] = array(
+		'#type' => 'fieldset',
+		'#title' => t('Currency Options'),
+	);
+	$form['currency_settings']['currency_options'] = array(
+		'#type' => 'fieldset',
+		'#title' => t('Choose which currencies to accept'),
+		'#collapsible' => TRUE,
+		'#collapsed' => TRUE,
+		);
+	$form['currency_settings']['currency_options'][DONATION_CURRENCY_OPTIONS] = array(
+    '#type' => 'checkboxes',
+		'#options' => donation_get_currencies(),
+    '#default_value' => variable_get(DONATION_CURRENCY_OPTIONS, array('USD', 'GBP')),
+  ); 
+
+	$form['currency_settings'][DONATION_DEFAULT_CURRENCY] = array(
+		'#type' => 'select',
+		'#title' => t('Default Currency'),
+		'#options' => donation_get_currencies(),
+		'#default_value' => variable_get(DONATION_DEFAULT_CURRENCY, 'USD'),
+		'#description' => t('Be sure to confirm that you have enabled payment
+												 with this currency above.'),
+	);
+	
+	$form['currency_settings'][DONATION_FORCE_DEFAULT_CURRENCY] = array(
+		'#type' => 'checkbox',
+		'#title' => t('Hide currency field on donation form'),
+		'#return_value' => 1,
+		'#default_value' => variable_get(DONATION_FORCE_DEFAULT_CURRENCY, 0),
+		);
+
+	$form[DONATION_EMAIL] = array(
     '#type' => 'textfield',
     '#title' => t('Donations email address'),
     '#default_value' => variable_get(DONATION_EMAIL, 'donations@drupal.org'),
@@ -164,14 +198,6 @@
     '#default_value' => variable_get(DONATION_LOVE_TEXT, DONATION_LOVE_DEFAULT_TEXT),
     '#description' => t('This text will be displayed on the main donation page.'),
   );
-  
-  $currency_options_paypal_string = implode(',', array_keys(simple_paypal_get_currencies()));
-  $form[DONATION_CURRENCY_OPTIONS] = array(
-    '#type' => 'textarea',
-    '#title' => t('Choose which currencies to accept'),
-    '#default_value' => variable_get(DONATION_CURRENCY_OPTIONS, $currency_options_paypal_string),
-    '#description' => t('This text will be displayed on the main donation page.'),
-  );
 
   $form[DONATION_DONORS_TEXT] = array(
     '#type' => 'textarea',
@@ -528,23 +554,24 @@
     '#type' => 'hidden',
     '#value' => url('donation/thanks', NULL, NULL, TRUE),
     '#name' => 'return');
+
   
-  // Create custom currency dropdown
-  $currency_options_paypal_string = implode(',', array_keys(simple_paypal_get_currencies()));
-  $currency_custom_options = explode(',', variable_get(DONATION_CURRENCY_OPTIONS, $currency_options_paypal_string));
-  foreach(simple_paypal_get_currencies() AS $key => $value) {
-    if(in_array($key, $currency_custom_options)) {
-      $custom_currency_list[$key] = $value;
-    }
-  }
-  
-  $form['currency_code'] = array(
-    '#type' => 'select',
-    '#title' => t('Currency'),
-    '#options' => $custom_currency_list,
-    '#name' => 'currency_code',
-    '#description' => variable_get(DONATION_CURRENCY_TEXT, DONATION_CURRENCY_DEFAULT_TEXT), 
-  );
+  if (variable_get(DONATION_FORCE_DEFAULT_CURRENCY, 0)) {
+		$form['currency_code'] = array(
+			'#type' => 'hidden',
+			'#value' => variable_get(DONATION_DEFAULT_CURRENCY, 'USD'),
+			);
+	} else {
+		$form['currency_code'] = array(
+	    '#type' => 'select',
+	    '#title' => t('Currency'),
+	    '#options' => _donation_currency_options(),
+			'#default_value' => variable_get(DONATION_DEFAULT_CURRENCY, 'USD'),
+	    '#name' => 'currency_code',
+	    '#description' => t('The Drupal Association accepts payments in these two currencies.'),
+	  );
+	}
+	
   $form['amount'] = array(
     '#type' => 'textfield',
     '#title' => t('Amount'),
@@ -572,3 +599,53 @@
 
   return $form;
 }
+
+/**
+ * Get PayPal supported currency codes.
+ *
+ * @see https://www.paypal.com/cgi-bin/webscr?cmd=p/sell/mc/mc_wa-outside
+ * @return array
+ * 	Key value pairs where the key is the currency code
+ */
+function donation_get_currencies() {
+	return array(
+		'AUD' => t('Austrailian Dollars'),
+		'CAD' => t('Canadian Dollars'),
+		'EUR' => t('Euros'),
+		'GBP' => t('Pounds Sterling'),
+		'JPY' => t('Yen'),
+		'USD' => t('U.S. Dollars'),
+		'NZD' => t('New Zealand Dollar'),
+		'CHF' => t('Swiss Franc'),
+		'HKD' => t('Hong Kong Dollar'),
+		'SGD' => t('Singapore Dollar'),
+		'SEK' => t('Swedish Krona'),
+		'DKK' => t('Danish Krone'),
+		'PLN' => t('Polish Zloty'),
+		'NOK' => t('Norwegian Krone'),
+		'HUF' => t('Hungarian Forint'),
+		'CZK' => t('Czech Koruna'),
+		'ILS' => t('Israeli Shekel'),
+		'MXN' => t('Mexican Peso'),
+		);
+}
+
+/**
+ * _donation_currency_options
+ *
+ * Get approved currency codes, and include default.
+ */
+function _donation_currency_options() {
+	$default = variable_get(DONATION_DEFAULT_CURRENCY, 'USD');
+	$approved = variable_get(DONATION_CURRENCY_OPTIONS, array());
+	$all_currencies = donation_get_currencies();
+	$options[$default] = $all_currencies[$default];
+	
+	foreach ($approved as $code => $enabled) {
+		if ($enabled) {
+			$options[$code] = $all_currencies[$code];
+		}
+	}
+	
+	return $options;
+}
\ No newline at end of file