function checkBKFieldSetVisibility() {
    var arr = [];
    $('[name^=IsOrganization]').each(function() {
        var check = $(this).val();
        var parent = $(this).closest('.XContainer');
        var ctnrName = parent.attr('name');

        if (check === "true") {
            $('.CXFieldSet[xn^=fsBKOrgDaten]', parent).show();
            if ($('.CXFieldSet[xn^=fsBKAllDaten]', parent).length > 0) {
                arr.push(ctnrName);
            }
        } else if (check === "false") {
            $('.CXFieldSet[xn^=fsBKOrgDaten]', parent).remove();
            $('.CXFieldSet[xn^=fsBKAllDaten]', parent).hide();
        } else {
            $('.CXFieldSet[xn^=fsBKOrgDaten]', parent).hide();
            $('.CXFieldSet[xn^=fsBKAllDaten]', parent).hide();
        }
    });

    $('[name^=IsIndividualPerson]').each(function() {
        var value = $(this).val();
        var parent = $(this).closest('.XContainer');
        var ctnrName = parent.attr('name');

        if (value === "true") {
            $('.CXFieldSet[xn^=fsBKDaten]', parent).show();
            $('.CXFieldSet[xn^=fsBKAllDaten]', parent).show();
        } else if (value === "false") {
            $('.CXFieldSet[xn^=fsBKDaten]', parent).remove();
            if (arr.find(function(a) { return a === ctnrName; }) !== undefined) {
                $('.CXFieldSet[xn^=fsBKAllDaten]', parent).show();
            } else {
                $('.CXFieldSet[xn^=fsBKAllDaten]', parent).remove();
            }
        } else {
            $('.CXFieldSet[xn^=fsBKDaten]', parent).hide();
            if (arr.find(function(a) { return a === ctnrName; }) !== undefined) {
                $('.CXFieldSet[xn^=fsBKAllDaten]', parent).show();
            } else {
                $('.CXFieldSet[xn^=fsBKAllDaten]', parent).hide();
            }
        }
    });
}

function showTrustLevel() {
    $('[name^=TrustLevel]').each(function() {
        var me = $(this);
        if (me.val() === "") {
            return;
        }

        var tl = "" + me.val();
        if (tl === "STORK-QAA-Level-1") {
            tl = "trust-ribbon-level1";
        } else if (tl === "STORK-QAA-Level-3") {
            tl = "trust-ribbon-level3"
        } else if (tl === "STORK-QAA-Level-4") {
            tl = "trust-ribbon-level4"
        }

        var suffix = me.attr("name");
        suffix = suffix.replace('TrustLevel', '');
        formatBKFieldSet('fsBKDaten' + suffix, tl);
        formatBKFieldSet('fsBKOrgDaten' + suffix, tl);
        formatBKFieldSet('fsBKAllDaten' + suffix, tl);
    });
}

function formatBKFieldSet(fieldSetName, ribbonClass) {
    var ctnr = $('[name="' + fieldSetName + '"]');
    if (ctnr.length > 0) {
        // attribute 'noRibbon' for disable ribbon display
        if (!ctnr.is('[noRibbon]')) {
            ctnr.addClass("trust-ribbon-ctnr");
            ctnr.addClass(ribbonClass);
        }
        $('INPUT:not(.noDisable),TEXTAREA:not(.noDisable),SELECT:not(.noDisable)', ctnr).each(function() { $(this).attr('disabled', true); })
    }
}

/**
 * Prüft die Anzeige der Cbx-Auswahl bei Nutzung der Vorlage mit allen BK-Masken
 * Wenn innerhalb des Containers mit den Vorlagen alle Steuerfelder gesetzt sind,
 * wird davon ausgegangen, dass die Befüllung von außen erfolgte und deshalb die
 * Auswahl entfernt werden kann.
 * @returns
 */
function checkBKTemplateChooserVisibility() {

    $('[xn^=bkVorlagenAuswahl].CXSelect').each(function() {
        var parent = $(this).closest('.XContainer');
        var flag = false;
        var elemName = $(this).attr('xn');

        $('[name^=IsOrganization]', parent).each(function() {
            if ($(this).val() !== "") {
                flag = true;
                return;
            }
        });

        if (!flag) {
            $('[name^=IsIndividualPerson]', parent).each(function() {
                if ($(this).val() !== "") {
                    flag = true;
                    return;
                }
            });
        }

        if (flag) {
            $('[name^=TrustLevel]', parent).each(function() {
                if ($(this).val() !== "") {
                    flag = false;
                    return;
                }
            });
        }

        if (!flag) {
            $("[xn='" + elemName + "']").remove();
        }
    });
}

$('document').ready(function() {
    /** Funktionalität für Cbx-Auswahl oder DropDown bei Nutzung der BK-Vorlage mit allen BK-Daten-Masken (Person+Org) */
    $('[name^="bkVorlagenAuswahl"]').on("click", function() {
        try {
            var type = $(this).val();
            var typeNotChecked = $('[xn="' + $(this).attr("name") + '"] INPUT[type=radio]').not(":checked").val();
            if (typeNotChecked === undefined) {
                typeNotChecked = $('[xn="' + $(this).attr("name") + '"] SELECT option').not(':selected').filter(':first').val();
            }
            var parentCtnr = $(this).closest("[name=ctnrAllBK]");

            $("[name^='" + type + "']", parentCtnr).val("true");
            $("[name^='" + typeNotChecked + "']", parentCtnr).val("");

            checkBKFieldSetVisibility();
        } catch (err) {
            console.error(err);
        }
    });

    checkBKTemplateChooserVisibility();

    checkBKFieldSetVisibility();
    showTrustLevel();
});