/*global define*/
/**
 * Refresh GUI of payment settings
 *
 * @class de_epages.ipayment.ui.ipaymentguirefresh
 *
 * @uses jQuery
 * @uses ep

 *
 *
 */
define('de_epages/ipayment/ui/ipaymentguirefresh', [
    'jquery',
    'ep'
], function($, ep) {

    'use strict';
    /**
     * @param {String}  SelectedPaymentMethodId             The DOM node of SelectedPayment object.
     * @param {String}  PaymentTypeMethodsData              JSON structure with the data collected at Perl site.
     * @param {String}  threedDivSection                    The DOM node of threedDivSection object.
     * @param {String}  PaymentTypeDivSection               The DOM node of PaymentTypeDivSection.
     * @param {String}  SelectedTransactionType             The DOM node of Select object SelectedTransactionType.
     * @param {String}  Selected3dSecureOption              The DOM node of Select object Selected3dSecureOption.  
     */
    return function(SelectedPaymentMethodId, PaymentTypeMethodsData, threedDivSection, PaymentTypeDivSection, SelectedTransactionType, Selected3dSecureOption) {

        for (var i = 0; i < PaymentTypeMethodsData.PaymentMethodTable.length; ++i) {
            if (SelectedPaymentMethodId == PaymentTypeMethodsData.PaymentMethodTable[i].PaymentMethodID) {
            	DrawIpaymentSettingsInterface(PaymentTypeMethodsData.PaymentMethodTable[i].TransactionTypes, PaymentTypeDivSection, SelectedTransactionType);
            	DrawIpaymentSettingsInterface(PaymentTypeMethodsData.PaymentMethodTable[i].Options3dSecure, threedDivSection, Selected3dSecureOption);
            }
        }
        
        function DrawIpaymentSettingsInterface(JSONPaymentMethodsData, IpaymentSettingsDIVSection, IpaymentSettingsSelectObject){
            if (JSONPaymentMethodsData.length > 1) {
            	IpaymentSettingsDIVSection.show();
            } else {
                IpaymentSettingsSelectObject.val(JSONPaymentMethodsData[0]);
                IpaymentSettingsDIVSection.hide();
            }
        }
    }
});