var Modules;
(function (Modules) {
    /**
     * Class contains all functionality for the Law number 13.1.e
     * @returns
     */
    class _21_1_e {
        constructor() {
            $("input:radio[name=wert-zusätzliche-bauleistung-auswahl]").change((e) => this.handleZusätzlicheBauleistung(e));
        }
        /**
         * Event when user changes the wert zusätzliche bauleistung
         * @param {Event} e
         */
        handleZusätzlicheBauleistung(e) {
            if ($("input[name='wert-zusätzliche-bauleistung-auswahl']:checked").val() == "0") {
                this.wertZusätzlicheBauleistung = false;
                $("#wert-zusätzliche-bauleistung-nein").hide();
            }
            if ($("input[name='wert-zusätzliche-bauleistung-auswahl']:checked").val() == "1") {
                this.wertZusätzlicheBauleistung = true;
                $("#wert-zusätzliche-bauleistung-nein").show();
            }
        }
        /**
         * Generates the word file
         */
        GenerateWord() {
            var template = Classes.TemplateContainer.Grund_13_1_e;
            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_e_1}", Modules.WordWriter.ReplaceSpecialCharacters(this.zusätzlicheBauleistungen));
            if (this.wertZusätzlicheBauleistung) {
                template = template.replace("<chk_vob_21_1_e_2_j_state>", "1");
                template = template.replace("<chk_vob_21_1_e_2_j_look>", "☒");
                template = template.replace("<chk_vob_21_1_e_2_n_state>", "0");
                template = template.replace("<chk_vob_21_1_e_2_n_look>", "☐");
            }
            else {
                template = template.replace("<chk_vob_21_1_e_2_j_state>", "0");
                template = template.replace("<chk_vob_21_1_e_2_j_look>", "☐");
                template = template.replace("<chk_vob_21_1_e_2_n_state>", "1");
                template = template.replace("<chk_vob_21_1_e_2_n_look>", "☒");
            }
            template = template.replace("{vob_21_1_e_3}", Modules.WordWriter.ReplaceSpecialCharacters(this.notwendigkeitZusatz));
            switch (+this.anbieterWechselAlt) {
                case Anbieterwechsel.WirtschaftlichTechnisch: {
                    template = template.replace("{vob_21_1_e_4_1}", Modules.WordWriter.ReplaceSpecialCharacters(this.anbieterWechsel));
                    template = template.replace("{vob_21_1_e_4_2}", "");
                    template = template.replace("{vob_21_1_e_4_3}", "");
                    break;
                }
                case Anbieterwechsel.ErheblicheSchwierigkeiten: {
                    template = template.replace("{vob_21_1_e_4_1}", "");
                    template = template.replace("{vob_21_1_e_4_2}", Modules.WordWriter.ReplaceSpecialCharacters(this.anbieterWechsel));
                    template = template.replace("{vob_21_1_e_4_3}", "");
                    break;
                }
                case Anbieterwechsel.Kostensteigerung: {
                    template = template.replace("{vob_21_1_e_4_1}", "");
                    template = template.replace("{vob_21_1_e_4_2}", "");
                    template = template.replace("{vob_21_1_e_4_3}", Modules.WordWriter.ReplaceSpecialCharacters(this.anbieterWechsel));
                    break;
                }
                default: {
                    break;
                }
            }
            return template;
        }
        /**
         * Checks if all fields are filled
         * @returns
         */
        CheckFields() {
            var allValid = false;
            // first fill all fields
            this.zusätzlicheBauleistungen = $("#zusätzliche-bauleistungen").val();
            this.notwendigkeitZusatz = $("#notwendigkeit-zusatzleistungen").val();
            this.anbieterWechselAlt = $("#anbieter-wechsel-alt").val();
            this.anbieterWechsel = $("#anbieter-wechsel").val();
            if (this.wertZusätzlicheBauleistung) {
                alert("Keine freihändige Vergabe möglich!");
            }
            else if (this.zusätzlicheBauleistungen && this.notwendigkeitZusatz && +this.anbieterWechselAlt > 0 && this.anbieterWechsel && !this.wertZusätzlicheBauleistung) {
                allValid = true;
            }
            return allValid;
        }
        /**
         * Resets all fields of the reason 13_1_e
         */
        ResetGrund() {
            $("#zusätzliche-bauleistungen").val("");
            $("#wert-zusätzliche-bauleistung-ja").val("1");
            $("#wert-zusätzliche-bauleistung-nein-radio").val("1");
            $("#notwendigkeit-zusatzleistungen").val("");
            $("#anbieter-wechsel-alt:nth-child(0)").prop("selected", true);
            $("#anbieter-wechsel").val("");
        }
    }
    Modules._21_1_e = _21_1_e;
})(Modules || (Modules = {}));
//# sourceMappingURL=_21_1_e.js.map