var Modules;
(function (Modules) {
    /**
     * Class contains all functionality for the Law number 13.1.d
     * @returns
     */
    class _21_1_d {
        constructor() {
            $("#dringlichkeit-alt").change((e) => this.handleDringlichkeit(e));
        }
        /**
         * Handles the dringlichkeit change and shows the specific alternative filling
         * @param e
         */
        handleDringlichkeit(e) {
            Classes.Decision.Dringlichkeit = $(e.currentTarget).val();
            for (let dringlichkeit in Dringlichkeit) {
                if (dringlichkeit != Dringlichkeit[Dringlichkeit.Wähle]) {
                    $("#" + Dringlichkeit[dringlichkeit]).hide();
                }
            }
            $("#" + Dringlichkeit[Classes.Decision.Dringlichkeit]).show();
        }
        /**
         * Generates the word file
         */
        GenerateWord() {
            var template = Classes.TemplateContainer.Grund_13_1_d;
            template = template.replace("{projekt}", Modules.WordWriter.ReplaceSpecialCharacters(Classes.Decision.Projekt));
            template = template.replace("{projekt_nr}", Modules.WordWriter.ReplaceSpecialCharacters(Classes.Decision.ProjektNr));
            template = template.replace("{vob_21_1_d_1}", Modules.WordWriter.ReplaceSpecialCharacters(this.weshalbDringend));
            if (+Classes.Decision.Dringlichkeit === Dringlichkeit.UnvorhergesehenesEreigniss) {
                template = template.replace("{vob_21_1_d_2}", Modules.WordWriter.ReplaceSpecialCharacters(this.welchesUnvorhersehbareEreignis));
                template = template.replace("{vob_21_1_d_3}", Modules.WordWriter.ReplaceSpecialCharacters(this.welcherZusammenhangDringlichkeit));
                // replcae other alt fields with empty value
                template = template.replace("<chk_vob_21_1_d_3_j_state>", "0");
                template = template.replace("<chk_vob_21_1_d_3_j_look>", "☐");
                template = template.replace("<chk_vob_21_1_d_3_n_state>", "0");
                template = template.replace("<chk_vob_21_1_d_3_n_look>", "☐");
                template = template.replace("{vob_21_1_d_4}", "");
                template = template.replace("{vob_21_1_d_5}", "");
            }
            else if (+Classes.Decision.Dringlichkeit === Dringlichkeit.AusfuehrungsterminVsVerfahrensdauer) {
                // always set to no, because with yes no freihändiges Verfahren can be selected and is checked
                template = template.replace("<chk_vob_21_1_d_3_j_state>", "0");
                template = template.replace("<chk_vob_21_1_d_3_j_look>", "☐");
                template = template.replace("<chk_vob_21_1_d_3_n_state>", "1");
                template = template.replace("<chk_vob_21_1_d_3_n_look>", "☒");
                template = template.replace("{vob_21_1_d_4}", Modules.WordWriter.ReplaceSpecialCharacters(this.welcheKonsequenzen));
                template = template.replace("{vob_21_1_d_5}", Modules.WordWriter.ReplaceSpecialCharacters(this.oeffentlichesInteresse));
                // replace fields of the other alt with empty value
                template = template.replace("{vob_21_1_d_2}", "");
                template = template.replace("{vob_21_1_d_3}", "");
            }
            return template;
        }
        /**
         * checks if all fields are filled
         * @returns
         */
        CheckFields() {
            var allValid = false;
            // first fill all fields
            this.weshalbDringend = $("#dringlichkeit").val();
            this.welchesUnvorhersehbareEreignis = $("#welches-unverhersehbare-ereignis").val();
            this.welcherZusammenhangDringlichkeit = $("#welcher-zusammenhang-unverhersehbare-ereignis").val();
            this.oeffentlichesInteresse = $("#oeffentliches-interesse").val();
            this.welcheKonsequenzen = $("#konsequenzen-öffentliches-verfahren").val();
            let wurdeAbsichtlichVerzoegert = parseInt($("#absichtlich-verzoegert-alt").val());
            // when user selected the project was absichtlich verzögert, he can't create a freihändiges Verfahren
            if (+Classes.Decision.Dringlichkeit === Dringlichkeit.AusfuehrungsterminVsVerfahrensdauer && wurdeAbsichtlichVerzoegert === 1) {
                alert("Bei einer absichtlichen Verzögerung ist keine freihändige Vergabe möglich.");
            }
            else if (this.weshalbDringend && ((+Classes.Decision.Dringlichkeit === Dringlichkeit.UnvorhergesehenesEreigniss && this.welchesUnvorhersehbareEreignis && this.welcherZusammenhangDringlichkeit) || (+Classes.Decision.Dringlichkeit === Dringlichkeit.AusfuehrungsterminVsVerfahrensdauer && this.oeffentlichesInteresse && this.welcheKonsequenzen && wurdeAbsichtlichVerzoegert > 0))) {
                allValid = true;
            }
            return allValid;
        }
        /**
         * Resets all the fields of the 13_1_d
         */
        ResetGrund() {
            $("#dringlichkeit").val("");
            $("#dringlichkeit-alt:nth-child(0)").prop("selected", true);
            $("#UnvorhergesehenesEreigniss").hide();
            $("#AusfuehrungsterminVsVerfahrensdauer").hide();
            $("#welches-unverhersehbare-ereignis").val("");
            $("#welcher-zusammenhang-unverhersehbare-ereignis").val("");
            $("#absichtlich-verzoegert-alt:nth-child(0)").prop("selected", true);
            $("#oeffentliches-interesse").val("");
            $("#konsequenzen-öffentliches-verfahren").val("");
        }
    }
    Modules._21_1_d = _21_1_d;
})(Modules || (Modules = {}));
//# sourceMappingURL=_21_1_d.js.map