From 1d65f322b209a112ab345e9e23f454124f3cf35a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20Fr=C3=B6hle?= Date: Sun, 2 Dec 2018 09:41:12 +0100 Subject: [PATCH] v2 up handler --- dist/autoloader.js | 2 +- dist/autoloaderV2.js | 1183 +++++++++++++++++++++++++++++++++++++++++- src/autoloaderV2.js | 1181 +++++++++++++++++++++++++++++++++++++++++ src/handler.js | 1174 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 3538 insertions(+), 2 deletions(-) create mode 100755 src/handler.js diff --git a/dist/autoloader.js b/dist/autoloader.js index 04fffb1..45d10cc 100755 --- a/dist/autoloader.js +++ b/dist/autoloader.js @@ -1,4 +1,4 @@ -/*Generated on:Sat Dec 01 2018 16:06:33 GMT+0100 (CET)*/ +/*Generated on:Sun Dec 02 2018 09:41:12 GMT+0100 (CET)*/ var AutomaticDispose_Branch = "master"; var AutomaticDispose_URL = "https://jf.git.rest/Jomaar/automatic-dispose/raw/branch/"; var da_lss_adis_time = new Date().getTime(); diff --git a/dist/autoloaderV2.js b/dist/autoloaderV2.js index d17db55..4ab4937 100644 --- a/dist/autoloaderV2.js +++ b/dist/autoloaderV2.js @@ -1,4 +1,4 @@ -/*Generated on:Sat Dec 01 2018 16:06:33 GMT+0100 (CET)*/ +/*Generated on:Sun Dec 02 2018 09:41:12 GMT+0100 (CET)*/ /* * Dexie.js - a minimalistic wrapper for IndexedDB * =============================================== @@ -17085,6 +17085,8 @@ class AutomaticDispose { // - if (window.location.pathname.indexOf("/missions/") !== -1 && window.name == 'adis-sprechwunsch-police') { self.Check_Call_Police_Active(); + } else { + self.StartMission(); } }); @@ -18236,6 +18238,1185 @@ class AutomaticDispose { }); }); } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Start Mission Handler + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + MissionType = null; + MissionID = null; + MyRunner = null; + MyRunnerSettings = null; + StartMission() { + const self = this; + self.MissionType = null; + + const runnerID = self.ADisSettings.runner_iframesName.indexOf(window.name); + self.MyRunner = self.ADisSettings.runner[runnerID]; + self.MyRunnerSettings = self.ADisSettings.runner_settings[runnerID]; + setTimeout(function () { + self.MissionID = document.location.pathname.substr(document.location.pathname.lastIndexOf("/") + 1); + var help_el = $('a#mission_help'); + if (help_el.length > 0) { + self.MissionType = help_el[0].href.split("?")[0]; + var re = /\d+$/i; + var found = self.MissionType.match(re); + self.MissionType = Number(found[0]); + } else { + self.MissionType = null; + } + console.log("MissionID", self.MissionID); + console.log("MissionType", self.MissionType); + self.ADisSettings().then((setting) => { + if (setting[runnerSettings] != 'true') { + return self.ADisDB.ADisMissionsOwn.where({ + missionID: self.MissionID, + runner: MyRunner, + done: 'false' + }).and(function (item) { + return item.next_check <= Math.floor(new Date().getTime() / 1000) + }).limit(1) + } + }).then((Wunsch) => { + if (Wunsch !== undefined) { + return Wunsch.count(function (count) { + if (count > 0) { + return Wunsch.each((mywunsch) => { + return self.MainHandler() + }); + } + return tellParent(`console.log('done:${window.name}:${self.MissionID}');MissionDelete('${window.name}', '${self.MissionID}');`); + }); + } + return tellParent(`console.log('done:${window.name}:${self.MissionID}');MissionDelete('${window.name}', '${self.MissionID}');`); + }) + }, 1500); + } + + + MainHandler() { + const self = this; + if (includesString($('#iframe-inside-container > div.missionNotFound > div.missionNotFoundText').text(), 'Der Einsatz wurde erfolgreich abgeschlossen.')) { + console.log("DONE!"); + return tellParent(`console.log('done:${window.name}:${self.MissionID}');MissionDelete('${window.name}', '${self.MissionID}');`); // delete Mission here as completed + } + if (includesString($('#iframe-inside-container > div.alert.fade.in.alert-success').text(), "wurde erfolgreich informiert") /*|| $('#vehicle_show_table_all input[type="checkbox"]:checked').size() > 0*/ ) { + console.log("SEND"); + return tellParent(`console.log('update:${window.name}:${self.MissionID}');MissionUpdateDone('${window.name}', '${self.MissionID}');`); // update Mission here as updated or full + } else { + setTimeout(function () { + if (['adis-ownmissions', 'adis-krankentransporte'].indexOf(window.name) != -1) { + console.log("WILL SEND?") + self.CheckMissionAutomatic(); + } else if (['adis-verbandmission', 'adis-verbandmission-event'].indexOf(window.name) != -1) { + self.WorkVerbandMission(); + } + }, 250); + } + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Grab Run Verbands Missions + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + WorkVerbandMission() { + const self = this; + self.ADisSettings().then((setting) => { + var title = document.getElementById('missionH1'); + var isVerband = title.innerText.toLowerCase().includes("[verband]"); + if (setting['Alliance-Automatic'] == 'true' && isVerband) { + if ([52, 55, 129, 203].indexOf(self.MissionType) !== -1 && $('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]')[0].click(); + } else if ([53, 130, 202].indexOf(self.MissionType) !== -1) { + if ($('#vehicle_show_table_all tr[vehicle_type="FLF"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="FLF"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="GW-A"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="GW-A"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="GW-Öl"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="GW-Öl"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="NEF"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="NEF"] input[type="checkbox"]')[0].click(); + } + } else if ([54, 56].indexOf(self.MissionType) !== -1) { + if ($('#vehicle_show_table_all tr[vehicle_type="FLF"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="FLF"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="GW-A"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="GW-A"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="GW-Öl"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="GW-Öl"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="LF 20"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="LF 20"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="LF 20/16"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="LF 20/16"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="HLF 20"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="HLF 20"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="TLF 8/8"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="TLF 8/8"] input[type="checkbox"]')[0].click(); + } + } else { + if ($('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="KTW Typ B"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="KTW Typ B"] input[type="checkbox"]')[0].click(); + } + } + // Todo add alternative cars, please no LF because of Mülltonne.... + if ($('#vehicle_show_table_all input[type="checkbox"]:checked').size() > 0) { + $('#mission_alarm_btn').click(); + } + } + }); + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Grab Mission-Configuration from GitHub + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + CheckMissionAutomatic() { + const self = this; + var setOpt; + var missionLoad; + if (window.name == 'adis-ownmissions') { + setOpt = 'MissionsOwn-Automatic'; + missionLoad = 'ADisMissionsOwn'; + } else if (window.name == 'adis-krankentransporte') { + setOpt = 'Krankentransport-Automatic'; + missionLoad = 'ADisKrankentransport'; + } + if (setOpt && missionLoad) { + self.ADisSettings().then((setting) => { + if (setting[setOpt] == 'true') { + var coll = self.ADisDB.ADisMissions.where({ + done: 'false' + }) + if (missionLoad != "ADisKrankentransport") { + coll = coll.and(function (item) { + return item.next_check <= Math.floor(new Date().getTime() / 1000) + }); + } + return coll.limit(1).toArray() + } + }).then((Missions) => { + if (Missions.length > 0) { + var Mission = Missions[0]; + self.GetMissionConfiguration(missionLoad == 'ADisKrankentransport' ? 147 : Mission.type); + } + }); + } + } + + MissionConfig = {} + + GetMissionConfiguration(MissionType) { + const self = this; + return self.ADisDB.transaction('rw', [self.ADisDB.ADisMissionsOwn, self.ADisDB.ADisAvailabelMissions], () => { + return self.ADisDB.ADisAvailabelMissions.get({ + type: MissionType.toString() + }).then((availableMission) => { + if (availableMission != undefined && availableMission.jsondata) { + self.MissionConfig = availableMission.jsondata; + console.log('MissionConfig: ', MissionType.toString(), JSON.stringify(self.MissionConfig, null, 2)) + self.StartAlarmProcess(); + } else { + var updateData = { + available: false, + next_check: CurrentTime + 60 + }; + self.UpdateOwnMissionsToDone(self.MissionID, updateData); + } + }); + }); + + } + + Vehicles = {} + Patients = {} + + StartAlarmProcess() { + const self = this; + setTimeout(function () { + Promise.resolve().then(async () => { + return await self.PrepareVehicleNeedList(); + }).then(async () => { + return await self.CollectInvolvedVehicles(); + }).then(async () => { + return await self.CollectPatients(); + }) + .then(async () => { + return await self.ProcessEmergencyMedicalService() + }) + .then(async () => { + return await self.ProcessFireDepartment() + }) + .then(async () => { + return await self.ProcessPoliceDepartment() + }) + .then(async () => { + return await self.ProcessTechnicalEmergencyService() + }) + .then(async () => { + return await self.ProcessWaterRescue() + }).then(() => { + console.log("Clicked Vehicles: ", $('#vehicle_show_table_all input[type="checkbox"]:checked').size(), $('#vehicle_show_table_all input[type="checkbox"]:checked')); + if (['adis-ownmissions', 'adis-krankentransporte', 'adis-verbandmission'].indexOf(window.name) !== -1) { + console.log("WILL KLICK SEND") + setTimeout(() => { + $('#mission_alarm_btn').click(); + tellParent(`setTimeout(function(){console.log('ok:${window.name}:${self.MissionID}');MissionUpdateDone('${window.name}', '${self.MissionID}');},500);`); + }, 250); + } + }) + }, 500); + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Collect Involved Vehicles & Patients + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + CollectInvolvedVehicles() { + let self = this; + $("#mission_vehicle_driving tbody").find("tr").each(function (_, elem) { + var VehicleID = $(elem).find("a").first().attr("href").substr($(elem).find("a").first().attr("href").lastIndexOf("/") + 1); + var VehicleName = $(elem).find("a").first().text(); + var VehicleType = $(elem).find("a").first().attr("vehicle_type_id"); + + self.Vehicles[VehicleID] = { + "id": VehicleID, + "name": VehicleName, + "type": VehicleType + } + }); + + $("#mission_vehicle_at_mission tbody").find("tr").each(function (_, elem) { + var VehicleID = $(elem).find("a").first().attr("href").substr($(elem).find("a").first().attr("href").lastIndexOf("/") + 1); + var VehicleName = $(elem).find("a").first().text(); + var VehicleType = $(elem).find("a").first().attr("vehicle_type_id"); + + self.Vehicles[VehicleID] = { + "id": VehicleID, + "name": VehicleName, + "type": VehicleType + } + }); + + return self.Vehicles; + } + + CollectPatients() { + const self = this; + let PatientCounter = 0; + + $(".mission_patient").each(function (_, elem) { + var PatientName = $(elem).text(); + var PatientNeedRTW = false; + var PatientNeedNEF = false; + var PatientNeedRTH = false; + var PatientNeedLNA = false; + var PatientNeedOrgL = false; + var PatientNeedSEGKTWB = false; + var PatientNeedTragehilfe = false; + + // Wir benötigen einen RTW oder KTW Typ B. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen einen RTW oder KTW Typ B") != -1) { + PatientNeedSEGKTWB = true; + } + + // Wir benötigen einen RTW. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen ein RTW") != -1) { + PatientNeedRTW = true; + } + + // Wir benötigen einen NEF. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen ein NEF") != -1) { + PatientNeedNEF = true; + } + + // Wir benötigen einen RTH. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen ein RTH") != -1) { + PatientNeedRTH = true; + } + + // Wir benötigen einen LNA. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen einen LNA") != -1) { + PatientNeedLNA = true; + } + + // Wir benötigen einen OrgL. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen einen OrgL") != -1) { + PatientNeedOrgL = true; + } + + // Wir benötigen eine Tragehilfe (z.B. durch ein LF). + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen eine Tragehilfe") != -1) { + PatientNeedTragehilfe = true; + } + + self.Patients[PatientCounter] = { + "name": PatientName, + "need_RTW": PatientNeedRTW, + "need_NEF": PatientNeedNEF, + "need_RTH": PatientNeedRTH, + "need_LNA": PatientNeedLNA, + "need_OrgL": PatientNeedOrgL, + "need_SEG_KTWB": PatientNeedSEGKTWB, + "need_Tragehilfe": PatientNeedTragehilfe + } + + PatientCounter++; + }); + + return self.Patients; + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Process Emergency_Medical_Service + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ProcessEmergencyMedicalService() { + + const self = this; + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - + // - Emergency Medical Service: Vehicles + // - + // - 38: KTW + // - 28: RTW + // - 29: NEF + // - 74: NAW + // - 73: GRTW + // - 31: RTH + // - 55: LNA + // - 56: OrgL + // - + // - 58: (SEG) KTW Typ B + // - 59: (SEG) ELW 1 + // - 60: (SEG) GW-San + // - + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + if (typeof self.MissionConfig.emergency_medical_service == "object") // Wenn der EMS-Block in der Config definiert ist + { + + if (Object.keys(self.Patients).length >= 5) { // need LNA + self._ADisVehiclesNeed["55"] = 1; + } + + if (Object.keys(self.Patients).length >= 10) { // need OrgL + self._ADisVehiclesNeed["56"] = 1; + } + + //$.each(Patients, function (Key, Patient) { + for (var Key in self.Patients) { + var Patient = self.Patients[Key]; + if (self.MissionConfig.emergency_medical_service.use_KTW == true) { + if (!Patient.need_RTW && !Patient.need_NEF && !Patient.need_RTH) + self._ADisVehiclesNeed["38"]++; + } + + if (Patient.need_LNA && self._ADisVehiclesNeed["55"] < 1) + self._ADisVehiclesNeed["55"] = 1; + + if (Patient.need_OrgL && self._ADisVehiclesNeed["56"] < 1) + self._ADisVehiclesNeed["56"] = 1; + + if (Patient.need_NEF == true) + self._ADisVehiclesNeed["29"]++; + + if (Patient.need_RTW == true) + self._ADisVehiclesNeed["28"]++; + + if (Patient.need_RTH == true) + self._ADisVehiclesNeed["31"]++; + + if (Patient.need_Tragehilfe == true) + self._ADisVehiclesNeed["0"]++; + }; + + + if (self.MissionConfig.emergency_medical_service.use_RTW == true) + self._ADisVehiclesNeed["28"]++; + + if (self.MissionConfig.emergency_medical_service.use_NEF == true) + self._ADisVehiclesNeed["29"]++; + + if (self.MissionConfig.emergency_medical_service.use_RTH == true) + self._ADisVehiclesNeed["31"]++; + + // TODO: need to be refactored to make sure first KTW Typ B before RTW. + if (self.MissionConfig.emergency_medical_service.use_SEG_ELW1_Only == "true") { + self._ADisVehiclesNeed["59"]++; + } else if (self.MissionConfig.emergency_medical_service.use_SEG_FULL == "true" || Object.keys(self.Patients).length >= 3) { + self._ADisVehiclesNeed["58"]++; + self._ADisVehiclesNeed["58"]++; // 3x KTW Type B + self._ADisVehiclesNeed["58"]++; + self._ADisVehiclesNeed["59"]++; + self._ADisVehiclesNeed["60"]++; + } + + var VehicleTable; + + if ($("#vehicle_show_table_body_all").length > 0) { + VehicleTable = $("#vehicle_show_table_body_all"); + } else { + VehicleTable = $("#vehicle_show_table_body_rett"); + } + + VehicleTable.find(".vehicle_select_table_tr").each(function (_, elem) { + var VehicleID = $(elem).attr("id").replace("vehicle_element_content_", ""); + // var VehicleDistanceTime = $("#vehicle_sort_" + VehicleID).attr("sortvalue"); + var VehicleType = $(elem).attr("vehicle_type"); + + if ($("#vehicle_checkbox_" + VehicleID + ":enabled").length === 0) { + return; + } + + if (VehicleType == "KTW" && self._ADisVehiclesNeed["38"] > 0) { + // console.log(" Automatic Dispose: Fahrzeug " + VehicleID + " " + VehicleType + " markiert"); + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["38"]--; + } else if ((VehicleType == "LF 20" || VehicleType == "LF 10" || + VehicleType == "LF 8/6" || VehicleType == "LF 20/16" || + VehicleType == "LF 10/6" || VehicleType == "LF 16-TS" || + VehicleType == "HLF 20" || VehicleType == "TSF-W" || + VehicleType == "TLF 2000" || VehicleType == "TLF 3000" || + VehicleType == "TLF 8/8" || VehicleType == "TLF 8/18" || + VehicleType == "TLF 16/24-Tr" || VehicleType == "TLF 16/25" || + VehicleType == "TLF 16/45" || VehicleType == "TLF 20/40" || + VehicleType == "TLF 20/40-SL" || VehicleType == "TLF 16") && + self._ADisVehiclesNeed["0"] + self._ADisVehiclesNeed["1"] + self._ADisVehiclesNeed["6"] + self._ADisVehiclesNeed["7"] + + self._ADisVehiclesNeed["8"] + self._ADisVehiclesNeed["9"] + self._ADisVehiclesNeed["30"] + self._ADisVehiclesNeed["37"] + + self._ADisVehiclesNeed["17"] + self._ADisVehiclesNeed["18"] + self._ADisVehiclesNeed["19"] + self._ADisVehiclesNeed["20"] + + self._ADisVehiclesNeed["21"] + self._ADisVehiclesNeed["22"] + self._ADisVehiclesNeed["23"] + self._ADisVehiclesNeed["24"] + + self._ADisVehiclesNeed["25"] + self._ADisVehiclesNeed["26"] > 0) { // LF acts as 'Tragehilfe' + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["0"]--; + } else if (VehicleType == "NAW" && self._ADisVehiclesNeed["28"] > 0 && self._ADisVehiclesNeed["29"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["74"]--; + self._ADisVehiclesNeed["28"]--; + self._ADisVehiclesNeed["29"]--; + } else if (VehicleType == "GRTW" && self._ADisVehiclesNeed["73"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["73"]--; + } else if (VehicleType == "RTW" && self._ADisVehiclesNeed["28"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["28"]--; + } else if (VehicleType == "NEF" && self._ADisVehiclesNeed["29"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["29"]--; + } else if (VehicleType == "RTH" && self._ADisVehiclesNeed["31"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["31"]--; + } else if (VehicleType == "KdoW-LNA" && self._ADisVehiclesNeed["55"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["55"]--; + } else if (VehicleType == "KdoW-OrgL" && self._ADisVehiclesNeed["56"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["56"]--; + } else if (VehicleType == "KTW Typ B" && self._ADisVehiclesNeed["58"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["58"]--; + self._ADisVehiclesNeed["28"]--; // no need for RTW if KTW Type B is called + } else if (VehicleType == "ELW 1 (SEG)" && self._ADisVehiclesNeed["59"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["59"]--; + } else if (VehicleType == "GW-San" && self._ADisVehiclesNeed["60"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["60"]--; + self._ADisVehiclesNeed["29"]--; // no need for NEF if GW-SAN is called + } + }); + return true; + } + return false; + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Process Fire_Department + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ProcessFireDepartment() { + const self = this; + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - + // - Fire Department: Vehicles + // - + // - 0: LF 20 + // - 1: LF 10 + // - 6: LF 8/6 + // - 7: LF 20/16 + // - 8: LF 10/6 + // - 9: LF 16-TS + // - 30: HLF 20 + // - 37: TSF-W + // - + // - 17: TLF 2000 + // - 18: TLF 3000 + // - 19: TLF 8/8 + // - 20: TLF 8/18 + // - 21: TLF 16/24-Tr + // - 22: TLF 16/25 + // - 23: TLF 16/45 + // - 24: TLF 20/40 + // - 25: TLF 20/40-SL + // - 26: TLF 16 + // - + // - 2: DLK 23 + // - 3: ELW 1 + // - 34: ELW 2 + // - 36: MTW + // - 57: FwK + // - + // - 4: RW + // - 5: GW-A + // - 10: GW-Öl + // - 12: GW-Mess + // - 53: GW-Dekon-P + // - 27: GW-Gefahrgut + // - 33: GW-Höhenrettung + // - + // - 11: GW-L2-Wasser + // - 13: SW 1000 + // - 14: SW 2000 + // - 15: SW 2000-Tr + // - 16: SW KatS + // - + // - 71: AB-MZB (see WaterRescue) + // - + // - 46: WLF + // - 47: AB-Rüst + // - 48: AB-Atemschutz + // - 49: AB-Öl + // - 54: AB-Dekon-P + // - 62: AB-Schlauch + // - + // - 75: FLF + // - 76: Rettungstreppe + // - 77: AB-Gefahrgut + // - 78: AB-Einsatzleitung + // - + // - 83: GW-Werkfeuerwehr + // - 84: ULF mit Löscharm + // - 85: TM 50 + // - 86: Turbolöscher + // - + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + if (typeof self.MissionConfig.fire_department == "object") // Wenn der FD-Block in der Config definiert ist + { + + self._ADisVehiclesNeed["0"] += parseInt(self.MissionConfig.fire_department.num_LF); + self._ADisVehiclesNeed["3"] += parseInt(self.MissionConfig.fire_department.num_ELW_1); + self._ADisVehiclesNeed["34"] += parseInt(self.MissionConfig.fire_department.num_ELW_2); + self._ADisVehiclesNeed["2"] += parseInt(self.MissionConfig.fire_department.num_DLK); + self._ADisVehiclesNeed["4"] += parseInt(self.MissionConfig.fire_department.num_RW); + self._ADisVehiclesNeed["57"] += parseInt(self.MissionConfig.fire_department.num_FwK); + self._ADisVehiclesNeed["5"] += parseInt(self.MissionConfig.fire_department.num_GW_A); + self._ADisVehiclesNeed["27"] += parseInt(self.MissionConfig.fire_department.num_GW_G); + self._ADisVehiclesNeed["10"] += parseInt(self.MissionConfig.fire_department.num_GW_Oel); + self._ADisVehiclesNeed["12"] += parseInt(self.MissionConfig.fire_department.num_GW_Mess); + self._ADisVehiclesNeed["11"] += parseInt(self.MissionConfig.fire_department.num_SW); + self._ADisVehiclesNeed["33"] += parseInt(self.MissionConfig.fire_department.num_GW_Hoeh); + self._ADisVehiclesNeed["53"] += parseInt(self.MissionConfig.fire_department.num_Dekon_P); + self._ADisVehiclesNeed["75"] += parseInt(self.MissionConfig.fire_department.num_FLF); + self._ADisVehiclesNeed["76"] += parseInt(self.MissionConfig.fire_department.num_Rettungstreppe); + self._ADisVehiclesNeed["83"] += parseInt(self.MissionConfig.fire_department.num_GW_Werkfeuerwehr); + self._ADisVehiclesNeed["84"] += parseInt(self.MissionConfig.fire_department.num_ULF_mit_Loescharm); + self._ADisVehiclesNeed["86"] += parseInt(self.MissionConfig.fire_department.num_Turboloescher); + + var dangerText = $('#iframe-inside-container > div.alert.alert-danger').text(); + + if (includesString(dangerText, "Wir benötigen min.") && includesString(dangerText, "Feuerwehrleute.")) { + const weNeed = self._ADisVehiclesNeed["0"]; + const regex = /(\d+) Feuerwehrleute/gm; + const newNeed = Math.ceil(Number(parseInt(dangerText.match(regex))) / 6) - weNeed; + self._ADisVehiclesNeed["0"] = newNeed; + } + + $("#vehicle_show_table_body_all").find(".vehicle_select_table_tr").each(function (_, elem) { + var VehicleID = $(elem).attr("id").replace("vehicle_element_content_", ""); + // var VehicleDistanceTime = $("#vehicle_sort_" + VehicleID).attr("sortvalue"); + var VehicleType = $(elem).attr("vehicle_type"); + + if ($("#vehicle_checkbox_" + VehicleID + ":enabled").length === 0) { + return; + } + + if ((VehicleType == "LF 20" || VehicleType == "LF 10" || + VehicleType == "LF 8/6" || VehicleType == "LF 20/16" || + VehicleType == "LF 10/6" || VehicleType == "LF 16-TS" || + VehicleType == "HLF 20" || VehicleType == "TSF-W" || + VehicleType == "TLF 2000" || VehicleType == "TLF 3000" || + VehicleType == "TLF 8/8" || VehicleType == "TLF 8/18" || + VehicleType == "TLF 16/24-Tr" || VehicleType == "TLF 16/25" || + VehicleType == "TLF 16/45" || VehicleType == "TLF 20/40" || + VehicleType == "TLF 20/40-SL" || VehicleType == "TLF 16") && + self._ADisVehiclesNeed["0"] + self._ADisVehiclesNeed["1"] + self._ADisVehiclesNeed["6"] + self._ADisVehiclesNeed["7"] + + self._ADisVehiclesNeed["8"] + self._ADisVehiclesNeed["9"] + self._ADisVehiclesNeed["30"] + self._ADisVehiclesNeed["37"] + + self._ADisVehiclesNeed["17"] + self._ADisVehiclesNeed["18"] + self._ADisVehiclesNeed["19"] + self._ADisVehiclesNeed["20"] + + self._ADisVehiclesNeed["21"] + self._ADisVehiclesNeed["22"] + self._ADisVehiclesNeed["23"] + self._ADisVehiclesNeed["24"] + + self._ADisVehiclesNeed["25"] + self._ADisVehiclesNeed["26"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["0"]--; + + } else if (VehicleType == "HLF 20" && self._ADisVehiclesNeed["4"] > 0) // HLF 20 acts as RW + { + self._ADisVehiclesNeed["0"]--; + self._ADisVehiclesNeed["4"]--; + $("#vehicle_checkbox_" + VehicleID).click(); + } else if ((VehicleType == "DLK 23" || VehicleType == "TM 50") && self._ADisVehiclesNeed["2"] > 0) // DLK 23 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["2"]--; + } else if (VehicleType == "AB-Einsatzleitung" && + self._ADisVehiclesNeed["3"] + self._ADisVehiclesNeed["34"] + self._ADisVehiclesNeed["78"] > 0) // ELW 1 + ELW 2 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["3"]--; + self._ADisVehiclesNeed["34"]--; + } else if (VehicleType == "ELW 2" && self._ADisVehiclesNeed["3"] + self._ADisVehiclesNeed["34"] > 0) // ELW 2 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["3"]--; + self._ADisVehiclesNeed["34"]--; + } else if (VehicleType == "ELW 1" && self._ADisVehiclesNeed["3"] > 0) // ELW 1 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["3"]--; + } else if (VehicleType == "MTW" && self._ADisVehiclesNeed["36"] > 0) // MTW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["36"]--; + } else if (VehicleType == "FwK" && self._ADisVehiclesNeed["57"] > 0) // FwK + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["57"]--; + } else if (VehicleType == "GWK" && + self._ADisVehiclesNeed["4"] > 0) // GWK acts as RW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["4"]--; + self._ADisVehiclesNeed["39"]--; + } else if ((VehicleType == "RW" || + VehicleType == "HLF 20" || + VehicleType == "AB-Rüst") && + self._ADisVehiclesNeed["4"] > 0) // RW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["4"]--; + } else if ((VehicleType == "GW-A" || + VehicleType == "AB-Atemschutz") && + self._ADisVehiclesNeed["5"] > 0) // GW-A + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["5"]--; + } else if ((VehicleType == "GW-Öl" || + VehicleType == "AB-Öl") && + self._ADisVehiclesNeed["10"] > 0) // GW-Öl + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["10"]--; + } else if (VehicleType == "GW-Messtechnik" && self._ADisVehiclesNeed["12"] > 0) // FwK + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["12"]--; + } else if ((VehicleType == "GW-L2-Wasser" || + VehicleType == "SW 1000" || + VehicleType == "SW 2000" || + VehicleType == "SW 2000-Tr" || + VehicleType == "SW Kats" || + VehicleType == "AB-Schlauch") && + self._ADisVehiclesNeed["11"] > 0) // SW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["11"]--; + } else if ((VehicleType == "GW-Gefahrgut" || + VehicleType == "AB-Gefahrgut") && self._ADisVehiclesNeed["27"] > 0) // GW-Gefahrgut + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["27"]--; + } else if (VehicleType == "GW-Höhenrettung" && self._ADisVehiclesNeed["33"] > 0) // GW-Höhenrettung + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["33"]--; + } else if ((VehicleType == "Dekon-P" || + VehicleType == "AB-Dekon-P") && + self._ADisVehiclesNeed["53"] > 0) // Dekon-P + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["53"]--; + } else if (VehicleType == "GW-Werkfeuerwehr" && + self._ADisVehiclesNeed["83"] > 0) // GW-Werkfeuerwehr + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["83"]--; + } else if (VehicleType == "ULF mit Löscharm" && + self._ADisVehiclesNeed["84"] > 0) // ULF mit Löscharm + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["84"]--; + } + /* + else if (VehicleType == "TM 50" && + self._ADisVehiclesNeed["85"] > 0) // TM 50 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["85"]--; + } + */ + else if (VehicleType == "Turbolöscher" && + self._ADisVehiclesNeed["86"] > 0) // Turbolöscher + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["86"]--; + } else if (VehicleType == "FLF" && + self._ADisVehiclesNeed["75"] > 0) // FLF + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["75"]--; + } else if (VehicleType == "Rettungstreppe" && + self._ADisVehiclesNeed["76"] > 0) // Rettungstreppe + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["76"]--; + } + }); + return true; + } + return false; + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Process Police_Department + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ProcessPoliceDepartment() { + const self = this; + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - + // - Fire Department: Vehicles + // - + // - 32: FuStW + // - 35: leBefKw + // - 50: GruKw + // - 51: FüKw + // - 52: GefKw + // - 72: WaWe + // - 61: Polizeihubschrauber + // - 79: SEK - ZF + // - 80: SEK - MTF + // - 81: MEK - ZF + // - 82: MEK - MTF + // - + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + if (typeof self.MissionConfig.police_department == "object") // Wenn der FD-Block in der Config definiert ist + { + self._ADisVehiclesNeed["32"] += parseInt(self.MissionConfig.police_department.num_FuStW); + self._ADisVehiclesNeed["35"] += parseInt(self.MissionConfig.police_department.num_leBefKw); + self._ADisVehiclesNeed["50"] += parseInt(self.MissionConfig.police_department.num_GruKw); + self._ADisVehiclesNeed["51"] += parseInt(self.MissionConfig.police_department.num_FueKw); + self._ADisVehiclesNeed["52"] += parseInt(self.MissionConfig.police_department.num_GefKw); + self._ADisVehiclesNeed["72"] += parseInt(self.MissionConfig.police_department.num_WaWe); + self._ADisVehiclesNeed["61"] += parseInt(self.MissionConfig.police_department.num_PHu); + self._ADisVehiclesNeed["79"] += parseInt(self.MissionConfig.police_department.num_SEK_ZF); + self._ADisVehiclesNeed["80"] += parseInt(self.MissionConfig.police_department.num_SEK_MTF); + self._ADisVehiclesNeed["81"] += parseInt(self.MissionConfig.police_department.num_MEK_ZF); + self._ADisVehiclesNeed["82"] += parseInt(self.MissionConfig.police_department.num_MEK_MTF); + + $("#vehicle_show_table_body_all").find(".vehicle_select_table_tr").each(function (_, elem) { + var VehicleID = $(elem).attr("id").replace("vehicle_element_content_", ""); + // var VehicleDistanceTime = $("#vehicle_sort_" + VehicleID).attr("sortvalue"); + var VehicleType = $(elem).attr("vehicle_type"); + + if ($("#vehicle_checkbox_" + VehicleID + ":enabled").length === 0) { + return; + } + + if (VehicleType == "FuStW" && self._ADisVehiclesNeed["32"] > 0) // FuStW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["32"]--; + } else if (VehicleType == "leBefKw" && self._ADisVehiclesNeed["35"] > 0) // leBefKw + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["35"]--; + } else if (VehicleType == "GruKw" && self._ADisVehiclesNeed["50"] > 0) // GruKw + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["50"]--; + } else if (VehicleType == "FüKw" && self._ADisVehiclesNeed["51"] > 0) // FüKw + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["51"]--; + } else if (VehicleType == "GefKw" && self._ADisVehiclesNeed["52"] > 0) // GefKw + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["52"]--; + } else if (VehicleType == "WaWe 10" && self._ADisVehiclesNeed["72"] > 0) // WaWe 10 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["72"]--; + } else if (VehicleType == "Polizeihubschrauber" && self._ADisVehiclesNeed["61"] > 0) // PHu + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["61"]--; + } else if (VehicleType == "SEK - ZF" && self._ADisVehiclesNeed["79"] > 0) // SEK-ZF + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["79"]--; + } else if (VehicleType == "SEK - MTF" && self._ADisVehiclesNeed["80"] > 0) // SEK-MTF + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["80"]--; + } else if (VehicleType == "MEK - ZF" && self._ADisVehiclesNeed["81"] > 0) // MEK-ZF + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["81"]--; + } else if (VehicleType == "MEK - MTF" && self._ADisVehiclesNeed["82"] > 0) // MEK-MTF + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["82"]--; + } + }); + return true; + } + return false; + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Process Water_Rescue + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ProcessWaterRescue() { + const self = this; + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - + // - Water Rescue: Vehicles + // - + // - 63: GW-Taucher + // - 64: GW-Wasserrettung + // - 69: Tauchkraftwagen (handel it here;TechnicalEmergencyService) + // - + // - Boote: + // - + // - 66: Anh MzB (handel it here;TechnicalEmergencyService) + // - 67: Anh SchlB (handel it here;TechnicalEmergencyService) + // - 68: Anh MzAB (handel it here;TechnicalEmergencyService) + // - 70: MZB + // - 71: AB-MZB (handel it here;FireDepartment) + // - + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + if (typeof self.MissionConfig.water_rescue == "object") { + self._ADisVehiclesNeed["63"] += parseInt(self.MissionConfig.water_rescue.num_GW_T); + self._ADisVehiclesNeed["64"] += parseInt(self.MissionConfig.water_rescue.num_GW_W); + self._ADisVehiclesNeed["70"] += parseInt(self.MissionConfig.water_rescue.num_MzB); + + $("#vehicle_show_table_body_all").find(".vehicle_select_table_tr").each(function (_, elem) { + var VehicleID = $(elem).attr("id").replace("vehicle_element_content_", ""); + // var VehicleDistanceTime = $("#vehicle_sort_" + VehicleID).attr("sortvalue"); + var VehicleType = $(elem).attr("vehicle_type"); + + if ($("#vehicle_checkbox_" + VehicleID + ":enabled").length === 0) { + return; + } + + if ((VehicleType == "GW-Taucher" || + VehicleType == "Tauchkraftwagen") && self._ADisVehiclesNeed["63"] > 0) // GW-Taucher + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["63"]--; + } else if (VehicleType == "GW-Wasserrettung" && self._ADisVehiclesNeed["64"] > 0) // GW-Wasserrettung + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["64"]--; + } else if ((VehicleType == "MZB" || VehicleType == "Anh MzB" || + VehicleType == "Anh MzAB" || VehicleType == "Anh SchlB" || + VehicleType == "AB-MZB") && self._ADisVehiclesNeed["66"] + self._ADisVehiclesNeed["67"] + self._ADisVehiclesNeed["68"] + + self._ADisVehiclesNeed["70"] + self._ADisVehiclesNeed["71"] > 0) // Boote + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["70"]--; + } + }); + return true; + } + return false; + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Process Technical Emergency Service + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ProcessTechnicalEmergencyService() { + const self = this; + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - + // - THW: Vehicles + // - + // - 39: GKW (see also FireDepartment) + // - 40: MTW-TZ + // - 41: MzKW + // - 42: LKW K 9 + // - 43: BRmG R + // - + // - 44: Anh DLE + // - 45: MLW 5 + // - 65: LKW 7 Lkr 19 tm + // - 69: Tauchkraftwagen (see WaterRescue) + // - + // - 66: Anh MzB (see WaterRescue) + // - 67: Anh SchlB (see WaterRescue) + // - 68: Anh MzAB (see WaterRescue) + // - + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + if (typeof self.MissionConfig.technical_emergency_service == "object") { + self._ADisVehiclesNeed["39"] += parseInt(self.MissionConfig.technical_emergency_service.num_GKW); + self._ADisVehiclesNeed["40"] += parseInt(self.MissionConfig.technical_emergency_service.num_MTW_TZ); + self._ADisVehiclesNeed["41"] += parseInt(self.MissionConfig.technical_emergency_service.num_MzKW); + self._ADisVehiclesNeed["42"] += parseInt(self.MissionConfig.technical_emergency_service.num_LKW_K9); + self._ADisVehiclesNeed["43"] += parseInt(self.MissionConfig.technical_emergency_service.num_BRmG_R); + self._ADisVehiclesNeed["44"] += parseInt(self.MissionConfig.technical_emergency_service.num_Anh_DLE); + self._ADisVehiclesNeed["45"] += parseInt(self.MissionConfig.technical_emergency_service.num_MLW_5); + self._ADisVehiclesNeed["65"] += parseInt(self.MissionConfig.technical_emergency_service.num_LKW_7Lkr); + + $("#vehicle_show_table_body_all").find(".vehicle_select_table_tr").each(function (_, elem) { + var VehicleID = $(elem).attr("id").replace("vehicle_element_content_", ""); + // var VehicleDistanceTime = $("#vehicle_sort_" + VehicleID).attr("sortvalue"); + var VehicleType = $(elem).attr("vehicle_type"); + + if ($("#vehicle_checkbox_" + VehicleID + ":enabled").length === 0) { + return; + } + + if (VehicleType == "GKW" && self._ADisVehiclesNeed["39"] > 0) // GKW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["39"]--; + } else if (VehicleType == "MTW-TZ" && self._ADisVehiclesNeed["40"] > 0) // MTW-TZ + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["40"]--; + } else if (VehicleType == "MzKW" && self._ADisVehiclesNeed["41"] > 0) // MzKW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["41"]--; + } else if (VehicleType == "LKW K 9" && self._ADisVehiclesNeed["42"] > 0) // LKW K 9 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["42"]--; + } else if (VehicleType == "BRmG R" && self._ADisVehiclesNeed["43"] > 0) // BRmG R + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["43"]--; + } else if (VehicleType == "Anh DLE" && self._ADisVehiclesNeed["44"] > 0) // Anh DLE + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["44"]--; + } else if (VehicleType == "MLW 5" && self._ADisVehiclesNeed["45"] > 0) // MLW 5 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["45"]--; + } else if (VehicleType == "LKW 7 Lkr 19 tm" && self._ADisVehiclesNeed["65"] > 0) // LKW 7 Lkr 19 tm + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["65"]--; + } + }); + return true; + } + return false; + } + + _ADisVehiclesNeed = {} + + PrepareVehicleNeedList() { + const self = this; + for (VehicleTypeID = 0; VehicleTypeID <= MaxVehicleID; VehicleTypeID++) { + self._ADisVehiclesNeed[VehicleTypeID] = 0; + } + for (VehicleTypeID = 0; VehicleTypeID <= MaxVehicleID; VehicleTypeID++) { + self.CountInvolvedVehiclesOfType(VehicleTypeID); + } + return true; + } + + CountInvolvedVehiclesOfType(VehicleTypeID) { + const self = this; + for (var Key in self.Vehicles) { + var Vehicle = self.Vehicles[Key]; + if (Vehicle.type == VehicleTypeID) { + self.SelectCountVehicles(VehicleTypeID); + } + }; + + $("#mission_vehicle_driving tbody, #mission_vehicle_at_mission tbody").find("tr").each(function (_, elem) { + if ($(elem).find("a").first().attr("vehicle_type_id") == VehicleTypeID) { + self.SelectCountVehicles(VehicleTypeID); + } + }); + + return; + } + + SelectCountVehicles(VehicleTypeID) { + const self = this; + var VehicleTypeID = Number(VehicleTypeID); + if ([38].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed[VehicleTypeID]--; + } else if ([0, 1, 6, 7, 8, 9, 30, 37, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26].indexOf(VehicleTypeID) != -1) { // LF acts as 'Tragehilfe' + // 30 acts as Rüstwagen + if ([30].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["4"]--; + } + // 0 acts as all LF + self._ADisVehiclesNeed["0"]--; + } else if ([74].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["74"]--; + self._ADisVehiclesNeed["28"]--; + self._ADisVehiclesNeed["29"]--; + } else if ([73].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["73"]--; + } else if ([28].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["28"]--; + } else if ([29].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["29"]--; + } else if ([31].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["31"]--; + } else if ([55].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["55"]--; + } else if ([56].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["56"]--; + } else if ([58].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["58"]--; + } else if ([59].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["59"]--; + } else if ([60].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["60"]--; + } else if ([2].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["2"]--; + } else if ([34, 78].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["3"]--; + self._ADisVehiclesNeed["34"]--; + } else if ([3].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["3"]--; + } else if ([36].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["36"]--; + } else if ([57].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["57"]--; + } else if ([4, 39].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["4"]--; + self._ADisVehiclesNeed["39"]--; + } else if ([4, 47].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["4"]--; + } else if ([5, 48].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["5"]--; + } else if ([10, 49].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["10"]--; + } else if ([12].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["12"]--; + } else if ([11, 13, 14, 15, 16].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["11"]--; + } else if ([27, 77].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["27"]--; + } else if ([33].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["33"]--; + } else if ([53, 54].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["53"]--; + } else if ([83].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["83"]--; + } else if ([84].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["84"]--; + } else if ([85].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["85"]--; + self._ADisVehiclesNeed["2"]--; + } else if ([86].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["86"]--; + } else if ([75].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["75"]--; + } else if ([76].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["76"]--; + } else if ([32].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["32"]--; + } else if ([35].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["35"]--; + } else if ([50].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["50"]--; + } else if ([51].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["51"]--; + } else if ([52].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["52"]--; + } else if ([72].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["72"]--; + } else if ([61].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["61"]--; + } else if ([79].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["79"]--; + } else if ([80].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["80"]--; + } else if ([81].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["81"]--; + } else if ([82].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["82"]--; + } else if ([63, 69].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["63"]--; + } else if ([64].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["64"]--; + } else if ([66, 67, 68, 70, 71].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["70"]--; + } else if ([40].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["40"]--; + } else if ([41].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["41"]--; + } else if ([42].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["42"]--; + } else if ([43].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["43"]--; + } else if ([44].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["44"]--; + } else if ([45].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["45"]--; + } else if ([65].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["65"]--; + } + } + + CheckNeedMoreVehicles() { + const self = this; + var NeedMoreVehicles = false; + + for (var Key in self._ADisVehiclesNeed) { + var VehicleCount = self._ADisVehiclesNeed[Key]; + if (VehicleCount > 0) { + NeedMoreVehicles = true; + } + }; + + return NeedMoreVehicles; + } } diff --git a/src/autoloaderV2.js b/src/autoloaderV2.js index 39ee766..5f7c610 100644 --- a/src/autoloaderV2.js +++ b/src/autoloaderV2.js @@ -149,6 +149,8 @@ class AutomaticDispose { // - if (window.location.pathname.indexOf("/missions/") !== -1 && window.name == 'adis-sprechwunsch-police') { self.Check_Call_Police_Active(); + } else { + self.StartMission(); } }); @@ -1066,6 +1068,1185 @@ class AutomaticDispose { }); }); } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Start Mission Handler + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + MissionType = null; + MissionID = null; + MyRunner = null; + MyRunnerSettings = null; + StartMission() { + const self = this; + self.MissionType = null; + + const runnerID = self.ADisSettings.runner_iframesName.indexOf(window.name); + self.MyRunner = self.ADisSettings.runner[runnerID]; + self.MyRunnerSettings = self.ADisSettings.runner_settings[runnerID]; + setTimeout(function () { + self.MissionID = document.location.pathname.substr(document.location.pathname.lastIndexOf("/") + 1); + var help_el = $('a#mission_help'); + if (help_el.length > 0) { + self.MissionType = help_el[0].href.split("?")[0]; + var re = /\d+$/i; + var found = self.MissionType.match(re); + self.MissionType = Number(found[0]); + } else { + self.MissionType = null; + } + console.log("MissionID", self.MissionID); + console.log("MissionType", self.MissionType); + self.ADisSettings().then((setting) => { + if (setting[runnerSettings] != 'true') { + return self.ADisDB.ADisMissionsOwn.where({ + missionID: self.MissionID, + runner: MyRunner, + done: 'false' + }).and(function (item) { + return item.next_check <= Math.floor(new Date().getTime() / 1000) + }).limit(1) + } + }).then((Wunsch) => { + if (Wunsch !== undefined) { + return Wunsch.count(function (count) { + if (count > 0) { + return Wunsch.each((mywunsch) => { + return self.MainHandler() + }); + } + return tellParent(`console.log('done:${window.name}:${self.MissionID}');MissionDelete('${window.name}', '${self.MissionID}');`); + }); + } + return tellParent(`console.log('done:${window.name}:${self.MissionID}');MissionDelete('${window.name}', '${self.MissionID}');`); + }) + }, 1500); + } + + + MainHandler() { + const self = this; + if (includesString($('#iframe-inside-container > div.missionNotFound > div.missionNotFoundText').text(), 'Der Einsatz wurde erfolgreich abgeschlossen.')) { + console.log("DONE!"); + return tellParent(`console.log('done:${window.name}:${self.MissionID}');MissionDelete('${window.name}', '${self.MissionID}');`); // delete Mission here as completed + } + if (includesString($('#iframe-inside-container > div.alert.fade.in.alert-success').text(), "wurde erfolgreich informiert") /*|| $('#vehicle_show_table_all input[type="checkbox"]:checked').size() > 0*/ ) { + console.log("SEND"); + return tellParent(`console.log('update:${window.name}:${self.MissionID}');MissionUpdateDone('${window.name}', '${self.MissionID}');`); // update Mission here as updated or full + } else { + setTimeout(function () { + if (['adis-ownmissions', 'adis-krankentransporte'].indexOf(window.name) != -1) { + console.log("WILL SEND?") + self.CheckMissionAutomatic(); + } else if (['adis-verbandmission', 'adis-verbandmission-event'].indexOf(window.name) != -1) { + self.WorkVerbandMission(); + } + }, 250); + } + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Grab Run Verbands Missions + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + WorkVerbandMission() { + const self = this; + self.ADisSettings().then((setting) => { + var title = document.getElementById('missionH1'); + var isVerband = title.innerText.toLowerCase().includes("[verband]"); + if (setting['Alliance-Automatic'] == 'true' && isVerband) { + if ([52, 55, 129, 203].indexOf(self.MissionType) !== -1 && $('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]')[0].click(); + } else if ([53, 130, 202].indexOf(self.MissionType) !== -1) { + if ($('#vehicle_show_table_all tr[vehicle_type="FLF"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="FLF"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="GW-A"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="GW-A"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="GW-Öl"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="GW-Öl"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="NEF"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="NEF"] input[type="checkbox"]')[0].click(); + } + } else if ([54, 56].indexOf(self.MissionType) !== -1) { + if ($('#vehicle_show_table_all tr[vehicle_type="FLF"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="FLF"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="GW-A"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="GW-A"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="GW-Öl"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="GW-Öl"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="LF 20"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="LF 20"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="LF 20/16"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="LF 20/16"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="HLF 20"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="HLF 20"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="TLF 8/8"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="TLF 8/8"] input[type="checkbox"]')[0].click(); + } + } else { + if ($('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="KTW Typ B"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="KTW Typ B"] input[type="checkbox"]')[0].click(); + } + } + // Todo add alternative cars, please no LF because of Mülltonne.... + if ($('#vehicle_show_table_all input[type="checkbox"]:checked').size() > 0) { + $('#mission_alarm_btn').click(); + } + } + }); + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Grab Mission-Configuration from GitHub + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + CheckMissionAutomatic() { + const self = this; + var setOpt; + var missionLoad; + if (window.name == 'adis-ownmissions') { + setOpt = 'MissionsOwn-Automatic'; + missionLoad = 'ADisMissionsOwn'; + } else if (window.name == 'adis-krankentransporte') { + setOpt = 'Krankentransport-Automatic'; + missionLoad = 'ADisKrankentransport'; + } + if (setOpt && missionLoad) { + self.ADisSettings().then((setting) => { + if (setting[setOpt] == 'true') { + var coll = self.ADisDB.ADisMissions.where({ + done: 'false' + }) + if (missionLoad != "ADisKrankentransport") { + coll = coll.and(function (item) { + return item.next_check <= Math.floor(new Date().getTime() / 1000) + }); + } + return coll.limit(1).toArray() + } + }).then((Missions) => { + if (Missions.length > 0) { + var Mission = Missions[0]; + self.GetMissionConfiguration(missionLoad == 'ADisKrankentransport' ? 147 : Mission.type); + } + }); + } + } + + MissionConfig = {} + + GetMissionConfiguration(MissionType) { + const self = this; + return self.ADisDB.transaction('rw', [self.ADisDB.ADisMissionsOwn, self.ADisDB.ADisAvailabelMissions], () => { + return self.ADisDB.ADisAvailabelMissions.get({ + type: MissionType.toString() + }).then((availableMission) => { + if (availableMission != undefined && availableMission.jsondata) { + self.MissionConfig = availableMission.jsondata; + console.log('MissionConfig: ', MissionType.toString(), JSON.stringify(self.MissionConfig, null, 2)) + self.StartAlarmProcess(); + } else { + var updateData = { + available: false, + next_check: CurrentTime + 60 + }; + self.UpdateOwnMissionsToDone(self.MissionID, updateData); + } + }); + }); + + } + + Vehicles = {} + Patients = {} + + StartAlarmProcess() { + const self = this; + setTimeout(function () { + Promise.resolve().then(async () => { + return await self.PrepareVehicleNeedList(); + }).then(async () => { + return await self.CollectInvolvedVehicles(); + }).then(async () => { + return await self.CollectPatients(); + }) + .then(async () => { + return await self.ProcessEmergencyMedicalService() + }) + .then(async () => { + return await self.ProcessFireDepartment() + }) + .then(async () => { + return await self.ProcessPoliceDepartment() + }) + .then(async () => { + return await self.ProcessTechnicalEmergencyService() + }) + .then(async () => { + return await self.ProcessWaterRescue() + }).then(() => { + console.log("Clicked Vehicles: ", $('#vehicle_show_table_all input[type="checkbox"]:checked').size(), $('#vehicle_show_table_all input[type="checkbox"]:checked')); + if (['adis-ownmissions', 'adis-krankentransporte', 'adis-verbandmission'].indexOf(window.name) !== -1) { + console.log("WILL KLICK SEND") + setTimeout(() => { + $('#mission_alarm_btn').click(); + tellParent(`setTimeout(function(){console.log('ok:${window.name}:${self.MissionID}');MissionUpdateDone('${window.name}', '${self.MissionID}');},500);`); + }, 250); + } + }) + }, 500); + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Collect Involved Vehicles & Patients + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + CollectInvolvedVehicles() { + let self = this; + $("#mission_vehicle_driving tbody").find("tr").each(function (_, elem) { + var VehicleID = $(elem).find("a").first().attr("href").substr($(elem).find("a").first().attr("href").lastIndexOf("/") + 1); + var VehicleName = $(elem).find("a").first().text(); + var VehicleType = $(elem).find("a").first().attr("vehicle_type_id"); + + self.Vehicles[VehicleID] = { + "id": VehicleID, + "name": VehicleName, + "type": VehicleType + } + }); + + $("#mission_vehicle_at_mission tbody").find("tr").each(function (_, elem) { + var VehicleID = $(elem).find("a").first().attr("href").substr($(elem).find("a").first().attr("href").lastIndexOf("/") + 1); + var VehicleName = $(elem).find("a").first().text(); + var VehicleType = $(elem).find("a").first().attr("vehicle_type_id"); + + self.Vehicles[VehicleID] = { + "id": VehicleID, + "name": VehicleName, + "type": VehicleType + } + }); + + return self.Vehicles; + } + + CollectPatients() { + const self = this; + let PatientCounter = 0; + + $(".mission_patient").each(function (_, elem) { + var PatientName = $(elem).text(); + var PatientNeedRTW = false; + var PatientNeedNEF = false; + var PatientNeedRTH = false; + var PatientNeedLNA = false; + var PatientNeedOrgL = false; + var PatientNeedSEGKTWB = false; + var PatientNeedTragehilfe = false; + + // Wir benötigen einen RTW oder KTW Typ B. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen einen RTW oder KTW Typ B") != -1) { + PatientNeedSEGKTWB = true; + } + + // Wir benötigen einen RTW. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen ein RTW") != -1) { + PatientNeedRTW = true; + } + + // Wir benötigen einen NEF. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen ein NEF") != -1) { + PatientNeedNEF = true; + } + + // Wir benötigen einen RTH. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen ein RTH") != -1) { + PatientNeedRTH = true; + } + + // Wir benötigen einen LNA. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen einen LNA") != -1) { + PatientNeedLNA = true; + } + + // Wir benötigen einen OrgL. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen einen OrgL") != -1) { + PatientNeedOrgL = true; + } + + // Wir benötigen eine Tragehilfe (z.B. durch ein LF). + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen eine Tragehilfe") != -1) { + PatientNeedTragehilfe = true; + } + + self.Patients[PatientCounter] = { + "name": PatientName, + "need_RTW": PatientNeedRTW, + "need_NEF": PatientNeedNEF, + "need_RTH": PatientNeedRTH, + "need_LNA": PatientNeedLNA, + "need_OrgL": PatientNeedOrgL, + "need_SEG_KTWB": PatientNeedSEGKTWB, + "need_Tragehilfe": PatientNeedTragehilfe + } + + PatientCounter++; + }); + + return self.Patients; + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Process Emergency_Medical_Service + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ProcessEmergencyMedicalService() { + + const self = this; + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - + // - Emergency Medical Service: Vehicles + // - + // - 38: KTW + // - 28: RTW + // - 29: NEF + // - 74: NAW + // - 73: GRTW + // - 31: RTH + // - 55: LNA + // - 56: OrgL + // - + // - 58: (SEG) KTW Typ B + // - 59: (SEG) ELW 1 + // - 60: (SEG) GW-San + // - + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + if (typeof self.MissionConfig.emergency_medical_service == "object") // Wenn der EMS-Block in der Config definiert ist + { + + if (Object.keys(self.Patients).length >= 5) { // need LNA + self._ADisVehiclesNeed["55"] = 1; + } + + if (Object.keys(self.Patients).length >= 10) { // need OrgL + self._ADisVehiclesNeed["56"] = 1; + } + + //$.each(Patients, function (Key, Patient) { + for (var Key in self.Patients) { + var Patient = self.Patients[Key]; + if (self.MissionConfig.emergency_medical_service.use_KTW == true) { + if (!Patient.need_RTW && !Patient.need_NEF && !Patient.need_RTH) + self._ADisVehiclesNeed["38"]++; + } + + if (Patient.need_LNA && self._ADisVehiclesNeed["55"] < 1) + self._ADisVehiclesNeed["55"] = 1; + + if (Patient.need_OrgL && self._ADisVehiclesNeed["56"] < 1) + self._ADisVehiclesNeed["56"] = 1; + + if (Patient.need_NEF == true) + self._ADisVehiclesNeed["29"]++; + + if (Patient.need_RTW == true) + self._ADisVehiclesNeed["28"]++; + + if (Patient.need_RTH == true) + self._ADisVehiclesNeed["31"]++; + + if (Patient.need_Tragehilfe == true) + self._ADisVehiclesNeed["0"]++; + }; + + + if (self.MissionConfig.emergency_medical_service.use_RTW == true) + self._ADisVehiclesNeed["28"]++; + + if (self.MissionConfig.emergency_medical_service.use_NEF == true) + self._ADisVehiclesNeed["29"]++; + + if (self.MissionConfig.emergency_medical_service.use_RTH == true) + self._ADisVehiclesNeed["31"]++; + + // TODO: need to be refactored to make sure first KTW Typ B before RTW. + if (self.MissionConfig.emergency_medical_service.use_SEG_ELW1_Only == "true") { + self._ADisVehiclesNeed["59"]++; + } else if (self.MissionConfig.emergency_medical_service.use_SEG_FULL == "true" || Object.keys(self.Patients).length >= 3) { + self._ADisVehiclesNeed["58"]++; + self._ADisVehiclesNeed["58"]++; // 3x KTW Type B + self._ADisVehiclesNeed["58"]++; + self._ADisVehiclesNeed["59"]++; + self._ADisVehiclesNeed["60"]++; + } + + var VehicleTable; + + if ($("#vehicle_show_table_body_all").length > 0) { + VehicleTable = $("#vehicle_show_table_body_all"); + } else { + VehicleTable = $("#vehicle_show_table_body_rett"); + } + + VehicleTable.find(".vehicle_select_table_tr").each(function (_, elem) { + var VehicleID = $(elem).attr("id").replace("vehicle_element_content_", ""); + // var VehicleDistanceTime = $("#vehicle_sort_" + VehicleID).attr("sortvalue"); + var VehicleType = $(elem).attr("vehicle_type"); + + if ($("#vehicle_checkbox_" + VehicleID + ":enabled").length === 0) { + return; + } + + if (VehicleType == "KTW" && self._ADisVehiclesNeed["38"] > 0) { + // console.log(" Automatic Dispose: Fahrzeug " + VehicleID + " " + VehicleType + " markiert"); + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["38"]--; + } else if ((VehicleType == "LF 20" || VehicleType == "LF 10" || + VehicleType == "LF 8/6" || VehicleType == "LF 20/16" || + VehicleType == "LF 10/6" || VehicleType == "LF 16-TS" || + VehicleType == "HLF 20" || VehicleType == "TSF-W" || + VehicleType == "TLF 2000" || VehicleType == "TLF 3000" || + VehicleType == "TLF 8/8" || VehicleType == "TLF 8/18" || + VehicleType == "TLF 16/24-Tr" || VehicleType == "TLF 16/25" || + VehicleType == "TLF 16/45" || VehicleType == "TLF 20/40" || + VehicleType == "TLF 20/40-SL" || VehicleType == "TLF 16") && + self._ADisVehiclesNeed["0"] + self._ADisVehiclesNeed["1"] + self._ADisVehiclesNeed["6"] + self._ADisVehiclesNeed["7"] + + self._ADisVehiclesNeed["8"] + self._ADisVehiclesNeed["9"] + self._ADisVehiclesNeed["30"] + self._ADisVehiclesNeed["37"] + + self._ADisVehiclesNeed["17"] + self._ADisVehiclesNeed["18"] + self._ADisVehiclesNeed["19"] + self._ADisVehiclesNeed["20"] + + self._ADisVehiclesNeed["21"] + self._ADisVehiclesNeed["22"] + self._ADisVehiclesNeed["23"] + self._ADisVehiclesNeed["24"] + + self._ADisVehiclesNeed["25"] + self._ADisVehiclesNeed["26"] > 0) { // LF acts as 'Tragehilfe' + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["0"]--; + } else if (VehicleType == "NAW" && self._ADisVehiclesNeed["28"] > 0 && self._ADisVehiclesNeed["29"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["74"]--; + self._ADisVehiclesNeed["28"]--; + self._ADisVehiclesNeed["29"]--; + } else if (VehicleType == "GRTW" && self._ADisVehiclesNeed["73"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["73"]--; + } else if (VehicleType == "RTW" && self._ADisVehiclesNeed["28"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["28"]--; + } else if (VehicleType == "NEF" && self._ADisVehiclesNeed["29"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["29"]--; + } else if (VehicleType == "RTH" && self._ADisVehiclesNeed["31"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["31"]--; + } else if (VehicleType == "KdoW-LNA" && self._ADisVehiclesNeed["55"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["55"]--; + } else if (VehicleType == "KdoW-OrgL" && self._ADisVehiclesNeed["56"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["56"]--; + } else if (VehicleType == "KTW Typ B" && self._ADisVehiclesNeed["58"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["58"]--; + self._ADisVehiclesNeed["28"]--; // no need for RTW if KTW Type B is called + } else if (VehicleType == "ELW 1 (SEG)" && self._ADisVehiclesNeed["59"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["59"]--; + } else if (VehicleType == "GW-San" && self._ADisVehiclesNeed["60"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["60"]--; + self._ADisVehiclesNeed["29"]--; // no need for NEF if GW-SAN is called + } + }); + return true; + } + return false; + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Process Fire_Department + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ProcessFireDepartment() { + const self = this; + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - + // - Fire Department: Vehicles + // - + // - 0: LF 20 + // - 1: LF 10 + // - 6: LF 8/6 + // - 7: LF 20/16 + // - 8: LF 10/6 + // - 9: LF 16-TS + // - 30: HLF 20 + // - 37: TSF-W + // - + // - 17: TLF 2000 + // - 18: TLF 3000 + // - 19: TLF 8/8 + // - 20: TLF 8/18 + // - 21: TLF 16/24-Tr + // - 22: TLF 16/25 + // - 23: TLF 16/45 + // - 24: TLF 20/40 + // - 25: TLF 20/40-SL + // - 26: TLF 16 + // - + // - 2: DLK 23 + // - 3: ELW 1 + // - 34: ELW 2 + // - 36: MTW + // - 57: FwK + // - + // - 4: RW + // - 5: GW-A + // - 10: GW-Öl + // - 12: GW-Mess + // - 53: GW-Dekon-P + // - 27: GW-Gefahrgut + // - 33: GW-Höhenrettung + // - + // - 11: GW-L2-Wasser + // - 13: SW 1000 + // - 14: SW 2000 + // - 15: SW 2000-Tr + // - 16: SW KatS + // - + // - 71: AB-MZB (see WaterRescue) + // - + // - 46: WLF + // - 47: AB-Rüst + // - 48: AB-Atemschutz + // - 49: AB-Öl + // - 54: AB-Dekon-P + // - 62: AB-Schlauch + // - + // - 75: FLF + // - 76: Rettungstreppe + // - 77: AB-Gefahrgut + // - 78: AB-Einsatzleitung + // - + // - 83: GW-Werkfeuerwehr + // - 84: ULF mit Löscharm + // - 85: TM 50 + // - 86: Turbolöscher + // - + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + if (typeof self.MissionConfig.fire_department == "object") // Wenn der FD-Block in der Config definiert ist + { + + self._ADisVehiclesNeed["0"] += parseInt(self.MissionConfig.fire_department.num_LF); + self._ADisVehiclesNeed["3"] += parseInt(self.MissionConfig.fire_department.num_ELW_1); + self._ADisVehiclesNeed["34"] += parseInt(self.MissionConfig.fire_department.num_ELW_2); + self._ADisVehiclesNeed["2"] += parseInt(self.MissionConfig.fire_department.num_DLK); + self._ADisVehiclesNeed["4"] += parseInt(self.MissionConfig.fire_department.num_RW); + self._ADisVehiclesNeed["57"] += parseInt(self.MissionConfig.fire_department.num_FwK); + self._ADisVehiclesNeed["5"] += parseInt(self.MissionConfig.fire_department.num_GW_A); + self._ADisVehiclesNeed["27"] += parseInt(self.MissionConfig.fire_department.num_GW_G); + self._ADisVehiclesNeed["10"] += parseInt(self.MissionConfig.fire_department.num_GW_Oel); + self._ADisVehiclesNeed["12"] += parseInt(self.MissionConfig.fire_department.num_GW_Mess); + self._ADisVehiclesNeed["11"] += parseInt(self.MissionConfig.fire_department.num_SW); + self._ADisVehiclesNeed["33"] += parseInt(self.MissionConfig.fire_department.num_GW_Hoeh); + self._ADisVehiclesNeed["53"] += parseInt(self.MissionConfig.fire_department.num_Dekon_P); + self._ADisVehiclesNeed["75"] += parseInt(self.MissionConfig.fire_department.num_FLF); + self._ADisVehiclesNeed["76"] += parseInt(self.MissionConfig.fire_department.num_Rettungstreppe); + self._ADisVehiclesNeed["83"] += parseInt(self.MissionConfig.fire_department.num_GW_Werkfeuerwehr); + self._ADisVehiclesNeed["84"] += parseInt(self.MissionConfig.fire_department.num_ULF_mit_Loescharm); + self._ADisVehiclesNeed["86"] += parseInt(self.MissionConfig.fire_department.num_Turboloescher); + + var dangerText = $('#iframe-inside-container > div.alert.alert-danger').text(); + + if (includesString(dangerText, "Wir benötigen min.") && includesString(dangerText, "Feuerwehrleute.")) { + const weNeed = self._ADisVehiclesNeed["0"]; + const regex = /(\d+) Feuerwehrleute/gm; + const newNeed = Math.ceil(Number(parseInt(dangerText.match(regex))) / 6) - weNeed; + self._ADisVehiclesNeed["0"] = newNeed; + } + + $("#vehicle_show_table_body_all").find(".vehicle_select_table_tr").each(function (_, elem) { + var VehicleID = $(elem).attr("id").replace("vehicle_element_content_", ""); + // var VehicleDistanceTime = $("#vehicle_sort_" + VehicleID).attr("sortvalue"); + var VehicleType = $(elem).attr("vehicle_type"); + + if ($("#vehicle_checkbox_" + VehicleID + ":enabled").length === 0) { + return; + } + + if ((VehicleType == "LF 20" || VehicleType == "LF 10" || + VehicleType == "LF 8/6" || VehicleType == "LF 20/16" || + VehicleType == "LF 10/6" || VehicleType == "LF 16-TS" || + VehicleType == "HLF 20" || VehicleType == "TSF-W" || + VehicleType == "TLF 2000" || VehicleType == "TLF 3000" || + VehicleType == "TLF 8/8" || VehicleType == "TLF 8/18" || + VehicleType == "TLF 16/24-Tr" || VehicleType == "TLF 16/25" || + VehicleType == "TLF 16/45" || VehicleType == "TLF 20/40" || + VehicleType == "TLF 20/40-SL" || VehicleType == "TLF 16") && + self._ADisVehiclesNeed["0"] + self._ADisVehiclesNeed["1"] + self._ADisVehiclesNeed["6"] + self._ADisVehiclesNeed["7"] + + self._ADisVehiclesNeed["8"] + self._ADisVehiclesNeed["9"] + self._ADisVehiclesNeed["30"] + self._ADisVehiclesNeed["37"] + + self._ADisVehiclesNeed["17"] + self._ADisVehiclesNeed["18"] + self._ADisVehiclesNeed["19"] + self._ADisVehiclesNeed["20"] + + self._ADisVehiclesNeed["21"] + self._ADisVehiclesNeed["22"] + self._ADisVehiclesNeed["23"] + self._ADisVehiclesNeed["24"] + + self._ADisVehiclesNeed["25"] + self._ADisVehiclesNeed["26"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["0"]--; + + } else if (VehicleType == "HLF 20" && self._ADisVehiclesNeed["4"] > 0) // HLF 20 acts as RW + { + self._ADisVehiclesNeed["0"]--; + self._ADisVehiclesNeed["4"]--; + $("#vehicle_checkbox_" + VehicleID).click(); + } else if ((VehicleType == "DLK 23" || VehicleType == "TM 50") && self._ADisVehiclesNeed["2"] > 0) // DLK 23 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["2"]--; + } else if (VehicleType == "AB-Einsatzleitung" && + self._ADisVehiclesNeed["3"] + self._ADisVehiclesNeed["34"] + self._ADisVehiclesNeed["78"] > 0) // ELW 1 + ELW 2 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["3"]--; + self._ADisVehiclesNeed["34"]--; + } else if (VehicleType == "ELW 2" && self._ADisVehiclesNeed["3"] + self._ADisVehiclesNeed["34"] > 0) // ELW 2 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["3"]--; + self._ADisVehiclesNeed["34"]--; + } else if (VehicleType == "ELW 1" && self._ADisVehiclesNeed["3"] > 0) // ELW 1 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["3"]--; + } else if (VehicleType == "MTW" && self._ADisVehiclesNeed["36"] > 0) // MTW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["36"]--; + } else if (VehicleType == "FwK" && self._ADisVehiclesNeed["57"] > 0) // FwK + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["57"]--; + } else if (VehicleType == "GWK" && + self._ADisVehiclesNeed["4"] > 0) // GWK acts as RW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["4"]--; + self._ADisVehiclesNeed["39"]--; + } else if ((VehicleType == "RW" || + VehicleType == "HLF 20" || + VehicleType == "AB-Rüst") && + self._ADisVehiclesNeed["4"] > 0) // RW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["4"]--; + } else if ((VehicleType == "GW-A" || + VehicleType == "AB-Atemschutz") && + self._ADisVehiclesNeed["5"] > 0) // GW-A + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["5"]--; + } else if ((VehicleType == "GW-Öl" || + VehicleType == "AB-Öl") && + self._ADisVehiclesNeed["10"] > 0) // GW-Öl + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["10"]--; + } else if (VehicleType == "GW-Messtechnik" && self._ADisVehiclesNeed["12"] > 0) // FwK + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["12"]--; + } else if ((VehicleType == "GW-L2-Wasser" || + VehicleType == "SW 1000" || + VehicleType == "SW 2000" || + VehicleType == "SW 2000-Tr" || + VehicleType == "SW Kats" || + VehicleType == "AB-Schlauch") && + self._ADisVehiclesNeed["11"] > 0) // SW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["11"]--; + } else if ((VehicleType == "GW-Gefahrgut" || + VehicleType == "AB-Gefahrgut") && self._ADisVehiclesNeed["27"] > 0) // GW-Gefahrgut + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["27"]--; + } else if (VehicleType == "GW-Höhenrettung" && self._ADisVehiclesNeed["33"] > 0) // GW-Höhenrettung + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["33"]--; + } else if ((VehicleType == "Dekon-P" || + VehicleType == "AB-Dekon-P") && + self._ADisVehiclesNeed["53"] > 0) // Dekon-P + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["53"]--; + } else if (VehicleType == "GW-Werkfeuerwehr" && + self._ADisVehiclesNeed["83"] > 0) // GW-Werkfeuerwehr + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["83"]--; + } else if (VehicleType == "ULF mit Löscharm" && + self._ADisVehiclesNeed["84"] > 0) // ULF mit Löscharm + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["84"]--; + } + /* + else if (VehicleType == "TM 50" && + self._ADisVehiclesNeed["85"] > 0) // TM 50 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["85"]--; + } + */ + else if (VehicleType == "Turbolöscher" && + self._ADisVehiclesNeed["86"] > 0) // Turbolöscher + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["86"]--; + } else if (VehicleType == "FLF" && + self._ADisVehiclesNeed["75"] > 0) // FLF + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["75"]--; + } else if (VehicleType == "Rettungstreppe" && + self._ADisVehiclesNeed["76"] > 0) // Rettungstreppe + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["76"]--; + } + }); + return true; + } + return false; + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Process Police_Department + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ProcessPoliceDepartment() { + const self = this; + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - + // - Fire Department: Vehicles + // - + // - 32: FuStW + // - 35: leBefKw + // - 50: GruKw + // - 51: FüKw + // - 52: GefKw + // - 72: WaWe + // - 61: Polizeihubschrauber + // - 79: SEK - ZF + // - 80: SEK - MTF + // - 81: MEK - ZF + // - 82: MEK - MTF + // - + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + if (typeof self.MissionConfig.police_department == "object") // Wenn der FD-Block in der Config definiert ist + { + self._ADisVehiclesNeed["32"] += parseInt(self.MissionConfig.police_department.num_FuStW); + self._ADisVehiclesNeed["35"] += parseInt(self.MissionConfig.police_department.num_leBefKw); + self._ADisVehiclesNeed["50"] += parseInt(self.MissionConfig.police_department.num_GruKw); + self._ADisVehiclesNeed["51"] += parseInt(self.MissionConfig.police_department.num_FueKw); + self._ADisVehiclesNeed["52"] += parseInt(self.MissionConfig.police_department.num_GefKw); + self._ADisVehiclesNeed["72"] += parseInt(self.MissionConfig.police_department.num_WaWe); + self._ADisVehiclesNeed["61"] += parseInt(self.MissionConfig.police_department.num_PHu); + self._ADisVehiclesNeed["79"] += parseInt(self.MissionConfig.police_department.num_SEK_ZF); + self._ADisVehiclesNeed["80"] += parseInt(self.MissionConfig.police_department.num_SEK_MTF); + self._ADisVehiclesNeed["81"] += parseInt(self.MissionConfig.police_department.num_MEK_ZF); + self._ADisVehiclesNeed["82"] += parseInt(self.MissionConfig.police_department.num_MEK_MTF); + + $("#vehicle_show_table_body_all").find(".vehicle_select_table_tr").each(function (_, elem) { + var VehicleID = $(elem).attr("id").replace("vehicle_element_content_", ""); + // var VehicleDistanceTime = $("#vehicle_sort_" + VehicleID).attr("sortvalue"); + var VehicleType = $(elem).attr("vehicle_type"); + + if ($("#vehicle_checkbox_" + VehicleID + ":enabled").length === 0) { + return; + } + + if (VehicleType == "FuStW" && self._ADisVehiclesNeed["32"] > 0) // FuStW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["32"]--; + } else if (VehicleType == "leBefKw" && self._ADisVehiclesNeed["35"] > 0) // leBefKw + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["35"]--; + } else if (VehicleType == "GruKw" && self._ADisVehiclesNeed["50"] > 0) // GruKw + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["50"]--; + } else if (VehicleType == "FüKw" && self._ADisVehiclesNeed["51"] > 0) // FüKw + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["51"]--; + } else if (VehicleType == "GefKw" && self._ADisVehiclesNeed["52"] > 0) // GefKw + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["52"]--; + } else if (VehicleType == "WaWe 10" && self._ADisVehiclesNeed["72"] > 0) // WaWe 10 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["72"]--; + } else if (VehicleType == "Polizeihubschrauber" && self._ADisVehiclesNeed["61"] > 0) // PHu + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["61"]--; + } else if (VehicleType == "SEK - ZF" && self._ADisVehiclesNeed["79"] > 0) // SEK-ZF + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["79"]--; + } else if (VehicleType == "SEK - MTF" && self._ADisVehiclesNeed["80"] > 0) // SEK-MTF + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["80"]--; + } else if (VehicleType == "MEK - ZF" && self._ADisVehiclesNeed["81"] > 0) // MEK-ZF + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["81"]--; + } else if (VehicleType == "MEK - MTF" && self._ADisVehiclesNeed["82"] > 0) // MEK-MTF + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["82"]--; + } + }); + return true; + } + return false; + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Process Water_Rescue + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ProcessWaterRescue() { + const self = this; + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - + // - Water Rescue: Vehicles + // - + // - 63: GW-Taucher + // - 64: GW-Wasserrettung + // - 69: Tauchkraftwagen (handel it here;TechnicalEmergencyService) + // - + // - Boote: + // - + // - 66: Anh MzB (handel it here;TechnicalEmergencyService) + // - 67: Anh SchlB (handel it here;TechnicalEmergencyService) + // - 68: Anh MzAB (handel it here;TechnicalEmergencyService) + // - 70: MZB + // - 71: AB-MZB (handel it here;FireDepartment) + // - + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + if (typeof self.MissionConfig.water_rescue == "object") { + self._ADisVehiclesNeed["63"] += parseInt(self.MissionConfig.water_rescue.num_GW_T); + self._ADisVehiclesNeed["64"] += parseInt(self.MissionConfig.water_rescue.num_GW_W); + self._ADisVehiclesNeed["70"] += parseInt(self.MissionConfig.water_rescue.num_MzB); + + $("#vehicle_show_table_body_all").find(".vehicle_select_table_tr").each(function (_, elem) { + var VehicleID = $(elem).attr("id").replace("vehicle_element_content_", ""); + // var VehicleDistanceTime = $("#vehicle_sort_" + VehicleID).attr("sortvalue"); + var VehicleType = $(elem).attr("vehicle_type"); + + if ($("#vehicle_checkbox_" + VehicleID + ":enabled").length === 0) { + return; + } + + if ((VehicleType == "GW-Taucher" || + VehicleType == "Tauchkraftwagen") && self._ADisVehiclesNeed["63"] > 0) // GW-Taucher + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["63"]--; + } else if (VehicleType == "GW-Wasserrettung" && self._ADisVehiclesNeed["64"] > 0) // GW-Wasserrettung + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["64"]--; + } else if ((VehicleType == "MZB" || VehicleType == "Anh MzB" || + VehicleType == "Anh MzAB" || VehicleType == "Anh SchlB" || + VehicleType == "AB-MZB") && self._ADisVehiclesNeed["66"] + self._ADisVehiclesNeed["67"] + self._ADisVehiclesNeed["68"] + + self._ADisVehiclesNeed["70"] + self._ADisVehiclesNeed["71"] > 0) // Boote + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["70"]--; + } + }); + return true; + } + return false; + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Process Technical Emergency Service + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ProcessTechnicalEmergencyService() { + const self = this; + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - + // - THW: Vehicles + // - + // - 39: GKW (see also FireDepartment) + // - 40: MTW-TZ + // - 41: MzKW + // - 42: LKW K 9 + // - 43: BRmG R + // - + // - 44: Anh DLE + // - 45: MLW 5 + // - 65: LKW 7 Lkr 19 tm + // - 69: Tauchkraftwagen (see WaterRescue) + // - + // - 66: Anh MzB (see WaterRescue) + // - 67: Anh SchlB (see WaterRescue) + // - 68: Anh MzAB (see WaterRescue) + // - + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + if (typeof self.MissionConfig.technical_emergency_service == "object") { + self._ADisVehiclesNeed["39"] += parseInt(self.MissionConfig.technical_emergency_service.num_GKW); + self._ADisVehiclesNeed["40"] += parseInt(self.MissionConfig.technical_emergency_service.num_MTW_TZ); + self._ADisVehiclesNeed["41"] += parseInt(self.MissionConfig.technical_emergency_service.num_MzKW); + self._ADisVehiclesNeed["42"] += parseInt(self.MissionConfig.technical_emergency_service.num_LKW_K9); + self._ADisVehiclesNeed["43"] += parseInt(self.MissionConfig.technical_emergency_service.num_BRmG_R); + self._ADisVehiclesNeed["44"] += parseInt(self.MissionConfig.technical_emergency_service.num_Anh_DLE); + self._ADisVehiclesNeed["45"] += parseInt(self.MissionConfig.technical_emergency_service.num_MLW_5); + self._ADisVehiclesNeed["65"] += parseInt(self.MissionConfig.technical_emergency_service.num_LKW_7Lkr); + + $("#vehicle_show_table_body_all").find(".vehicle_select_table_tr").each(function (_, elem) { + var VehicleID = $(elem).attr("id").replace("vehicle_element_content_", ""); + // var VehicleDistanceTime = $("#vehicle_sort_" + VehicleID).attr("sortvalue"); + var VehicleType = $(elem).attr("vehicle_type"); + + if ($("#vehicle_checkbox_" + VehicleID + ":enabled").length === 0) { + return; + } + + if (VehicleType == "GKW" && self._ADisVehiclesNeed["39"] > 0) // GKW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["39"]--; + } else if (VehicleType == "MTW-TZ" && self._ADisVehiclesNeed["40"] > 0) // MTW-TZ + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["40"]--; + } else if (VehicleType == "MzKW" && self._ADisVehiclesNeed["41"] > 0) // MzKW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["41"]--; + } else if (VehicleType == "LKW K 9" && self._ADisVehiclesNeed["42"] > 0) // LKW K 9 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["42"]--; + } else if (VehicleType == "BRmG R" && self._ADisVehiclesNeed["43"] > 0) // BRmG R + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["43"]--; + } else if (VehicleType == "Anh DLE" && self._ADisVehiclesNeed["44"] > 0) // Anh DLE + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["44"]--; + } else if (VehicleType == "MLW 5" && self._ADisVehiclesNeed["45"] > 0) // MLW 5 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["45"]--; + } else if (VehicleType == "LKW 7 Lkr 19 tm" && self._ADisVehiclesNeed["65"] > 0) // LKW 7 Lkr 19 tm + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["65"]--; + } + }); + return true; + } + return false; + } + + _ADisVehiclesNeed = {} + + PrepareVehicleNeedList() { + const self = this; + for (VehicleTypeID = 0; VehicleTypeID <= MaxVehicleID; VehicleTypeID++) { + self._ADisVehiclesNeed[VehicleTypeID] = 0; + } + for (VehicleTypeID = 0; VehicleTypeID <= MaxVehicleID; VehicleTypeID++) { + self.CountInvolvedVehiclesOfType(VehicleTypeID); + } + return true; + } + + CountInvolvedVehiclesOfType(VehicleTypeID) { + const self = this; + for (var Key in self.Vehicles) { + var Vehicle = self.Vehicles[Key]; + if (Vehicle.type == VehicleTypeID) { + self.SelectCountVehicles(VehicleTypeID); + } + }; + + $("#mission_vehicle_driving tbody, #mission_vehicle_at_mission tbody").find("tr").each(function (_, elem) { + if ($(elem).find("a").first().attr("vehicle_type_id") == VehicleTypeID) { + self.SelectCountVehicles(VehicleTypeID); + } + }); + + return; + } + + SelectCountVehicles(VehicleTypeID) { + const self = this; + var VehicleTypeID = Number(VehicleTypeID); + if ([38].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed[VehicleTypeID]--; + } else if ([0, 1, 6, 7, 8, 9, 30, 37, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26].indexOf(VehicleTypeID) != -1) { // LF acts as 'Tragehilfe' + // 30 acts as Rüstwagen + if ([30].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["4"]--; + } + // 0 acts as all LF + self._ADisVehiclesNeed["0"]--; + } else if ([74].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["74"]--; + self._ADisVehiclesNeed["28"]--; + self._ADisVehiclesNeed["29"]--; + } else if ([73].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["73"]--; + } else if ([28].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["28"]--; + } else if ([29].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["29"]--; + } else if ([31].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["31"]--; + } else if ([55].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["55"]--; + } else if ([56].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["56"]--; + } else if ([58].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["58"]--; + } else if ([59].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["59"]--; + } else if ([60].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["60"]--; + } else if ([2].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["2"]--; + } else if ([34, 78].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["3"]--; + self._ADisVehiclesNeed["34"]--; + } else if ([3].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["3"]--; + } else if ([36].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["36"]--; + } else if ([57].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["57"]--; + } else if ([4, 39].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["4"]--; + self._ADisVehiclesNeed["39"]--; + } else if ([4, 47].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["4"]--; + } else if ([5, 48].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["5"]--; + } else if ([10, 49].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["10"]--; + } else if ([12].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["12"]--; + } else if ([11, 13, 14, 15, 16].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["11"]--; + } else if ([27, 77].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["27"]--; + } else if ([33].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["33"]--; + } else if ([53, 54].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["53"]--; + } else if ([83].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["83"]--; + } else if ([84].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["84"]--; + } else if ([85].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["85"]--; + self._ADisVehiclesNeed["2"]--; + } else if ([86].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["86"]--; + } else if ([75].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["75"]--; + } else if ([76].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["76"]--; + } else if ([32].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["32"]--; + } else if ([35].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["35"]--; + } else if ([50].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["50"]--; + } else if ([51].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["51"]--; + } else if ([52].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["52"]--; + } else if ([72].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["72"]--; + } else if ([61].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["61"]--; + } else if ([79].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["79"]--; + } else if ([80].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["80"]--; + } else if ([81].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["81"]--; + } else if ([82].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["82"]--; + } else if ([63, 69].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["63"]--; + } else if ([64].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["64"]--; + } else if ([66, 67, 68, 70, 71].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["70"]--; + } else if ([40].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["40"]--; + } else if ([41].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["41"]--; + } else if ([42].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["42"]--; + } else if ([43].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["43"]--; + } else if ([44].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["44"]--; + } else if ([45].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["45"]--; + } else if ([65].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["65"]--; + } + } + + CheckNeedMoreVehicles() { + const self = this; + var NeedMoreVehicles = false; + + for (var Key in self._ADisVehiclesNeed) { + var VehicleCount = self._ADisVehiclesNeed[Key]; + if (VehicleCount > 0) { + NeedMoreVehicles = true; + } + }; + + return NeedMoreVehicles; + } } diff --git a/src/handler.js b/src/handler.js new file mode 100755 index 0000000..8aca86d --- /dev/null +++ b/src/handler.js @@ -0,0 +1,1174 @@ +class baof { + MissionType = null; + MissionID = null; + MyRunner = null; + MyRunnerSettings = null; + constructor() { + const self = this; + self.MissionType = null; + + const runnerID = self.ADisSettings.runner_iframesName.indexOf(window.name); + self.MyRunner = self.ADisSettings.runner[runnerID]; + self.MyRunnerSettings = self.ADisSettings.runner_settings[runnerID]; + setTimeout(function () { + self.MissionID = document.location.pathname.substr(document.location.pathname.lastIndexOf("/") + 1); + var help_el = $('a#mission_help'); + if (help_el.length > 0) { + self.MissionType = help_el[0].href.split("?")[0]; + var re = /\d+$/i; + var found = self.MissionType.match(re); + self.MissionType = Number(found[0]); + } else { + self.MissionType = null; + } + console.log("MissionID", self.MissionID); + console.log("MissionType", self.MissionType); + self.ADisSettings().then((setting) => { + if (setting[runnerSettings] != 'true') { + return self.ADisDB.ADisMissionsOwn.where({ + missionID: self.MissionID, + runner: MyRunner, + done: 'false' + }).and(function (item) { + return item.next_check <= Math.floor(new Date().getTime() / 1000) + }).limit(1) + } + }).then((Wunsch) => { + if (Wunsch !== undefined) { + return Wunsch.count(function (count) { + if (count > 0) { + return Wunsch.each((mywunsch) => { + return self.MainHandler() + }); + } + return tellParent(`console.log('done:${window.name}:${self.MissionID}');MissionDelete('${window.name}', '${self.MissionID}');`); + }); + } + return tellParent(`console.log('done:${window.name}:${self.MissionID}');MissionDelete('${window.name}', '${self.MissionID}');`); + }) + }, 1500); + } + + + MainHandler() { + const self = this; + if (includesString($('#iframe-inside-container > div.missionNotFound > div.missionNotFoundText').text(), 'Der Einsatz wurde erfolgreich abgeschlossen.')) { + console.log("DONE!"); + return tellParent(`console.log('done:${window.name}:${self.MissionID}');MissionDelete('${window.name}', '${self.MissionID}');`); // delete Mission here as completed + } + if (includesString($('#iframe-inside-container > div.alert.fade.in.alert-success').text(), "wurde erfolgreich informiert") /*|| $('#vehicle_show_table_all input[type="checkbox"]:checked').size() > 0*/ ) { + console.log("SEND"); + return tellParent(`console.log('update:${window.name}:${self.MissionID}');MissionUpdateDone('${window.name}', '${self.MissionID}');`); // update Mission here as updated or full + } else { + setTimeout(function () { + if (['adis-ownmissions', 'adis-krankentransporte'].indexOf(window.name) != -1) { + console.log("WILL SEND?") + self.CheckMissionAutomatic(); + } else if (['adis-verbandmission', 'adis-verbandmission-event'].indexOf(window.name) != -1) { + self.WorkVerbandMission(); + } + }, 250); + } + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Grab Run Verbands Missions + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + WorkVerbandMission() { + const self = this; + self.ADisSettings().then((setting) => { + var title = document.getElementById('missionH1'); + var isVerband = title.innerText.toLowerCase().includes("[verband]"); + if (setting['Alliance-Automatic'] == 'true' && isVerband) { + if ([52, 55, 129, 203].indexOf(self.MissionType) !== -1 && $('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]')[0].click(); + } else if ([53, 130, 202].indexOf(self.MissionType) !== -1) { + if ($('#vehicle_show_table_all tr[vehicle_type="FLF"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="FLF"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="GW-A"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="GW-A"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="GW-Öl"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="GW-Öl"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="NEF"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="NEF"] input[type="checkbox"]')[0].click(); + } + } else if ([54, 56].indexOf(self.MissionType) !== -1) { + if ($('#vehicle_show_table_all tr[vehicle_type="FLF"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="FLF"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="GW-A"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="GW-A"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="GW-Öl"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="GW-Öl"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="LF 20"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="LF 20"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="LF 20/16"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="LF 20/16"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="HLF 20"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="HLF 20"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="TLF 8/8"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="TLF 8/8"] input[type="checkbox"]')[0].click(); + } + } else { + if ($('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]')[0].click(); + } else if ($('#vehicle_show_table_all tr[vehicle_type="KTW Typ B"] input[type="checkbox"]').size() > 0) { + $('#vehicle_show_table_all tr[vehicle_type="KTW Typ B"] input[type="checkbox"]')[0].click(); + } + } + // Todo add alternative cars, please no LF because of Mülltonne.... + if ($('#vehicle_show_table_all input[type="checkbox"]:checked').size() > 0) { + $('#mission_alarm_btn').click(); + } + } + }); + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Grab Mission-Configuration from GitHub + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + CheckMissionAutomatic() { + const self = this; + var setOpt; + var missionLoad; + if (window.name == 'adis-ownmissions') { + setOpt = 'MissionsOwn-Automatic'; + missionLoad = 'ADisMissionsOwn'; + } else if (window.name == 'adis-krankentransporte') { + setOpt = 'Krankentransport-Automatic'; + missionLoad = 'ADisKrankentransport'; + } + if (setOpt && missionLoad) { + self.ADisSettings().then((setting) => { + if (setting[setOpt] == 'true') { + var coll = self.ADisDB.ADisMissions.where({ + done: 'false' + }) + if (missionLoad != "ADisKrankentransport") { + coll = coll.and(function (item) { + return item.next_check <= Math.floor(new Date().getTime() / 1000) + }); + } + return coll.limit(1).toArray() + } + }).then((Missions) => { + if (Missions.length > 0) { + var Mission = Missions[0]; + self.GetMissionConfiguration(missionLoad == 'ADisKrankentransport' ? 147 : Mission.type); + } + }); + } + } + + MissionConfig = {} + + GetMissionConfiguration(MissionType) { + const self = this; + return self.ADisDB.transaction('rw', [self.ADisDB.ADisMissionsOwn, self.ADisDB.ADisAvailabelMissions], () => { + return self.ADisDB.ADisAvailabelMissions.get({ + type: MissionType.toString() + }).then((availableMission) => { + if (availableMission != undefined && availableMission.jsondata) { + self.MissionConfig = availableMission.jsondata; + console.log('MissionConfig: ', MissionType.toString(), JSON.stringify(self.MissionConfig, null, 2)) + self.StartAlarmProcess(); + } else { + var updateData = { + available: false, + next_check: CurrentTime + 60 + }; + self.UpdateOwnMissionsToDone(self.MissionID, updateData); + } + }); + }); + + } + + Vehicles = {} + Patients = {} + + StartAlarmProcess() { + const self = this; + setTimeout(function () { + Promise.resolve().then(async () => { + return await self.PrepareVehicleNeedList(); + }).then(async () => { + return await self.CollectInvolvedVehicles(); + }).then(async () => { + return await self.CollectPatients(); + }) + .then(async () => { + return await self.ProcessEmergencyMedicalService() + }) + .then(async () => { + return await self.ProcessFireDepartment() + }) + .then(async () => { + return await self.ProcessPoliceDepartment() + }) + .then(async () => { + return await self.ProcessTechnicalEmergencyService() + }) + .then(async () => { + return await self.ProcessWaterRescue() + }).then(() => { + console.log("Clicked Vehicles: ", $('#vehicle_show_table_all input[type="checkbox"]:checked').size(), $('#vehicle_show_table_all input[type="checkbox"]:checked')); + if (['adis-ownmissions', 'adis-krankentransporte', 'adis-verbandmission'].indexOf(window.name) !== -1) { + console.log("WILL KLICK SEND") + setTimeout(() => { + $('#mission_alarm_btn').click(); + tellParent(`setTimeout(function(){console.log('ok:${window.name}:${self.MissionID}');MissionUpdateDone('${window.name}', '${self.MissionID}');},500);`); + }, 250); + } + }) + }, 500); + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Collect Involved Vehicles & Patients + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + CollectInvolvedVehicles() { + let self = this; + $("#mission_vehicle_driving tbody").find("tr").each(function (_, elem) { + var VehicleID = $(elem).find("a").first().attr("href").substr($(elem).find("a").first().attr("href").lastIndexOf("/") + 1); + var VehicleName = $(elem).find("a").first().text(); + var VehicleType = $(elem).find("a").first().attr("vehicle_type_id"); + + self.Vehicles[VehicleID] = { + "id": VehicleID, + "name": VehicleName, + "type": VehicleType + } + }); + + $("#mission_vehicle_at_mission tbody").find("tr").each(function (_, elem) { + var VehicleID = $(elem).find("a").first().attr("href").substr($(elem).find("a").first().attr("href").lastIndexOf("/") + 1); + var VehicleName = $(elem).find("a").first().text(); + var VehicleType = $(elem).find("a").first().attr("vehicle_type_id"); + + self.Vehicles[VehicleID] = { + "id": VehicleID, + "name": VehicleName, + "type": VehicleType + } + }); + + return self.Vehicles; + } + + CollectPatients() { + const self = this; + let PatientCounter = 0; + + $(".mission_patient").each(function (_, elem) { + var PatientName = $(elem).text(); + var PatientNeedRTW = false; + var PatientNeedNEF = false; + var PatientNeedRTH = false; + var PatientNeedLNA = false; + var PatientNeedOrgL = false; + var PatientNeedSEGKTWB = false; + var PatientNeedTragehilfe = false; + + // Wir benötigen einen RTW oder KTW Typ B. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen einen RTW oder KTW Typ B") != -1) { + PatientNeedSEGKTWB = true; + } + + // Wir benötigen einen RTW. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen ein RTW") != -1) { + PatientNeedRTW = true; + } + + // Wir benötigen einen NEF. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen ein NEF") != -1) { + PatientNeedNEF = true; + } + + // Wir benötigen einen RTH. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen ein RTH") != -1) { + PatientNeedRTH = true; + } + + // Wir benötigen einen LNA. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen einen LNA") != -1) { + PatientNeedLNA = true; + } + + // Wir benötigen einen OrgL. + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen einen OrgL") != -1) { + PatientNeedOrgL = true; + } + + // Wir benötigen eine Tragehilfe (z.B. durch ein LF). + if ($(elem).find(".alert-danger").length > 0 && $(elem).find(".alert-danger").text().indexOf("Wir benötigen eine Tragehilfe") != -1) { + PatientNeedTragehilfe = true; + } + + self.Patients[PatientCounter] = { + "name": PatientName, + "need_RTW": PatientNeedRTW, + "need_NEF": PatientNeedNEF, + "need_RTH": PatientNeedRTH, + "need_LNA": PatientNeedLNA, + "need_OrgL": PatientNeedOrgL, + "need_SEG_KTWB": PatientNeedSEGKTWB, + "need_Tragehilfe": PatientNeedTragehilfe + } + + PatientCounter++; + }); + + return self.Patients; + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Process Emergency_Medical_Service + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ProcessEmergencyMedicalService() { + + const self = this; + + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - + // - Emergency Medical Service: Vehicles + // - + // - 38: KTW + // - 28: RTW + // - 29: NEF + // - 74: NAW + // - 73: GRTW + // - 31: RTH + // - 55: LNA + // - 56: OrgL + // - + // - 58: (SEG) KTW Typ B + // - 59: (SEG) ELW 1 + // - 60: (SEG) GW-San + // - + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + if (typeof self.MissionConfig.emergency_medical_service == "object") // Wenn der EMS-Block in der Config definiert ist + { + + if (Object.keys(self.Patients).length >= 5) { // need LNA + self._ADisVehiclesNeed["55"] = 1; + } + + if (Object.keys(self.Patients).length >= 10) { // need OrgL + self._ADisVehiclesNeed["56"] = 1; + } + + //$.each(Patients, function (Key, Patient) { + for (var Key in self.Patients) { + var Patient = self.Patients[Key]; + if (self.MissionConfig.emergency_medical_service.use_KTW == true) { + if (!Patient.need_RTW && !Patient.need_NEF && !Patient.need_RTH) + self._ADisVehiclesNeed["38"]++; + } + + if (Patient.need_LNA && self._ADisVehiclesNeed["55"] < 1) + self._ADisVehiclesNeed["55"] = 1; + + if (Patient.need_OrgL && self._ADisVehiclesNeed["56"] < 1) + self._ADisVehiclesNeed["56"] = 1; + + if (Patient.need_NEF == true) + self._ADisVehiclesNeed["29"]++; + + if (Patient.need_RTW == true) + self._ADisVehiclesNeed["28"]++; + + if (Patient.need_RTH == true) + self._ADisVehiclesNeed["31"]++; + + if (Patient.need_Tragehilfe == true) + self._ADisVehiclesNeed["0"]++; + }; + + + if (self.MissionConfig.emergency_medical_service.use_RTW == true) + self._ADisVehiclesNeed["28"]++; + + if (self.MissionConfig.emergency_medical_service.use_NEF == true) + self._ADisVehiclesNeed["29"]++; + + if (self.MissionConfig.emergency_medical_service.use_RTH == true) + self._ADisVehiclesNeed["31"]++; + + // TODO: need to be refactored to make sure first KTW Typ B before RTW. + if (self.MissionConfig.emergency_medical_service.use_SEG_ELW1_Only == "true") { + self._ADisVehiclesNeed["59"]++; + } else if (self.MissionConfig.emergency_medical_service.use_SEG_FULL == "true" || Object.keys(self.Patients).length >= 3) { + self._ADisVehiclesNeed["58"]++; + self._ADisVehiclesNeed["58"]++; // 3x KTW Type B + self._ADisVehiclesNeed["58"]++; + self._ADisVehiclesNeed["59"]++; + self._ADisVehiclesNeed["60"]++; + } + + var VehicleTable; + + if ($("#vehicle_show_table_body_all").length > 0) { + VehicleTable = $("#vehicle_show_table_body_all"); + } else { + VehicleTable = $("#vehicle_show_table_body_rett"); + } + + VehicleTable.find(".vehicle_select_table_tr").each(function (_, elem) { + var VehicleID = $(elem).attr("id").replace("vehicle_element_content_", ""); + // var VehicleDistanceTime = $("#vehicle_sort_" + VehicleID).attr("sortvalue"); + var VehicleType = $(elem).attr("vehicle_type"); + + if ($("#vehicle_checkbox_" + VehicleID + ":enabled").length === 0) { + return; + } + + if (VehicleType == "KTW" && self._ADisVehiclesNeed["38"] > 0) { + // console.log(" Automatic Dispose: Fahrzeug " + VehicleID + " " + VehicleType + " markiert"); + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["38"]--; + } else if ((VehicleType == "LF 20" || VehicleType == "LF 10" || + VehicleType == "LF 8/6" || VehicleType == "LF 20/16" || + VehicleType == "LF 10/6" || VehicleType == "LF 16-TS" || + VehicleType == "HLF 20" || VehicleType == "TSF-W" || + VehicleType == "TLF 2000" || VehicleType == "TLF 3000" || + VehicleType == "TLF 8/8" || VehicleType == "TLF 8/18" || + VehicleType == "TLF 16/24-Tr" || VehicleType == "TLF 16/25" || + VehicleType == "TLF 16/45" || VehicleType == "TLF 20/40" || + VehicleType == "TLF 20/40-SL" || VehicleType == "TLF 16") && + self._ADisVehiclesNeed["0"] + self._ADisVehiclesNeed["1"] + self._ADisVehiclesNeed["6"] + self._ADisVehiclesNeed["7"] + + self._ADisVehiclesNeed["8"] + self._ADisVehiclesNeed["9"] + self._ADisVehiclesNeed["30"] + self._ADisVehiclesNeed["37"] + + self._ADisVehiclesNeed["17"] + self._ADisVehiclesNeed["18"] + self._ADisVehiclesNeed["19"] + self._ADisVehiclesNeed["20"] + + self._ADisVehiclesNeed["21"] + self._ADisVehiclesNeed["22"] + self._ADisVehiclesNeed["23"] + self._ADisVehiclesNeed["24"] + + self._ADisVehiclesNeed["25"] + self._ADisVehiclesNeed["26"] > 0) { // LF acts as 'Tragehilfe' + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["0"]--; + } else if (VehicleType == "NAW" && self._ADisVehiclesNeed["28"] > 0 && self._ADisVehiclesNeed["29"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["74"]--; + self._ADisVehiclesNeed["28"]--; + self._ADisVehiclesNeed["29"]--; + } else if (VehicleType == "GRTW" && self._ADisVehiclesNeed["73"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["73"]--; + } else if (VehicleType == "RTW" && self._ADisVehiclesNeed["28"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["28"]--; + } else if (VehicleType == "NEF" && self._ADisVehiclesNeed["29"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["29"]--; + } else if (VehicleType == "RTH" && self._ADisVehiclesNeed["31"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["31"]--; + } else if (VehicleType == "KdoW-LNA" && self._ADisVehiclesNeed["55"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["55"]--; + } else if (VehicleType == "KdoW-OrgL" && self._ADisVehiclesNeed["56"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["56"]--; + } else if (VehicleType == "KTW Typ B" && self._ADisVehiclesNeed["58"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["58"]--; + self._ADisVehiclesNeed["28"]--; // no need for RTW if KTW Type B is called + } else if (VehicleType == "ELW 1 (SEG)" && self._ADisVehiclesNeed["59"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["59"]--; + } else if (VehicleType == "GW-San" && self._ADisVehiclesNeed["60"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["60"]--; + self._ADisVehiclesNeed["29"]--; // no need for NEF if GW-SAN is called + } + }); + return true; + } + return false; + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Process Fire_Department + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ProcessFireDepartment() { + const self = this; + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - + // - Fire Department: Vehicles + // - + // - 0: LF 20 + // - 1: LF 10 + // - 6: LF 8/6 + // - 7: LF 20/16 + // - 8: LF 10/6 + // - 9: LF 16-TS + // - 30: HLF 20 + // - 37: TSF-W + // - + // - 17: TLF 2000 + // - 18: TLF 3000 + // - 19: TLF 8/8 + // - 20: TLF 8/18 + // - 21: TLF 16/24-Tr + // - 22: TLF 16/25 + // - 23: TLF 16/45 + // - 24: TLF 20/40 + // - 25: TLF 20/40-SL + // - 26: TLF 16 + // - + // - 2: DLK 23 + // - 3: ELW 1 + // - 34: ELW 2 + // - 36: MTW + // - 57: FwK + // - + // - 4: RW + // - 5: GW-A + // - 10: GW-Öl + // - 12: GW-Mess + // - 53: GW-Dekon-P + // - 27: GW-Gefahrgut + // - 33: GW-Höhenrettung + // - + // - 11: GW-L2-Wasser + // - 13: SW 1000 + // - 14: SW 2000 + // - 15: SW 2000-Tr + // - 16: SW KatS + // - + // - 71: AB-MZB (see WaterRescue) + // - + // - 46: WLF + // - 47: AB-Rüst + // - 48: AB-Atemschutz + // - 49: AB-Öl + // - 54: AB-Dekon-P + // - 62: AB-Schlauch + // - + // - 75: FLF + // - 76: Rettungstreppe + // - 77: AB-Gefahrgut + // - 78: AB-Einsatzleitung + // - + // - 83: GW-Werkfeuerwehr + // - 84: ULF mit Löscharm + // - 85: TM 50 + // - 86: Turbolöscher + // - + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + if (typeof self.MissionConfig.fire_department == "object") // Wenn der FD-Block in der Config definiert ist + { + + self._ADisVehiclesNeed["0"] += parseInt(self.MissionConfig.fire_department.num_LF); + self._ADisVehiclesNeed["3"] += parseInt(self.MissionConfig.fire_department.num_ELW_1); + self._ADisVehiclesNeed["34"] += parseInt(self.MissionConfig.fire_department.num_ELW_2); + self._ADisVehiclesNeed["2"] += parseInt(self.MissionConfig.fire_department.num_DLK); + self._ADisVehiclesNeed["4"] += parseInt(self.MissionConfig.fire_department.num_RW); + self._ADisVehiclesNeed["57"] += parseInt(self.MissionConfig.fire_department.num_FwK); + self._ADisVehiclesNeed["5"] += parseInt(self.MissionConfig.fire_department.num_GW_A); + self._ADisVehiclesNeed["27"] += parseInt(self.MissionConfig.fire_department.num_GW_G); + self._ADisVehiclesNeed["10"] += parseInt(self.MissionConfig.fire_department.num_GW_Oel); + self._ADisVehiclesNeed["12"] += parseInt(self.MissionConfig.fire_department.num_GW_Mess); + self._ADisVehiclesNeed["11"] += parseInt(self.MissionConfig.fire_department.num_SW); + self._ADisVehiclesNeed["33"] += parseInt(self.MissionConfig.fire_department.num_GW_Hoeh); + self._ADisVehiclesNeed["53"] += parseInt(self.MissionConfig.fire_department.num_Dekon_P); + self._ADisVehiclesNeed["75"] += parseInt(self.MissionConfig.fire_department.num_FLF); + self._ADisVehiclesNeed["76"] += parseInt(self.MissionConfig.fire_department.num_Rettungstreppe); + self._ADisVehiclesNeed["83"] += parseInt(self.MissionConfig.fire_department.num_GW_Werkfeuerwehr); + self._ADisVehiclesNeed["84"] += parseInt(self.MissionConfig.fire_department.num_ULF_mit_Loescharm); + self._ADisVehiclesNeed["86"] += parseInt(self.MissionConfig.fire_department.num_Turboloescher); + + var dangerText = $('#iframe-inside-container > div.alert.alert-danger').text(); + + if (includesString(dangerText, "Wir benötigen min.") && includesString(dangerText, "Feuerwehrleute.")) { + const weNeed = self._ADisVehiclesNeed["0"]; + const regex = /(\d+) Feuerwehrleute/gm; + const newNeed = Math.ceil(Number(parseInt(dangerText.match(regex))) / 6) - weNeed; + self._ADisVehiclesNeed["0"] = newNeed; + } + + $("#vehicle_show_table_body_all").find(".vehicle_select_table_tr").each(function (_, elem) { + var VehicleID = $(elem).attr("id").replace("vehicle_element_content_", ""); + // var VehicleDistanceTime = $("#vehicle_sort_" + VehicleID).attr("sortvalue"); + var VehicleType = $(elem).attr("vehicle_type"); + + if ($("#vehicle_checkbox_" + VehicleID + ":enabled").length === 0) { + return; + } + + if ((VehicleType == "LF 20" || VehicleType == "LF 10" || + VehicleType == "LF 8/6" || VehicleType == "LF 20/16" || + VehicleType == "LF 10/6" || VehicleType == "LF 16-TS" || + VehicleType == "HLF 20" || VehicleType == "TSF-W" || + VehicleType == "TLF 2000" || VehicleType == "TLF 3000" || + VehicleType == "TLF 8/8" || VehicleType == "TLF 8/18" || + VehicleType == "TLF 16/24-Tr" || VehicleType == "TLF 16/25" || + VehicleType == "TLF 16/45" || VehicleType == "TLF 20/40" || + VehicleType == "TLF 20/40-SL" || VehicleType == "TLF 16") && + self._ADisVehiclesNeed["0"] + self._ADisVehiclesNeed["1"] + self._ADisVehiclesNeed["6"] + self._ADisVehiclesNeed["7"] + + self._ADisVehiclesNeed["8"] + self._ADisVehiclesNeed["9"] + self._ADisVehiclesNeed["30"] + self._ADisVehiclesNeed["37"] + + self._ADisVehiclesNeed["17"] + self._ADisVehiclesNeed["18"] + self._ADisVehiclesNeed["19"] + self._ADisVehiclesNeed["20"] + + self._ADisVehiclesNeed["21"] + self._ADisVehiclesNeed["22"] + self._ADisVehiclesNeed["23"] + self._ADisVehiclesNeed["24"] + + self._ADisVehiclesNeed["25"] + self._ADisVehiclesNeed["26"] > 0) { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["0"]--; + + } else if (VehicleType == "HLF 20" && self._ADisVehiclesNeed["4"] > 0) // HLF 20 acts as RW + { + self._ADisVehiclesNeed["0"]--; + self._ADisVehiclesNeed["4"]--; + $("#vehicle_checkbox_" + VehicleID).click(); + } else if ((VehicleType == "DLK 23" || VehicleType == "TM 50") && self._ADisVehiclesNeed["2"] > 0) // DLK 23 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["2"]--; + } else if (VehicleType == "AB-Einsatzleitung" && + self._ADisVehiclesNeed["3"] + self._ADisVehiclesNeed["34"] + self._ADisVehiclesNeed["78"] > 0) // ELW 1 + ELW 2 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["3"]--; + self._ADisVehiclesNeed["34"]--; + } else if (VehicleType == "ELW 2" && self._ADisVehiclesNeed["3"] + self._ADisVehiclesNeed["34"] > 0) // ELW 2 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["3"]--; + self._ADisVehiclesNeed["34"]--; + } else if (VehicleType == "ELW 1" && self._ADisVehiclesNeed["3"] > 0) // ELW 1 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["3"]--; + } else if (VehicleType == "MTW" && self._ADisVehiclesNeed["36"] > 0) // MTW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["36"]--; + } else if (VehicleType == "FwK" && self._ADisVehiclesNeed["57"] > 0) // FwK + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["57"]--; + } else if (VehicleType == "GWK" && + self._ADisVehiclesNeed["4"] > 0) // GWK acts as RW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["4"]--; + self._ADisVehiclesNeed["39"]--; + } else if ((VehicleType == "RW" || + VehicleType == "HLF 20" || + VehicleType == "AB-Rüst") && + self._ADisVehiclesNeed["4"] > 0) // RW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["4"]--; + } else if ((VehicleType == "GW-A" || + VehicleType == "AB-Atemschutz") && + self._ADisVehiclesNeed["5"] > 0) // GW-A + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["5"]--; + } else if ((VehicleType == "GW-Öl" || + VehicleType == "AB-Öl") && + self._ADisVehiclesNeed["10"] > 0) // GW-Öl + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["10"]--; + } else if (VehicleType == "GW-Messtechnik" && self._ADisVehiclesNeed["12"] > 0) // FwK + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["12"]--; + } else if ((VehicleType == "GW-L2-Wasser" || + VehicleType == "SW 1000" || + VehicleType == "SW 2000" || + VehicleType == "SW 2000-Tr" || + VehicleType == "SW Kats" || + VehicleType == "AB-Schlauch") && + self._ADisVehiclesNeed["11"] > 0) // SW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["11"]--; + } else if ((VehicleType == "GW-Gefahrgut" || + VehicleType == "AB-Gefahrgut") && self._ADisVehiclesNeed["27"] > 0) // GW-Gefahrgut + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["27"]--; + } else if (VehicleType == "GW-Höhenrettung" && self._ADisVehiclesNeed["33"] > 0) // GW-Höhenrettung + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["33"]--; + } else if ((VehicleType == "Dekon-P" || + VehicleType == "AB-Dekon-P") && + self._ADisVehiclesNeed["53"] > 0) // Dekon-P + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["53"]--; + } else if (VehicleType == "GW-Werkfeuerwehr" && + self._ADisVehiclesNeed["83"] > 0) // GW-Werkfeuerwehr + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["83"]--; + } else if (VehicleType == "ULF mit Löscharm" && + self._ADisVehiclesNeed["84"] > 0) // ULF mit Löscharm + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["84"]--; + } + /* + else if (VehicleType == "TM 50" && + self._ADisVehiclesNeed["85"] > 0) // TM 50 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["85"]--; + } + */ + else if (VehicleType == "Turbolöscher" && + self._ADisVehiclesNeed["86"] > 0) // Turbolöscher + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["86"]--; + } else if (VehicleType == "FLF" && + self._ADisVehiclesNeed["75"] > 0) // FLF + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["75"]--; + } else if (VehicleType == "Rettungstreppe" && + self._ADisVehiclesNeed["76"] > 0) // Rettungstreppe + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["76"]--; + } + }); + return true; + } + return false; + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Process Police_Department + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ProcessPoliceDepartment() { + const self = this; + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - + // - Fire Department: Vehicles + // - + // - 32: FuStW + // - 35: leBefKw + // - 50: GruKw + // - 51: FüKw + // - 52: GefKw + // - 72: WaWe + // - 61: Polizeihubschrauber + // - 79: SEK - ZF + // - 80: SEK - MTF + // - 81: MEK - ZF + // - 82: MEK - MTF + // - + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + if (typeof self.MissionConfig.police_department == "object") // Wenn der FD-Block in der Config definiert ist + { + self._ADisVehiclesNeed["32"] += parseInt(self.MissionConfig.police_department.num_FuStW); + self._ADisVehiclesNeed["35"] += parseInt(self.MissionConfig.police_department.num_leBefKw); + self._ADisVehiclesNeed["50"] += parseInt(self.MissionConfig.police_department.num_GruKw); + self._ADisVehiclesNeed["51"] += parseInt(self.MissionConfig.police_department.num_FueKw); + self._ADisVehiclesNeed["52"] += parseInt(self.MissionConfig.police_department.num_GefKw); + self._ADisVehiclesNeed["72"] += parseInt(self.MissionConfig.police_department.num_WaWe); + self._ADisVehiclesNeed["61"] += parseInt(self.MissionConfig.police_department.num_PHu); + self._ADisVehiclesNeed["79"] += parseInt(self.MissionConfig.police_department.num_SEK_ZF); + self._ADisVehiclesNeed["80"] += parseInt(self.MissionConfig.police_department.num_SEK_MTF); + self._ADisVehiclesNeed["81"] += parseInt(self.MissionConfig.police_department.num_MEK_ZF); + self._ADisVehiclesNeed["82"] += parseInt(self.MissionConfig.police_department.num_MEK_MTF); + + $("#vehicle_show_table_body_all").find(".vehicle_select_table_tr").each(function (_, elem) { + var VehicleID = $(elem).attr("id").replace("vehicle_element_content_", ""); + // var VehicleDistanceTime = $("#vehicle_sort_" + VehicleID).attr("sortvalue"); + var VehicleType = $(elem).attr("vehicle_type"); + + if ($("#vehicle_checkbox_" + VehicleID + ":enabled").length === 0) { + return; + } + + if (VehicleType == "FuStW" && self._ADisVehiclesNeed["32"] > 0) // FuStW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["32"]--; + } else if (VehicleType == "leBefKw" && self._ADisVehiclesNeed["35"] > 0) // leBefKw + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["35"]--; + } else if (VehicleType == "GruKw" && self._ADisVehiclesNeed["50"] > 0) // GruKw + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["50"]--; + } else if (VehicleType == "FüKw" && self._ADisVehiclesNeed["51"] > 0) // FüKw + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["51"]--; + } else if (VehicleType == "GefKw" && self._ADisVehiclesNeed["52"] > 0) // GefKw + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["52"]--; + } else if (VehicleType == "WaWe 10" && self._ADisVehiclesNeed["72"] > 0) // WaWe 10 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["72"]--; + } else if (VehicleType == "Polizeihubschrauber" && self._ADisVehiclesNeed["61"] > 0) // PHu + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["61"]--; + } else if (VehicleType == "SEK - ZF" && self._ADisVehiclesNeed["79"] > 0) // SEK-ZF + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["79"]--; + } else if (VehicleType == "SEK - MTF" && self._ADisVehiclesNeed["80"] > 0) // SEK-MTF + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["80"]--; + } else if (VehicleType == "MEK - ZF" && self._ADisVehiclesNeed["81"] > 0) // MEK-ZF + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["81"]--; + } else if (VehicleType == "MEK - MTF" && self._ADisVehiclesNeed["82"] > 0) // MEK-MTF + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["82"]--; + } + }); + return true; + } + return false; + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Process Water_Rescue + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ProcessWaterRescue() { + const self = this; + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - + // - Water Rescue: Vehicles + // - + // - 63: GW-Taucher + // - 64: GW-Wasserrettung + // - 69: Tauchkraftwagen (handel it here;TechnicalEmergencyService) + // - + // - Boote: + // - + // - 66: Anh MzB (handel it here;TechnicalEmergencyService) + // - 67: Anh SchlB (handel it here;TechnicalEmergencyService) + // - 68: Anh MzAB (handel it here;TechnicalEmergencyService) + // - 70: MZB + // - 71: AB-MZB (handel it here;FireDepartment) + // - + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + if (typeof self.MissionConfig.water_rescue == "object") { + self._ADisVehiclesNeed["63"] += parseInt(self.MissionConfig.water_rescue.num_GW_T); + self._ADisVehiclesNeed["64"] += parseInt(self.MissionConfig.water_rescue.num_GW_W); + self._ADisVehiclesNeed["70"] += parseInt(self.MissionConfig.water_rescue.num_MzB); + + $("#vehicle_show_table_body_all").find(".vehicle_select_table_tr").each(function (_, elem) { + var VehicleID = $(elem).attr("id").replace("vehicle_element_content_", ""); + // var VehicleDistanceTime = $("#vehicle_sort_" + VehicleID).attr("sortvalue"); + var VehicleType = $(elem).attr("vehicle_type"); + + if ($("#vehicle_checkbox_" + VehicleID + ":enabled").length === 0) { + return; + } + + if ((VehicleType == "GW-Taucher" || + VehicleType == "Tauchkraftwagen") && self._ADisVehiclesNeed["63"] > 0) // GW-Taucher + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["63"]--; + } else if (VehicleType == "GW-Wasserrettung" && self._ADisVehiclesNeed["64"] > 0) // GW-Wasserrettung + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["64"]--; + } else if ((VehicleType == "MZB" || VehicleType == "Anh MzB" || + VehicleType == "Anh MzAB" || VehicleType == "Anh SchlB" || + VehicleType == "AB-MZB") && self._ADisVehiclesNeed["66"] + self._ADisVehiclesNeed["67"] + self._ADisVehiclesNeed["68"] + + self._ADisVehiclesNeed["70"] + self._ADisVehiclesNeed["71"] > 0) // Boote + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["70"]--; + } + }); + return true; + } + return false; + } + + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + // - + // - Process Technical Emergency Service + // - + // - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- + + ProcessTechnicalEmergencyService() { + const self = this; + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // - + // - THW: Vehicles + // - + // - 39: GKW (see also FireDepartment) + // - 40: MTW-TZ + // - 41: MzKW + // - 42: LKW K 9 + // - 43: BRmG R + // - + // - 44: Anh DLE + // - 45: MLW 5 + // - 65: LKW 7 Lkr 19 tm + // - 69: Tauchkraftwagen (see WaterRescue) + // - + // - 66: Anh MzB (see WaterRescue) + // - 67: Anh SchlB (see WaterRescue) + // - 68: Anh MzAB (see WaterRescue) + // - + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + if (typeof self.MissionConfig.technical_emergency_service == "object") { + self._ADisVehiclesNeed["39"] += parseInt(self.MissionConfig.technical_emergency_service.num_GKW); + self._ADisVehiclesNeed["40"] += parseInt(self.MissionConfig.technical_emergency_service.num_MTW_TZ); + self._ADisVehiclesNeed["41"] += parseInt(self.MissionConfig.technical_emergency_service.num_MzKW); + self._ADisVehiclesNeed["42"] += parseInt(self.MissionConfig.technical_emergency_service.num_LKW_K9); + self._ADisVehiclesNeed["43"] += parseInt(self.MissionConfig.technical_emergency_service.num_BRmG_R); + self._ADisVehiclesNeed["44"] += parseInt(self.MissionConfig.technical_emergency_service.num_Anh_DLE); + self._ADisVehiclesNeed["45"] += parseInt(self.MissionConfig.technical_emergency_service.num_MLW_5); + self._ADisVehiclesNeed["65"] += parseInt(self.MissionConfig.technical_emergency_service.num_LKW_7Lkr); + + $("#vehicle_show_table_body_all").find(".vehicle_select_table_tr").each(function (_, elem) { + var VehicleID = $(elem).attr("id").replace("vehicle_element_content_", ""); + // var VehicleDistanceTime = $("#vehicle_sort_" + VehicleID).attr("sortvalue"); + var VehicleType = $(elem).attr("vehicle_type"); + + if ($("#vehicle_checkbox_" + VehicleID + ":enabled").length === 0) { + return; + } + + if (VehicleType == "GKW" && self._ADisVehiclesNeed["39"] > 0) // GKW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["39"]--; + } else if (VehicleType == "MTW-TZ" && self._ADisVehiclesNeed["40"] > 0) // MTW-TZ + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["40"]--; + } else if (VehicleType == "MzKW" && self._ADisVehiclesNeed["41"] > 0) // MzKW + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["41"]--; + } else if (VehicleType == "LKW K 9" && self._ADisVehiclesNeed["42"] > 0) // LKW K 9 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["42"]--; + } else if (VehicleType == "BRmG R" && self._ADisVehiclesNeed["43"] > 0) // BRmG R + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["43"]--; + } else if (VehicleType == "Anh DLE" && self._ADisVehiclesNeed["44"] > 0) // Anh DLE + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["44"]--; + } else if (VehicleType == "MLW 5" && self._ADisVehiclesNeed["45"] > 0) // MLW 5 + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["45"]--; + } else if (VehicleType == "LKW 7 Lkr 19 tm" && self._ADisVehiclesNeed["65"] > 0) // LKW 7 Lkr 19 tm + { + $("#vehicle_checkbox_" + VehicleID).click(); + self._ADisVehiclesNeed["65"]--; + } + }); + return true; + } + return false; + } + + _ADisVehiclesNeed = {} + + PrepareVehicleNeedList() { + const self = this; + for (VehicleTypeID = 0; VehicleTypeID <= MaxVehicleID; VehicleTypeID++) { + self._ADisVehiclesNeed[VehicleTypeID] = 0; + } + for (VehicleTypeID = 0; VehicleTypeID <= MaxVehicleID; VehicleTypeID++) { + self.CountInvolvedVehiclesOfType(VehicleTypeID); + } + return true; + } + + CountInvolvedVehiclesOfType(VehicleTypeID) { + const self = this; + for (var Key in self.Vehicles) { + var Vehicle = self.Vehicles[Key]; + if (Vehicle.type == VehicleTypeID) { + self.SelectCountVehicles(VehicleTypeID); + } + }; + + $("#mission_vehicle_driving tbody, #mission_vehicle_at_mission tbody").find("tr").each(function (_, elem) { + if ($(elem).find("a").first().attr("vehicle_type_id") == VehicleTypeID) { + self.SelectCountVehicles(VehicleTypeID); + } + }); + + return; + } + + SelectCountVehicles(VehicleTypeID) { + const self = this; + var VehicleTypeID = Number(VehicleTypeID); + if ([38].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed[VehicleTypeID]--; + } else if ([0, 1, 6, 7, 8, 9, 30, 37, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26].indexOf(VehicleTypeID) != -1) { // LF acts as 'Tragehilfe' + // 30 acts as Rüstwagen + if ([30].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["4"]--; + } + // 0 acts as all LF + self._ADisVehiclesNeed["0"]--; + } else if ([74].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["74"]--; + self._ADisVehiclesNeed["28"]--; + self._ADisVehiclesNeed["29"]--; + } else if ([73].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["73"]--; + } else if ([28].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["28"]--; + } else if ([29].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["29"]--; + } else if ([31].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["31"]--; + } else if ([55].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["55"]--; + } else if ([56].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["56"]--; + } else if ([58].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["58"]--; + } else if ([59].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["59"]--; + } else if ([60].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["60"]--; + } else if ([2].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["2"]--; + } else if ([34, 78].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["3"]--; + self._ADisVehiclesNeed["34"]--; + } else if ([3].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["3"]--; + } else if ([36].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["36"]--; + } else if ([57].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["57"]--; + } else if ([4, 39].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["4"]--; + self._ADisVehiclesNeed["39"]--; + } else if ([4, 47].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["4"]--; + } else if ([5, 48].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["5"]--; + } else if ([10, 49].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["10"]--; + } else if ([12].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["12"]--; + } else if ([11, 13, 14, 15, 16].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["11"]--; + } else if ([27, 77].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["27"]--; + } else if ([33].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["33"]--; + } else if ([53, 54].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["53"]--; + } else if ([83].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["83"]--; + } else if ([84].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["84"]--; + } else if ([85].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["85"]--; + self._ADisVehiclesNeed["2"]--; + } else if ([86].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["86"]--; + } else if ([75].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["75"]--; + } else if ([76].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["76"]--; + } else if ([32].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["32"]--; + } else if ([35].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["35"]--; + } else if ([50].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["50"]--; + } else if ([51].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["51"]--; + } else if ([52].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["52"]--; + } else if ([72].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["72"]--; + } else if ([61].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["61"]--; + } else if ([79].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["79"]--; + } else if ([80].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["80"]--; + } else if ([81].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["81"]--; + } else if ([82].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["82"]--; + } else if ([63, 69].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["63"]--; + } else if ([64].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["64"]--; + } else if ([66, 67, 68, 70, 71].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["70"]--; + } else if ([40].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["40"]--; + } else if ([41].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["41"]--; + } else if ([42].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["42"]--; + } else if ([43].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["43"]--; + } else if ([44].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["44"]--; + } else if ([45].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["45"]--; + } else if ([65].indexOf(VehicleTypeID) != -1) { + self._ADisVehiclesNeed["65"]--; + } + } + + CheckNeedMoreVehicles() { + const self = this; + var NeedMoreVehicles = false; + + for (var Key in self._ADisVehiclesNeed) { + var VehicleCount = self._ADisVehiclesNeed[Key]; + if (VehicleCount > 0) { + NeedMoreVehicles = true; + } + }; + + return NeedMoreVehicles; + } +} \ No newline at end of file