Index: default/order/PaymentHistory.isml
===================================================================
--- default/order/PaymentHistory.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/order/PaymentHistory.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,209 +0,0 @@
-<%@page import="com.intershop.beehive.core.capi.localization.LocaleMgr"%>
-<%@page import="com.intershop.beehive.core.capi.naming.NamingMgr"%>
-<iscontent type="text/html" charset="UTF-8" compact="true">
-
-<ISBreadcrumbTrail wizard="true" id="#Transaction#" link="#URL(Action('ViewPaymentHistory-ShowPaymentHistory'), Parameter('ChannelID', ChannelID), Parameter('OrderID', Order:UUID), Parameter('historyStatus',historyStatus), Parameter('PaymentTransactionUUID',PaymentTransactionBO:ID))#" text="Transaction" text1="#Order:DocumentNo#">
-
-<isset scope="request" name="SelectedTab" value="#PaymentTransactionBO:ID#">
-<!---  <isinclude template="order/OrderTabs">--->
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
-	<tr>
-		<td width="100%" class="table_title aldi">Transaction <isprint value="#PaymentTransactionBO:ServiceTransactionID#"></td>
-	</tr>
-	<tr>
-		<td class="w e s">
-			<table border="0" cellpadding="0" cellspacing="0">
-				<tr>
-					<td class="table_detail">Transaction Type:</td>
-					<td class="table_detail">
-						<isinclude template="#PaymentTransactionBO:PaymentInstrumentInfo:CustomAttributes:PaymentService:Capabilities:DisplayNameTemplate#">
-					</td>
-				</tr>
-				<tr>
-					<td class="table_detail">Transaction ID:</td>
-					<td class="table_detail"><isprint value="#PaymentTransactionBO:ServiceTransactionID#"></td>
-				</tr>
-				<tr>
-					<td class="table_detail">Amount:</td>
-					<td class="table_detail"><isprint value="#PaymentTransactionBO:Amount#"></td>
-				</tr>
-				<tr>
-					<td class="table_detail">Status:</td>
-					<td class="table_detail"><isprint value="#PaymentTransactionBO:Status#"></td>
-				</tr>
-				<tr>
-					<td class="table_detail">Detail:</td>
-					<td class="table_detail">
-					<isif condition="#PaymentTransactionBO:PaymentInstrumentInfo:CustomAttributes:PaymentService:Capabilities:ShowPIIMiniTemplate NE null#">
-						<isset name="PaymentDisplayMode" value="short" scope="request">
-						<isset name="PII" value="#PaymentTransactionBO:PaymentInstrumentInfo#" scope="request">
-						<isinclude template="#PaymentTransactionBO:PaymentInstrumentInfo:CustomAttributes:PaymentService:Capabilities:ShowPIIMiniTemplate#">
-					</isif></td>
-				</tr>
-			</table> 
-		</td>
-	</tr>
-	<tr>
-		<td class="table_title2 w e s">Transaction History</td></tr>
-	<tr>
-		<isif condition="#hasElements(PaymentTransaction:SortedPaymentHistory)#">
-			<td class="w e">
-				<table id="tablePaymentHistory" width="100%" border="0" cellspacing="0" cellpadding="0">
-					<tr>
-						<td class="table_header s e" nowrap="nowrap">Time</th>
-						<td class="table_header s e" nowrap="nowrap">Event</th>
-						<td class="table_header s" nowrap="nowrap" >History Data</th>
-					</tr>
-					<isloop iterator="PaymentTransaction:SortedPaymentHistory" alias="PH">
-						<tr>
-							<td class="table_detail s e" nowrap="nowrap"><isprint value="#PH:EventTime#" style="DATE_LONG">&nbsp;<isprint value="#PH:EventTime#" style="DATE_TIME"></td>
-							<td class="table_detail s e" nowrap="nowrap"><isprint value="#PH:EventID#"></td>
-							<td class="table_detail s">
-								<isif condition="#isDefined(PaymentTransactionBO:PaymentService:Capabilities:PaymentHistoryEntryTemplate(PH:EventID))#">
-									<isinclude template="#PaymentTransactionBO:PaymentService:Capabilities:PaymentHistoryEntryTemplate(PH:EventID)#">
-								<iselse>
-									<isloop iterator="PH:AttributeValues" alias="AV">
-										<table width="100%" border="0" cellspacing="0" cellpadding="0">
-											<tr>
-												<td class="table_detail_name"><isprint value="#AV:Name#"></td>
-												<isif condition="#AV:Localized#">
-													<%
-														getPipelineDictionary().put("AVLocale", NamingMgr.getManager(LocaleMgr.class).getLocaleBy((String)getObject("AV:LocaleID")));
-													%>
-													<td class="table_detail"><isprint value="#PH:String(AV:Name,AVLocale)#">&nbsp;</td>
-												<iselse>
-													<td class="table_detail"><isprint value="#PH:String(AV:Name)#">&nbsp;</td>
-												</isif>
-											</tr>
-										</table>
-									</isloop>
-								</isif>
-							</td>
-						</tr>
-					</isloop>
-					<isif condition="#isDefined(PaymentTransactionBO:PaymentService:Capabilities:PaymentHistoryBOTemplate)#">
-						<isinclude template="#PaymentTransactionBO:PaymentService:Capabilities:PaymentHistoryBOTemplate#">
-					</isif>
-				</table>
-			</td>
-		</isif>
-	</tr>
-	<isif  condition="#isDefined(CurrentChannelPermissionMap:SLD_MANAGE_ORDERS)#">
-	<!--- Actions only for active orders (states new and open), but not for all others states (pending, completed, canceled, rejected) --->
-	<isif condition="#(PaymentTransactionBO:Order:Status EQ 'NEW') OR (PaymentTransactionBO:Order:Status EQ 'OPEN')#">
-		<tr>
-			<td colspan="2"><img width="1" height="6" border="0" alt="" src="#WebRoot()#/images/space.gif"/></td>
-		</tr>
-		<tr>
-			<td colspan="2" width="100%" class="table_title2 aldi">Payment Actions</td>
-		</tr>
-		<tr>
-			<td class="w e">
-				<isform action="#URL(Action('ViewPaymentHistory-Dispatch'))#" name="paymentHistoryForm">
-					<input name="webform_id" type="hidden" value="paymentHistoryForm"/>
-					<input name="ChannelID"  type="hidden" value="<isprint value="#ChannelID#">"/>
-					<input name="OrderID"  type="hidden" value="<isprint value="#Order:UUID#">"/>
-					<input name="historyStatus"  type="hidden" value="<isprint value="#historyStatus#">"/>
-					<input name="PaymentTransactionUUID"  type="hidden" value="<isprint value="#PaymentTransactionBO:ID#">"/>
-					<table border="0" cellpadding="0" cellspacing="0" width="100%">
-						<isif condition="#PaymentTransactionBO:CanBeAuthorized EQ 'true'#">
-						<tr>
-							<td class="table_detail e s" width="30%">Re-authorizes this transaction. Authorization amount: <isprint value="#Order:GrandTotalGrossPricePC#" /></td>
-							<td class="table_detail s" nowrap="nowrap">
-								<isif  condition="#isDefined(CurrentUserPermissionMap:SLD_MANAGE_PAYMENT)#">
-									<input type="submit" class="button" name="reauthorize" value="Re-Authorize"/>
-								</isif>
-							</td>
-						</tr>
-						</isif>
-						<isif condition="#PaymentTransactionBO:CanBeCaptured EQ 'true'#">
-						<tr>
-							<td class="table_detail e s" width="30%">
-								Captures this transaction (Capture amount: <isprint value="#PaymentTransactionBO:Amount#" />)
-							</td>
-							<td class="table_detail s " nowrap="nowrap">
-								<isif  condition="#isDefined(CurrentUserPermissionMap:SLD_MANAGE_PAYMENT)#">
-									<input type="submit" class="button" name="capture" value="Capture"/>
-								</isif>
-							</td>
-						</tr>
-						</isif>
-						<isif condition="#PaymentTransactionBO:CanBeRefunded EQ 'true'#">
-						<tr>
-							<td class="table_detail e s " width="30%">
-								Refunds the entered amount for this transaction.<br />
-								This amount must not be larger than the captured amount.
-							</td>
-							<td class="table_detail s " nowrap="nowrap">
-								<isif  condition="#isDefined(CurrentUserPermissionMap:SLD_MANAGE_PAYMENT)#">
-									<table>
-										<tr>
-											<td class="table_detail">Amount to refund (<isprint value="#PaymentTransactionBO:Amount:CurrencyMnemonic#" />)
-												<isif condition="#isDefined(RefundAmountErrorCode)#">
-													<div class="error">Please enter a valid amount!</div>
-												</isif>
-											</td>
-											<td class="table_detail"><input type="text" name="RefundAmount" size="6"/></td>
-										</tr>
-										<tr>
-											<td class="table_detail">Refund reason</td>
-											<td class="table_detail"><input type="text" name="RefundReason" size="40"/></td>
-										</tr>
-										<tr>
-											<td class="table_detail">&nbsp;</td>
-											<td class="table_detail"><input type="submit" class="button" name="refund" value="Refund"/></td>
-										</tr>
-									</table>
-								</isif>
-							</td>
-						</tr>
-						</isif>
-						<isif condition="#PaymentTransactionBO:CanBeReduced EQ 'true'#">
-						<tr>
-							<td class="table_detail e s " width="30%">
-								Reduces the authorized amount for this transaction.<br />
-								You need to enter the difference amount, NOT the new amount!
-							</td>
-							<td class="table_detail s " nowrap="nowrap">
-								<isif  condition="#isDefined(CurrentUserPermissionMap:SLD_MANAGE_PAYMENT)#">
-									<table>
-										<tr>
-											<td class="table_detail">Amount to reduce (<isprint value="#PaymentTransactionBO:Amount:CurrencyMnemonic#" />)
-												<isif condition="#isDefined(ReduceAmountErrorCode) OR (ReduceError EQ 'AmountExceeded')#">
-													<div class="error">Please enter a valid amount!</div>
-												</isif>
-											</td>
-											<td class="table_detail"><input type="text" name="AmountToReduce" size="6"/></td>
-										</tr>
-										<tr>
-											<td class="table_detail">Reduce reason</td>
-											<td class="table_detail"><input type="text" name="ReduceReason" size="40"/></td>
-										</tr>
-										<tr>
-											<td class="table_detail">&nbsp;</td>
-											<td class="table_detail"><input type="submit" class="button" name="reduce" value="Reduce"/></td>
-										</tr>
-									</table>
-								</isif>
-							</td>
-						</tr>
-						</isif>
-						<isif condition="#PaymentTransactionBO:TransactionData:Status == 1#">
-						<tr>
-							<td class="table_detail e s " width="30%">Cancels the payment transaction.</td>
-							<td class="table_detail s " nowrap="nowrap">
-								<isif  condition="#isDefined(CurrentUserPermissionMap:SLD_MANAGE_PAYMENT)#">
-									<input type="submit" class="button" name="cancel" value="Cancel"/>
-								</isif>
-							</td>
-						</tr>
-						</isif>
-					</table>
-				</isform>
-			</td>
-		</tr>
-	</isif>
-	</isif>
-</table>
-<isinclude template="inc/Back">
\ No newline at end of file
Index: default/payment_po_creditcard/EditPIIajax.isml
===================================================================
--- default/payment_po_creditcard/EditPIIajax.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 0)
+++ default/payment_po_creditcard/EditPIIajax.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -0,0 +1,68 @@
+<iscontent type="text/html" charset="UTF-8" compact="true">
+<isset name="paymentConfigurationUUID" value="#PaymentService:Configuration:UUID#" scope="request"/>
+<isset name="CCSConfig" value="#PaymentService:Capabilities:CreditCardServiceConfiguration#" scope="request"/>
+<isset name="paymentRequestParameters" value="#PaymentService:CreditCardCheckAJAXRequestHeader#" scope="request"/>
+<script src="https://secure.pay1.de/client-api/js/ajax.js" type="text/javascript"></script>
+<script type="text/javascript">
+
+var AjaxPayoneHandler = function(paymentConfiturationUUID, form) {
+    PayoneHandler.call(this, paymentConfiturationUUID, form);
+    this.creditCardNumber = $('input[id^="' + this.paymentConfigurationUUID + '_CreditCardNumber"]', form);
+	<isif condition="#PaymentService:CardSecurityCodeCheckEnabled#">
+    	this.securityCode = $('input[id^="' + this.paymentConfigurationUUID + '_SecurityCode"]', form);
+    </isif>
+}
+
+$.extend(AjaxPayoneHandler.prototype, PayoneHandler.prototype, {
+    success : function(pseudocardpan, truncatedcardpan) {
+        this.creditCardNumber.val(truncatedcardpan);
+        <isif condition="#PaymentService:CardSecurityCodeCheckEnabled#">
+        	if (this.securityCode.val())
+        		this.securityCode.val('***');
+        </isif>
+        PayoneHandler.prototype.success.call(this, pseudocardpan, truncatedcardpan);
+	}
+});
+
+var payoneHandler = new AjaxPayoneHandler('<isprint value="#paymentConfigurationUUID#">', $('input[id$="_<isprint value="#paymentConfigurationUUID#" />"]').parents('form'));
+
+$(document).on('click', 'button[name="applyPayment"], button[name="continue"]', function(event) {    
+    if ($('input[id$="_<isprint value="#paymentConfigurationUUID#" />"]').prop('checked')) {
+        
+        event.preventDefault();
+        
+        var expiryMonth = $('#'#'#<isprint value="#paymentConfigurationUUID#" />_CreditCardExpiryMonth').val();
+        if (expiryMonth.length < 2) {
+            expiryMonth = '0' + expiryMonth;
+        }
+        
+        var data = {
+                <isprint value="#purchaseHash#" encoding="off"/>,
+                cardholder : $('#'#'#<isprint value="#paymentConfigurationUUID#" />_CreditCardHolder').val(),
+                cardpan : $('#'#'#<isprint value="#paymentConfigurationUUID#" />_CreditCardNumber').val(),
+                <isif condition="#PaymentService:CardSecurityCodeCheckEnabled#">
+                	cardcvc2 : 	$('#'#'#<isprint value="#paymentConfigurationUUID#" />_SecurityCode').val(),
+                </isif>
+                cardtype: $('#'#'#<isprint value="#paymentConfigurationUUID#" />_CreditCardType').val(),
+                cardexpiredate : $('#'#'#<isprint value="#paymentConfigurationUUID#" />_CreditCardExpiryYear').val().substr(2,2) + expiryMonth
+        };
+        
+        var request = new PayoneRequest(data, {return_type : 'object', callback_function_name : 'responseCallback'});
+        payoneHandler.clearErrors();
+        payoneHandler.disableControls();
+        payoneHandler.setTarget(event.target.name);
+        request.checkAndStore();
+    }
+});
+
+function responseCallback(response) {
+    if (response.get('status') != 'VALID') {
+        payoneHandler.enableControls();
+        payoneHandler.failure(response.get('errorcode'), response.get('customermessage'));
+    } else {
+        payoneHandler.success(response.get('pseudocardpan'), response.get('truncatedcardpan'));
+    }
+}
+
+
+</script>
\ No newline at end of file

Property changes on: default/payment_po_creditcard/EditPIIajax.isml
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Index: default/payment_po_creditcard/EditPIIiframe.isml
===================================================================
--- default/payment_po_creditcard/EditPIIiframe.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 0)
+++ default/payment_po_creditcard/EditPIIiframe.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -0,0 +1,135 @@
+<iscontent type="text/html" charset="UTF-8" compact="true">
+<isset name="paymentConfigurationUUID" value="#PaymentService:Configuration:UUID#" scope="request"/>
+<isset name="CCSConfig" value="#PaymentService:Capabilities:CreditCardServiceConfiguration#" scope="request"/>
+<isset name="paymentRequestParameters" value="#PaymentService:CreditCardCheckAJAXRequestHeader#" scope="request"/>
+<script type="text/javascript" src="https://secure.pay1.de/client-api/js/v1/payone_hosted_min.js"></script>
+<script type="text/javascript">
+var request, config;
+config = {
+    fields: {
+        cardtype: {
+            selector: '<isprint value="#paymentConfigurationUUID#">_CreditCardType',
+            cardtypes: [<isloop iterator="PaymentService:CCs" alias="CardType">'<isprint value="#CardType:Key:PayoneID#"/>'<isif condition="#hasNext(CardType)#">,</isif></isloop>],
+	        <isif condition="#isDefined(CCSConfig:CardTypesConfig:FieldType)#">type: '<isprint value="#CCSConfig:CardTypesConfig:FieldType:Value#"/>',</isif>
+            <isif condition="#isDefined(CCSConfig:CardTypesConfig:Length)#">size: '<isprint value="#CCSConfig:CardTypesConfig:Length#"/>',</isif>
+            <isif condition="#isDefined(CCSConfig:CardTypesConfig:MaxCharacters)#">maxlength: '<isprint value="#CCSConfig:CardTypesConfig:MaxCharacters#"/>',</isif>
+            <isif condition="#isDefined(CCSConfig:CardTypesConfig:Style)#">style: '<isprint value="#CCSConfig:CardTypesConfig:Style#"/>',</isif>
+            <isif condition="#(isDefined(CCSConfig:CardTypesConfig:Width) OR isDefined(CCSConfig:CardTypesConfig:Height))#">
+	            iframe: {
+	                <isif condition="#isDefined(CCSConfig:CardTypesConfig:Width)#">width: '<isprint value="#CCSConfig:CardTypesConfig:Width#"/>',</isif>
+	                <isif condition="#isDefined(CCSConfig:CardTypesConfig:Height)#">height: '<isprint value="#CCSConfig:CardTypesConfig:Height#"/>'</isif>
+	            }
+            </isif>
+        },
+        cardpan: {
+            selector: '<isprint value="#paymentConfigurationUUID#">_CreditCardNumber',
+            <isif condition="#isDefined(CCSConfig:CardNumberConfig:FieldType)#">type: '<isprint value="#CCSConfig:CardNumberConfig:FieldType:Value#"/>',</isif>
+            <isif condition="#isDefined(CCSConfig:CardNumberConfig:Length)#">size: '<isprint value="#CCSConfig:CardNumberConfig:Length#"/>',</isif>
+            <isif condition="#isDefined(CCSConfig:CardNumberConfig:MaxCharacters)#">maxlength: '<isprint value="#CCSConfig:CardNumberConfig:MaxCharacters#"/>',</isif>
+            <isif condition="#isDefined(CCSConfig:CardNumberConfig:Style)#">style: '<isprint value="#CCSConfig:CardNumberConfig:Style#"/>',</isif>
+            <isif condition="#(isDefined(CCSConfig:CardNumberConfig:Width) OR isDefined(CCSConfig:CardNumberConfig:Height))#">
+	            iframe: {
+	                <isif condition="#isDefined(CCSConfig:CardNumberConfig:Width)#">width: '<isprint value="#CCSConfig:CardNumberConfig:Width#"/>',</isif>
+	                <isif condition="#isDefined(CCSConfig:CardNumberConfig:Height)#">height: '<isprint value="#CCSConfig:CardNumberConfig:Height#"/>'</isif>
+	            }
+            </isif>
+        },
+        <isif condition="#PaymentService:CardSecurityCodeCheckEnabled#">
+	        cardcvc2: {
+	            selector: '<isprint value="#paymentConfigurationUUID#">_SecurityCode',
+	            <isif condition="#isDefined(CCSConfig:CVC2Config:FieldType)#">type: '<isprint value="#CCSConfig:CVC2Config:FieldType:Value#"/>',</isif>
+	            <isif condition="#isDefined(CCSConfig:CVC2Config:Length)#">size: '<isprint value="#CCSConfig:CVC2Config:Length#"/>',</isif>
+	            <isif condition="#isDefined(CCSConfig:CVC2Config:MaxCharacters)#">maxlength: '<isprint value="#CCSConfig:CVC2Config:MaxCharacters#"/>',</isif>
+	            <isif condition="#isDefined(CCSConfig:CVC2Config:Style)#">style: '<isprint value="#CCSConfig:CVC2Config:Style#"/>',</isif>
+	            <isif condition="#(isDefined(CCSConfig:CVC2Config:Width) OR isDefined(CCSConfig:CVC2Config:Height))#">
+		            iframe: {
+		                <isif condition="#isDefined(CCSConfig:CVC2Config:Width)#">width: '<isprint value="#CCSConfig:CVC2Config:Width#"/>',</isif>
+		                <isif condition="#isDefined(CCSConfig:CVC2Config:Height)#">height: '<isprint value="#CCSConfig:CVC2Config:Height#"/>'</isif>
+		            }
+	            </isif>
+		    },
+        </isif>
+        cardexpiremonth: {
+            selector: '<isprint value="#paymentConfigurationUUID#">_CreditCardExpiryMonth',
+            <isif condition="#isDefined(CCSConfig:ValidMonthConfig:FieldType)#">type: '<isprint value="#CCSConfig:ValidMonthConfig:FieldType:Value#"/>',</isif>
+            <isif condition="#isDefined(CCSConfig:ValidMonthConfig:Length)#">size: '<isprint value="#CCSConfig:ValidMonthConfig:Length#"/>',</isif>
+            <isif condition="#isDefined(CCSConfig:ValidMonthConfig:MaxCharacters)#">maxlength: '<isprint value="#CCSConfig:ValidMonthConfig:MaxCharacters#"/>',</isif>
+            <isif condition="#isDefined(CCSConfig:ValidMonthConfig:Style)#">style: '<isprint value="#CCSConfig:ValidMonthConfig:Style#"/>',</isif>
+            <isif condition="#(isDefined(CCSConfig:ValidMonthConfig:Width) OR isDefined(CCSConfig:ValidMonthConfig:Height))#">
+	            iframe: {
+	                <isif condition="#isDefined(CCSConfig:ValidMonthConfig:Width)#">width: '<isprint value="#CCSConfig:ValidMonthConfig:Width#"/>',</isif>
+	                <isif condition="#isDefined(CCSConfig:ValidMonthConfig:Height)#">height: '<isprint value="#CCSConfig:ValidMonthConfig:Height#"/>'</isif>
+	            }
+            </isif>
+        },
+        cardexpireyear: {
+            selector: '<isprint value="#paymentConfigurationUUID#">_CreditCardExpiryYear',
+            <isif condition="#isDefined(CCSConfig:ValidYearConfig:FieldType)#">type: '<isprint value="#CCSConfig:ValidYearConfig:FieldType:Value#"/>',</isif>
+            <isif condition="#isDefined(CCSConfig:ValidYearConfig:Length)#">size: '<isprint value="#CCSConfig:ValidYearConfig:Length#"/>',</isif>
+            <isif condition="#isDefined(CCSConfig:ValidYearConfig:MaxCharacters)#">maxlength: '<isprint value="#CCSConfig:ValidYearConfig:MaxCharacters#"/>',</isif>
+            <isif condition="#isDefined(CCSConfig:ValidYearConfig:Style)#">style: '<isprint value="#CCSConfig:ValidYearConfig:Style#"/>',</isif>
+            <isif condition="#(isDefined(CCSConfig:ValidYearConfig:Width) OR isDefined(CCSConfig:ValidYearConfig:Height))#">
+	            iframe: {
+	                <isif condition="#isDefined(CCSConfig:ValidYearConfig:Width)#">width: '<isprint value="#CCSConfig:ValidYearConfig:Width#"/>',</isif>
+	                <isif condition="#isDefined(CCSConfig:ValidYearConfig:Height)#">height: '<isprint value="#CCSConfig:ValidYearConfig:Height#"/>'</isif>
+	            }
+            </isif>
+        }
+    },
+    defaultStyle: {
+        <isif condition="#isDefined(CCSConfig:DefaultTextInputStyle)#">input: '<isprint value="#CCSConfig:DefaultTextInputStyle#"/>',</isif>
+        <isif condition="#isDefined(CCSConfig:DefaultSelectInputStyle)#">select: '<isprint value="#CCSConfig:DefaultSelectInputStyle#"/>',</isif>
+        iframe: {
+            width: '<isif condition="#isDefined(CCSConfig:DefaultWidth)#"><isprint value="#CCSConfig:DefaultWidth#"/></isif>',
+            height: '<isif condition="#isDefined(CCSConfig:DefaultHeight)#"><isprint value="#CCSConfig:DefaultHeight#"/></isif>'
+        }
+    },
+    <isif condition="#isDefined(CCSConfig:ErrorMessagesPlaceholderID)#">
+    	error: '<isprint value="#CCSConfig:ErrorMessagesPlaceholderID#">',
+    </isif>
+    language: Payone.ClientApi.Language.<isprint value="#CurrentRequest:Locale:Language#">
+};
+
+request = {
+	<isprint value="#paymentRequestParameters#" encoding="off"/>
+};
+    
+var iframes = new Payone.ClientApi.HostedIFrames(config, request);
+<isloop iterator="PaymentService:CCs" alias="CardType">
+	iframes.setCardType('<isprint value="#CardType:Key:PayoneID#"/>');
+	<isbreak/>
+</isloop>
+
+var payoneHandler = new PayoneHandler('<isprint value="#paymentConfigurationUUID#">', $('input[id$="_<isprint value="#paymentConfigurationUUID#" />"]').parents('form'));
+
+$(document).on('click', 'button[name="applyPayment"], button[name="continue"]', function(event) {    
+    if ($('input[id$="_<isprint value="#paymentConfigurationUUID#" />"]').prop('checked')) {
+        event.preventDefault();
+		if (iframes.isComplete()) {
+		    <isif condition="#NOT isDefined(CCSConfig:ErrorMessagesPlaceholderID)#">
+		    	payoneHandler.clearErrors();	
+		    </isif>
+		    payoneHandler.disableControls();
+		    payoneHandler.setTarget(event.target.name);
+            iframes.creditCardCheck('responseCallback');
+        } else {
+            payoneHandler.enableControls();
+            <isif condition="#NOT isDefined(CCSConfig:ErrorMessagesPlaceholderID)#">
+            	payoneHandler.failure('default', '<istext key="payment.payone.creditcard.error.incomplete">');
+           	</isif>
+        }
+    }
+});
+
+function responseCallback(response) {
+    if (response.status != 'VALID') {
+        payoneHandler.enableControls();
+        <isif condition="#NOT isDefined(CCSConfig:ErrorMessagesPlaceholderID)#">
+        	payoneHandler.failure(response.errorcode, response.errormessage)
+       	</isif>
+    } else {
+        payoneHandler.success(response.pseudocardpan, response.truncatedcardpan);
+    }
+}
+
+</script>
\ No newline at end of file

Property changes on: default/payment_po_creditcard/EditPIIiframe.isml
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Index: default/payment_po_creditcard/ConfigurationEditBO.isml
===================================================================
--- default/payment_po_creditcard/ConfigurationEditBO.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 0)
+++ default/payment_po_creditcard/ConfigurationEditBO.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -0,0 +1,69 @@
+<iscontent type="text/html" charset="UTF-8">
+
+<isinclude template="payment_po_general/config/inc/Modules"/>
+
+<isset name="CreditCardCapabilities" value="#PaymentConfiguration:PaymentService:Capabilities#" scope="request"/>
+
+<isset name="StandardConfiguration" value="#CreditCardCapabilities:StandardPayoneConfiguration#" scope="request"/>
+<isset name="CreditCardServiceConfiguration" value="#CreditCardCapabilities:CreditCardServiceConfiguration#" scope="request"/>
+
+<table cellpadding="0" cellspacing="0" border="0" class="s" width="100%">
+	<tr><td><img src="#WebRoot()#/images/space.gif" width="0" height="4" alt="" border="0"/></td></tr>
+	
+	<isPayoneConfigurationParameter ConfigurationParameter="#StandardConfiguration:MerchantID#" FormRecord="#FormRecord#" Error="#ERROR_PARAMETER_REQUIRED#">
+	<isPayoneConfigurationParameter ConfigurationParameter="#StandardConfiguration:PortalID#" FormRecord="#FormRecord#" Error="#ERROR_PARAMETER_REQUIRED#">
+	<isPayoneConfigurationParameter ConfigurationParameter="#StandardConfiguration:SubAccountID#" FormRecord="#FormRecord#" Error="#ERROR_PARAMETER_REQUIRED#">
+	<isPayoneConfigurationParameter ConfigurationParameter="#StandardConfiguration:Key#" FormRecord="#FormRecord#" Error="#ERROR_PARAMETER_REQUIRED#">
+	<isPayoneConfigurationParameter ConfigurationParameter="#StandardConfiguration:Mode#" FormRecord="#FormRecord#" Error="#ERROR_PARAMETER_REQUIRED#">
+	<isPayoneConfigurationParameter ConfigurationParameter="#StandardConfiguration:CaptureMode#" FormRecord="#FormRecord#" Error="#ERROR_PARAMETER_REQUIRED#">
+	<isPayoneConfigurationParameter ConfigurationParameter="#StandardConfiguration:BaseURL#" FormRecord="#FormRecord#" Error="#ERROR_PARAMETER_REQUIRED#">
+	<isPayoneConfigurationParameter ConfigurationParameter="#StandardConfiguration:SubmitOrderDetails#" FormRecord="#FormRecord#" Error="#ERROR_PARAMETER_REQUIRED#">
+	<isPayoneConfigurationParameter ConfigurationParameter="#StandardConfiguration:StorefrontName#" FormRecord="#FormRecord#" Error="#ERROR_PARAMETER_REQUIRED#">
+	
+	<tr>
+		<td class="fielditem2" nowrap="nowrap" valign="middle">
+			<istext key="payment.payone.creditcard.type.label"/>
+		</td>
+		
+		<td>
+		<isif condition="#hasLoopElements(CreditCardServiceConfiguration:CreditCards)#">
+			<isset name="CreditCardsMiddle" value="#CreditCardServiceConfiguration:CreditCards:Size / 2#" scope="request"/>
+			<table cellpadding="0" cellspacing="0" border="0" width="100%">
+				<tr>
+					<td>
+						<table>
+						<isloop iterator="CreditCardServiceConfiguration:CreditCards" alias="creditCardConfig" counter="creditCardConfigIndex">
+						
+						<!--- If we've passed the middle of the credit cards list, then start another column --->
+						<isif condition="#(creditCardConfigIndex > CreditCardsMiddle) AND (NOT isDefined(CreditCardsColumnBreak))#">
+						</table>
+						</td>
+						<td>
+						<table>
+						<isset name="CreditCardsColumnBreak" value="done" scope="request"/>
+						</isif>
+						
+							<tr>
+								<td>
+									<input type="checkbox" name="<isprint value="#'ServiceConfig_'.creditCardConfig:Enabled:ID#">"
+										<isif condition="#(creditCardConfig:Enabled:Value EQ 'true') OR (isDefined(FormRecord:get(creditCardConfig:Enabled:ID)))#">checked="checked"</isif>/>
+								</td>
+								<td class="fielditem2" nowrap="nowrap" valign="middle"><istext key="#creditCardConfig:CreditCardName:ID#"></td>
+								<td>
+									<input type="text" name="<isprint value="#'ServiceConfig_'.creditCardConfig:CreditCardName:ID#">"
+										value="<isif condition="#isDefined(FormRecord:get(creditCardConfig:CreditCardName:ID))#"><isprint value="#FormRecord:get(creditCardConfig:CreditCardName:ID)#"><iselse><isprint value="#creditCardConfig:CreditCardName:Value#"></isif>"
+										maxlength="250" size="50" class="inputfield_en"/>
+								</td>
+							</tr>
+						</isloop>
+						</table>
+					</td>
+				</tr>
+			</table>
+		</isif>
+		</td>
+	</tr>
+	<isPayoneConfigurationParameter ConfigurationParameter="#CreditCardServiceConfiguration:IsSecurityCodeCheckRequired#" FormRecord="#FormRecord#" Error="#ERROR_PARAMETER_REQUIRED#">
+	<isPayoneConfigurationParameter ConfigurationParameter="#CreditCardServiceConfiguration:MinimumCardValidity#" FormRecord="#FormRecord#" Error="#ERROR_PARAMETER_REQUIRED#">
+	
+</table>

Property changes on: default/payment_po_creditcard/ConfigurationEditBO.isml
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Index: default/payment_po_creditcard/ShowPIIMini.isml
===================================================================
--- default/payment_po_creditcard/ShowPIIMini.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_creditcard/ShowPIIMini.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -6,32 +6,17 @@
 
 <isif condition="#not(isdefined(PaymentDisplayMode)) or (PaymentDisplayMode EQ 'long')#">
 	<div class="ish-paymentMethods-debitTransferData">
-		<span class="ish-paymentMethods-debitTransferData-label">
-			<istext key="payment.payone.creditcard.type.label" />:
-		</span>
-		<span class="ish-paymentMethods-debitTransferData-value">
-		 	<isprint value="#PII:PaymentService:CCDisplayName(PII:CustomAttributes:CreditCardType)#">
-		</span><br />
-		
-		<span class="ish-paymentMethods-debitTransferData-label">
-			<istext key="payment.payone.creditcard.cardholder.text">:
-		</span>
-		<span class="ish-paymentMethods-debitTransferData-value">
-			<isprint value="#PII:CustomAttributes:CreditCardHolder#">
-		</span><br />
-		
 		<span class="ish-paymentMethods-debitTransferData-label ish-paymentMethods-debitTransferData-labelLast">
 			<istext key="payment.payone.creditcard.card_number.text">:
 		</span>
 		<span class="ish-paymentMethods-debitTransferData-value ish-paymentMethods-debitTransferData-valueLast">
-			<isprint value="#PII:CustomAttributes:CreditCardNumber#">
-		</span><br />
-
-		<span class="ish-paymentMethods-debitTransferData-label ish-paymentMethods-debitTransferData-labelLast">
-			<istext key="payment.payone.creditcard.expiration_date.text">:
+			<isprint value="#PII:CustomAttributes:TruncatedCreditCardNumber#">
 		</span>
+	</div>
+<iselse>
+	<div class="ish-paymentMethods-debitTransferData">
 		<span class="ish-paymentMethods-debitTransferData-value ish-paymentMethods-debitTransferData-valueLast">
-			<isprint value="#PII:CustomAttributes:CreditCardExpiryMonth#">/<isprint value="#PII:CustomAttributes:CreditCardExpiryYear#">
+			<isprint value="#PII:CustomAttributes:TruncatedCreditCardNumber#">
 		</span>
 	</div>
 </isif>
Index: default/payment_po_creditcard/PaymentSelectionEntry.isml
===================================================================
--- default/payment_po_creditcard/PaymentSelectionEntry.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_creditcard/PaymentSelectionEntry.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,6 +1,9 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
 <isif condition="#not(isdefined(showHelpText)) OR (showHelpText NE 'true')#">
 	<isinclude template="payment_po_creditcard/DisplayName">
+	<span class="ish-paymentMethods-slogan">
+		<istext key="payment.payone.creditcard.description.text" />
+	</span>
 </isif>
 <isif condition="#isDefined(RestrictionErrors) AND isDefined(RestrictionErrors:ERROR_COUNTRY_NOT_SUPPORTED_FOR_PAYONE)#">
 	<span class="ish-paymentMethods-slogan"><istext key="payment.payone.error.country_not_supported" /></span>
Index: default/payment_po_creditcard/EditPII.isml
===================================================================
--- default/payment_po_creditcard/EditPII.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_creditcard/EditPII.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,224 +1,50 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
-	<%
-	    // add month
-	    ArrayList<Integer> expiryMonth = new ArrayList<Integer>();
-	    int selMonth = new GregorianCalendar().get(GregorianCalendar.MONTH);
-	    for(int i=1; i<=12; i++)
-	    {
-	        expiryMonth.add(Integer.valueOf(i));
-	    }
-	    getPipelineDictionary().put("ExpiryMonthIterator",  Iterators.createResettableIterator(expiryMonth.iterator()));
-	    getPipelineDictionary().put("CurrentMonth", selMonth);
+<isset name="paymentConfigurationUUID" value="#PaymentService:Configuration:UUID#" scope="request"/>
+<isset name="CCSConfig" value="#PaymentService:Capabilities:CreditCardServiceConfiguration#" scope="request"/>
+<isset name="usePaymentMethod" value="#CCSConfig:DisplayType:Value#" scope="request"/>
+<isset name="editPaymentInstrumentTemplate" value="#'EditPII' . lcase(usePaymentMethod) . '.isml'#" scope="request"/>
+<isset name="purchaseHash" value="#PaymentService:CreditCardCheckAJAXRequestHeader#" scope="request"/>
 
-	    // add year
-	    ArrayList<Integer> expiryYear = new ArrayList<Integer>();
-	    int startYear = new GregorianCalendar().get(GregorianCalendar.YEAR);
-	    for(int i=startYear; i<startYear+6; i++)
-	    {
-	        expiryYear.add(Integer.valueOf(i));
-	    }
-	    getPipelineDictionary().put("ExpiryYearIterator",  Iterators.createResettableIterator(expiryYear.iterator()));
-	%>
-
-	<!---isnoloc--->
-	<script src="https://secure.pay1.de/client-api/js/ajax.js" type="text/javascript"></script>
-
-	<isset name="PaymentCfgUUID" value="#PaymentService:Configuration:UUID#" scope="request"/>
-	<isset name="FormFieldSelectID" value="#PaymentCfgUUID#" scope="request"/>
-	<isset name="AJAXHeader" value="#PaymentService:CreditCardCheckAJAXRequestHeader#" scope="request"/>
-
-	<isif condition="#AJAXHeader EQ 'ERROR=500'#">
-	  <istext key="payment.payone.creditcard.error_on_server_side">
-	<iselse/>
-
-		<script type="text/javascript">
-
-	        <!--- customize this if needed: --->
-	        <isif condition="#myaccount NE 'true'#">
-	            var standard_container = '.ish-paymentMethods-newPaymentForm';
-	            var standard_button = '[name=applyPayment]';
-	        <iselse/>
-	            var standard_container = '.kor-payment-form';
-	            var standard_button = '[name=addEditPII]';
-	        </isif>
-
-		   function showIssueFieldIfNeeded() {
-			   var opt = $('option:selected',this).val();
-			   var container = $('[data-datafieldcontainer="<isprint value="#FormFieldSelectID#">_CreditCardIssueNumber"]');
-
-			   if (opt === 'U') {
-			      container.show();
-			   } else {
-				   container.hide();
-			   }
-
-		   }
-
-			var options = {
-					return_type : 'object',
-					callback_function_name : 'processPayoneResponse'
-			};
-
-			function processPayoneResponse(response) {
-
-				var truncatedCreditCardNumber = '';
-
-				if (response.get('status') === 'VALID') {
-
-					var number = $('[data-formfieldselectid="<isprint value="#FormFieldSelectID#"/>_CreditCardNumber"]').val();
-					var length = number.length;
-
-					for ( var i = 0; i < length; i ++ ) {
-						if (i < length - 3) {
-							truncatedCreditCardNumber = truncatedCreditCardNumber + '*';
-						} else {
-							truncatedCreditCardNumber = truncatedCreditCardNumber + number[ i ];
-						}
-					}
-
-				    var $form = $('#'#'#DoCreditCardCheck').closest('form');
-					$form.append('<input type="hidden" name="<isprint value="#PaymentCfgUUID#">_CardPan" id="<isprint value="#PaymentCfgUUID#">_CardPan" value="' + response.get('pseudocardpan') + '">');
-					$form.append('<input type="hidden" name="<isprint value="#PaymentCfgUUID#">_TruncatedCreditCardNumber" id="<isprint value="#PaymentCfgUUID#">_TruncatedCreditCardNumber" value="' + truncatedCreditCardNumber + '">');
-
-				}
-				else {
-					 var $form = $('#'#'#DoCreditCardCheck').closest('form');
-		             $form.append('<input type="hidden" name="<isprint value="#PaymentCfgUUID#">_CustomMessage" id="<isprint value="#PaymentCfgUUID#">_CustomMessage" value="' + response.get('customermessage') + '">');
-		             $form.append('<input type="hidden" name="<isprint value="#PaymentCfgUUID#">_ErrorMessage" id="<isprint value="#PaymentCfgUUID#">_ErrorMessage" value="' + response.get('errormessage') + '">');
-		             $form.append('<input type="hidden" name="<isprint value="#PaymentCfgUUID#">_PayoneErrorCode" id="<isprint value="#PaymentCfgUUID#">_PayoneErrorCode" value="' + response.get('errorcode') + '">');
-				}
-
-	            $('[data-formfieldselectid="<isprint value="#FormFieldSelectID#"/>_CreditCardNumber"]').val(truncatedCreditCardNumber);
-	            $('[data-formfieldselectid="<isprint value="#FormFieldSelectID#"/>_SecurityCode"]').val('***');
-	            $('[data-datafieldcontainer="<isprint value="#FormFieldSelectID#">_CreditCardIssueNumber"]').val('**');
-
-	            var payoneApplyButton = $('#'#'#DoCreditCardCheck');
-	            var standardApplyButton = payoneApplyButton.closest(standard_container).find(standard_button);
-
-	            standardApplyButton.click();
-			}
-
-		    function processCreditCardCheck() {
-
-		    	var errorcode = '';
-		    	var errortype = '';
-
-		    	var cardnr = $('[data-formfieldselectid="<isprint value="#FormFieldSelectID#"/>_CreditCardNumber"]').val();
-
-		        if (cardnr.length == 0) {
-		        	errortype = 'Missing';
-		        	errorcode = 'CreditCardNumber';
-		        }
-
-		        var givenOwner = $('[data-formfieldselectid="<isprint value="#FormFieldSelectID#"/>_CreditCardHolder"]').val();
-
-	            if (errorcode.length == 0 && givenOwner.length == 0) {
-	            	errortype = 'Missing';
-	                errorcode = 'CreditCardOwner';
-	            }
-
-	            var givenMonth = $('[data-formfieldselectid="<isprint value="#FormFieldSelectID#"/>_CreditCardExpiryMonth"]').val();
-	            var givenYear = $('[data-formfieldselectid="<isprint value="#FormFieldSelectID#"/>_CreditCardExpiryYear"]').val();
-
-		        var currentDate = new Date();
-		        var currentMonth = currentDate.getMonth() + 1;
-		        var currentYear = currentDate.getYear();
-		        if (currentYear < 999)
-		        	currentYear += 1900;
-
-		        if (errorcode.length == 0 && currentYear == givenYear) {
-
-		        	if (parseInt(givenMonth) < currentMonth) {
-		        		  errortype = 'Invalid';
-		        		  errorcode = 'CreditCardExpiryMonth';
-	        		}
-		        }
-
-		        var givenSecurityCode = '';
-		        if ('<isprint value="#PaymentService:CardSecurityCodeCheckEnabled#">' == 'true') {
-		        	var givenSecurityCode = $('[data-formfieldselectid="<isprint value="#FormFieldSelectID#"/>_SecurityCode"]').val();
-		        	if (errorcode.length == 0 && givenSecurityCode.length == 0) {
-
-		        	     errortype = 'Missing';
-	                     errorcode = 'SecurityCode';
-		        	}
-
-		        	if (errorcode.length == 0 && (givenSecurityCode.length < 3 || givenSecurityCode.length > 4)) {
-	                    errortype = 'Invalid';
-	                    errorcode = 'SecurityCode';
-
-		        	}
-		        }
-
-		        if (errorcode.length > 0) {
-
-		            $('[data-formfieldselectid="<isprint value="#FormFieldSelectID#"/>_SecurityCode"]').val('');
-		        	$('[data-formfieldselectid="<isprint value="#FormFieldSelectID#"/>_CreditCardNumber"]').val('');
-		            $('[data-datafieldcontainer="<isprint value="#FormFieldSelectID#">_CreditCardIssueNumber"]').val('');
-
-		            var $form = $('#'#'#DoCreditCardCheck').closest('form');
-
-		            $form.append('<input type="hidden" name="<isprint value="#PaymentCfgUUID#">_ClientErrorCode" id="<isprint value="#PaymentCfgUUID#">_ClientErrorCode" value="'+ errorcode +'">');
-		            $form.append('<input type="hidden" name="<isprint value="#PaymentCfgUUID#">_ClientErrorType" id="<isprint value="#PaymentCfgUUID#">_ClientErrorType" value="'+ errortype +'">');
-
-		            var payoneApplyButton = $('#'#'#DoCreditCardCheck');
-		            var standardApplyButton = payoneApplyButton.closest(standard_container).find(standard_button);
-		            standardApplyButton.click();
-
-		        } else {
-
-		        	if (givenMonth.length < 2) {
-		                givenMonth = '0' + givenMonth;
-		            }
-
-			        var cardtype = $('[data-formfieldselectid="<isprint value="#FormFieldSelectID#"/>_CreditCardType"]').val();
-
-			        var data = {
-		                    <isprint value="#AJAXHeader#" encoding="off"/>,
-		                    cardholder : givenOwner,
-		                    cardpan : cardnr,
-		                    cardtype: cardtype,
-		                    cardexpiredate : givenYear.substr(2,2) + givenMonth
-			        };
-
-			        if (givenSecurityCode.length > 0) {
-			        	data.cardcvc2 = givenSecurityCode;
-	                }
-
-			        if (cardtype === 'U') {
-			        	var cardissuenumber = $('[data-datafieldcontainer="<isprint value="#FormFieldSelectID#">_CreditCardIssueNumber"]').val();
-			        	data.cardissuenumber = cardissuenumber;
-			        }
-
-		            var request = new PayoneRequest(data, options);
-		            //alert(JSON.stringify(data));
-
-		            request.checkAndStore();
-	            }
-	        }
-
-		    $(function(){
-		    	var payoneApplyButton = $('#'#'#DoCreditCardCheck');
-
-		    	var standardApplyButton = payoneApplyButton.closest(standard_container).find(standard_button);
-		    	standardApplyButton.hide();
-
-		    	payoneApplyButton.click(processCreditCardCheck);
-
-		    	//attach issue number
-		    	var cardtypeSelectBox = $('[data-formfieldselectid="<isprint value="#FormFieldSelectID#"/>_CreditCardType"]');
-		    	cardtypeSelectBox.change(showIssueFieldIfNeeded);
-		    });
-
-		</script>
-		<!---/isnoloc--->
-
-		<!--- Allow to add new payment instrument info always -- kor-edit-credit-card-section--->
-		<div class="ws-credit-card-form kor-toggleable-active">
-			<div class="ish-field">
-	            <label for="<isprint value="#PaymentCfgUUID#">_CreditCardTypeLabel"><istext key="payment.payone.creditcard.type.label"></label>
-	            <select name="<isprint value="#PaymentCfgUUID#">_CreditCardType" id="<isprint value="#PaymentCfgUUID#">_CreditCardType"
-	                data-formfieldselectid="<isprint value="#FormFieldSelectID#">_CreditCardType">
+<isif condition="#purchaseHash EQ 'ERROR=500'#">
+	<div role="alert" class="kor-form-error-message ish-error">
+		<div class="kor-form-error-message-contents">
+			<istext key="payment.payone.creditcard.error_on_server_side">
+		</div>
+	</div>
+	<script type="text/javascript">
+		$(document).ready(function() {
+			$('input[id$="_<isprint value="#paymentConfigurationUUID#" />"]').parents('.ish-paymentMethods-item').find('input[type=submit], button').parent().remove();
+		});
+	</script>
+<iselse>
+	
+	<div class="kor-field-error-message-placeholder kor-field-error-right ish-formShift-s" id="<isprint value="#paymentConfigurationUUID#">-errors">
+		<div class="kor-field-error-message">
+			<div class="kor-field-error-message-contents">
+				<ul class="kor-field-error-list">
+					<li class="kor-field-error-list-item" id="<isprint value="#paymentConfigurationUUID#">-error-message"/>
+				</ul>
+			</div>
+		</div>
+	</div>
+	
+	<div class="ws-credit-card-form kor-toggleable-active">
+		
+		<div class="ish-field" data-card-field="number" data-handles-code="default,14,877,878,1078">
+            <label class="ish-label-s" for="<isprint value="#paymentConfigurationUUID#">_CreditCardNumberLabel"><istext key="payment.payone.creditcard.card_number.text"></label>
+            <isif condition="#usePaymentMethod EQ 'iframe'#">
+            	<span id="<isprint value="#paymentConfigurationUUID#">_CreditCardNumber"></span>
+           	<iselse>
+           		<input type="text" class="inputText" name="<isprint value="#paymentConfigurationUUID#">_CreditCardNumber" id="<isprint value="#paymentConfigurationUUID#">_CreditCardNumber" />
+           	</isif>
+		</div>
+        
+        <div class="ish-field" data-card-field="type" data-handles-code="31,880,1076">
+            <label class="ish-label-s" for="<isprint value="#paymentConfigurationUUID#">_CreditCardType"><istext key="payment.payone.creditcard.type.label"></label>
+            <isif condition="#usePaymentMethod EQ 'iframe'#">
+            	<span id="<isprint value="#paymentConfigurationUUID#">_CreditCardType"></span>
+           	<iselse>
+           		<select name="<isprint value="#paymentConfigurationUUID#">_CreditCardType" id="<isprint value="#paymentConfigurationUUID#">_CreditCardType">
 	                <isloop iterator="PaymentService:CCs" alias="card">
 	                    <option value="<isprint value="#card:Key:PayoneID#"/>">          	
 	                    	<isif condition="#isDefined(card:Value) AND (card:Value NE "")#">
@@ -229,92 +55,150 @@
 	                    </option>
 	                </isloop>
 	            </select>
-	        </div>
-	        <div class="ish-field">
-	            <label for="<isprint value="#PaymentCfgUUID#">_CreditCardHolderLabel"><istext key="payment.payone.creditcard.cardholder.text"></label>
-	            <input type="text" class="inputText" name="<isprint value="#PaymentCfgUUID#">_CreditCardHolder" id="<isprint value="#PaymentCfgUUID#">_CreditCardHolder"
-	                data-formfieldselectid="<isprint value="#FormFieldSelectID#">_CreditCardHolder"
-	                <isif condition="#(NOT PIIDataVerificationResult:isValid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_CREDITCARD')#">
-	                    value="<isprint value="#PIIDataVerificationResult:Values:CreditCardOwnerFirst#">"
-	                <iselse>
-	                    value=""
-	                </isif>
-	            />
-	        </div>
-	        <div class="ish-field">
-	            <label for="<isprint value="#PaymentCfgUUID#">_CreditCardNumberLabel"><istext key="payment.payone.creditcard.card_number.text"></label>
-	            <input type="text" class="inputText" name="<isprint value="#PaymentCfgUUID#">_CreditCardNumber" id="<isprint value="#PaymentCfgUUID#">_CreditCardNumber"
-	                data-formfieldselectid="<isprint value="#FormFieldSelectID#">_CreditCardNumber"
-	                <isif condition="#(NOT PIIDataVerificationResult:isValid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_CREDITCARD')#">
-	                    value="<isprint value="#PIIDataVerificationResult:Values:CreditCardNumber#">"
-	                <iselse>
-	                    value=""
-	                </isif>
-	            />
-	        </div>
-	        <div class="ish-field" style="display:none;" data-datafieldcontainer="<isprint value="#FormFieldSelectID#">_CreditCardIssueNumber">
-	            <label for="<isprint value="#PaymentCfgUUID#">_CreditCardIssueNumber"><istext key="payment.payone.creditcard.card_issue_number.text"></label>
-	            <input type="text" class="inputText" name="<isprint value="#PaymentCfgUUID#">_CreditCardIssueNumber" id="<isprint value="#PaymentCfgUUID#">_CreditCardIssueNumber"
-	                data-formfieldselectid="<isprint value="#FormFieldSelectID#">_CreditCardIssueNumber"
-	                <isif condition="#(NOT PIIDataVerificationResult:isValid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_CREDITCARD')#">
-	                    value="<isprint value="#PIIDataVerificationResult:Values:CreditCardIssueNumber#">"
-	                <iselse>
-	                    value=""
-	                </isif>
-	            />
-	        </div>
-	        <div class="ish-field">
-	            <isif condition="#(PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_CREDITCARD') AND (PIIDataVerificationResult:getError("CreditCardExpiryMonth") EQ 'Invalid')#">
-	               <div class="kor-field-error-message-placeholder kor-field-error-right ish-formShift-s" name="<isprint value="#PaymentService:Configuration:UUID#">_CreditCardExpiryDateError">
-	                   <div role="alert" class="kor-field-error-message">
-	                       <div class="kor-field-error-message-contents">
-	                           <ul class="kor-field-error-list">
-	                               <li class="kor-field-error-list-item"><istext key="payment.payone.creditcard.error.expiry_date_invalid"></li>
-	                           </ul>
-	                       </div>
-	                   </div>
-	               </div>
-	            </isif>
-	            <label for="<isprint value="#PaymentCfgUUID#">_CreditCardExpiryMonth"><istext key="payment.payone.creditcard.expiration_date.text"></label>
-	            <div class="inline">
-	                <select name="<isprint value="#PaymentCfgUUID#">_CreditCardExpiryMonth" id="<isprint value="#PaymentCfgUUID#">_CreditCardExpiryMonth"
-	                    data-formfieldselectid="<isprint value="#FormFieldSelectID#">_CreditCardExpiryMonth">
-	                    <isif condition="#(NOT PIIDataVerificationResult:isValid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_CREDITCARD')#">
-	                        <isset scope="request" name="selectedmonth" value="#PIIDataVerificationResult:Values:CreditCardExpiryMonth#" />
-	                    <iselse>
-	                        <isset scope="request" name="selectedmonth" value="" />
-	                    </isif>
+            </isif>
+		</div>
+           
+		<div class="ish-field" data-card-field="expiry-date" data-handles-code="33,1077">
+           	<label class="ish-label-s" for="<isprint value="#paymentConfigurationUUID#">_CreditCardExpiryMonthLabel"><istext key="payment.payone.creditcard.expiration_date.text"></label>
+           	<div class="inline">
+           		<isif condition="#usePaymentMethod EQ 'iframe'#">
+           			<span id="<isprint value="#paymentConfigurationUUID#">_CreditCardExpiryMonth" style="float: left;"></span>
+           			<span id="<isprint value="#paymentConfigurationUUID#">_CreditCardExpiryYear"></span>
+          		<iselse>
+          			<%
+					    // add month
+					    ArrayList<Integer> expiryMonth = new ArrayList<Integer>();
+					    int selMonth = new GregorianCalendar().get(GregorianCalendar.MONTH);
+					    for(int i=1; i<=12; i++)
+					    {
+					        expiryMonth.add(Integer.valueOf(i));
+					    }
+					    getPipelineDictionary().put("ExpiryMonthIterator",  Iterators.createResettableIterator(expiryMonth.iterator()));
+					    getPipelineDictionary().put("CurrentMonth", selMonth);
+				
+					    // add year
+					    ArrayList<Integer> expiryYear = new ArrayList<Integer>();
+					    int startYear = new GregorianCalendar().get(GregorianCalendar.YEAR);
+					    for(int i=startYear; i<startYear+6; i++)
+					    {
+					        expiryYear.add(Integer.valueOf(i));
+					    }
+					    getPipelineDictionary().put("ExpiryYearIterator",  Iterators.createResettableIterator(expiryYear.iterator()));
+					%>
+					<select name="<isprint value="#paymentConfigurationUUID#">_CreditCardExpiryMonth" id="<isprint value="#paymentConfigurationUUID#">_CreditCardExpiryMonth">
 	                    <isloop iterator="ExpiryMonthIterator" alias="expiryMonth">
-	                        <option value="<isprint value="#expiryMonth#" formatter="##">" <isif condition="#selectedmonth EQ getValue(expiryMonth,'##')#">selected="selected"</isif>><isprint value="#expiryMonth#" formatter="##"></option>
+	                        <option value="<isprint value="#expiryMonth#" formatter="##">"><isprint value="#expiryMonth#" formatter="##"></option>
 	                    </isloop>
 	                </select>
-	                <select name="<isprint value="#PaymentCfgUUID#">_CreditCardExpiryYear" id="<isprint value="#PaymentCfgUUID#">_CreditCardExpiryYear"
-	                    data-formfieldselectid="<isprint value="#FormFieldSelectID#">_CreditCardExpiryYear">
-	                    <isif condition="#(NOT PIIDataVerificationResult:isValid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_CREDITCARD')#">
-	                        <isset scope="request" name="selectedyear" value="#PIIDataVerificationResult:Values:CreditCardExpiryYear#" />
-	                    <iselse>
-	                        <isset scope="request" name="selectedyear" value="" />
-	                    </isif>
+	                <select name="<isprint value="#paymentConfigurationUUID#">_CreditCardExpiryYear" id="<isprint value="#paymentConfigurationUUID#">_CreditCardExpiryYear">
 	                    <isloop iterator="ExpiryYearIterator" alias="expiryYear">
-	                        <option value="<isprint value="#expiryYear#" formatter="####">" <isif condition="#selectedyear EQ getValue(expiryYear,'####')#">selected="selected"</isif>><isprint value="#expiryYear#" formatter="####"></option>
+	                        <option value="<isprint value="#expiryYear#" formatter="####">"><isprint value="#expiryYear#" formatter="####"></option>
 	                    </isloop>
 	                </select>
-	            </div>
-	        </div>
-	        <isif condition="#PaymentService:CardSecurityCodeCheckEnabled#">
-			   <div class="ish-field">
-					<label for="<isprint value="#PaymentCfgUUID#">_SecurityCode"><istext key="payment.payone.creditcard.security_code.text"></label>
-					<input type="text" class="ws-text cc_securitycode_edit" name="<isprint value="#PaymentCfgUUID#">_SecurityCode" id="<isprint value="#PaymentCfgUUID#">_SecurityCode"
-					maxlength="4" data-formfieldselectid="<isprint value="#FormFieldSelectID#">_SecurityCode" />
-			   </div>
-	        </isif>
-
-	        <div class="ish-field ish-field-buttonGroup">
-	          <button type="button" id="DoCreditCardCheck" name="DoCreditCardCheck">
-	              <istext key="checkout.payment.apply.button.label" />
-	          </button>
-	        </div>
-
-	    </div>
-
-	</isif>
+           		</isif>	
+           	</div>
+		</div>
+           
+		<isif condition="#PaymentService:CardSecurityCodeCheckEnabled#">
+		   <div class="ish-field" data-card-field="cvc2" data-handles-code="7,879,1079">
+				<label class="ish-label-s" for="<isprint value="#paymentConfigurationUUID#">_SecurityCodeLabel"><istext key="payment.payone.creditcard.security_code.text"></label>
+				<isif condition="#usePaymentMethod EQ 'iframe'#">
+					<span id="<isprint value="#paymentConfigurationUUID#">_SecurityCode"></span>
+				<iselse>
+					<input type="password" class="ws-text ish-input-auto cc_securitycode_edit" name="<isprint value="#paymentConfigurationUUID#">_SecurityCode" id="<isprint value="#paymentConfigurationUUID#">_SecurityCode" maxlength="4" size="3"/>
+           		</isif>
+		   </div>
+		</isif>
+	</div>
+	
+	
+	<script type="text/javascript">
+	
+		var PayoneHandler = function(paymentConfiturationUUID, form) {
+		    this.paymentConfigurationUUID = paymentConfiturationUUID;
+		    this.form = form;
+		    this.allFields = $('input[id^="' + this.paymentConfigurationUUID + '_"], select[id^="' + this.paymentConfigurationUUID + '_"]', form);
+		    this.allPlaceholders = $('[data-handles-code]', this.form);
+		    this.buttons = $('button[name="applyPayment"], button[name="continue"]', this.form);
+		    this.errorsPlaceholder = $('#'#'#' + this.paymentConfigurationUUID + '-errors');
+		    this.errorMessage = $('li.kor-field-error-list-item', this.errorsPlaceholder);
+		    
+		    this.creditCardRef = $('<input/>', {'type' : 'hidden', 'name' : this.paymentConfigurationUUID + '_CreditCardRef'});
+		    this.truncatedCardNumber = $('<input/>', {'type' : 'hidden', 'name' : this.paymentConfigurationUUID + '_TruncatedCreditCardNumber'});
+		    
+		    this.target = 'applyPayment';
+		};
+		
+		$.extend(PayoneHandler.prototype, {
+		    
+		    setTarget : function(target) {
+		        this.target = target;
+		    },
+		
+		    failure : function(code, message) {
+		        
+		        var where = $('[data-handles-code*=default');
+		        var whatIsWrong = this.allPlaceholders;
+		        
+		        if (code != 'default') {
+		            where =  $('[data-handles-code*="' + code + '"]') || what;
+		            whatIsWrong = where;
+		        }
+		        
+		        if ($('#'#'#payone-general-error').length < 1) {
+		            $('<div/>', {'role' : 'alert', 'class' : 'kor-form-error-message ish-error', 'id' : 'payone-general-error'}).html(
+		                $('<div/>', {'class' : 'kor-form-error-message-contents'}).html(message)
+	                ).prependTo(this.form);
+		        } else {
+		            $('#'#'#payone-general-error').show();
+		        }
+		        
+		        this._displayError(where, message);
+		        this._markAsWrong(whatIsWrong);
+		    },
+		    
+		    _displayError: function(where, message) {
+			    this.errorMessage.html(message);
+			    this.errorsPlaceholder.prependTo(where);
+			},
+			
+			_markAsWrong : function(what) {
+			    what.addClass('kor-error-field');
+			    $(':input', what).addClass('kor-field-error');
+			},
+		    		    
+			success : function(pseudocardpan, truncatedcardpan) {
+			    this.creditCardRef.val(pseudocardpan).appendTo(this.form);
+			    this.truncatedCardNumber.val(truncatedcardpan).appendTo(this.form);
+		        $('<input/>', {'type' : 'hidden', 'name' : this.target}).val(this.target).appendTo(this.form);
+		        this.form.submit();
+			},
+			
+			disableControls : function() {
+			    this.allFields.prop('disabled', 'disabled');
+		        this.buttons.prop('disabled', 'disabled');
+		    },
+		    
+			enableControls : function() {
+			    this.allFields.prop('disabled', '');
+			    this.buttons.prop('disabled', '');
+		    },
+		    
+		    clearErrors : function() {
+		        $('div.ish-error').detach();
+		        this.allFields.removeClass('kor-field-error');
+		        this.allPlaceholders.removeClass('kor-error-field');
+		        this.errorsPlaceholder.detach();
+		    }
+		});
+		 
+		
+		
+	</script>
+	
+	
+	<isinclude template="#'payment_po_creditcard/'. editPaymentInstrumentTemplate#"/>
+	
+	
+    
+</isif>
Index: default/payment_po_cod/PaymentSelectionEntry.isml
===================================================================
--- default/payment_po_cod/PaymentSelectionEntry.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_cod/PaymentSelectionEntry.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,6 +1,9 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
 <isif condition="#not(isdefined(showHelpText)) OR (showHelpText NE 'true')#">
 	<isinclude template="payment_po_cod/DisplayName">
+	<span class="ish-paymentMethods-slogan">
+		<istext key="payment.payone.cod.bo.description" />
+	</span>
 </isif>
 <isif condition="#isDefined(RestrictionErrors) AND isDefined(RestrictionErrors:ERROR_COUNTRY_NOT_SUPPORTED_FOR_PAYONE)#">
 	<span class="ish-paymentMethods-slogan"><istext key="payment.payone.error.country_not_supported" /></span>
Index: default/payment_po_paypal/PaymentSelectionEntry.isml
===================================================================
--- default/payment_po_paypal/PaymentSelectionEntry.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_paypal/PaymentSelectionEntry.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,6 +1,9 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
 <isif condition="#not(isdefined(showHelpText)) OR (showHelpText NE 'true')#">
 	<isinclude template="payment_po_paypal/DisplayName">
+	<span class="ish-paymentMethods-slogan">
+		<istext key="payment.payone.paypal.description.text" />
+	</span>
 </isif>
 <isif condition="#isDefined(RestrictionErrors) AND isDefined(RestrictionErrors:ERROR_COUNTRY_NOT_SUPPORTED_FOR_PAYONE)#">
 	<span class="ish-paymentMethods-slogan"><istext key="payment.payone.error.country_not_supported" /></span>
Index: default/payment_po_eps/PaymentSelectionEntry.isml
===================================================================
--- default/payment_po_eps/PaymentSelectionEntry.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_eps/PaymentSelectionEntry.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,6 +1,9 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
 <isif condition="#not(isdefined(showHelpText)) OR (showHelpText NE 'true')#">
 	<isinclude template="payment_po_eps/DisplayName">
+	<span class="ish-paymentMethods-slogan">
+		<istext key="payment.payone.eps.bo.description" />
+	</span>
 </isif>
 <isif condition="#isDefined(RestrictionErrors) AND isDefined(RestrictionErrors:ERROR_COUNTRY_NOT_SUPPORTED_FOR_PAYONE)#">
 	<span class="ish-paymentMethods-slogan"><istext key="payment.payone.error.country_not_supported" /></span>
Index: default/payment_po_efinance/PaymentSelectionEntry.isml
===================================================================
--- default/payment_po_efinance/PaymentSelectionEntry.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_efinance/PaymentSelectionEntry.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,6 +1,9 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
 <isif condition="#not(isdefined(showHelpText)) OR (showHelpText NE 'true')#">
 	<isinclude template="payment_po_efinance/DisplayName">
+	<span class="ish-paymentMethods-slogan">
+		<istext key="payment.payone.efinance.bo.description" />
+	</span>
 </isif>
 <isif condition="#isDefined(RestrictionErrors) AND isDefined(RestrictionErrors:ERROR_COUNTRY_NOT_SUPPORTED_FOR_PAYONE)#">
 	<span class="ish-paymentMethods-slogan"><istext key="payment.payone.error.country_not_supported" /></span>
Index: default/payment_po_giropay/EditPII.isml
===================================================================
--- default/payment_po_giropay/EditPII.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_giropay/EditPII.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,29 +1,62 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
 
+<isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_GIROPAY') AND isDefined(PIIDataVerificationResult:getError("IBAN"))#">
+	<isset name="IBAN_Error" value="true" scope="request"/>
+</isif>
+<isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_GIROPAY') AND isDefined(PIIDataVerificationResult:getError("BIC"))#">
+	<isset name="BIC_Error" value="true" scope="request"/>
+</isif>
+
 <fieldset class="emphasis">
-	<div class="ish-field">
-	    <label for="<isprint value="#PaymentService:Configuration:UUID#">_IBAN"><istext key="payment.payone.iban.label"></label>
-	    <input type="text" 
-	    	class="inputText <isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_GIROPAY') AND isDefined(PIIDataVerificationResult:getError("IBAN"))#"> kor-error kor-field-error </isif>"
-	    	autocomplete="off" name="<isprint value="#PaymentService:Configuration:UUID#">_IBAN" id="<isprint value="#PaymentService:Configuration:UUID#">_IBAN"
-	        <isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_GIROPAY')#">
-	            value="<isprint value="#PIIDataVerificationResult:Values:IBAN#">"
-	        <iselse>
-	            value=""
-	        </isif>
-	     />
-	</div>
-	<div class="ish-field">
-	    <label for="<isprint value="#PaymentService:Configuration:UUID#">_BIC"><istext key="payment.payone.bic.label"></label>
-	    <input type="text"
-	    	class="inputText <isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_GIROPAY') AND isDefined(PIIDataVerificationResult:getError("BIC"))#"> kor-error kor-field-error </isif>"
-	    	name="<isprint value="#PaymentService:Configuration:UUID#">_BIC" id="<isprint value="#PaymentService:Configuration:UUID#">_BIC"
-	        <isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_GIROPAY')#">
-	            value="<isprint value="#PIIDataVerificationResult:Values:BIC#">"
-	        <iselse>
-	            value=""
-	        </isif>
-	     />
-	</div>
-</fieldset>
-
+		<div class="ish-field<isif condition="#isDefined(IBAN_Error)#"> kor-field-error kor-error-field</isif>">
+			<isif condition="#isDefined(IBAN_Error)#">
+				<div class="kor-field-error-message-placeholder kor-field-error-right ish-formShift-s" name="<isprint value="#PaymentService:Configuration:UUID#">_IBAN_Error">
+					<div role="alert" class="kor-field-error-message">
+						<div class="kor-field-error-message-contents">
+							<ul class="kor-field-error-list">
+								<li class="kor-field-error-list-item"><istext key="payment.payone.error.iban_invalid"/></li>
+							</ul>
+						</div>
+					</div>
+				</div>
+			<iselse>
+				<isFieldErrorMessagePlaceholder class="kor-field-error-right" name_override="#PaymentService:Configuration:UUID."_".IBAN_Error#">
+			</isif>
+		    <label for="<isprint value="#PaymentService:Configuration:UUID#">_IBAN" class="<isif condition="#myaccount EQ 'true'#">ish-label-top<iselse>ish-label-s</isif>">IBAN</label>
+		    <input type="text" 
+		    	class="inputText <isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_GIROPAY') AND isDefined(PIIDataVerificationResult:getError("IBAN"))#"> kor-error kor-field-error </isif>"
+		    	autocomplete="off" name="<isprint value="#PaymentService:Configuration:UUID#">_IBAN" id="<isprint value="#PaymentService:Configuration:UUID#">_IBAN"
+		        <isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_GIROPAY')#">
+		            value="<isprint value="#PIIDataVerificationResult:Values:IBAN#">"
+		        <iselse>
+		            value=""
+		        </isif>
+		     />
+		</div>
+		<div class="ish-field<isif condition="#isDefined(BIC_Error)#"> kor-field-error kor-error-field</isif>">
+			<isif condition="#isDefined(BIC_Error)#">
+				<div class="kor-field-error-message-placeholder kor-field-error-right ish-formShift-s" name="<isprint value="#PaymentService:Configuration:UUID#">_BIC_Error">
+					<div role="alert" class="kor-field-error-message">
+						<div class="kor-field-error-message-contents">
+							<ul class="kor-field-error-list">
+								<li class="kor-field-error-list-item"><istext key="payment.payone.error.bic_size_incorrect"/></li>
+							</ul>
+						</div>
+					</div>
+				</div>
+			<iselse>
+				<isFieldErrorMessagePlaceholder class="kor-field-error-right" name_override="#PaymentService:Configuration:UUID."_".BIC_Error#">
+			</isif>
+			
+		    <label for="<isprint value="#PaymentService:Configuration:UUID#">_BIC" class="<isif condition="#myaccount EQ 'true'#">ish-label-top<iselse>ish-label-s</isif>"><istext key="payment.payone.bic.label"></label>
+		    <input type="text"
+		    	class="inputText <isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_GIROPAY') AND isDefined(PIIDataVerificationResult:getError("BIC"))#"> kor-error kor-field-error </isif>"
+		    	name="<isprint value="#PaymentService:Configuration:UUID#">_BIC" id="<isprint value="#PaymentService:Configuration:UUID#">_BIC"
+		        <isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_GIROPAY')#">
+		            value="<isprint value="#PIIDataVerificationResult:Values:BIC#">"
+		        <iselse>
+		            value=""
+		        </isif>
+		     />
+		</div>
+</fieldset>
\ No newline at end of file
Index: default/payment_po_giropay/EditPIIError.isml
===================================================================
--- default/payment_po_giropay/EditPIIError.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_giropay/EditPIIError.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -10,4 +10,7 @@
 	<isif condition="#PIIDataVerificationResult:getError("BIC") EQ 'Maxlength'#">
 		<istext key="payment.payone.error.bic_size_incorrect"><br/>
 	</isif>
+	<isif condition="#isDefined(PIIDataVerificationResult:ErrorObject)#">
+		<isprint value="#PIIDataVerificationResult:ErrorObject#"/><br/>
+	</isif>
 </isif>
Index: default/payment_po_giropay/PaymentSelectionEntry.isml
===================================================================
--- default/payment_po_giropay/PaymentSelectionEntry.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_giropay/PaymentSelectionEntry.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,7 +1,9 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
-
 <isif condition="#not(isdefined(showHelpText)) OR (showHelpText NE 'true')#">
 	<isinclude template="payment_po_giropay/DisplayName">
+	<span class="ish-paymentMethods-slogan">
+		<istext key="payment.payone.giropay.description.text" />
+	</span>
 </isif>
 <isif condition="#isDefined(RestrictionErrors) AND isDefined(RestrictionErrors:ERROR_COUNTRY_NOT_SUPPORTED_FOR_PAYONE)#">
 	<span class="ish-paymentMethods-slogan"><istext key="payment.payone.error.country_not_supported" /></span>
Index: default/payment_po_cia/ShowPIIMini.isml
===================================================================
--- default/payment_po_cia/ShowPIIMini.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 0)
+++ default/payment_po_cia/ShowPIIMini.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -0,0 +1,56 @@
+<iscontent type="text/html" charset="UTF-8">
+<isif condition="#PaymentDisplayMode EQ 'short'#">
+	<isinclude template="payment_po_cia/DisplayName">
+</isif>
+<isif condition="#not(isdefined(PaymentDisplayMode)) or (PaymentDisplayMode EQ 'long')#">
+
+	<isif condition="#isDefined(PII:CustomAttributes:ShippingProviderName)#">
+	    <span>
+	        <istext key="payment.payone.cod.label.shippingProvider"/>
+	          <isprint value="#PII:CustomAttributes:ShippingProviderName#"/>
+	    </span>
+    </isif>
+	
+</isif>
+
+<isset name="PayoneBankAccountExtension" value="#PII:Extension("PayoneBankAccountExtension")#" scope="request"/>
+
+<isif condition="#isDefined(PayoneBankAccountExtension:ClearingBankName)#">
+	<br /><br /><span>
+		<istext key="payment.payone.cia.account_info.helptext1"/><br />
+	</span>
+    <br /><span>
+        <istext key="payment.payone.bank_name.label"/>: <isprint value="#PayoneBankAccountExtension:ClearingBankName#"/>
+    </span>
+</isif>
+
+<isif condition="#isDefined(PayoneBankAccountExtension:ClearingBankBIC)#">
+    <br /><span>
+        <istext key="payment.payone.bic.label"/>: <isprint value="#PayoneBankAccountExtension:ClearingBankBIC#"/>
+    </span>
+</isif>
+
+<isif condition="#isDefined(PayoneBankAccountExtension:ClearingBankIBAN)#">
+    <br /><span>
+        <istext key="payment.payone.iban.label"/>: <isprint value="#PayoneBankAccountExtension:ClearingBankIBAN#"/>
+    </span>
+</isif>
+
+<isif condition="#isDefined(PayoneBankAccountExtension:ClearingBankCode)#">
+    <br /><span>
+        <istext key="payment.payone.bank_code.label"/>: <isprint value="#PayoneBankAccountExtension:ClearingBankCode#"/>
+    </span>
+</isif>
+
+<isif condition="#isDefined(PayoneBankAccountExtension:ClearingBankCity)#">
+    <br /><span>
+        <istext key="payment.payone.bank_city.label"/>: <isprint value="#PayoneBankAccountExtension:ClearingBankCity#"/>
+    </span>
+</isif>
+
+<isif condition="#isDefined(PayoneBankAccountExtension:ClearingBankAccountHolder)#">
+    <br /><span>
+        <istext key="payment.payone.account_holder.label"/>: <isprint value="#PayoneBankAccountExtension:ClearingBankAccountHolder#"/>
+    </span>
+</isif>
+

Property changes on: default/payment_po_cia/ShowPIIMini.isml
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Index: default/payment_po_cia/PaymentSelectionEntry.isml
===================================================================
--- default/payment_po_cia/PaymentSelectionEntry.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_cia/PaymentSelectionEntry.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,6 +1,9 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
 <isif condition="#not(isdefined(showHelpText)) OR (showHelpText NE 'true')#">
 	<isinclude template="payment_po_cia/DisplayName">
+	<span class="ish-paymentMethods-slogan">
+		<istext key="payment.payone.cia.bo.description" />
+	</span>
 </isif>
 <isif condition="#isDefined(RestrictionErrors) AND isDefined(RestrictionErrors:ERROR_COUNTRY_NOT_SUPPORTED_FOR_PAYONE)#">
 	<span class="ish-paymentMethods-slogan"><istext key="payment.payone.error.country_not_supported" /></span>
Index: default/payment_po_invoice/PaymentSelectionEntry.isml
===================================================================
--- default/payment_po_invoice/PaymentSelectionEntry.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_invoice/PaymentSelectionEntry.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,7 +1,9 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
-
 <isif condition="#not(isdefined(showHelpText)) OR (showHelpText NE 'true')#">
 	<isinclude template="payment_po_invoice/DisplayName">
+	<span class="ish-paymentMethods-slogan">
+		<istext key="payment.payone.invoice.description.text" />
+	</span>
 </isif>
 <isif condition="#isDefined(RestrictionErrors) AND isDefined(RestrictionErrors:ERROR_COUNTRY_NOT_SUPPORTED_FOR_PAYONE)#">
 	<span class="ish-paymentMethods-slogan"><istext key="payment.payone.error.country_not_supported" /></span>
Index: default/payment_po_sofort/EditPIIError.isml
===================================================================
--- default/payment_po_sofort/EditPIIError.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_sofort/EditPIIError.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -22,4 +22,7 @@
 	<isif condition="#PIIDataVerificationResult:getError("BIC") EQ 'Maxlength'#">
 		<istext key="payment.payone.error.bic_size_incorrect"><br/>
 	</isif>
+	<isif condition="#isDefined(PIIDataVerificationResult:ErrorObject)#">
+		<isprint value="#PIIDataVerificationResult:ErrorObject#"/><br/>
+	</isif>
 </isif>
Index: default/payment_po_sofort/PaymentSelectionEntry.isml
===================================================================
--- default/payment_po_sofort/PaymentSelectionEntry.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_sofort/PaymentSelectionEntry.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,7 +1,9 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
-
 <isif condition="#not(isdefined(showHelpText)) OR (showHelpText NE 'true')#">
 	<isinclude template="payment_po_sofort/DisplayName">
+	<span class="ish-paymentMethods-slogan">
+		<istext key="payment.payone.sofort.description.text" />
+	</span>
 </isif>
 <isif condition="#isDefined(RestrictionErrors) AND isDefined(RestrictionErrors:ERROR_COUNTRY_NOT_SUPPORTED_FOR_PAYONE)#">
 	<span class="ish-paymentMethods-slogan"><istext key="payment.payone.error.country_not_supported" /></span>
Index: default/payment_po_sofort/EditPII.isml
===================================================================
--- default/payment_po_sofort/EditPII.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_sofort/EditPII.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,54 +1,231 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
 
+<isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT') AND isDefined(PIIDataVerificationResult:getError("AccountNumber"))#">
+	<isset name="SofortAccountNumberError" value="true" scope="request"/>
+</isif>
+<isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT') AND isDefined(PIIDataVerificationResult:getError("BankCode"))#">
+	<isset name="SofortBankCodeError" value="true" scope="request"/>
+</isif>
+<isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT') AND isDefined(PIIDataVerificationResult:getError("IBAN"))#">
+	<isset name="SofortIBANError" value="true" scope="request"/>
+</isif>
+<isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT') AND isDefined(PIIDataVerificationResult:getError("BIC"))#">
+	<isset name="SofortBICError" value="true" scope="request"/>
+</isif>
+
 <fieldset class="emphasis">
+		<!---
+		ActiveFieldSet serves to tell which of the 2 possible combinations (IBAN BIC / AccountNumber BankCode) has been used when submitting the form. This is the used 
+		in validation in order to validate the correct inputs.
+		Possible values: "IbanBic"; "AccountNumberBankCode"
+	 --->
+	<input class="<isprint value="#PaymentService:Configuration:UUID#">_ActiveFieldSet" type="hidden" name="<isprint value="#PaymentService:Configuration:UUID#">_ActiveFieldSet" value="" />
+	
     <h4><istext key="payment.payone.sofort.editpii.enter_account.heading"></h4>
-	<div class="ish-field">
-	    <label for="<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber"><istext key="payment.payone.account_number.label"></label>
-	    <input type="text"
-	    	class="inputText <isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT') AND isDefined(PIIDataVerificationResult:getError("AccountNumber"))#"> kor-error kor-field-error </isif>"
-	    	autocomplete="off" name="<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber" id="<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber"
-	        <isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT')#">
-	            value="<isprint value="#PIIDataVerificationResult:Values:AccountNumber#">"
-	        <iselse>
-	            value=""
-	        </isif>
-	    />
+    <div class="<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber_AND_BankCode">
+		<div class="ish-field<isif condition="#isDefined(SofortAccountNumberError)#"> kor-field-error kor-error-field</isif>">
+			<isif condition="#isDefined(SofortAccountNumberError)#">
+				<div class="kor-field-error-message-placeholder kor-field-error-right ish-formShift-s" name="<isprint value="#PaymentService:Configuration:UUID#">_SofortAccountNumberError">
+					<div role="alert" class="kor-field-error-message">
+						<div class="kor-field-error-message-contents">
+							<ul class="kor-field-error-list">
+								<li class="kor-field-error-list-item"><istext key="payment.payone.error.account_number_invalid"/></li>
+							</ul>
+						</div>
+					</div>
+				</div>
+			<iselse>
+				<isFieldErrorMessagePlaceholder class="kor-field-error-right" name_override="#PaymentService:Configuration:UUID."_".SofortAccountNumberError#">
+			</isif>
+		    <label for="<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber" class="<isif condition="#myaccount EQ 'true'#">ish-label-top<iselse>ish-label-s</isif>"><istext key="payment.payone.account_number.label"></label>
+		    <input type="text"
+				class="inputText <isprint value="#PaymentService:Configuration:UUID#">_AccountNumber <isif condition="#isDefined(SofortAccountNumberError)#"> kor-error kor-field-error </isif>"
+				autocomplete="off" name="<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber"
+			<isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT')#">
+				value="<isprint value="#PIIDataVerificationResult:Values:AccountNumber#">"
+			<iselse>
+				value=""
+			</isif>
+			/>
+		</div>
+		<div class="ish-field<isif condition="#isDefined(SofortBankCodeError)#"> kor-field-error kor-error-field</isif>">
+		    <isif condition="#isDefined(SofortBankCodeError)#">
+				<div class="kor-field-error-message-placeholder kor-field-error-right ish-formShift-s" name="<isprint value="#PaymentService:Configuration:UUID#">_SofortBankCodeError">
+					<div role="alert" class="kor-field-error-message">
+						<div class="kor-field-error-message-contents">
+							<ul class="kor-field-error-list">
+								<li class="kor-field-error-list-item"><istext key="payment.payone.error.bank_code_invalid"/></li>
+							</ul>
+						</div>
+					</div>
+				</div>
+			<iselse>
+				<isFieldErrorMessagePlaceholder class="kor-field-error-right" name_override="#PaymentService:Configuration:UUID."_".SofortBankCodeError#">
+			</isif>
+			<label for="<isprint value="#PaymentService:Configuration:UUID#">_BankCode" class="<isif condition="#myaccount EQ 'true'#">ish-label-top<iselse>ish-label-s</isif>"><istext key="payment.payone.bank_code.label"></label>
+		    <input type="text"
+				class="inputText <isprint value="#PaymentService:Configuration:UUID#">_BankCode <isif condition="#isDefined(SofortBankCodeError)#"> kor-error kor-field-error </isif>"
+				name="<isprint value="#PaymentService:Configuration:UUID#">_BankCode"
+			<isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT')#">
+				value="<isprint value="#PIIDataVerificationResult:Values:BankCode#">"
+			<iselse>
+				value=""
+			</isif>
+			/>
+		</div>
 	</div>
-	<div class="ish-field">
-	    <label for="<isprint value="#PaymentService:Configuration:UUID#">_BankCode"><istext key="payment.payone.bank_code.label"></label>
-	    <input type="text"
-	    	class="inputText <isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT') AND isDefined(PIIDataVerificationResult:getError("BankCode"))#"> kor-error kor-field-error </isif>"
-	    	name="<isprint value="#PaymentService:Configuration:UUID#">_BankCode" id="<isprint value="#PaymentService:Configuration:UUID#">_BankCode"
-	        <isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT')#">
-	            value="<isprint value="#PIIDataVerificationResult:Values:BankCode#">"
-	        <iselse>
-	            value=""
-	        </isif>
-	     />
+	<div class="<isprint value="#PaymentService:Configuration:UUID#">_IBAN_AND_BIC ish-hide">
+		<div class="ish-field<isif condition="#isDefined(SofortIBANError)#"> kor-field-error kor-error-field</isif>">
+		    <isif condition="#isDefined(SofortIBANError)#">
+				<div class="kor-field-error-message-placeholder kor-field-error-right ish-formShift-s" name="<isprint value="#PaymentService:Configuration:UUID#">_SofortIBANError">
+					<div role="alert" class="kor-field-error-message">
+						<div class="kor-field-error-message-contents">
+							<ul class="kor-field-error-list">
+								<li class="kor-field-error-list-item"><istext key="payment.payone.error.iban_invalid"/></li>
+							</ul>
+						</div>
+					</div>
+				</div>
+			<iselse>
+				<isFieldErrorMessagePlaceholder class="kor-field-error-right" name_override="#PaymentService:Configuration:UUID."_".SofortIBANError#">
+			</isif>
+			<label for="<isprint value="#PaymentService:Configuration:UUID#">_IBAN" class="<isif condition="#myaccount EQ 'true'#">ish-label-top<iselse>ish-label-s</isif>">IBAN</label>
+		    <input type="text"
+				class="inputText kor-ccnum <isprint value="#PaymentService:Configuration:UUID#">_IBAN <isif condition="#isDefined(SofortIBANError)#"> kor-error kor-field-error </isif>"
+				autocomplete="off" name="<isprint value="#PaymentService:Configuration:UUID#">_IBAN"
+			<isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT')#">
+				value="<isprint value="#PIIDataVerificationResult:Values:IBAN#">"
+			<iselse>
+				value=""
+			</isif>
+			/>
+		</div>
+		<div class="ish-field<isif condition="#isDefined(SofortBICError)#"> kor-field-error kor-error-field</isif>">
+		    <isif condition="#isDefined(SofortBICError)#">
+				<div class="kor-field-error-message-placeholder kor-field-error-right ish-formShift-s" name="<isprint value="#PaymentService:Configuration:UUID#">_SofortBICError">
+					<div role="alert" class="kor-field-error-message">
+						<div class="kor-field-error-message-contents">
+							<ul class="kor-field-error-list">
+								<li class="kor-field-error-list-item"><istext key="payment.payone.error.bic_size_incorrect"/></li>
+							</ul>
+						</div>
+					</div>
+				</div>
+			<iselse>
+				<isFieldErrorMessagePlaceholder class="kor-field-error-right" name_override="#PaymentService:Configuration:UUID."_".SofortBICError#">
+			</isif>
+			<label for="<isprint value="#PaymentService:Configuration:UUID#">_BIC" class="<isif condition="#myaccount EQ 'true'#">ish-label-top<iselse>ish-label-s</isif>">
+				<istext key="payment.payone.bic.label">
+			</label>
+		    <input type="text"
+				class="inputText <isprint value="#PaymentService:Configuration:UUID#">_BIC <isif condition="#isDefined(SofortBICError)#"> kor-error kor-field-error </isif>"
+				name="<isprint value="#PaymentService:Configuration:UUID#">_BIC"
+			<isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT')#">
+				value="<isprint value="#PIIDataVerificationResult:Values:BIC#">"
+			<iselse>
+				value=""
+			</isif>
+			/>
+		</div>
 	</div>
-	<div><b><istext key="payment.payone.sofort.label.or"/></b></div><br />
-	<div class="ish-field">
-	    <label for="<isprint value="#PaymentService:Configuration:UUID#">_IBAN"><istext key="payment.payone.iban.label"></label>
-	    <input type="text" 
-	    	class="inputText <isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT') AND isDefined(PIIDataVerificationResult:getError("IBAN"))#"> kor-error kor-field-error </isif>"
-	    	autocomplete="off" name="<isprint value="#PaymentService:Configuration:UUID#">_IBAN" id="<isprint value="#PaymentService:Configuration:UUID#">_IBAN"
-	        <isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT')#">
-	            value="<isprint value="#PIIDataVerificationResult:Values:IBAN#">"
-	        <iselse>
-	            value=""
-	        </isif>
-	     />
-	</div>
-	<div class="ish-field">
-	    <label for="<isprint value="#PaymentService:Configuration:UUID#">_BIC"><istext key="payment.payone.bic.label"></label>
-	    <input type="text"
-	    	class="inputText <isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT') AND isDefined(PIIDataVerificationResult:getError("BIC"))#"> kor-error kor-field-error </isif>"
-	    	name="<isprint value="#PaymentService:Configuration:UUID#">_BIC" id="<isprint value="#PaymentService:Configuration:UUID#">_BIC"
-	        <isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_SOFORT')#">
-	            value="<isprint value="#PIIDataVerificationResult:Values:BIC#">"
-	        <iselse>
-	            value=""
-	        </isif>
-	     />
-	</div>
+	
+	<a id="switchToIBANLinkSofort" class="switchToIBANLinkSofort" href="javascript:void(false)"><istext key="payment.payone.directdebit.link.use_iban_link"></a>
+	<a id="switchToAccountNumberLinkSofort" class="switchToAccountNumberLinkSofort ish-hide" href="javascript:void(false)"><istext key="payment.payone.directdebit.link.use_account_number_link"></a>
 </fieldset>
+
+<script type="text/javascript">
+$(function () {
+    var activeFieldSetsSelector = '.<isprint value="#PaymentService:Configuration:UUID#">_ActiveFieldSet';
+
+    var accountNumberAndBankCodeSectionsSelector = '.<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber_AND_BankCode';
+    var ibanAndBicSectionsSelector = '.<isprint value="#PaymentService:Configuration:UUID#">_IBAN_AND_BIC';
+    var accountNumberInputsSelector = '.<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber';
+    var bankCodeInputsSelector = '.<isprint value="#PaymentService:Configuration:UUID#">_BankCode';
+    var ibanInputsSelector = '.<isprint value="#PaymentService:Configuration:UUID#">_IBAN';
+    var bicInputsSelector = '.<isprint value="#PaymentService:Configuration:UUID#">_BIC'
+
+    var switchToIBANLinksSelector = '.switchToIBANLinkSofort';
+    var switchToAccountNumberLinksSelector = '.switchToAccountNumberLinkSofort';
+    
+    var switchToIBAN = function() {
+        setActiveFieldSet("IbanBic");
+        
+        toggleHtmlElements(switchToIBANLinksSelector, false);
+        toggleHtmlElements(switchToAccountNumberLinksSelector, true);
+        
+        toggleHtmlElements(accountNumberAndBankCodeSectionsSelector, false);
+        toggleHtmlElements(ibanAndBicSectionsSelector, true);
+        
+        cleanInputs(accountNumberInputsSelector);
+        cleanInputs(bankCodeInputsSelector);
+    }
+    
+    var switchToAccountNumber = function() {
+        setActiveFieldSet("AccountNumberBankCode");
+        
+        toggleHtmlElements(switchToAccountNumberLinksSelector, false);
+        toggleHtmlElements(switchToIBANLinksSelector, true);
+
+        toggleHtmlElements(ibanAndBicSectionsSelector, false);
+        toggleHtmlElements(accountNumberAndBankCodeSectionsSelector, true);
+        
+        cleanInputs(ibanInputsSelector);
+        cleanInputs(bicInputsSelector);
+    }
+    
+    var setActiveFieldSet = function(value) {
+        var activeFieldSetInputs = $(activeFieldSetsSelector);
+        
+        for (var i = 0; i < activeFieldSetInputs.length; i++) {
+            $(activeFieldSetInputs[i]).val(value);
+        }
+    }
+    
+    var toggleHtmlElements = function(elementsSelector, visible) {
+        var elements = $(elementsSelector);
+        
+        if (visible) {
+            elements.map(function() { $(this).removeClass("ish-hide") });
+        }
+        else {
+            elements.map(function() { $(this).addClass("ish-hide") });
+        }
+    }
+    
+    var cleanInputs = function(inputsSelector) {
+        var inputs = $(inputsSelector);
+        inputs.map(function () { $(this).val("") });
+    }
+    
+    var initializeSections = function() {
+      <isif condition="#isDefined(SofortAccountNumberError) OR isDefined(SofortBankCodeError)#">
+      	switchToAccountNumber();
+      <iselseif condition="#isDefined(SofortIBANError) OR isDefined(SofortBICError)#" /> 
+        switchToIBAN();
+      <iselse />
+        var accountNumberInputs = $(accountNumberInputsSelector);
+        for (var i = 0; i < accountNumberInputs.length; i++) {
+            if ($(accountNumberInputs[i]).val() != "") {
+                switchToAccountNumber();
+                return;
+            }
+        }
+      
+        var bankCodeInputs = $(bankCodeInputsSelector);
+        for (var i = 0; i < bankCodeInputs.length; i++) {
+            if ($(bankCodeInputs[i]).val() != "") {
+                switchToAccountNumber();
+                return;
+            }
+        }
+        
+        switchToIBAN();
+      </isif>
+    }
+    
+    $(document).delegate(switchToIBANLinksSelector, 'click', switchToIBAN);
+    $(document).delegate(switchToAccountNumberLinksSelector, 'click', switchToAccountNumber);
+    
+    initializeSections();
+});
+</script>
\ No newline at end of file
Index: default/payment_po_general/config/inc/PayoneConfigurationParameter.isml
===================================================================
--- default/payment_po_general/config/inc/PayoneConfigurationParameter.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 0)
+++ default/payment_po_general/config/inc/PayoneConfigurationParameter.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -0,0 +1,40 @@
+<!---[Comment]--->
+<iscontent type="text/html" charset="UTF-8" compact="true">
+
+<isset name="Type" value="#ConfigurationParameter:Declaration:Type#" scope="request"/>
+<isset name="ID" value="#ConfigurationParameter:ID#" scope="request"/>
+<isset name="Value" value="#ConfigurationParameter:Value#" scope="request"/>
+
+<tr>
+	<isif condition="#Error EQ ID#">
+		<td class="fielditem2_error" nowrap="nowrap" valign="middle"><istext key="#ID#">:<isif condition="#ConfigurationParameter:Required AND (Type NE 'Boolean')#"><span class="star">*</span></isif></td>
+	<iselse>
+		<td class="fielditem2" nowrap="nowrap" valign="middle"><istext key="#ID#">:<isif condition="#ConfigurationParameter:Required AND (Type NE 'Boolean')#"><span class="star">*</span></isif></td>
+	</isif>
+	<td class="<isif condition="#Type EQ 'Boolean'#">table_detail_status<iselse>table_detail</isif>">
+		<isif condition="#hasElements(ConfigurationParameter:PermittedValues)#">
+			<select name="<isprint value="#'ServiceConfig_'.ID#">" class="select inputfield_en">
+				<isif condition="#PaymentConfiguration:ServiceConfiguration:getString(ID) EQ ''#">
+					<option value=""/>
+				</isif>
+				<isloop iterator="ConfigurationParameter:PermittedValues" alias="PermittedValue">
+					<isif condition="#Type EQ 'Integer'#">
+						<option value="<isprint value="#PermittedValue#">" <isif condition="#PermittedValue EQ Value#">selected="selected"</isif>><istext key="#PermittedValue#"></option>
+					<iselse>
+						<option value="<isprint value="#PermittedValue#">" <isif condition="#(PermittedValue EQ Value) OR (PermittedValue EQ FormRecord:get(ID))#">selected="selected"</isif>><istext key="#PermittedValue#"></option>
+					</isif>
+		
+				</isloop>
+			</select>
+		<iselseif condition="#Type EQ 'Password'#"/>
+			<input autocomplete="off" type="password" name="<isprint value="#'ServiceConfig_'.ID#">" value="<isif condition="#isDefined(FormRecord:get(ID))#"><isprint value="#FormRecord:get(ID)#"><iselse><isprint value="#Value#"></isif>"  maxlength="250" size="50" class="inputfield_en"/>
+		<iselseif condition="#Type EQ 'Boolean'#"/>
+			<input type="checkbox" name="<isprint value="#'ServiceConfig_'.ID#">" <isif condition="#(Value EQ 'true') OR (isDefined(FormRecord:get(ID)))#">checked="checked"</isif>/>
+		<iselseif condition="#Type EQ 'Integer'#"/>
+			<input type="text" name="<isprint value="#'ServiceConfig_'.ID#">" value="<isif condition="#isDefined(FormRecord:get(ID))#"><isprint value="#FormRecord:get(ID)#"><iselse><isprint value="#Value#"></isif>"  maxlength="250" size="50" class="inputfield_en"/>
+		<iselse/>
+			<input type="text" name="<isprint value="#'ServiceConfig_'.ID#">" value="<isif condition="#isDefined(FormRecord:get(ID))#"><isprint value="#FormRecord:get(ID)#"><iselse><isprint value="#Value#"></isif>"  maxlength="250" size="50" class="inputfield_en"/>
+		</isif>
+	</td>
+	<td width="100%">&nbsp;</td>
+</tr>
\ No newline at end of file

Property changes on: default/payment_po_general/config/inc/PayoneConfigurationParameter.isml
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Index: default/payment_po_general/config/inc/Modules.isml
===================================================================
--- default/payment_po_general/config/inc/Modules.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 0)
+++ default/payment_po_general/config/inc/Modules.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -0,0 +1,9 @@
+<!---[Comment]--->
+<iscontent type="text/html" charset="UTF-8" compact="true">
+
+<ismodule template="payment_po_general/config/inc/PayoneConfigurationParameter" name="PayoneConfigurationParameter"
+	attribute="ConfigurationParameter"
+	attribute="FormRecord"
+	attribute="Error"
+	strict="true"
+/>

Property changes on: default/payment_po_general/config/inc/Modules.isml
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Index: default/payment_po_ideal/PaymentSelectionEntry.isml
===================================================================
--- default/payment_po_ideal/PaymentSelectionEntry.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_ideal/PaymentSelectionEntry.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,6 +1,9 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
 <isif condition="#not(isdefined(showHelpText)) OR (showHelpText NE 'true')#">
 	<isinclude template="payment_po_ideal/DisplayName">
+	<span class="ish-paymentMethods-slogan">
+		<istext key="payment.payone.ideal.bo.description" />
+	</span>
 </isif>
 <isif condition="#isDefined(RestrictionErrors) AND isDefined(RestrictionErrors:ERROR_COUNTRY_NOT_SUPPORTED_FOR_PAYONE)#">
 	<span class="ish-paymentMethods-slogan"><istext key="payment.payone.error.country_not_supported" /></span>
Index: default/payment_po_pfcard/PaymentSelectionEntry.isml
===================================================================
--- default/payment_po_pfcard/PaymentSelectionEntry.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_pfcard/PaymentSelectionEntry.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,6 +1,9 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
 <isif condition="#not(isdefined(showHelpText)) OR (showHelpText NE 'true')#">
 	<isinclude template="payment_po_pfcard/DisplayName">
+	<span class="ish-paymentMethods-slogan">
+		<istext key="payment.payone.pfcard.bo.description" />
+	</span>
 </isif>
 <isif condition="#isDefined(RestrictionErrors) AND isDefined(RestrictionErrors:ERROR_COUNTRY_NOT_SUPPORTED_FOR_PAYONE)#">
 	<span class="ish-paymentMethods-slogan"><istext key="payment.payone.error.country_not_supported" /></span>
Index: default/payment_po_directdebit/PaymentSelectionEntry.isml
===================================================================
--- default/payment_po_directdebit/PaymentSelectionEntry.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_directdebit/PaymentSelectionEntry.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,7 +1,9 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
-
 <isif condition="#not(isdefined(showHelpText)) OR (showHelpText NE 'true')#">
-	<isinclude template="payment_po_directdebit/DisplayName"><span class="ish-paymentMethods-slogan"><istext key="payment.payone.directdebit.electronic_direct_debit"></span>
+	<isinclude template="payment_po_directdebit/DisplayName">
+	<span class="ish-paymentMethods-slogan">
+		<istext key="payment.payone.directdebit.description.text">
+	</span>
 </isif>
 <isif condition="#isDefined(RestrictionErrors) AND isDefined(RestrictionErrors:ERROR_COUNTRY_NOT_SUPPORTED_FOR_PAYONE)#">
 	<span class="ish-paymentMethods-slogan"><istext key="payment.payone.error.country_not_supported" /></span>
Index: default/payment_po_directdebit/EditPII.isml
===================================================================
--- default/payment_po_directdebit/EditPII.isml	(.../payone22ga-2.2/ac_payment_payone/staticfiles/cartridge/templates)	(revision 212156)
+++ default/payment_po_directdebit/EditPII.isml	(.../payone23ga-2.3/ac_payment_payone/staticfiles/cartridge/templates)	(revision 209546)
@@ -1,74 +1,274 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
 
+<isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT') AND isDefined(PIIDataVerificationResult:getError("AccountHolder"))#">
+	<isset name="AccountHolderError" value="true" scope="request"/>
+</isif>
+<isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT') AND isDefined(PIIDataVerificationResult:getError("AccountNumber"))#">
+	<isset name="AccountNumberError" value="true" scope="request"/>
+</isif>
+<isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT') AND isDefined(PIIDataVerificationResult:getError("BankCode"))#">
+	<isset name="BankCodeError" value="true" scope="request"/>
+</isif>
+<isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT') AND isDefined(PIIDataVerificationResult:getError("IBAN"))#">
+	<isset name="IBANError" value="true" scope="request"/>
+</isif>
+<isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT') AND isDefined(PIIDataVerificationResult:getError("BIC"))#">
+	<isset name="BICError" value="true" scope="request"/>
+</isif>
+
 <fieldset class="emphasis">
-	<div class="ish-field">
+	<!---
+		ActiveFieldSet serves to tell which of the 2 possible combinations (IBAN BIC / AccountNumber BankCode) has been used when submitting the form. This is the used 
+		in validation in order to validate the correct inputs.
+		Possible values: "IbanBic"; "AccountNumberBankCode"
+	 --->
+	<input class="<isprint value="#PaymentService:Configuration:UUID#">_ActiveFieldSet" type="hidden" name="<isprint value="#PaymentService:Configuration:UUID#">_ActiveFieldSet" value="" />
 
-	    <label for="<isprint value="#PaymentService:Configuration:UUID#">_AccountHolder"><istext key="payment.payone.directdebit.account_holder.label"></label>
-	    <input type="text"
-	    	class="inputText <isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT') AND isDefined(PIIDataVerificationResult:getError("AccountHolder"))#"> kor-error kor-field-error </isif>"
-	    	name="<isprint value="#PaymentService:Configuration:UUID#">_AccountHolder" id="<isprint value="#PaymentService:Configuration:UUID#">_AccountHolder"
-	        <isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT')#">
-	            value="<isprint value="#PIIDataVerificationResult:Values:AccountHolder#">"
-	        <iselse>
-	            value=""
-	        </isif>
-	     />
+	<div class="ish-field<isif condition="#isDefined(AccountHolderError)#"> kor-field-error kor-error-field</isif>">
+		<isif condition="#isDefined(AccountHolderError)#">
+			<div class="kor-field-error-message-placeholder kor-field-error-right ish-formShift-s" name="<isprint value="#PaymentService:Configuration:UUID#">_AccountHolderError">
+				<div role="alert" class="kor-field-error-message">
+					<div class="kor-field-error-message-contents">
+						<ul class="kor-field-error-list">
+							<li class="kor-field-error-list-item"><istext key="payment.payone.error.account_owner_invalid"/></li>
+						</ul>
+					</div>
+				</div>
+			</div>
+		<iselse>
+			<isFieldErrorMessagePlaceholder class="kor-field-error-right" name_override="#PaymentService:Configuration:UUID."_".AccountHolderError#">
+		</isif>
+		
+		<label for="<isprint value="#PaymentService:Configuration:UUID#">_AccountHolder" class="<isif condition="#myaccount EQ 'true'#">ish-label-top<iselse>ish-label-s</isif>"><istext key="payment.payone.directdebit.account_holder.label"></label>
+		<input type="text"
+			class="inputText <isif condition="#isDefined(AccountHolderError)#"> kor-error kor-field-error </isif>"
+			name="<isprint value="#PaymentService:Configuration:UUID#">_AccountHolder" id="<isprint value="#PaymentService:Configuration:UUID#">_AccountHolder"
+			<isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT')#">
+				value="<isprint value="#PIIDataVerificationResult:Values:AccountHolder#">"
+			<iselse>
+				value=""
+			</isif>
+		/>
 	</div>
-	<div class="ish-field">
-	    <label for="<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber"><istext key="payment.payone.account_number.label"></label>
-	    <input type="text"
-	    	class="inputText <isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT') AND isDefined(PIIDataVerificationResult:getError("AccountNumber"))#"> kor-error kor-field-error </isif>"
-	    	autocomplete="off" name="<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber" id="<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber"
-	        <isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT')#">
-	            value="<isprint value="#PIIDataVerificationResult:Values:AccountNumber#">"
-	        <iselse>
-	            value=""
-	        </isif>
-	    />
+
+	<div class="<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber_AND_BankCode">
+		<div class="ish-field<isif condition="#isDefined(AccountNumberError)#"> kor-field-error kor-error-field</isif>">
+			<isif condition="#isDefined(AccountNumberError)#">
+				<div class="kor-field-error-message-placeholder kor-field-error-right ish-formShift-s" name="<isprint value="#PaymentService:Configuration:UUID#">_AccountNumberError">
+					<div role="alert" class="kor-field-error-message">
+						<div class="kor-field-error-message-contents">
+							<ul class="kor-field-error-list">
+								<li class="kor-field-error-list-item"><istext key="payment.payone.error.account_number_invalid"/></li>
+							</ul>
+						</div>
+					</div>
+				</div>
+			<iselse>
+				<isFieldErrorMessagePlaceholder class="kor-field-error-right" name_override="#PaymentService:Configuration:UUID."_".AccountNumberError#">
+			</isif>
+
+			<label for="<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber" class="<isif condition="#myaccount EQ 'true'#">ish-label-top<iselse>ish-label-s</isif>"><istext key="payment.payone.account_number.label"></label>
+			<input type="text"
+				class="inputText <isprint value="#PaymentService:Configuration:UUID#">_AccountNumber <isif condition="#isDefined(AccountNumberError)#"> kor-error kor-field-error </isif>"
+				autocomplete="off" name="<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber"
+				<isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT')#">
+					value="<isprint value="#PIIDataVerificationResult:Values:AccountNumber#">"
+				<iselse>
+					value=""
+				</isif>
+			/>
+		</div>
+		<div class="ish-field<isif condition="#isDefined(BankCodeError)#"> kor-field-error kor-error-field</isif>">
+			<isif condition="#isDefined(BankCodeError)#">
+				<div class="kor-field-error-message-placeholder kor-field-error-right ish-formShift-s" name="<isprint value="#PaymentService:Configuration:UUID#">_BankCodeError">
+					<div role="alert" class="kor-field-error-message">
+						<div class="kor-field-error-message-contents">
+							<ul class="kor-field-error-list">
+								<li class="kor-field-error-list-item"><istext key="payment.payone.error.bank_code_invalid"/></li>
+							</ul>
+						</div>
+					</div>
+				</div>
+			<iselse>
+				<isFieldErrorMessagePlaceholder class="kor-field-error-right" name_override="#PaymentService:Configuration:UUID."_".BankCodeError#">
+			</isif>
+
+			<label for="<isprint value="#PaymentService:Configuration:UUID#">_BankCode" class="<isif condition="#myaccount EQ 'true'#">ish-label-top<iselse>ish-label-s</isif>"><istext key="payment.payone.bank_code.label"></label>
+			<input type="text"
+				class="inputText <isprint value="#PaymentService:Configuration:UUID#">_BankCode <isif condition="#isDefined(BankCodeError)#"> kor-error kor-field-error </isif>"
+				name="<isprint value="#PaymentService:Configuration:UUID#">_BankCode"
+				<isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT')#">
+					value="<isprint value="#PIIDataVerificationResult:Values:BankCode#">"
+				<iselse>
+					value=""
+				</isif>
+			/>
+		</div>
+		
+		<div class="ish-field">
+			<label for="<isprint value="#PaymentService:Configuration:UUID#">_BankCountryCode" class="<isif condition="#myaccount EQ 'true'#">ish-label-top<iselse>ish-label-s</isif>"><istext key="payment.payone.directdebit.label.bankCountry"/></label>
+			<isloop iterator="PaymentService:BankCountries" alias="Entry">
+				<isif condition="#'DE' EQ Entry:Key#">
+					<label><isprint value="#Entry:Value#"/></label>
+					<input type="hidden" name="<isprint value="#PaymentService:Configuration:UUID#">_BankCountryCode" value="DE" />
+				</isif>
+			</isloop>
+		</div>
 	</div>
-	<div class="ish-field">
-	    <label for="<isprint value="#PaymentService:Configuration:UUID#">_BankCode"><istext key="payment.payone.bank_code.label"></label>
-	    <input type="text"
-	    	class="inputText <isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT') AND isDefined(PIIDataVerificationResult:getError("BankCode"))#"> kor-error kor-field-error </isif>"
-	    	name="<isprint value="#PaymentService:Configuration:UUID#">_BankCode" id="<isprint value="#PaymentService:Configuration:UUID#">_BankCode"
-	        <isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT')#">
-	            value="<isprint value="#PIIDataVerificationResult:Values:BankCode#">"
-	        <iselse>
-	            value=""
-	        </isif>
-	     />
+
+	<div class="<isprint value="#PaymentService:Configuration:UUID#">_IBAN_AND_BIC">
+		<div class="ish-field<isif condition="#isDefined(IBANError)#"> kor-field-error kor-error-field</isif>">
+			<isif condition="#isDefined(IBANError)#">
+				<div class="kor-field-error-message-placeholder kor-field-error-right ish-formShift-s" name="<isprint value="#PaymentService:Configuration:UUID#">_IBANError">
+					<div role="alert" class="kor-field-error-message">
+						<div class="kor-field-error-message-contents">
+							<ul class="kor-field-error-list">
+								<li class="kor-field-error-list-item"><istext key="payment.payone.error.iban_invalid"/></li>
+							</ul>
+						</div>
+					</div>
+				</div>
+			<iselse>
+				<isFieldErrorMessagePlaceholder class="kor-field-error-right" name_override="#PaymentService:Configuration:UUID."_".IBANError#">
+			</isif>
+
+			<label for="<isprint value="#PaymentService:Configuration:UUID#">_IBAN" class="<isif condition="#myaccount EQ 'true'#">ish-label-top<iselse>ish-label-s</isif>">IBAN</label>
+			<input type="text"
+				class="inputText kor-ccnum <isprint value="#PaymentService:Configuration:UUID#">_IBAN <isif condition="#isDefined(IBANError)#"> kor-error kor-field-error </isif>"
+				autocomplete="off" name="<isprint value="#PaymentService:Configuration:UUID#">_IBAN"
+				<isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT')#">
+					value="<isprint value="#PIIDataVerificationResult:Values:IBAN#">"
+				<iselse>
+					value=""
+				</isif>
+			/>
+		</div>
+		<div class="ish-field<isif condition="#isDefined(BICError)#"> kor-field-error kor-error-field</isif>">
+			<isif condition="#isDefined(BICError)#">
+				<div class="kor-field-error-message-placeholder kor-field-error-right ish-formShift-s" name="<isprint value="#PaymentService:Configuration:UUID#">_BICError">
+					<div role="alert" class="kor-field-error-message">
+						<div class="kor-field-error-message-contents">
+							<ul class="kor-field-error-list">
+								<li class="kor-field-error-list-item"><istext key="payment.payone.error.bic_size_incorrect"/></li>
+							</ul>
+						</div>
+					</div>
+				</div>
+			<iselse>
+				<isFieldErrorMessagePlaceholder class="kor-field-error-right" name_override="#PaymentService:Configuration:UUID."_".BICError#">
+			</isif>
+
+			<label for="<isprint value="#PaymentService:Configuration:UUID#">_BIC" class="<isif condition="#myaccount EQ 'true'#">ish-label-top<iselse>ish-label-s</isif>"><istext key="payment.payone.bic.label"></label>
+			<input type="text"
+				class="inputText <isprint value="#PaymentService:Configuration:UUID#">_BIC <isif condition="#isDefined(BICError)#"> kor-error kor-field-error </isif>"
+				name="<isprint value="#PaymentService:Configuration:UUID#">_BIC"
+				<isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT')#">
+					value="<isprint value="#PIIDataVerificationResult:Values:BIC#">"
+				<iselse>
+					value=""
+				</isif>
+			/>
+		</div>
 	</div>
-	<div class="ish-field">
-	    <label for="<isprint value="#PaymentService:Configuration:UUID#">_BankCountryCode"><istext key="payment.payone.directdebit.label.bankCountry"/></label>
-	     <select name="<isprint value="#PaymentService:Configuration:UUID#">_BankCountryCode">
-	    <isloop iterator="PaymentService:BankCountries" alias="Entry">
-	    	<option value="#Entry:Key#"><isprint value="#Entry:Value#"/></option>  
-	    </isloop>
-	    </select> 
-	</div>
-	<div><b><istext key="payment.payone.directdebit.label.or"/></b></div><br />
-	<div class="ish-field">
-	    <label for="<isprint value="#PaymentService:Configuration:UUID#">_IBAN">IBAN</label>
-	    <input type="text"
-	    	class="inputText kor-ccnum <isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT') AND isDefined(PIIDataVerificationResult:getError("IBAN"))#"> kor-error kor-field-error </isif>"
-	    	autocomplete="off" name="<isprint value="#PaymentService:Configuration:UUID#">_IBAN" id="<isprint value="#PaymentService:Configuration:UUID#">_IBAN"
-	        <isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT')#">
-	            value="<isprint value="#PIIDataVerificationResult:Values:IBAN#">"
-	        <iselse>
-	            value=""
-	        </isif>
-	     />
-	</div>
-	<div class="ish-field">
-	    <label for="<isprint value="#PaymentService:Configuration:UUID#">_BIC"><istext key="payment.payone.bic.label"></label>
-	    <input type="text"
-	    	class="inputText <isif condition="#not(isDefined(edit)) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT') AND isDefined(PIIDataVerificationResult:getError("BIC"))#"> kor-error kor-field-error </isif>"
-	    	name="<isprint value="#PaymentService:Configuration:UUID#">_BIC" id="<isprint value="#PaymentService:Configuration:UUID#">_BIC"
-	        <isif condition="#(NOT PIIDataVerificationResult:Valid) AND (PIIDataVerificationResult:PaymentService:ID EQ 'PAYONE_DIRECTDEBIT')#">
-	            value="<isprint value="#PIIDataVerificationResult:Values:BIC#">"
-	        <iselse>
-	            value=""
-	        </isif>
-	     />
-	</div>
+
+	<a id="SwitchToIBANLink" class="SwitchToIBANLink" href="javascript:void(false)"><istext key="payment.payone.directdebit.link.use_iban_link"></a>
+	<a id="switchToAccountNumberLink" class="switchToAccountNumberLink ish-hide" href="javascript:void(false)"><istext key="payment.payone.directdebit.link.use_account_number_link"></a>
 </fieldset>
+
+<script type="text/javascript">
+$(function () {
+    var activeFieldSetsSelector = '.<isprint value="#PaymentService:Configuration:UUID#">_ActiveFieldSet';
+
+    var accountNumberAndBankCodeSectionsSelector = '.<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber_AND_BankCode';
+    var ibanAndBicSectionsSelector = '.<isprint value="#PaymentService:Configuration:UUID#">_IBAN_AND_BIC';
+
+    var accountNumberInputsSelector = '.<isprint value="#PaymentService:Configuration:UUID#">_AccountNumber';
+    var bankCodeInputsSelector = '.<isprint value="#PaymentService:Configuration:UUID#">_BankCode';
+    var ibanInputsSelector = '.<isprint value="#PaymentService:Configuration:UUID#">_IBAN';
+    var bicInputsSelector = '.<isprint value="#PaymentService:Configuration:UUID#">_BIC'
+
+    var switchToIBANLinksSelector = '.SwitchToIBANLink';
+    var switchToAccountNumberLinksSelector = '.switchToAccountNumberLink';
+
+    var switchToIBAN = function() {
+        setActiveFieldSet("IbanBic");
+        
+        toggleHtmlElements(switchToIBANLinksSelector, false);
+        toggleHtmlElements(switchToAccountNumberLinksSelector, true);
+        
+        toggleHtmlElements(accountNumberAndBankCodeSectionsSelector, false);
+        toggleHtmlElements(ibanAndBicSectionsSelector, true);
+        
+        cleanInputs(accountNumberInputsSelector);
+        cleanInputs(bankCodeInputsSelector);
+    }
+    
+    var switchToAccountNumber = function() {
+        setActiveFieldSet("AccountNumberBankCode");
+        
+        toggleHtmlElements(switchToAccountNumberLinksSelector, false);
+        toggleHtmlElements(switchToIBANLinksSelector, true);
+
+        toggleHtmlElements(ibanAndBicSectionsSelector, false);
+        toggleHtmlElements(accountNumberAndBankCodeSectionsSelector, true);
+        
+        cleanInputs(ibanInputsSelector);
+        cleanInputs(bicInputsSelector);
+    }
+    
+    var setActiveFieldSet = function(value) {
+        var activeFieldSetInputs = $(activeFieldSetsSelector);
+        
+        for (var i = 0; i < activeFieldSetInputs.length; i++) {
+            $(activeFieldSetInputs[i]).val(value);
+        }
+    }
+    
+    var toggleHtmlElements = function(elementsSelector, visible) {
+        var elements = $(elementsSelector);
+        
+        if (visible) {
+            elements.map(function() { $(this).removeClass("ish-hide") });
+        }
+        else {
+            elements.map(function() { $(this).addClass("ish-hide") });
+        }
+    }
+    
+    var cleanInputs = function(inputsSelector) {
+        var inputs = $(inputsSelector);
+        inputs.map(function () { $(this).val("") });
+    }
+    
+    var initializeSections = function() {
+      <isif condition="#isDefined(AccountNumberError) OR isDefined(BankCodeError)#">
+        switchToAccountNumber();
+      <iselseif condition="#isDefined(IBANError) OR isDefined(BICError)#" /> 
+        switchToIBAN();
+      <iselse />
+        var accountNumberInputs = $(accountNumberInputsSelector);
+        for (var i = 0; i < accountNumberInputs.length; i++) {
+            if ($(accountNumberInputs[i]).val() != "") {
+                switchToAccountNumber();
+                return;
+            }
+        }
+      
+        var bankCodeInputs = $(bankCodeInputsSelector);
+        for (var i = 0; i < bankCodeInputs.length; i++) {
+            if ($(bankCodeInputs[i]).val() != "") {
+                switchToAccountNumber();
+                return;
+            }
+        }
+      
+        switchToIBAN();
+      </isif>
+    }
+    
+    $(document).delegate(switchToIBANLinksSelector, 'click', switchToIBAN);
+    $(document).delegate(switchToAccountNumberLinksSelector, 'click', switchToAccountNumber);
+    
+    initializeSections();
+  });
+</script>
\ No newline at end of file
