var affiliatePaymentDetails = {};
var paymentOptionApi = "/netapp/api/PaymentOption";
var paymentOptions;
var paymentformat;
var accFieldsRequiredSymbol;
var paymentfieldtemplate;
var paymentfieldsectitletemplate;
function LoadPaymentOptions() {
    jQuery.ajax({
		url: paymentOptionApi + "/Get",
		contentType: "application/json",
		async: false,
		type: "Get",
		success: function (data) {
			paymentOptions = data;
			GeneatePaymentOptionFields();
		},
		error: function () { }
	});
}
function GeneatePaymentOptionFields() {
	// group loop
	for (var i = 0; i < paymentOptions.PaymentOptions.length; i++) {
		var currentPaymentOption = paymentOptions.PaymentOptions[i];
		// group loop
		for (var j = 0; j < currentPaymentOption.paymentmethodformat.length; j++) {
			var currentGroup = currentPaymentOption.paymentmethodformat[j];
			// group field loop
			currentGroup.groupheading = paymentfieldsectitletemplate.replace("[[fieldsectiontitle]]", escapeHtml(currentGroup.grouptitle));
			currentGroup.groupheading = currentGroup.groupheading.replace("[[fieldsectiondescription]]", escapeHtml(currentGroup.groupdescription));
			jQuery.each(currentGroup.groupfields,(function(index, field) {
                field.field = paymentfieldtemplate;
				
				field.fieldnameinternal = field.fieldnameinternal.toLowerCase();
				field.field = field.field.replace("[[fieldnametranslated]]", escapeHtml(field.fieldtitle));
				field.field = field.field.replace("[[fieldnamedescription]]", escapeHtml(field.fielddescription));
				if (field.fieldstatus == "1") {
					field.field = field.field.replace("[[fieldname]]req", accFieldsRequiredSymbol);
				}
				else {
					field.field = field.field.replace("[[fieldname]]req", " ");
                }
                
				field.field = field.field.replace("[[fieldname]]", escapeHtml(field.fieldnameinternal));
				var thisfield = "";
                if (field.fieldtype == "input") {
                    thisfield = " 0) {
						thisfield = thisfield + " minlength=" + field.fieldmin + " ";
					} 
					if (field.fieldmax > 0) {
						thisfield = thisfield + " maxlength=" + field.fieldmax + " ";
					} 
			    	
					if (field.fieldstatus == "1") {
                        thisfield = thisfield + " class=\"{ required: true,messages:{required:'" + escapeHtml(field.requiredmessage) + "'}}\"  required =\"true\"  ";
					}
                    else {
						thisfield = thisfield + " class=\"{ required: false } \"";
					} 
                    if (field.fieldvalidation > "") {
                        
						thisfield = thisfield + " " + field.fieldvalidation + "=\"true\""; 
					}
			    		                    
                    thisfield = thisfield + " noCreditCard=\"true\" ";	
                    thisfield = thisfield + OnChangeCallCustomMethods(field);
					thisfield = thisfield + "/>";
				}
                else if (field.fieldnameinternal == "bankcountry" && field.fieldtype == "selectbox") {
                    
                    thisfield = "";
                }
				else if (field.fieldnameinternal == "extrainfo") {
                    thisfield = "";
				}
                else {
                    
                    thisfield = DrawAdvancedFormField(field);
                }
				field.field = field.field.replace("[[field]]", thisfield);
			}));
		}
	}
	paymentformat = paymentOptions.PaymentOptions;
}
function DrawAdvancedFormField(field) {
    
	var customfieldstr = "";
	var customField = paymentOptions.Fields[field.fieldtype];
	var requiredText = ""
	if (customField == null) {
		return;
	}
	if (field.fieldstatus == "1") {
        requiredText = " class=\"{required:true,messages:{required:'" + escapeHtml(field.requiredmessage) + "'}}\"  required =\"true\"  "
	}
    switch (customField.fieldtype) {
        case "text":
            customfieldstr = "";
            break;
        case "selectbox":
            
            customfieldstr = ""
            break;
        case "date":
            if (customField.fieldvalidator != null && customField.fieldvalidator == "dob") {
                customfieldstr = DatepickerBirthDate(field.fieldnameinternal, escapeHtml(customField.options[i].optionvalue), field.fieldstatus);
            }
            else {
                customfieldstr = "";
            }
            break;
        case "checkbox":
            if (customField.options[i].optionvalue != null && customField.options[i].optionvalue.length > 0) {
                var thisformvalue = "";
                if (customField.fieldnameinternal != null && customField.fieldnameinternal.length > 0) {
                    thisformvalue = customField.fieldnameinternal.split(",");
                }
                for (var i = 0; i < customField.options.length; i++) {
                    customfieldstr = customfieldstr + " 0) {
                    customfieldstr = customfieldstr + customField.fieldvalidator + "=\"true\" ";
                }
                customfieldstr = customfieldstr + " " + requiredText + "  value=\"" + escapeHtml(customField.options[i].optionvalue) + "\" ";
                if (Array.isArray(thisformvalue)) {
                    if (thisformvalue.includes(customField.options[i].optionvalue)) {
                        customfieldstr = customfieldstr + " checked ";
                    }
                }
                else if (thisformvalue == customField.options[i].optionvalue) {
                    customfieldstr = customfieldstr + " checked ";
                }
            }
            customfieldstr = customfieldstr + OnChangeCallCustomMethods(field);
            customfieldstr = customfieldstr + "/>";
            break;
    }
           
	
	return customfieldstr;  
}
function DatepickerBirthDate(fieldname, fieldvalue, fieldstatus) {
    // make sure the date string is in the format javascript expects - otherwise there will be a js error pasing the string
    if(isDate(fieldvalue)){
        fieldvalue = datepart("yyyy", fieldvalue) & "/" & datepart("m", fieldvalue) & "/" & datepart("d", fieldvalue);
    }
    else {
        fieldvalue = "";
    }
	// output the js fields for the date
    if (fieldstatus == "disabled") {
        return  "" + fieldvalue;
    }
    return "";
    
}
function escapeHtml(unsafe) {
	return unsafe
		.replace(/&/g, "&")
		.replace(//g, ">")
		.replace(/"/g, """)
		.replace(/'/g, "'");
}
function FNloadpaymentdetailsform() {
    IgnoreValidationgHiddenFields();
	var thisform = jQuery("#paymentoptionid").parents('form:first');
	var optionidstr = jQuery("#paymentoptionid").val();
	if (optionidstr != null && optionidstr != '') {
		var selectedoptionid = optionidstr.split('|');
		var thisoption = selectedoptionid[0];
		var thisformtemplate;
		for (var i = 0; i < paymentformat.length; i++) {
			if (thisoption == paymentformat[i].paymentoptionid) {
				thisformtemplate = paymentformat[i];
				break;
			}
        }
		
		jQuery('#paymentmenu_title').html(thisformtemplate["paymentmethodtitle"]);
		jQuery('#paymentmenu_details').html(thisformtemplate["paymentmethoddescription"]);
        var newElem = "";
       
		jQuery.each(thisformtemplate["paymentmethodformat"], function (secid, thissegroup) {
			newElem += thissegroup.groupheading;
            jQuery.each(thissegroup.groupfields, function (fldid, thisfieldvalue) {
                newElem += thisfieldvalue.field;
			});
		});
        jQuery('#paymentmethodcontainer').html(newElem);
		if (jQuery("#bankcountry option").length <= 1) { jQuery('#bankcountry').append(countryselectoptions) };
		// If an affiliate is selected, set their payment details.
		SetAffiliateSelections();
	}
	else {
		jQuery('#paymentmenu_title').html('');
		jQuery('#paymentmenu_details').html('');
		jQuery('#paymentmethodcontainer').html('');
    }
    ApplyCountryRestriction();
}
/*
 * Injecting the allowed country list into data-countries
 * */
function GetAllowedCountryList(thisfieldvalue) {
    var allowedCountriesForField = "";
    var validationExpressionForField = "";
    jQuery.each(thisfieldvalue.OptionFieldCountry, function (id, fieldCountry) {
        allowedCountriesForField = fieldCountry.IsoCode3Letters + "," + allowedCountriesForField;
        validationExpressionForField = " validation-" + fieldCountry.IsoCode3Letters + "" + "=" + fieldCountry.ValidationExpression + validationExpressionForField ;
     });
    //Injecting the 3letters allowed country list into data-countries attr
    if (allowedCountriesForField.length > 0) {
        allowedCountriesForField = " data-countries='" + allowedCountriesForField + "'" + validationExpressionForField;
     }
    return allowedCountriesForField;
}
function ApplyCountryRestriction() {
    jQuery('[data-countries]').each(function (index, el) {
        var selectedCountry = jQuery('option:selected', jQuery('#bankcountry')).attr('isocountrycode');
        var countries = jQuery(el).attr('data-countries');
        if (countries.length > 0) {
            //console.log(jQuery(el).attr('id') + '=' + countries);
            var countryList = jQuery(el).attr('data-countries').split(',');
            var allowed = jQuery.inArray(selectedCountry, countryList);
            if (allowed == -1) {
                jQuery(el).hide();
                if (jQuery(el).parents().eq(1).length > 0) {
                    jQuery(el).parents().eq(1).hide();
                }
            }
            else {
                jQuery(el).show();
                if (jQuery(el).parents().eq(1).length > 0) {
                    jQuery(el).parents().eq(1).show();
                }
            }
        }
    });
}
function ApplyCountryFieldsValidation(thisfieldvalue) {
    jQuery(thisfieldvalue).rules("remove");
    if (jQuery(thisfieldvalue).val().length > 0) {
        var selectedCountry = jQuery('option:selected', jQuery('#bankcountry')).attr('isocountrycode');
        if (selectedCountry !== undefined) {
            jQuery(thisfieldvalue).rules("add", {
                PaymentAccountFieldValid: jQuery(thisfieldvalue).attr("validation-" + selectedCountry.toLowerCase())
            });
        }
        
    }
      
}
function IgnoreValidationgHiddenFields() {
    jQuery("#paymentoptionid").parents('form:first').validate({
        ignore: ":hidden"
    });
}
function OnChangeCallCustomMethods(field) {
    var changeFunc = "";
    if (field.fieldfunction != null && field.fieldfunction.length > 0) {
        changeFunc = " onchange=" + field.fieldfunction + " ";
    }
    return changeFunc;
}
function htmlDecode(input) {
    var doc = new DOMParser().parseFromString(input, "text/html");
    return doc.documentElement.textContent;
}
function SetAffiliateSelections() {
    for (var key in affiliatePaymentDetails) {
        jQuery("#" + key).val(htmlDecode(affiliatePaymentDetails[key]));
        jQuery("#" + key).change();
    }
}
accFieldsRequiredSymbol  = ``;
paymentfieldtemplate = `
`;
paymentfieldsectitletemplate =  ``;
var bankTypePaymentConfig = 
{
"accountno-ASM"
:{Validator:"^.*$"},
"accountno-AGO"
:{Validator:"^.*$"},
"accountno-AIA"
:{Validator:"^.*$"},
"accountno-ATA"
:{Validator:"^.*$"},
"accountno-ATG"
:{Validator:"^.*$"},
"accountno-ARG"
:{Validator:"^.*$"},
"accountno-ARM"
:{Validator:"^.*$"},
"accountno-ABW"
:{Validator:"^.*$"},
"accountno-AUS"
:{Validator:"^.*$"},
"accountno-BHS"
:{Validator:"^.*$"},
"accountno-BGD"
:{Validator:"^.*$"},
"accountno-BRB"
:{Validator:"^.*$"},
"accountno-BLZ"
:{Validator:"^.*$"},
"accountno-BEN"
:{Validator:"^.*$"},
"accountno-BMU"
:{Validator:"^.*$"},
"accountno-BTN"
:{Validator:"^.*$"},
"accountno-BOL"
:{Validator:"^.*$"},
"accountno-BWA"
:{Validator:"^.*$"},
"accountno-BVT"
:{Validator:"^.*$"},
"accountno-BRA"
:{Validator:"^.*$"},
"accountno-BRN"
:{Validator:"^.*$"},
"accountno-BFA"
:{Validator:"^.*$"},
"accountno-BDI"
:{Validator:"^.*$"},
"accountno-KHM"
:{Validator:"^.*$"},
"accountno-CMR"
:{Validator:"^.*$"},
"accountno-CAN"
:{Validator:"^.*$"},
"accountno-CPV"
:{Validator:"^.*$"},
"accountno-CYM"
:{Validator:"^.*$"},
"accountno-CAF"
:{Validator:"^.*$"},
"accountno-TCD"
:{Validator:"^.*$"},
"accountno-CHL"
:{Validator:"^.*$"},
"accountno-CHN"
:{Validator:"^.*$"},
"accountno-CXR"
:{Validator:"^.*$"},
"accountno-CCK"
:{Validator:"^.*$"},
"accountno-COL"
:{Validator:"^.*$"},
"accountno-COM"
:{Validator:"^.*$"},
"accountno-COG"
:{Validator:"^.*$"},
"accountno-COD"
:{Validator:"^.*$"},
"accountno-COK"
:{Validator:"^.*$"},
"accountno-CRI"
:{Validator:"^.*$"},
"accountno-CIV"
:{Validator:"^.*$"},
"accountno-DNK"
:{Validator:"^.*$"},
"accountno-DJI"
:{Validator:"^.*$"},
"accountno-DMA"
:{Validator:"^.*$"},
"accountno-DOM"
:{Validator:"^.*$"},
"accountno-ECU"
:{Validator:"^.*$"},
"accountno-EGY"
:{Validator:"^.*$"},
"accountno-SLV"
:{Validator:"^.*$"},
"accountno-GNQ"
:{Validator:"^.*$"},
"accountno-ETH"
:{Validator:"^.*$"},
"accountno-FLK"
:{Validator:"^.*$"},
"accountno-FRO"
:{Validator:"^.*$"},
"accountno-FJI"
:{Validator:"^.*$"},
"accountno-PYF"
:{Validator:"^.*$"},
"accountno-ATF"
:{Validator:"^.*$"},
"accountno-GAB"
:{Validator:"^.*$"},
"accountno-GMB"
:{Validator:"^.*$"},
"accountno-GHA"
:{Validator:"^.*$"},
"accountno-GRL"
:{Validator:"^.*$"},
"accountno-GRD"
:{Validator:"^.*$"},
"accountno-GUM"
:{Validator:"^.*$"},
"accountno-GTM"
:{Validator:"^.*$"},
"accountno-GGY"
:{Validator:"^.*$"},
"accountno-GIN"
:{Validator:"^.*$"},
"accountno-GNB"
:{Validator:"^.*$"},
"accountno-GUY"
:{Validator:"^.*$"},
"accountno-HTI"
:{Validator:"^.*$"},
"accountno-HMD"
:{Validator:"^.*$"},
"accountno-VAT"
:{Validator:"^.*$"},
"accountno-HND"
:{Validator:"^.*$"},
"accountno-HKG"
:{Validator:"^.*$"},
"accountno-IND"
:{Validator:"^.*$"},
"accountno-IDN"
:{Validator:"^.*$"},
"accountno-IMN"
:{Validator:"^.*$"},
"accountno-JAM"
:{Validator:"^.*$"},
"accountno-JPN"
:{Validator:"^.*$"},
"accountno-JEY"
:{Validator:"^.*$"},
"accountno-KEN"
:{Validator:"^.*$"},
"accountno-KIR"
:{Validator:"^.*$"},
"accountno-KOR"
:{Validator:"^.*$"},
"accountno-LAO"
:{Validator:"^.*$"},
"accountno-LSO"
:{Validator:"^.*$"},
"accountno-LBR"
:{Validator:"^.*$"},
"accountno-MAC"
:{Validator:"^.*$"},
"accountno-MWI"
:{Validator:"^.*$"},
"accountno-MYS"
:{Validator:"^.*$"},
"accountno-MDV"
:{Validator:"^.*$"},
"accountno-MLI"
:{Validator:"^.*$"},
"accountno-MHL"
:{Validator:"^.*$"},
"accountno-MEX"
:{Validator:"^.*$"},
"accountno-FSM"
:{Validator:"^.*$"},
"accountno-MNG"
:{Validator:"^.*$"},
"accountno-MSR"
:{Validator:"^.*$"},
"accountno-MAR"
:{Validator:"^.*$"},
"accountno-MOZ"
:{Validator:"^.*$"},
"accountno-MMR"
:{Validator:"^.*$"},
"accountno-NAM"
:{Validator:"^.*$"},
"accountno-NPL"
:{Validator:"^.*$"},
"accountno-ANT"
:{Validator:"^.*$"},
"accountno-NCL"
:{Validator:"^.*$"},
"accountno-NZL"
:{Validator:"^.*$"},
"accountno-NIC"
:{Validator:"^.*$"},
"accountno-NER"
:{Validator:"^.*$"},
"accountno-NGA"
:{Validator:"^.*$"},
"accountno-NIU"
:{Validator:"^.*$"},
"accountno-NFK"
:{Validator:"^.*$"},
"accountno-MNP"
:{Validator:"^.*$"},
"accountno-OMN"
:{Validator:"^.*$"},
"accountno-PLW"
:{Validator:"^.*$"},
"accountno-PAN"
:{Validator:"^.*$"},
"accountno-PNG"
:{Validator:"^.*$"},
"accountno-PRY"
:{Validator:"^.*$"},
"accountno-PER"
:{Validator:"^.*$"},
"accountno-PHL"
:{Validator:"^.*$"},
"accountno-PCN"
:{Validator:"^.*$"},
"accountno-PRI"
:{Validator:"^.*$"},
"accountno-RUS"
:{Validator:"^.*$"},
"accountno-RWA"
:{Validator:"^.*$"},
"accountno-SHN"
:{Validator:"^.*$"},
"accountno-KNA"
:{Validator:"^.*$"},
"accountno-LCA"
:{Validator:"^.*$"},
"accountno-VCT"
:{Validator:"^.*$"},
"accountno-WSM"
:{Validator:"^.*$"},
"accountno-STP"
:{Validator:"^.*$"},
"accountno-SEN"
:{Validator:"^.*$"},
"accountno-SYC"
:{Validator:"^.*$"},
"accountno-SLE"
:{Validator:"^.*$"},
"accountno-SGP"
:{Validator:"^.*$"},
"accountno-SLB"
:{Validator:"^.*$"},
"accountno-SOM"
:{Validator:"^.*$"},
"accountno-ZAF"
:{Validator:"^.*$"},
"accountno-SGS"
:{Validator:"^.*$"},
"accountno-LKA"
:{Validator:"^.*$"},
"accountno-SUR"
:{Validator:"^.*$"},
"accountno-SJM"
:{Validator:"^.*$"},
"accountno-SWZ"
:{Validator:"^.*$"},
"accountno-TWN"
:{Validator:"^.*$"},
"accountno-TJK"
:{Validator:"^.*$"},
"accountno-TZA"
:{Validator:"^.*$"},
"accountno-THA"
:{Validator:"^.*$"},
"accountno-TLS"
:{Validator:"^.*$"},
"accountno-TGO"
:{Validator:"^.*$"},
"accountno-TKL"
:{Validator:"^.*$"},
"accountno-TON"
:{Validator:"^.*$"},
"accountno-TTO"
:{Validator:"^.*$"},
"accountno-TKM"
:{Validator:"^.*$"},
"accountno-TCA"
:{Validator:"^.*$"},
"accountno-TUV"
:{Validator:"^.*$"},
"accountno-UGA"
:{Validator:"^.*$"},
"accountno-UKR"
:{Validator:"^.*$"},
"accountno-GBR"
:{Validator:"^.*$"},
"accountno-USA"
:{Validator:"^.*$"},
"accountno-URY"
:{Validator:"^.*$"},
"accountno-UZB"
:{Validator:"^.*$"},
"accountno-VUT"
:{Validator:"^.*$"},
"accountno-VEN"
:{Validator:"^.*$"},
"accountno-VNM"
:{Validator:"^.*$"},
"accountno-VGB"
:{Validator:"^.*$"},
"accountno-VIR"
:{Validator:"^.*$"},
"accountno-WLF"
:{Validator:"^.*$"},
"accountno-ESH"
:{Validator:"^.*$"},
"accountno-YEM"
:{Validator:"^.*$"},
"accountno-ZMB"
:{Validator:"^.*$"},
"accountno-ZWE"
:{Validator:"^.*$"},
"accountno-CUW"
:{Validator:"^.*$"},
"address1-USA"
:{Validator:"^.*$"},
"address2-USA"
:{Validator:"^.*$"},
"bankaccounttype-ASM"
:{Validator:"^.*$"},
"bankaccounttype-GUM"
:{Validator:"^.*$"},
"bankaccounttype-MNP"
:{Validator:"^.*$"},
"bankaccounttype-PRI"
:{Validator:"^.*$"},
"bankaccounttype-USA"
:{Validator:"^.*$"},
"bankaccounttype-VIR"
:{Validator:"^.*$"},
"bankCode-ASM"
:{Validator:"^.*$"},
"bankCode-AUS"
:{Validator:"^.*$"},
"bankCode-CAN"
:{Validator:"^.*$"},
"bankCode-GUM"
:{Validator:"^.*$"},
"bankCode-IND"
:{Validator:"^.*$"},
"bankCode-IMN"
:{Validator:"^.*$"},
"bankCode-JEY"
:{Validator:"^.*$"},
"bankCode-MNP"
:{Validator:"^.*$"},
"bankCode-PRI"
:{Validator:"^.*$"},
"bankCode-GBR"
:{Validator:"^.*$"},
"bankCode-USA"
:{Validator:"^.*$"},
"bankCode-VIR"
:{Validator:"^.*$"},
"city-USA"
:{Validator:"^.*$"},
"Iban-ALB"
:{Validator:"^(AL\d{26})$"},
"Iban-DZA"
:{Validator:"^.*$"},
"Iban-AND"
:{Validator:"^(AD\d{26})$"},
"Iban-AUT"
:{Validator:"^(AT\d{18})$"},
"Iban-AZE"
:{Validator:"^(AZ\d{2}[A-Z]{4}\d{20})$"},
"Iban-BHR"
:{Validator:"^(BH\d{2}[A-Z]{4}\d{14})$"},
"Iban-BLR"
:{Validator:"^(BY\d{2}[A-Z]{4}\d{20})$"},
"Iban-BEL"
:{Validator:"^(BE\d{14})$"},
"Iban-BIH"
:{Validator:"^(BA\d{18})$"},
"Iban-BGR"
:{Validator:"^(BG\d{2}[A-Z]{4}\d{14})$"},
"Iban-HRV"
:{Validator:"^(HR\d{19})$"},
"Iban-CYP"
:{Validator:"^(CY\d{26})$"},
"Iban-CZE"
:{Validator:"^(CZ\d{22})$"},
"Iban-EST"
:{Validator:"^(EE\d{18})$"},
"Iban-FIN"
:{Validator:"^(FI\d{16})$"},
"Iban-FRA"
:{Validator:"^(FR\d{25})$"},
"Iban-GUF"
:{Validator:"^.*$"},
"Iban-GEO"
:{Validator:"^(GE\d{2}[A-Z]{2}\d{16})$"},
"Iban-DEU"
:{Validator:"^(DE\d{20})$"},
"Iban-GIB"
:{Validator:"^(GI\d{2}[A-Z]{4}\d{15})$"},
"Iban-GRC"
:{Validator:"^(GR\d{25})$"},
"Iban-GLP"
:{Validator:"^.*$"},
"Iban-HUN"
:{Validator:"^(HU\d{26})$"},
"Iban-ISL"
:{Validator:"^(IS\d{24})$"},
"Iban-IRL"
:{Validator:"^(IE\d{2}[A-Z]{4}\d{14})$"},
"Iban-ISR"
:{Validator:"^(IL\d{21})$"},
"Iban-ITA"
:{Validator:"^(IT\d{2}[A-Z]{1}\d{22})$"},
"Iban-JOR"
:{Validator:"^(JO\d{2}[A-Z]{4}\d{22})$"},
"Iban-KAZ"
:{Validator:"^(KZ\d{18})$"},
"Iban-KWT"
:{Validator:"^(KW\d{2}[A-Z]{4}\d{22})$"},
"Iban-LVA"
:{Validator:"^(LV\d{2}[A-Z]{4}\d{13})$"},
"Iban-LBN"
:{Validator:"^(LB\d{26})$"},
"Iban-LIE"
:{Validator:"^(LI\d{19})$"},
"Iban-LTU"
:{Validator:"^(LT\d{18})$"},
"Iban-LUX"
:{Validator:"^(LU\d{18})$"},
"Iban-MKD"
:{Validator:"^(MK\d{17})$"},
"Iban-MDG"
:{Validator:"^.*$"},
"Iban-MLT"
:{Validator:"^(MT\d{2}[A-Z]{4}\d{23})$"},
"Iban-MTQ"
:{Validator:"^.*$"},
"Iban-MRT"
:{Validator:"^(MR\d{25})$"},
"Iban-MUS"
:{Validator:"^(MU\d{2}[A-Z]{4}\d{19}[A-Z]{3})$"},
"Iban-MYT"
:{Validator:"^.*$"},
"Iban-MDA"
:{Validator:"^(MD\d{2}[A-Z]{2}\d{18})$"},
"Iban-MCO"
:{Validator:"^(MC\d{25})$"},
"Iban-MNE"
:{Validator:"^(ME\d{20})$"},
"Iban-NLD"
:{Validator:"^(NL\d{2}[A-Z]{4}\d{10})$"},
"Iban-NOR"
:{Validator:"^(NO\d{13})$"},
"Iban-PAK"
:{Validator:"^(PK\d{2}[A-Z]{4}\d{16})$"},
"Iban-PSE"
:{Validator:"^(PS\d{2}[A-Z]{4}\d{21})$"},
"Iban-POL"
:{Validator:"^(PL\d{26})$"},
"Iban-PRT"
:{Validator:"^(PT\d{23})$"},
"Iban-QAT"
:{Validator:"^(QA\d{2}[A-Z]{4}\d{21})$"},
"Iban-REU"
:{Validator:"^.*$"},
"Iban-ROU"
:{Validator:"^(RO\d{2}[A-Z]{4}\d{16})$"},
"Iban-SPM"
:{Validator:"^.*$"},
"Iban-SMR"
:{Validator:"^(SM\d{2}[A-Z]{1}\d{22})$"},
"Iban-SAU"
:{Validator:"^(SA\d{22})$"},
"Iban-SRB"
:{Validator:"^.*$"},
"Iban-SVK"
:{Validator:"^(SK\d{22})$"},
"Iban-SVN"
:{Validator:"^(SI\d{17})$"},
"Iban-ESP"
:{Validator:"^(ES\d{22})$"},
"Iban-SWE"
:{Validator:"^(SE\d{22})$"},
"Iban-CHE"
:{Validator:"^(CH\d{19})$"},
"Iban-TUN"
:{Validator:"^(TN\d{22})$"},
"Iban-TUR"
:{Validator:"^(TR\d{24})$"},
"Iban-ARE"
:{Validator:"^(AE\d{21})$"},
"Iban-ALA"
:{Validator:"^.*$"},
"postalCode-USA"
:{Validator:"^.*$"},
"state-USA"
:{Validator:"^.*$"},
"swiftbsb-ALB"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-DZA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-AND"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-AGO"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-AIA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ATA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ATG"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ARG"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ARM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ABW"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-AUS"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-AUT"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-AZE"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BHS"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BHR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BRB"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BLR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BEL"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BLZ"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BEN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BMU"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BTN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BOL"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BIH"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BWA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BVT"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BRA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BRN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BGR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BFA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-BDI"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-KHM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-CMR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-CAN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-CPV"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-CYM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-CAF"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-TCD"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-CHL"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-CHN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-CXR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-CCK"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-COL"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-COM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-COG"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-COD"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-COK"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-CRI"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-CIV"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-HRV"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-CYP"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-CZE"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-DJI"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-DMA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-DOM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ECU"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-EGY"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SLV"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GNQ"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-EST"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ETH"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-FLK"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-FRO"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-FJI"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-FIN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-FRA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GUF"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-PYF"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ATF"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GAB"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GMB"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GEO"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-DEU"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GHA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GIB"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GRC"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GRL"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GRD"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GLP"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GTM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GGY"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GIN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GNB"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-GUY"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-HTI"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-HMD"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-VAT"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-HND"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-HKG"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-HUN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ISL"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-IND"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-IDN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-IRL"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ISR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ITA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-JAM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-JPN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-JOR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-KAZ"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-KEN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-KIR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-KOR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-KWT"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-LAO"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-LVA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-LBN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-LSO"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-LBR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-LIE"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-LTU"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-LUX"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MAC"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MKD"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MDG"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MWI"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MYS"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MDV"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MLI"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MLT"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MHL"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MTQ"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MRT"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MUS"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MYT"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MEX"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-FSM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MDA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MCO"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MNG"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MNE"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MSR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MAR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MOZ"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-MMR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-NAM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-NPL"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-NLD"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ANT"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-NCL"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-NZL"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-NIC"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-NER"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-NGA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-NIU"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-NFK"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-NOR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-OMN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-PAK"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-PLW"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-PSE"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-PAN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-PNG"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-PRY"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-PER"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-PHL"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-PCN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-POL"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-PRT"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-QAT"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-REU"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ROU"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-RUS"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-RWA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SHN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-KNA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-LCA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SPM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-VCT"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-WSM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SMR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-STP"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SAU"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SEN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SRB"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SYC"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SLE"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SGP"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SVK"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SVN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SLB"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SOM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ZAF"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SGS"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ESP"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-LKA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SUR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SJM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SWZ"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-SWE"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-CHE"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-TWN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-TJK"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-TZA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-THA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-TLS"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-TGO"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-TKL"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-TON"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-TTO"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-TUN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-TUR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-TKM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-TCA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-TUV"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-UGA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-UKR"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ARE"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-URY"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-UZB"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-VUT"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-VEN"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-VNM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-VGB"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-WLF"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ESH"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-YEM"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ZMB"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ZWE"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-ALA"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
"swiftbsb-CUW"
:{Validator:"^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$"},
};
var countryselectoptions = "";
jQuery(document).ready(function() {
	defaultoption = '';
	
	LoadPaymentOptions();
    if (defaultoption != '')
    {
	    jQuery("#paymentoptionid").val(defaultoption);
    }
    // load form fields when the page loads
	FNloadpaymentdetailsform();
	// reload form fields whenever a payment method changes
	jQuery("#paymentoptionid").change(function()  {
		FNloadpaymentdetailsform();
	});
   
});
// Get the jQuery validation plugin's settings
	// FNloadpaymentdetailsform
     		
function fnLoadEnvoyCountryValidation() {
	var curcountry = jQuery('#bankcountry').val();
	var emptyfieldarr =[];
	var thisform = jQuery("#paymentoptionid").parents('form:first'); 
	var settings = thisform.validate().settings;
	jQuery.extend(true, settings, {rules: { "accountno": {},"pmfield5": {},"pmfield1": {} ,"pmfield2": {}  ,"pmfield4": {} ,"swiftbsb": {} }});
	switch (curcountry) {
	    case "UNITED KINGDOM":
	        jQuery.extend(true, settings, { rules: {
	              "accountno": { reqLengths: [8], digits: true, required: true }
	            , "pmfield5": {} //IBAN
	            , "pmfield1": { reqLengths: [6], maxlength: 6, minlength: 6,  digits: true, required: true}  //bANKcODE
	            , "pmfield2": {} //branchcode
	            , "pmfield4": {} //checkdigits
	            , "swiftbsb": {} // isbicswift
	        }
	        });
	        jQuery("#accountno, #pmfield1").parents('fieldset').show();
	        // jQuery("#accountno, #pmfield1, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
	        jQuery("#pmfield2, #swiftbsb, #pmfield4,#pmfield5").parents('fieldset').hide();
	        emptyfieldarr = ["#accountno", "#pmfield1", "#pmfield2", "#swiftbsb", "#pmfield4"];
	        break;
	    default:
		jQuery.extend(true, settings, {
	        rules: {
	             "accountno": {minlength:2, maxlength:50,alphaNumeric: true,required: true}
	            ,"pmfield5": { reqLengths:[20], isiban: true, required:true} //IBAN
	            ,"pmfield1": { minlength: 2, maxlength: 50, alphaNumeric: true, required: false}  //bANKcODE
	            ,"pmfield2": { minlength: 2, maxlength: 50, alphaNumeric: true, required: false} //branchcode
	            ,"pmfield4": {} //checkdigits
	            ,"swiftbsb": {reqLengths:[8,11],alphaNumeric: true,required: true}
	        }
	     });
	    jQuery("#swiftbsb,#pmfield5").parents('fieldset').show();
	    jQuery("#pmfield2, #pmfield1, #accountno, #pmfield4").parents('fieldset').hide(); 
		emptyfieldarr = ["#pmfield4"];
		break;
}
//This is the most efficient way to handle IBAN cases.
switch (curcountry) {
case "AUSTRIA":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [20], required: true}       }      });      break;
case "BELGIUM":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [16], required: true}       }      });      break;
case "BULGARIA":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [22], required: true}       }      });      break;
case "CROATIA":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [21], required: true}       }      });      break;
case "CYPRUS":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [28], required: true}       }      });      break;
case "CZECH REPUBLIC":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [24], required: true}       }      });      break;
case "DENMARK":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [18], required: true}       }      });      break;
case "ESTONIA":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [20], required: true}       }      });      break;
case "FINLAND":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [18], required: true}       }      });      break;
case "FRANCE":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [27], required: true}       }      });      break;
case "GERMANY":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [22], required: true}       }      });      break;
case "GIBRALTAR":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [23], required: true}       }      });      break;
case "GREECE":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [27], required: true}       }      });      break;
case "HUNGARY":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [28], required: true}       }      });      break;
case "ICELAND":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [26], required: true}       }      });      break;
case "IRELAND":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [22], required: true}       }      });      break;
case "ITALY":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [27], required: true}       }      });      break;
case "LATVIA":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [21], required: true}       }      });      break;
case "LITHUANIA":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [20], required: true}       }      });      break;
case "LUXEMBOURG":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [20], required: true}       }      });      break;
case "MACEDONIA, THE FORMER YUGOSLAV":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [19], required: true}       }      });      break;
case "MALTA":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [31], required: true}       }      });      break;
case "NETHERLANDS":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [18], required: true}       }      });      break;
case "NORWAY":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [15], required: true}       }      });      break;
case "POLAND":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [28], required: true}       }      });      break;
case "PORTUGAL":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [25], required: true}       }      });      break;
case "ROMANIA":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [24], required: true}       }      });      break;
case "SERBIA":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [22], required: true}       }      });      break;
case "SLOVAKIA":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [24], required: true}       }      });      break;
case "SLOVENIA":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [19], required: true}       }      });      break;
case "SPAIN":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [24], required: true}       }      });      break;
case "SWEDEN":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [24], required: true}       }      });      break;
case "SWITZERLAND":      jQuery.extend(true, settings, { rules: {          "pmfield5": { reqLengths: [21], required: true}       }      });      break;
default:
    jQuery("#pmfield5").rules("remove", "reqLengths isiban");
    jQuery.extend(true, settings, { rules: { "pmfield5": { maxlength: 50, required: true}} });
    break;
}
//
    var fieldArr = new Array();
    fieldArr[0] = "accountno";
    fieldArr[1] = "pmfield5";
    fieldArr[2] = "pmfield1";
    fieldArr[3] = "pmfield2";
    fieldArr[4] = "pmfield4";
    fieldArr[5] = "swiftbsb";
    
	for (i = 0; i < fieldArr.length; i++) {
		if (jQuery("#" + fieldArr[i]) != undefined && jQuery("#" + fieldArr[i]).length > 0) {
            if (jQuery("#" + fieldArr[i]).rules()["required"] == true) {
                jQuery("#" + fieldArr[i] + "label pre").html(" * ");
            }
            else {
                jQuery("#" + fieldArr[i] + "label pre").html(" ");
                jQuery("#" + fieldArr[i]).rules("remove", "reqLengths");
            }
        }
    }
	//for (var x = 0; x < emptyfieldarr.length; x++) {
	//	jQuery(emptyfieldarr[x]).val("");
	//}
};
/*
case "BULGARIA": case "ESTONIA": case "FINLAND": case "ROMANIA":
jQuery.extend(true, settings, {rules: {
"accountno": {}
,"pmfield5": {isiban:true, required: true} //IBAN
,"pmfield1": {}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {} // isbicswift
}});
jQuery("#pmfield5").parents('fieldset').show(); 
// jQuery("#accountno, #pmfield1, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
jQuery("#accountno, #pmfield1, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#accountno","#pmfield1","#pmfield2","#swiftbsb","#pmfield4"];
break;
case "GERMANY": case "ITALY": case "LITHUANIA":
jQuery.extend(true, settings, {rules: {
"accountno": {}
,"pmfield5": {isiban:true, required: true} //IBAN
,"pmfield1": {}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {isbicswift:true, required: true} // isbicswift
}});
jQuery("#pmfield5, #swiftbsb").parents('fieldset').show(); 
jQuery("#accountno, #pmfield1, #pmfield2, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#accountno","#pmfield1","#pmfield2","#pmfield4"];
break;
case "IRELAND": case "UNITED KINGDOM":
jQuery.extend(true, settings, {rules: {
"accountno": {reqLengths:[8],digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {reqLengths:[6],digits: true,required: true}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {}
}});
jQuery("#accountno, #pmfield1").parents('fieldset').show(); 
jQuery("#pmfield5, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield5","#pmfield2","#swiftbsb","#pmfield4"];
break;
case "AUSTRALIA":
jQuery.extend(true, settings, {rules: {
"accountno": {reqLengths:[5,8,9],digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {minlength:6, maxlength:6,digits: true,required: true}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {}
}});
jQuery("#accountno, #pmfield1").parents('fieldset').show(); 
jQuery("#pmfield5, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield5","#pmfield2","#swiftbsb","#pmfield4"];
break;
case "AUSTRIA":
jQuery.extend(true, settings, {rules: {
"accountno": {minlength:4, maxlength:11,digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {minlength:5, maxlength:5,digits: true,required: true}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {} // isbicswift
}});
jQuery("#accountno, #pmfield1").parents('fieldset').show(); 
jQuery("#pmfield5, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield5","#pmfield2","#swiftbsb","#pmfield4"];
break;
case "BELGIUM":
jQuery.extend(true, settings, {rules: {
"accountno": {minlength:12, maxlength:12,digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {} // isbicswift
}});
jQuery("#accountno").parents('fieldset').show(); 
jQuery("#pmfield5, #pmfield1, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield5","#pmfield1,","#pmfield2","#swiftbsb","#pmfield4"];
break;
case "CZECH REPUBLIC":
jQuery.extend(true, settings, {rules: {
"accountno": {reqLengths:[10,12],digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {reqLengths:[4],digits: true,required: true}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {} // isbicswift
}});
jQuery("#accountno,#pmfield1").parents('fieldset').show(); 
jQuery("#pmfield5, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield5","#pmfield2","#swiftbsb","#pmfield4"];
break;
case "DENMARK": case "SWITZERLAND":
jQuery.extend(true, settings, {rules: {
"accountno": {minlength:4, maxlength:10,digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {reqLengths:[4],digits: true,required: true}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {} // isbicswift
}});
jQuery("#accountno,#pmfield1").parents('fieldset').show(); 
jQuery("#pmfield5, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield5","#pmfield2","#swiftbsb","#pmfield4"];
break;
case "FRANCE":
jQuery.extend(true, settings, {rules: {
"accountno": {reqLengths:[11],digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {reqLengths:[5],digits: true,required: true}  //bANKcODE
,"pmfield2": {reqLengths:[5],digits: true,required: true} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {} // isbicswift
}});
jQuery("#accountno,#pmfield1, #pmfield2").parents('fieldset').show(); 
jQuery("#pmfield5, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield5","#swiftbsb","#pmfield4"];
break;
case "HUNGARY":
jQuery.extend(true, settings, {rules: {
"accountno": {minlength:16, maxlength:24,digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {} // isbicswift
}});
jQuery("#accountno").parents('fieldset').show(); 
jQuery("#pmfield1, #pmfield5, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield1","#pmfield5","#pmfield2","#swiftbsb","#pmfield4"];
break;
case "NETHERLANDS":
jQuery.extend(true, settings, {rules: {
"accountno": {reqLengths:[10],digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {} // isbicswift
}});
jQuery("#accountno").parents('fieldset').show(); 
jQuery("#pmfield1, #pmfield5, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield1","#pmfield5","#pmfield2","#swiftbsb","#pmfield4"];
break;
case "NEW ZEALAND":
jQuery.extend(true, settings, {rules: {
"accountno": {reqLengths:[14],digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {isbicswift : true,required: true} // isbicswift
}});
jQuery("#accountno, #swiftbsb").parents('fieldset').show(); 
jQuery("#pmfield1, #pmfield5, #pmfield2, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield1","#pmfield5","#pmfield2","#pmfield4"];
break;
case "POLAND":
jQuery.extend(true, settings, {rules: {
"accountno": {reqLengths:[26],digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {} // isbicswift
}});
jQuery("#accountno").parents('fieldset').show(); 
jQuery("#pmfield1, #pmfield5, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield1","#pmfield5","#pmfield2","#swiftbsb","#pmfield4"];
break;
case "SINGAPORE":
jQuery.extend(true, settings, {rules: {
"accountno": {reqLengths:[9,11],digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {reqLengths:[4],digits: true,required: true}  //bANKcODE
,"pmfield2": {reqLengths:[3],digits: true,required: true} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {} // isbicswift
}});
jQuery("#accountno,#pmfield1, #pmfield2").parents('fieldset').show(); 
jQuery("#pmfield5, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield5","#pmfield2","#swiftbsb","#pmfield4"];
break;
case "SOUTH AFRICA":
jQuery.extend(true, settings, {rules: {
"accountno": {minlength:4, maxlength:16,digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {reqLengths:[6],digits: true,required: true}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {} // isbicswift
}});
jQuery("#accountno,#pmfield1").parents('fieldset').show(); 
jQuery("#pmfield5, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield5","#pmfield2","#swiftbsb","#pmfield4"];
break;
case "SPAIN":
jQuery.extend(true, settings, {rules: {
"accountno": {minlength:4, maxlength:16,digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {reqLengths:[4],digits: true,required: true}  //bANKcODE
,"pmfield2": {reqLengths:[4],digits: true,required: true} //branchcode
,"pmfield4": {reqLengths:[2],digits: true,required: true} //checkdigits
,"swiftbsb": {} // isbicswift
}});
jQuery("#accountno,#pmfield1, #pmfield2, #pmfield4").parents('fieldset').show(); 
jQuery("#pmfield5, #swiftbsb").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield5","#swiftbsb"];
break;
case "SWEDEN":
jQuery.extend(true, settings, {rules: {
"accountno": {minlength:4, maxlength:10,digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {reqLengths:[4,5],digits: true,required: true}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {} // isbicswift
}});
jQuery("#accountno,#pmfield1").parents('fieldset').show(); 
jQuery("#pmfield5, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield5","#pmfield2","#swiftbsb","#pmfield4"];
break;
case "LATVIA":
jQuery.extend(true, settings, {rules: {
"accountno": {reqLengths:[19],digits: true,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {} // isbicswift
}});
jQuery("#accountno").parents('fieldset').show(); 
jQuery("#pmfield5,#pmfield1, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield1","#pmfield5","#pmfield2","#swiftbsb","#pmfield4"];
break;
case "SLOVAKIA":
jQuery.extend(true, settings, {rules: {
"accountno": {minlength:4, maxlength:23,required: true}
,"pmfield5": {} //IBAN
,"pmfield1": {}  //bANKcODE
,"pmfield2": {} //branchcode
,"pmfield4": {} //checkdigits
,"swiftbsb": {} // isbicswift
}});
jQuery("#accountno").parents('fieldset').show(); 
jQuery("#pmfield5,#pmfield1, #pmfield2, #swiftbsb, #pmfield4").parents('fieldset').hide(); 
emptyfieldarr = ["#pmfield1","#pmfield5","#pmfield2","#swiftbsb","#pmfield4"];
break;*/