Index: Realex.php
===================================================================
--- Realex.php	(revision 794)
+++ Realex.php	(working copy)
@@ -18,7 +18,6 @@
 require_once 'CRM/Core/Payment.php';
 
 class CRM_Core_Payment_Realex extends CRM_Core_Payment {
-	const CHARSET = 'iso-8859-1';
 	const AUTH_APPROVED = '00';
 
 	static protected $_mode = null;
@@ -142,7 +141,7 @@
 		$response_xml = curl_exec($submit);
 
 		if (!$response_xml) {
-			return self::error( curl_errno($submit), curl_error($submit) );
+		    return self::error( curl_errno($submit), curl_error($submit) );
 		}
 
 		curl_close( $submit );
@@ -271,6 +270,7 @@
 		*	Format the params from the form ready for sending to Realex.  Also perform some validation
 		*/
 	function setRealexFields ( &$params ) {
+
 		if ((int)$params['amount'] <= 0) {
 			return self::error( 9001, 'Amount must be positive' );
 		}
@@ -279,41 +279,35 @@
 		list($bills, $pennies) = explode('.', $params['amount']);
 		$this->_setParam('amount', 100 * $bills + $pennies);
 
-		switch ($params['credit_card_type']) {
-			case 'MasterCard':
-			case 'Mastercard':
+		switch (strtolower($params['credit_card_type'])) {
+			case 'mastercard':
 				$this->_setParam('card_type', 'MC');
 				$this->_setParam('requiresIssueNumber', false);
 				break;
-			case 'Visa':
+			case 'visa':
 				$this->_setParam('card_type', 'VISA');
 				$this->_setParam('requiresIssueNumber', false);
 				break;
-			case 'Amex':
+			case 'amex':
 				$this->_setParam('card_type', 'AMEX');
 				$this->_setParam('requiresIssueNumber', false);
 				break;
-			case 'Laser':
+			case 'laser':
 				$this->_setParam('card_type', 'LASER');
 				$this->_setParam('requiresIssueNumber', false);
 				break;
-			case 'Maestro':
+			case 'maestro':
+			case 'switch':
+      case 'maestro/switch':
+			case 'solo':
 				$this->_setParam('card_type', 'SWITCH');
 				$this->_setParam('requiresIssueNumber', true);
 				break;
-			case 'Switch':
-				$this->_setParam('card_type', 'SWITCH');
-				$this->_setParam('requiresIssueNumber', true);
-				break;
-			case 'Solo':
-				$this->_setParam('card_type', 'SWITCH');
-				$this->_setParam('requiresIssueNumber', true);
-				break;
 			default:
 				return self::error( 9001, 'Credit card type not supported by Realex: '. $params['credit_card_type'] );
 		}
 
-		// get the card holder name - cater cor customized billing forms
+		// get the card holder name - cater for customized billing forms
 		if (isset($params['cardholder_name'])) {
 			$credit_card_name = $params['cardholder_name'];
 		}

