/* Minification failed. Returning unminified contents.
(702,83-84): run-time error JS1100: Expected ',': =
 */
var all_bankAccounts = []
    , bankAccount
    , bankAccounts_type = []
    , bank_index = 0
    , bank_account_index = 0
    , bank_ident_index = 0;

function add_bankAccounts(type, items) {
    let b_Valid = true;
    FormTips = $("#validate_bankAccounts");
    updateTips("", "");
    let bank_type = "";
    if (type != undefined) {
        bank_type = type;
    } else {
        bank_type = $("#bankAccounts_type").val();
    }

    if (all_bankAccounts.length > 0) {
        for (var v = 0; v < all_bankAccounts.length; v++) {
            let id_bank = all_bankAccounts[v]["bank_type"];
            if (id_bank == bank_type) {
                if (bank_type != "lease" && bank_type != "advancePayment") {
                    updateTips("Рахунок такого типу вже створений", "Y");
                    b_Valid = false;
                } else {
                    bank_type = id_bank + "_double";
                }
            }
        }
    }

    if (!b_Valid) {
        return;
    }

    let bank_container = $("#bankAccounts_place");

    bank_container.append(get_bankAccounts_type(bank_type, bank_index, bank_account_index));
    if (bank_type.replace("_double", "") == "lease" || bank_type.replace("_double", "") == "advancePayment") {
        $("#" + bank_type + "_" + bank_index + "_holder").show();
        Ajax_syncGet("Js/rent/holderType.json?v=" + version, function (data) {
            SetCBD3DicOption(data, $("#" + bank_type + "_" + bank_index + "_holderType"), true);
        });
    }

    if (items != undefined) {
        for (var i = 0; i < items.accounts.length; i++) {
            let acc_ident = items.accounts[i]
            $("#accounts_" + bank_type + "_" + bank_index).append(get_acc(bank_type, i, acc_ident.accountIdentifications.length))
            add_accounts(bank_type, i, i)

            for (var s = 0; s < acc_ident.accountIdentifications.length; s++) {
                add_ident_acc(bank_type, i, i, s)
            }
        }
        set_bankAccounts_propertis(items, bank_type, bank_index)
    } else {
        $("#accounts_" + bank_type + "_" + bank_index).append(get_acc(bank_type, bank_index, 0))
        add_accounts(bank_type, bank_index, bank_index)
        add_ident_acc(bank_type, bank_index, bank_index, 0)
    }

    all_bankAccounts.push({
        "bank_type": bank_type,
        "index": bank_index
    });

    bank_index++;

    if (isOwn) {
        $(".delete_bankAccounts").show();
    } else {
        if (!window.location.href.includes("Member_Card")) {
            $(".delete_bankAccounts").hide();
        }
    }
}

function add_new_accounts(bank_type, index) {
    $("#accounts_" + bank_type + "_" + index).append(get_acc(bank_type, bank_account_index));
    add_accounts(bank_type, bank_account_index, bank_account_index)
    add_ident_acc(bank_type, bank_account_index - 1, bank_account_index - 1, 0)
}

function add_new_accounts_ident(bank_type, bank_index) {
    add_ident_acc(bank_type, bank_index, bank_index, bank_ident_index)
}

function get_acc(bank_type, index, accounts_index) {
    var str = __type___index_accounts.outerHTML;

    str = str
        .replace(new RegExp("__type", 'g'), bank_type)
        .replace(new RegExp("__index", 'g'), index)
        .replace(new RegExp("__accounts_index", 'g'), accounts_index);

    return str;
}

function add_accounts(bank_type, index, accounts_index) {
    if (accounts_index == undefined) {
        accounts_index = bank_account_index;
    }
    let accounts_container = $("#pn_" + bank_type + "_accounts_" + index);
    accounts_container.append(get_Accounts(bank_type, index, accounts_index));

    Ajax_syncGet("Js/rent/currency.json?v=" + version, function (data) {
        SetCBD3DicOption(data, $("#" + bank_type + "_" + index + "_" + accounts_index + "_accounts_currency"), true);
    });

    $("#" + bank_type + "_" + index + "_" + accounts_index + "_accounts_currency").val("UAH");

    Ajax_syncGet("Js/bankAccounts/ua_identifiers.json?v=" + version, function (data) {
        SetCBD3DicOption(data, $("#" + bank_type + "_" + index + "_" + accounts_index + "_accounts_accountHolder_identifier_scheme"), true);
    });

    bank_account_index++
}

function get_Accounts(bank_type, index, accounts_index) {
    var str = __type___index___accounts_index_accounts.outerHTML;

    str = str
        .replace(new RegExp("__type", 'g'), bank_type)
        .replace(new RegExp("__index", 'g'), index)
        .replace(new RegExp("__accounts_index", 'g'), accounts_index)

    return str;
}

function add_ident_acc(bank_type, index, accounts_index, ident_index) {
    if (ident_index == undefined) {
        ident_index = bank_ident_index
    }
    let accounts_container = $("#pn_" + bank_type + "_ident_acc_" + index);
    accounts_container.append(get_ident_acc(bank_type, index, accounts_index, ident_index));

    Ajax_syncGet("Js/rent/accountIdentifiers.json?v=" + version, function (data) {
        SetCBD3DicOption(data, $("#" + bank_type + "_" + index + "_" + accounts_index + "_" + ident_index + "_accounts_accountIdentifications_scheme"), true);
    });

    $("#" + bank_type + "_" + index + "_" + accounts_index + "_" + ident_index + "_accounts_accountIdentifications_scheme").val("UA-IBAN");

    bank_ident_index++
}

function get_ident_acc(bank_type, index, accounts_index, ident_index) {
    var str = __type___index___accounts_index___ident_index_accounts.outerHTML;

    str = str
        .replace(new RegExp("__type", 'g'), bank_type)
        .replace(new RegExp("__index", 'g'), index)
        .replace(new RegExp("__accounts_index", 'g'), accounts_index)
        .replace(new RegExp("__ident_index", 'g'), ident_index)


    return str;
}

function get_bankAccounts_type(bank_type, index, accounts_index) {
    var str = __type___index.outerHTML;
    var statusText = GetItemById(bankAccounts_type, bank_type.replace("_double", ""), "bankAccounts")["name"];

    str = str
        .replace(new RegExp("__name_type", 'g'), statusText)
        .replace(new RegExp("__type", 'g'), bank_type)
        .replace(new RegExp("__index", 'g'), index)
        .replace(new RegExp("__accounts_index", 'g'), accounts_index);

    return str;
}

function get_bankAccounts() {
    let result = {
        bankAccounts: [],
        errors: []
    };

    for (var i = 0; i < all_bankAccounts.length; i++) {
        if (all_bankAccounts[i] != undefined) {
            let bank_type = all_bankAccounts[i].bank_type;
            let obj = $("#account_" + bank_type + "_" + i);
            let bank = {};
            bank.accounts = [];

            obj.find('input[type=text]').each(function () {
                let id_obj = this.id.split(bank_type + "_" + i + "_");
                if (id_obj[1] != "id" && $(this).val() != "" && (bank_type.replace("_double", "") == "lease" || bank_type.replace("_double", "") == "advancePayment")) {
                    bank[id_obj[1]] = $(this).val();
                }
            });

            obj.find('select').each(function () {
                let id_obj = this.id.split(bank_type + "_" + i + "_");
                if ($(this).val() != "NONE" && (bank_type.replace("_double", "") == "lease" || bank_type.replace("_double", "") == "advancePayment")) {
                    bank[id_obj[1]] = $(this).val();
                }
            });

            for (var q = 0; q < bank_account_index; q++) {
                let accounts = {};
                let accountIdentifications = [];
                let accountHolder = {};
                let identifier = {};

                obj = $("#" + bank_type + "_" + q + "_" + q + "_accounts");
                obj.find('input[type=text]').each(function () {
                    let id_obj = this.id.split(bank_type + "_" + q + "_" + q + "_");
                    if (id_obj[1].includes("accounts")) {
                        id_obj = id_obj[1].split("accounts_")
                        if (id_obj[1].includes("identifier")) {
                            id_obj = id_obj[1].split("accountHolder_identifier_")
                            if ($(this).val() != "" && id_obj[1] != "id") {
                                identifier[id_obj[1]] = {};
                                identifier[id_obj[1]].uk_UA = $(this).val();
                            } else {
                                identifier[id_obj[1]] = $(this).val();
                                if (identifier[id_obj[1]] == undefined || identifier[id_obj[1]] == '') {
                                    result.errors.push(new ValidationError(this.id));
                                }

                                let error = valiate_accounts_accountHolder_identifier(this.id);
                                if (error != undefined) {
                                    result.errors.push(error);
                                }
                            }
                        } else if (!id_obj[1].includes("accountHolder") && $(this).val() != "" && id_obj[1] != "id") {
                            accounts[id_obj[1]] = {};
                            accounts[id_obj[1]].uk_UA = $(this).val();
                        }
                    }
                });

                obj.find('select').each(function () {
                    let id_obj = this.id.split(bank_type + "_" + q + "_" + q + "_");
                    if (id_obj[1].includes("accounts")) {
                        id_obj = id_obj[1].split("accounts_")
                        if (id_obj[1].includes("identifier")) {
                            id_obj = id_obj[1].split("accountHolder_identifier_")
                            identifier[id_obj[1]] = $(this).val();
                        }
                        else if ($(this).val() != "NONE" && id_obj[1] != "scheme") {
                            accounts[id_obj[1]] = $(this).val();
                        }
                    }
                });

                for (var h = 0; h < bank_ident_index; h++) {
                    let accountIdentifications_prop = {};
                    let scheme = '';

                    obj = $("#" + bank_type + "_" + q + "_" + q + "_" + h + "_accounts");
                    obj.find('select').each(function () {
                        let id_obj = this.id.split(bank_type + "_" + q + "_" + q + "_" + h + "_");
                        if (id_obj[1].includes("accountIdentifications")) {
                            id_obj = id_obj[1].split("accountIdentifications_")
                            if ($(this).val() != "") {
                                accountIdentifications_prop[id_obj[1]] = scheme = $(this).val();
                            }
                        } else {
                            accounts[id_obj[1]] = $(this).val();
                        }
                    });

                    obj.find('input[type=text]').each(function () {
                        let id_obj = this.id.split(bank_type + "_" + q + "_" + q + "_" + h + "_");
                        if (id_obj[1].includes("accountIdentifications")) {
                            id_obj = id_obj[1].split("accountIdentifications_")
                            if (id_obj[1] == "description")
                                return;

                            if ($(this).val() == undefined || $(this).val() == '') {
                                result.errors.push(new ValidationError(this.id));
                            } else {
                                let error = validate_bankAccount_identifier(scheme, this.id, false);
                                if (error != undefined) {
                                    result.errors.push(error);
                                }
                                accountIdentifications_prop[id_obj[1]] = $(this).val();
                            }
                        }
                    });

                    if (Object.keys(accountIdentifications_prop).length != 0) {
                        accountIdentifications.push(accountIdentifications_prop);
                    }

                    if (Object.keys(accountIdentifications).length != 0) {
                        accounts.accountIdentifications = accountIdentifications;
                    }

                    if (Object.keys(identifier).length != 0) {
                        accounts.accountHolder = accountHolder;
                        accounts.accountHolder.identifier = identifier;
                    }
                }

                if (Object.keys(accounts).length != 0) {
                    bank.accountType = bank_type.replace("_double", "");
                    bank.accounts.push(accounts);
                }
            }

            result.bankAccounts.push(bank)
        }
    }

    return result;
}

function set_bankAccounts(items, edit) {
    for (var i = 0; i < items.length; i++) {
        let bank_type = items[i].accountType;
        add_bankAccounts(bank_type, items[i])
    }

    if (edit != undefined && !edit) {
        SetViewForm($("#bankAccounts_place"))
    }
}

function set_bankAccounts_propertis(_el, bank_type, bank_index) {
    var _properties = $("#account_" + bank_type + "_" + bank_index);
    _properties.find('input[type=text]').each(function () {
        let id_obj = this.id.split(bank_type + "_" + bank_index + "_");
        if (_el[id_obj[1]] != undefined) {
            $(this).val(_el[id_obj[1]]);
        }
    });

    _properties.find('select').each(function () {
        let id_obj = this.id.split(bank_type + "_" + bank_index + "_");
        if (_el[id_obj[1]] != undefined) {
            $(this).val(_el[id_obj[1]]);
        } else {
            $(this).val('NONE');
        }
    });

    for (var i = 0; i < _el.accounts.length; i++) {
        let acc_ident = _el.accounts[i];

        _properties = $("#" + bank_type + "_" + i + "_" + i + "_accounts");

        _properties.find('input[type=text]').each(function () {
            let id_obj = this.id.split(bank_type + "_" + i + "_" + i + "_");
            if (id_obj[1].indexOf("accounts") > -1 && _el.accounts.length > 0) {
                id_obj = id_obj[1].split("accounts_")[1]
                if (id_obj.includes("accountHolder_name") && _el.accounts[i].accountHolder != undefined && _el.accounts[i].accountHolder.name != undefined) {
                    $(this).val(_el.accounts[i].accountHolder.name.uk_UA);
                } else if (id_obj.includes("identifier") && _el.accounts[i].accountHolder != undefined && _el.accounts[i].accountHolder.identifier != undefined) {
                    id_obj = id_obj.split("accountHolder_identifier_")[1]
                    if (id_obj != "legalName") {
                        $(this).val(_el.accounts[i].accountHolder.identifier.id);
                    } else {
                        $(this).val(_el.accounts[i].accountHolder.identifier.legalName.uk_UA);
                    }
                } else {
                    if (id_obj != "bankName" && id_obj != "description") {
                        $(this).val(_el.accounts[i][id_obj]);
                    } else if (_el.accounts[i][id_obj] != undefined && (id_obj == "bankName" || id_obj == "description")) {
                        $(this).val(_el.accounts[i][id_obj].uk_UA);
                    }
                }
            } else {
                if (_el[id_obj[1]] != undefined) {
                    $(this).val(_el[id_obj[1]]);
                }
            }
        });

        _properties.find('select').each(function () {
            let id_obj = this.id.split(bank_type + "_" + i + "_" + i + "_")[1];
            if (id_obj.indexOf("accounts") > -1 && _el.accounts.length > 0) {
                id_obj = id_obj.split("accounts_")[1]
                if (id_obj.includes("identifier") && _el.accounts[i].accountHolder != undefined && _el.accounts[i].accountHolder.identifier != undefined) {
                    $(this).val(_el.accounts[i].accountHolder.identifier.scheme);
                } else {
                    $(this).val(_el.accounts[i][id_obj]);
                }
            } else {
                if (_el[id_obj] != undefined) {
                    $(this).val(_el[id_obj]);
                } else {
                    $(this).val('NONE');
                }
            }
        });

        for (var g = 0; g < acc_ident.accountIdentifications.length; g++) {
            _properties = $("#" + bank_type + "_" + i + "_" + i + "_" + g + "_accounts");
            _properties.find('input[type=text]').each(function () {
                let id_obj = this.id.split(bank_type + "_" + i + "_" + i + "_" + g + "_accounts_")[1];
                if (id_obj.indexOf("accountIdentifications") > -1) {
                    id_obj = id_obj.split("accountIdentifications_")
                    if (id_obj[1] != "description") {
                        $(this).val(_el.accounts[i].accountIdentifications[g][id_obj[1]]);
                    } else if (_el.accounts[i].accountIdentifications[g][id_obj[1]] != undefined) {
                        $(this).val(_el.accounts[i].accountIdentifications[g][id_obj[1]].uk_UA);
                    }
                } else {
                    $(this).val(_el.accounts[i][id_obj]);
                }
            });

            _properties.find('select').each(function () {
                let id_obj = this.id.split(bank_type + "_" + i + "_" + i + "_" + g + "_accounts_")[1];
                if (id_obj.indexOf("accountIdentifications") > -1) {
                    id_obj = id_obj.split("accountIdentifications_")[1]
                    $(this).val(_el.accounts[i].accountIdentifications[g][id_obj]);
                } else {
                    $(this).val(_el.accounts[i][id_obj]);
                }
            });
        }
    }
}

function delete_bank() {
    bank_account_index = 0;
    bank_index = 0;

    all_bankAccounts = [];
    $("#bankAccounts_place").html("");

    if (!window.location.href.includes("Member_Card")) {
        $(".delete_bankAccounts").hide();
    }
}

function delete_bank_account(type, index) {
    $("#" + type + "_" + index).remove();

    for (var i = 0; i < all_bankAccounts.length; i++) {
        if (all_bankAccounts[i].bank_type == type) {
            all_bankAccounts.splice(i, 1)
        }
    }
}

function add_BankAccount(place, obj, _readonly) {
    var str = pn_BankAccount___rand_id.outerHTML, schemas = "BankAccount", _rand_id = rand_id++

    str = str.replace(new RegExp("__rand_id", 'g'), _rand_id);

    place.append(str);

    if (obj != undefined && obj.length > 0) {
        obj = obj[0];

        if (obj.description != undefined)
            $("[data-atid='" + schemas + ".description.uk_UA']", place).val(obj.description.uk_UA);
        $("[data-atid='" + schemas + ".bankName.uk_UA']", place).val(obj.bankName.uk_UA);

        if (obj.accountIdentification != undefined)
            obj.accountIdentifications = obj.accountIdentification;

        if (obj.accountIdentifications != undefined && obj.accountIdentifications.length > 0)
            for (var i = 0; i < obj.accountIdentifications.length; i++)
                add_accountIdentifications($("[data-atid='" + schemas + ".accountIdentifications']", place)
                    , obj.accountIdentifications[i]);
    }

    if (obj == undefined || obj.accountIdentifications == undefined || obj.accountIdentifications.length == 0)
        add_accountIdentifications($("[data-atid='" + schemas + ".accountIdentifications']", place)
            , { id: "", scheme: "UA-IBAN", description: { uk_UA: "Розрахунковий рахунок" } });

    if (_readonly)
        SetViewForm(place);
    else
        $("[data-atid='pn_newAccountIdentification']", place).show();
}

function get_BankAccount(place) {
    if (place.length == 0) {
        bValid = false;
        return;
    }

    var obj = {};
    var schemas = "BankAccount";

    if (!checkLength($("[data-atid='" + schemas + ".description.uk_UA']", place), "", 1, 10000)) {
        bValid = false;
        return;
    }
    obj.description = { uk_UA: lastCheckValue };

    if (!checkLength($("[data-atid='" + schemas + ".bankName.uk_UA']", place), "", 1, 10000)) {
        bValid = false;
        return;
    }
    obj.bankName = { uk_UA: lastCheckValue };

    obj.accountIdentifications = [];

    $("[data-atid='AccountIdentification']", place).each(
        function () {
            obj.accountIdentifications.push(get_accountIdentifications($(this)));
        }
    )

    return obj;
}

function add_accountIdentifications(place, obj) {
    var str = pn_AccountIdentification___rand_id.outerHTML, schemas = "AccountIdentification", _rand_id = rand_id++;

    str = str.replace(new RegExp("__rand_id", 'g'), _rand_id);

    place.append(str);
    obj_place = $("#pn_AccountIdentification_" + _rand_id, place);

    if (obj != undefined) {
        $("[data-atid='" + schemas + ".scheme']", obj_place).val(obj.scheme);

        if (obj.description != undefined)
            $("[data-atid='" + schemas + ".description.uk_UA']", obj_place).val(obj.description.uk_UA);
        $("[data-atid='" + schemas + ".id']", obj_place).val(obj.id);
    }
}

function get_accountIdentifications(place) {
    if (place.length == 0) {
        bValid = false;
        return;
    }
    var obj = {};
    var schemas = "AccountIdentification";

    if ($("[data-atid='" + schemas + ".scheme']", place).val() == "all") {
        bValid = false;
        return;
    }
    obj.scheme = $("[data-atid='" + schemas + ".scheme']", place).val();
    /*
        if (!checkLength($("[data-atid='" + schemas + ".description.uk_UA']", place), "", 1, 10000)) {
            bValid = false;
            return;
        }
        obj.description = { uk_UA: lastCheckValue };
    */
    if (!checkLength($("[data-atid='" + schemas + ".id']", place), "", 1, 10000)) {
        bValid = false;
        return;
    }
    obj.id = lastCheckValue;

    switch (obj.scheme) {
        case 'UA-EDR': bValid = bValid && checkRegexp($("[data-atid='" + schemas + ".id']", place), /^\d{8}$/, ", формат: 8 цифр"); break;
        case 'UA-MFO': bValid = bValid && checkRegexp($("[data-atid='" + schemas + ".id']", place), /^\d{6}$/, ", формат: 6 цифр"); break;
        case 'UA-accountNumber': bValid = bValid && checkRegexp($("[data-atid='" + schemas + ".id']", place), /^\d{5,}$/, ", формат: від 5 цифр"); break;
        case 'UA-IBAN': bValid = bValid && checkRegexp($("[data-atid='" + schemas + ".id']", place), /^[A-Z]{2}\d{27}$/, ", формат: 2 букви та 27 цифр"); break;
    }

    return obj;
}

function includes_bank_type(arr1, arr2) {
    let num = 0;
    for (var i = 0; i < arr1.length; i++) {
        for (var j = 0; j < arr2.length; j++) {
            if (arr1[i] == arr2[j].bank_type) {
                num++
            }
        }
    }

    if (num != arr1.length)
        return false;
    else
        return true;
}

function valiate_accounts_accountHolder_identifier(identifier_block_id) {
    let regexps = [
        /^\d{8}$/, //UA-EDR  
        /^\d{10}$/, //UA-IPN  
        /^[А-ЯA-Z]{2}\d{6}$/, //UA-PASSPORT 
        /^\d{9}$/ //UA-ID-CARD 
    ];

    for (let i = 0; i < regexps.length; i++) {
        if (checkRegexp($("#" + identifier_block_id), regexps[i], null, false)) {
            return;
        }
    }

    return new ValidationError(identifier_block_id, arrLang[0][lang][930] + " '{fieldName}' не вірний формат.");
}

function show_bankAccount() {
    $("#pn_auction_bankAccount").show();

    if (bankAccount != undefined) {
        if (bankAccount.accountIdentifications != undefined) {
            for (var i = 0; i < bankAccount.accountIdentifications.length; i++) {
                ai_el = bankAccount.accountIdentifications[i];
                switch (ai_el.scheme) {
                    case "UA-EDR":
                        bankAccount.code = ai_el.id;
                        break;
                    case "UA-MFO":
                        bankAccount.mfo = ai_el.id;
                        break;
                    case "accountNumber":
                        Add_accountNumber($("#pn_accountNumber_сontent"), ai_el);
                        break;
                }
            }
        }

        SetFormValues("_bankAccount_"
            , "bankName,description,code,mfo"
            , bankAccount);
    }

    if (ReadOnly && !cdb2_public_edit)
        $("#pn_accountNumber_control").hide();
    else
        if (N_accountNumber == 0)
            Add_accountNumber($("#pn_accountNumber_сontent"), { id: "", description: "Розрахунковий рахунок" });
}

function Add_accountNumber(_panel, ai_el) {

    var str = pn_accountNumber___N.outerHTML;

    var _N = (N_accountNumber == 0 ? "" : "_" + N_accountNumber);

    str = str
        .replace(new RegExp("___N", 'g'), _N);

    (_panel).append(str);

    if (ai_el != undefined) {
        ai_el.accountNumber = ai_el.id;
        ai_el.accountNumber_description = ai_el.description;

        SetFormValues("_" + _N + "_bankAccount_"
            , "accountNumber,accountNumber_description"
            , ai_el, _panel);
    }

    N_accountNumber++;
}

function get_bankAccount() {
    if ($("#e_bankAccount_bankName").val() == "")
        return;

    _bankAccount = {};
    if (!checkLength($("#e_bankAccount_bankName"), "", 1, 10000)) return;
    _bankAccount.bankName = lastCheckValue;

    if (!checkLength($("#e_bankAccount_description"), "", 0, 10000)) return;
    _bankAccount.description = lastCheckValue;

    accountIdentifications = [];

    ai_el = {};
    if (!checkLength($("#e_bankAccount_code"), "", (isDebugMode ? 0 : 1), 100)) return;
    ai_el.id = lastCheckValue;
    ai_el.scheme = "UA-EDR";
    ai_el.description = "ЄДРПОУ";
    accountIdentifications[0] = ai_el;

    ai_el = {};
    if (!checkLength($("#e_bankAccount_mfo"), "", (isDebugMode ? 0 : 1), 100)) return;
    ai_el.id = lastCheckValue;
    ai_el.scheme = "UA-MFO";
    ai_el.description = "МФО";
    accountIdentifications[1] = ai_el;

    ai_el = {};

    var accountNumbers = $(".accountNumber");

    for (var an = 0; an < accountNumbers.length - 1; an++) { // last of class "accountNumber" is template
        ai_el = { scheme: "accountNumber" };

        var accountNumber = accountNumbers[an];

        if ($("[name='accountNumber.description']", accountNumber).val() == "" && $("[name='accountNumber.id']", accountNumber).val() == "")
            continue;

        if (!checkLength($("[name='accountNumber.description']", accountNumber), "", (isDebugMode ? 0 : 1), 1000)) return;
        ai_el.description = lastCheckValue;

        if (!checkLength($("[name='accountNumber.id']", accountNumber), "", (isDebugMode ? 0 : 1), 1000)) return;
        ai_el.id = lastCheckValue;

        accountIdentifications.push(ai_el);
    }

    _bankAccount.accountIdentifications = accountIdentifications;

    return _bankAccount;
}

function validate_bankAccount_identifier(scheme, identifier_block_id, showMessage = true) {
    let regexp, message;

    switch (scheme) {
        case 'UA-EDR': {
            regexp = /^\d{8}$/;
            message = ", формат: 8 цифр";
            break;
        }
        case 'UA-IPN': {
            regexp = /^\d{10}$/;
            message = ", формат: 10 цифр";
            break;
        }
        case 'UA-IPN-FOP': {
            regexp = /^\d{10}$/;
            message = ", формат: 10 цифр";
            break;
        }
        case 'UA-PASSPORT': {
            regexp = /^[А-ЯA-Z]{2}\d{6}$/;
            message = ", формат: 2 БУКВИ 6 цифр";
            break;
        }
        case 'UA-IBAN': {
            regexp = /^[a-zA-Z]{2}\d{27}$/;
            message = ", формат: 2 БУКВИ 27 цифр";
            break;
        }
        case 'UA-ID-CARD': {
            regexp = /^\d{9}$/;
            message = ", формат: 9 цифр";
            break;
        }
        case 'UA-MFO': {
            regexp = /^\d{6}$/;
            message = ", формат: 6 цифр";
            break;
        }
        case 'UA-accountNumber': {
            regexp = /^\d{5}$/;
            message = ", формат: 5 цифр";
            break;
        }
        default:
            return;
    }

    if (!checkRegexp($("#" + identifier_block_id), regexp, message, showMessage)) {
        return new ValidationError(identifier_block_id, arrLang[0][lang][930] + " '{fieldName}'" + message);
    }
};
