NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Feuerwache.net AAO Script by Bjoern082 // @namespace https://openuserjs.org/scripts/Bjoern.Schlinkt-online.de/Feuerwache.net_AAO_Script_by_Bjoern082 // @description Vorschlag fuer Fahrzeuge bei Einsaetzen auf Feuerwache.net // @include http://www.feuerwache.net/* // @grant GM_log // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_listValues // @grant GM_addStyle // @grant GM_xmlhttpRequest // @author Bjoern082 // @info1 Hinweis: das original Script stammt von "MasterJM" // @version 2014-12-23 19:19 // ==/UserScript== /* Das originale Script stammt von MasterJM. Hier habe ich die Farben sowie Fahrzeuge neu eingepflegt. Solltet Ihr noch hier und da Verbesserungswünsche haben, schreibt mir einfach eine PN */ // Anzahl der Spalten in der Verfügbar-Anzeige. var MAXSPALTENVERFUEGBAR = 99; // soll täglich nach einem Update des AAO-Scriptes gesucht werden? var CHECKFORUPDATES = true; // unter welchem URL finde ich Infos über das Script? var UPDATEURLlink = "https://openuserjs.org/scripts/Bjoern.Schlinkt-online.de/Feuerwache.net_AAO_Script_by_Bjoern082"; var UPDATEURLmeta = "https://openuserjs.org/scripts/Bjoern.Schlinkt-online.de/Feuerwache.net_AAO_Script_by_Bjoern082"; // unter welchem URL finde ich das Script als Installation? var INSTALLURL = "https://openuserjs.org/scripts/Bjoern.Schlinkt-online.de/Feuerwache.net_AAO_Script_by_Bjoern082";; var Einsatzklassen = { // hier die Einsatzstichworte einer Einsatzklasse und zusätzlichen Fahrzeugen zuordnen // Es werden später alle Fahrzeuge vorgeschlagen, die der Einsatzklasse angehören // (z.B. 3xLF bei "Feuer3") sowie alle hier zusätzlich genannten Fahrzeuge // // Syntax in der Alarmierungsliste: // Einsatzklasse zuerst, dann ggf. ein Plus (+) und weiter Fahrzeugklassen, diese // durch Komma (,) voneinander getrennt. Alternativen durch Schrägstrich (/) getrennt // Optionale Fahrzeuge (werden nur in der Liste hervorgehoben) mit Pipe (|) anfügen // zum Beispiel 'F1+RW/TS,ELW|GW-M,DL' -> // alarmiere alles nach F1, zusätzlich einen RW oder LF16-TS, sowie einen ELW. // markiere zusätzlich den nächsten GW-M sowie die nächste DL // // AAO Optimierung im Forum: http://www.feuerwache.net/forum/hauptforum/nachforderungen-sammelthread-fuer-wiki/5 // daher wurde AAO angepasst und entschärft, ergo mehr Fhz frei 'Baum auf Auto' : 'Hilfeleistung-VU', 'Baum auf Dach' : 'Hilfeleistung 1.2', 'Baum auf Straße' : 'Hilfeleistung', 'Brand in KFZ-Werkstatt' : 'Feuer 3+FwK', 'Brand in Schule' : 'Feuer 4-GWA', 'Brand in Spedition' : 'Feuer-ABC4-DLK|GT', 'Brand in Sporthalle' : 'Feuer 3-GWA', 'Auffahrunfall' : 'Hilfeleistung 1', 'Auffahrunfall_n' : 'Hilfeleistung 1|GWA', 'Feldbrand' : 'Feuer 1+GWL', 'Feldbrand_n' : 'Airport', 'Mülleimer Brand' : 'Feuer 1', 'Mülleimer Brand_n' : 'Airport', 'Brand im Sägewerk' : 'Feuer 3-GWA', 'Brand im Supermarkt' : 'Feuer 3-FwK', 'Brennende Bäume' : 'Feuer 1', 'Brennende Telefonzelle' : 'Feuer 1', 'Brennender LKW' : 'Feuer 1|GWM,GWG,ELW,GT', 'Brennender PKW' : 'Feuer 1', 'Brennendes Gras' : 'Feuer 1', 'Chemieunfall (an Schule)' : 'Hilfeleistung 5', 'Chlorgas Alarm (Schwimmbad)' : 'Gasalarm', 'Container Brand' : 'Feuer 1', 'Dachstuhlbrand' : 'Feuer 2+DLK', 'Fahrstuhl - Türöffnung' : 'Hilfeleistung 1-RW', 'Fettbrand in Pommesbude' : 'Feuer 2-TLF', 'Feuer im Altenheim' : 'Feuer 4-GWA', 'Feuer im Laubhaufen' : 'Feuer 1', 'Gartenlaubenbrand' : 'Feuer 1', 'Gastronomiebrand' : 'Feuer 3', 'Kellerbrand' : 'Feuer 2', 'Keller unter Wasser' : 'Hilfeleistung', 'Kinobrand' : 'Feuer 4-TLF', 'Motorrad-Brand' : 'Feuer 1', 'Scheunenbrand' : 'Feuer 3+GWL', 'Schornsteinbrand' : 'Feuer 2+DLK', 'Silobrand' : 'Feuer 3', 'Sperrmüllbrand' : 'Feuer 1', 'Strohballen Brand' : 'Feuer 1|GWL', 'Traktorbrand' : 'Feuer 1', 'Verkehrsunfall' : 'Hilfeleistung-VU', 'Wohnblockbrand' : 'Feuer 5-GWA', 'Wohnungsbrand' : 'Feuer 2', 'Gewerbebrand' : 'Feuer 4-RW', 'Brand im Baumarkt' : 'Feuer-ABC4', 'Brennender Sicherungskasten' : 'Feuer 1', 'Schuppenbrand' : 'Feuer 2|GWM,GWG', 'Brennende S-Bahn' : 'Feuer S-Bahn', 'Wohnwagenbrand' : 'Feuer 1', 'Brand in Briefkasten' : 'Feuer 1', 'Kleiner Waldbrand' : 'Feuer 1', 'Brennender Müllwagen' : 'Feuer 1', 'Ölspur' : 'Hilfeleistung+GWÖ', 'Person im Fluss' : 'Menschenrettung', 'Brand in Zugdepot' : 'Feuer 4-GWS', 'Brand in Autohaus' : 'Feuer 4-GWM', 'Brand in Druckerei' : 'Feuer 4-GWL', 'Brand in Lackfabrik' : 'Feuer-ABC6', 'Trocknerbrand' : 'Feuer 1', 'Brand in Reifenlager' : 'Feuer-ABC3+GWL', 'Brand im Casino' : 'Großbrand', 'Brennendes Gebüsch' : 'Feuer 1', 'Kioskbrand' : 'Feuer 1', 'Garagenbrand' : 'Feuer 2', 'Mähdrescherbrand' : 'Feuer 1+TLF', 'Kaminbrand' : 'Feuer 1+DLK', 'PKW in Fluss' : 'Hilfeleistung-W1', 'Brand in Schloss' : 'Feuer 3-ELW', 'Brand in Kühlhaus' : 'Feuer-ABC5', 'Feuer im Krankenhaus' : 'Feuer-MANV', 'Brand in Kletterhalle' : 'Feuer 4', 'Grasnarbenbrand' : 'Airport', 'Brand-Weihnachtsbaum in Kirche' : 'Feuer 3+DLK', 'Brand auf Weihnachtsmarkt' : 'Feuer 1', 'Brennendes Flugzeug' : 'Flugzeugabsturz', 'Brand in Metzgerei' : 'Feuer 3-DLK', 'Brand in Eishalle' : 'Feuer 2-GWL', 'Brand in Gärtnerei' : 'Feuer-ABC3+DLK', 'Brand in Industriepark' : 'Explosion', 'Feuer auf Boot (Klein)' : 'W 1 Feuer auf Boot', 'Feuer auf Boot (Mittel)' : 'W 2 Feuer auf Boot', 'Gabelstapler im Hafenbecken' : 'Hilfeleistung-W2', 'Verletztentransport' : 'RD', 'Brand in Gemeindehaus' : 'Feuer 2', 'Maschinenbrand' : 'Feuer 3-GWL', 'Brand in Steinbruch' : 'Waldbrand', 'Tankbrand' : 'Feuer-Tankl1', 'Brennt Tanklager' : 'Feuer-Tankl2', 'Brand in Raffinerie' : 'Feuer-Tankl3', 'Unfall mit Gefahrgut-Transport' : 'Hilfeleistung-ABC', 'Gefahrstoff-Austritt in Firma' : 'Hilfeleistung-ABC 2', 'Brand in Betankungsanlage' : 'Feuer-Tankl4', 'Küchenbrand' : 'Feuer 1', 'Türöffnung' : 'Feuer 1', 'Waldbrand' : 'Feuer-Wald', 'VU mit Straßenbahn' : 'Hilfeleistung 1.8', 'Kleintier in Not' : 'Hilfeleistung', 'Brennendes Bus-Häuschen' : 'Feuer 1', 'Person in Schacht' : 'Hilfeleistung', 'Auslaufende Betriebsstoffe' : 'Hilfeleistung+GWÖ', 'Güterzug entgleist' : 'Hilfeleistung-Bahn', 'Brand am Bahndamm' : 'Feuer 1', 'Feuer im Personenzug' : 'Feuer-Bahn/MANV', 'RTZ-Einsatz' : 'RTZ-besetzen', 'Baum auf Schiene' : 'Hilfeleistung 1', 'Brennender Güterzug' : 'Feuer-Bahn', 'Rangierunfall' : 'VU-Schienenfahrzeug', 'Brennender Güterzug (Bahnhof)' : 'Feuer-Bahn3', 'Feuer im Personenzug (Bahnhof)' : 'Feuer-Bahn2', 'Güterzug entgleist (Bahnhof)': 'Hilfeleistung-Bahn3', 'Unfall an Bahnübergang' : 'Hilfeleistung 3', 'Brand in Fahrkartenautomat' : 'Feuer 1', 'Brennende Lokomotive' : 'Feuer-Triebwagen', 'Feuer in Bahnhofshalle' : 'Feuer 5-ELW', 'Feuer im Personenzug (Tunnel)' : 'Feuer-Tunnel', 'LKW in Brückengeländer' : 'Hilfeleistung 4', 'Ausgedehnter Waldbrand' : 'Feuer 6', 'Ammoniakaustritt in Eishalle': 'Feuer 3-ABC', 'Brand in Brauerei' : 'Feuer 2-GWA', 'Brand in Großwäscherei' : 'Feuer 4-ABC', 'Güterzug entgleist (Tunnel)' : 'Hilfeleistung-Tunnel', 'Brennender Güterzug (Tunnel)' : 'Feuer-Bahn1', 'Brennende Windmühle' : 'Feuer 1.1', 'Baukran auf Auto' : 'Hilfeleistung 1.3', 'Brennt Anhänger' : 'Feuer 1', 'Tagebauarbeiter abgestürzt' : 'Hilfeleistung 1.4', 'Brennender Personenbus' : 'Feuer 1-GWL|GWL', 'Radlader umgekippt' : 'Hilfeleistung 1.6', 'Muldenkipper abgerutscht' : 'Hilfeleistung 1.5', 'Gerüsteinsturz' : 'Hilfeleistung 1.7', 'Brand nach Schweißarbeiten' : 'Feuer 3-ELW', 'Baggerbrand' : 'Feuer 2-ELW', 'Wassereinbruch' : 'Feuer 1', 'Gas-Explosion' : 'Feuer 1.2', 'Brennender Muldenkipper' : 'Feuer 2', 'Brennendes Förderband' : 'Feuer 2', 'Brennender Wohncontainer' : 'Feuer 2', 'Gasaustritt in Fabrik' : 'Feuer-ABC1', 'Brand in Polizeistation' : 'Feuer 3.0', 'Baggerbrand' : 'Feuer 1', 'Brand nach Schweißarbeiten' : 'Feuer 2+DLK', 'Brennender Wohncontainer' : 'Feuer 1', 'Gas-Explosion' : 'Feuer 3-GWL', 'Gerüsteinsturz' : 'Hilfeleistung', 'Wassereinbruch' : 'Hilfeleistung', 'Rauchentwicklung in Kantine' : 'Feuer 1', 'Brand bei Flugzeugbetankung' : 'Flugzeugabsturz', 'Brand im Terminal' : 'Terminalbrand', 'Brand im Tower' : 'Flugzeugabsturz', 'Brand in Streichholzfabrik' : 'Feuer 2', 'Brand in Telefonshop' : 'Feuer 2', 'Großbrand in Zuckerfabrik' : 'Feuer-ABC4', 'Brand in Altpapier-Lager' : 'Feuer-ABC6', }; var Einsatzklasse_Fahrzeugzuordnung = { // hier wird definiert, welche Fahrzeuge standardmäßig zu den verschiedenen // Einsatzklassen geschickt werden. Einzelne Fahrzeuge werden durch Komma (,) // getrennt, Alternativen durch (/). // !!!ACHTUNG: HIER KEINE OPTIONALEN FAHRZEUGE (|) EINTRAGEN!!! 'undef' : 'LF', 'WATCH' : 'LF,LF,LF', 'RD' : 'RTW', // zu undef = unbekannten Einsatzen wird per Default jetzt ein LF geschickt // Brandeinsätze 'Feuer 3.0' : 'LF,LF,ELW 1,RW,DLK', 'Feuer 1' : 'LF-S/LF', 'Feuer 1-GWL' : 'LF', 'Feuer 1.1' : 'LF-S/LF,LF-S/LF,ELW,DLK', 'Feuer 1.2' : 'LF-S/LF,LF-S/LF,ELW', 'Feuer 1-Feld' : 'LF/FLF,GWL/FLF', 'Feuer S-Bahn' : 'LF,LF,GWS', 'Feuer 2' : 'LF,LF,ELW,DLK,GWA', 'Feuer 2-ELW' : 'LF,LF,ELW', 'Feuer 2-GWA' : 'LF,LF,LF,GWA,ELW,DLK,GWL', 'Feuer 2-TLF' : 'LF,LF,TLF', 'Feuer 2-GWL' : 'LF,LF,DLK,GWL,TLF,RW,ELW', 'Feuer 3' : 'LF,LF,LF', 'Feuer 3-ABC' : 'LF,LF,LF,GWM,GWG,RW,ELW,GWA', 'Feuer 3-ELW' : 'LF,LF,LF,ELW,DLK', 'Feuer 3-FwK' : 'LF,LF,LF,DLK,FwK', 'Feuer 3-DLK' : 'LF,LF,LF,ELW,DLK,GWL', 'Feuer 3-GWA' : 'LF,LF,LF,LF,ELW,GWA,GWL', 'Feuer 3-GWL' : 'LF,LF,LF,ELW,GWL', 'Feuer 4' : 'LF,LF,LF,LF,GWL,ELW,DLK', 'Feuer 4-ABC' : 'LF,LF,LF,LF,GWA,GWL,ELW,DLK,GWM', 'Feuer 4-GWS' : 'LF,LF,LF,LF,DLK,ELW,GWL,RW,GWS', 'Feuer 4-GWM' : 'LF,LF,LF,LF,DLK,ELW,GWA,GWM', 'Feuer 4-GWA' : 'LF,LF,LF,LF,DLK,ELW,GWA', 'Feuer 4-TLF' : 'LF,LF,LF,LF,DLK,ELW,GWA,TLF', 'Feuer 4-GWL' : 'LF,LF,LF,LF,DLK,ELW,GWA,GWL,RW', 'Feuer 4-RW' : 'LF,LF,LF,LF,DLK,ELW,GWA,RW', 'Feuer 4-DLK' : 'LF,LF,LF,LF,DLK,ELW,RW', 'Feuer 4-ELW' : 'LF,LF,LF,LF,GWL,ELW,DLK', 'Feuer 5' : 'LF,LF,LF,LF,LF,DLK,ELW,TLF,GWA,GWL', 'Feuer 5-GWA' : 'LF,LF,LF,LF,LF,ELW,GWA', 'Feuer 5-ELW' : 'LF-S/LF,LF-S/LF,LF-S/LF,LF,LF,GWA,DLK,GWL,ELW', 'Feuer 6' : 'LF,LF,LF,LF,LF,LF,LF,LF,GWL,ELW', 'Großbrand' : 'LF,LF,LF,LF,LF,LF,LF,LF,DLK,ELW,TLF,GWA,GWL', 'Feuer-ABC1' : 'LF,LF,LF,LF,DLK,GWG,GWL,GWM,ELW,RW', 'Feuer-ABC4' : 'LF,LF,LF,LF,ELW,RW,GWM,GWG,GWA', 'Feuer-ABC4-DLK' : 'LF,LF,LF,LF,ELW,DLK,RW,GWM,GWG,GWL,TLF', 'Feuer-ABC5' : 'LF,LF,LF,LF,LF,DLK,ELW,GWL,GWG,GWM', 'Feuer-ABC6' : 'LF,LF,LF,LF,LF,LF,ELW,DLK,GWA,GWM,GWG', 'Feuer-MANV' : 'LF,LF,LF,LF,LF,LF,LF,LF,ELW,GWL,RW,GWM,GWG,GWA', 'Airport' : 'FLF/LF', 'Flugzeugabsturz' : 'FLF,FLF,FLF,FLF,FLF,FLF,FLF,RTF,GWG,GWM,GWÖ,ELW,RW', 'Explosion' : 'LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,ELW,TLF,GWA,GWL,DLK,RW,FwK,GWÖ,GWM,GWG,GWS', 'Waldbrand' : 'LF,LF,LF,LF,LF,LF,LF,LF,LF,LF,ELW,TLF,GWA,GWL,DLK,RW,FwK,GWÖ,GWM,GWG,GWS,GWT', 'Feuer-Tankl1' : 'LF,LF,LF,LF,GT,LF,LF,LF,RW,GWÖ,ELW,ULF', 'Feuer-Tankl2' : 'LF,LF,LF,LF,GT,LF,LF,LF,LF,RW,GWM,GWÖ,ELW,GWL,ULF', 'Feuer-Tankl3' : 'LF,LF,LF,LF,GT,LF,LF,LF,LF,LF,ELW,RW,GWG,GWM,DLK,GWL,TLF,FwK,ULF', 'Feuer-Tankl4' : 'LF,LF,LF,LF,GT,LF,LF,LF,LF,GWG,GWM,GWA,RW,ULF', 'Feuer-Wald' : 'LF,LF,LF,LF,LF,ELW,GWL,DLK', 'Feuer-ABC2' : 'LF,LF,GWM,GWG', 'Feuer-ABC3' : 'LF,LF,LF,ELW,GWM,GWG', 'Feuer-Bahn/MANV' : 'LF-S,LF,LF,LF,LF,ELW,GWL,TLF', 'Feuer-Bahn' : 'LF-S,LF,LF,LF,LF,ELW,GWM,GWL,GWG,GT', 'Feuer-Bahn1' : 'LF-S,LF-S,LF,ELW,GWM,GWL,GWG,GT', 'Feuer-Bahn2' : 'LF,LF,LF-S,LF,LF,ELW,GWL', 'Feuer-Bahn3' : 'LF-S,LF,LF,LF,LF,ELW,GWM,GWG,TLF,GT', 'Feuer-Tunnel' : 'LF-S,ELW,GWL', 'Feuer-Triebwagen' : 'LF-S,LF,GWL,ELW', 'Wasserrettung' : 'LF,GWT', 'Menschenrettung' : 'LF,GWT', 'Hilfeleistung+GWÖ' : 'LF,GWÖ', 'Hilfeleistung-W1' : 'LF,RW,GWT,FwK', 'Hilfeleistung-W2' : 'LF,LF,RW,GWT,FwK', 'Hilfeleistung-VU' : 'LF,RW,GWÖ', 'Hilfeleistung-VU 1' : 'LF-S/LF', 'Hilfeleistung-Tunnel' : 'LF-S,LF-S,LF-S,ELW,RW,GWM,GWG,GT,GWA,GWS', 'Hilfeleistung' : 'LF-S/LF', 'Hilfeleistung 1-RW' : 'LF-S/LF,RW', 'Hilfeleistung 1' : 'LF-S/LF,LF-S/LF', 'Hilfeleistung 1.2' : 'LF-S/LF,DLK,RW', 'Hilfeleistung 1.3' : 'LF-S/LF,LF-S/LF,FwK,RW', 'Hilfeleistung 1.4' : 'LF-S/LF,DLK,RW,GWH', 'Hilfeleistung 1.5' : 'LF-S/LF,LF-S/LF,LF-S/LF,GWH,FwK,ELW', 'Hilfeleistung 1.6' : 'LF-S/LF,ELW,FwK,RW,GWÖ', 'Hilfeleistung 2' : 'RW,LF,LF', 'Hilfeleistung 3' : 'LF,LF,RW,GWS,GWÖ,ELW', 'Hilfeleistung 4' : 'LF,LF,LF,DLK,RW,ELW,FwK', 'Hilfeleistung 5' : 'LF,LF,LF,ELW,GWM,GWG', 'Hilfeleistung 1.7' : 'LF,LF,DLK,RW,ELW', 'Hilfeleistung 1.8' : 'LF,LF,DLK,RW,ELW,GWS,FwK', 'Hilfeleistung+DLK 1' : 'LF,LF,DLK', 'Gasalarm' : 'LF,LF,LF,ELW,RW,GWM,GWG', 'Hilfeleistung-Bahn' : 'LF-S,LF,LF,LF,LF,GWM,GWG,ELW,GWS,RW,DLK,GT', 'VU-Schienenfahrzeug' : 'LF-S,LF,LF,LF,ELW,RW,GWÖ,GWS', 'Hilfeleistung-Bahn3' : 'LF-S,LF,LF,LF,LF,GWG,GWM,RW,FwK,GWS,ELW,GT', 'Hilfeleistung-ABC' : 'LF,LF,RW,FwK,GWA,GWG,GWM,ELW,GT', 'Hilfeleistung-ABC 2' : 'LF,LF,LF,LF,GWM,GWG,GWA,GWL,ELW,GT', 'W 1 Feuer auf Boot' : 'Feuerlöschboot', 'W 2 Feuer auf Boot' : 'Feuerlöschboot,Feuerlöschboot', 'RTZ-besetzen' : 'LF-S/LF,LF-S/LF,LF-S/LF,LF-S/LF', 'Terminal Brand' : 'LF,LF,FLF,ELW,GWM,GWA,GWG', }; var Fahrzeugbedingungen = { // Syntax: AlleFeuerwachen|Berufsfeuerwehren 'RTW' : '0|10', 'ELW' : '5|0', 'TLF' : '7|0', 'GWA' : '6|0', 'RW' : '4|0', 'DLK' : '3|0', 'GWG' : '0|2', 'GWM' : '0|2', 'GWÖ' : '4|0', 'GWL' : '5|0', 'GWS' : '10|0', 'FwK' : '25|0', 'GWT' : '0|25', 'GT' : '64|0', 'FLF' : '56|0', 'RTF' : '56|0', 'Feuerlöschboot' : '0|30', 'Rettungsboot' : '0|50', 'LF' : '1|0', 'ULF' : '1|0', 'LF-S' : '1|0', 'RTZ' : '1|0', 'NEF' : '0|20', }; //Alle Fahrzeugtypen aufgelistet, nur mit Zahlenindex var fahrzeugabkuerzungen = new Array('LF','RTW','GWH','NEF','ELW','TLF','DLK','RW','FwK','GWA','GWL','GWÖ','GWS','GWT','GWM','GWG','FLF','RTF','GT','Feuerlöschboot','Rettungsboot','ULF','LF-S','RTZ','WLF'); var Fahrzeuggeschwindigkeiten = { 'Rettungstreppe' : 65 , 'RTW' : 75 , 'GW-Höhenrettung' : 55 , 'LF 10/6' : 58 , 'LF 10' : 58 , 'HLF 10/6' : 58 , 'LF 20/16' : 60 , 'LF 20' : 60 , 'HLF 20/16' : 60 , 'LF 8' : 48 , 'Flugfeldlöschfahrzeug': 110 , 'Kleinlöschfahrzeug' : 60 , 'TLF 20/40 - SL' : 49 , 'DLA (K) 23/12' : 63 , 'ELW 1' : 77 , 'LF 16-TS' : 52 , 'RW' : 49 , 'GW-A' : 56 , 'GW-L2 - Wasser' : 53 , 'GW-Öl' : 51 , 'GW-Schiene' : 57 , 'GW-Gefahrgut' : 46 , 'GW-Messtechnik' : 40 , 'GW-Taucher' : 62 , 'Kran' : 55 , 'Feuerlöschboot' : 60 , 'GW-TUIS' : 73 , 'ULF mit Löscharm' : 40 , 'TLF 16/25' : 55 , 'HLF 24/14-S' : 60 , 'Notarzteinsatzfahrzeug' : 80 , 'Feuerlöschboot' : 60 , 'Wechsellader' : 80 , }; // IDs der Fahrzeuge var fahrzeuge_ids = { 1 :'undef', 2 :'undef', 3 :'ELW', 4 :'DLK', 5 :'GWÖ', 6 :'undef', 7 :'TLF', 8 :'GWL', 9 :'undef', 10:'GWA', 11:'RW', 12:'GWM', 13:'GWG', 14:'undef', 15:'RTW', 16:'GWS', 17:'GWT', 18:'FwK', 19:'FLF', 20:'RTF', 21:'undef', 22:'undef', 23:'undef', 24:'undef', 25:'GT', 26:'ULF', 27:'undef', 28:'LF-S', 29:'NEF', 30:'undef', 31:'undef', 32:'undef', 33:'undef', 34:'undef', 35:'undef', 36:'undef', 37:'undef', 38:'undef', 39:'undef', }; // // usually no need to change anything below this line // var Fahrzeugklassen = { // hier die verfügbaren Fahrzeugen mit ihrer Beschreibung und der Zuordnung // zu einer Fahrzeugklasse auflisten. Fahrzeuge, die ihr eigener Typ sind // (z.B. "RTW") brauchen hier nicht aufgeführt werden. (sie schaden aber auch nicht) 'LF 20/16' : 'LF' , 'LF 20' : 'LF' , 'LF 10' : 'LF' , 'HLF 20/16' : 'LF' , 'LF 16-TS' : 'LF' , 'LF 10/6' : 'LF' , 'HLF 10/6' : 'LF' , 'LF 8' : 'LF' , 'HLF 24/14-S' : 'LF-S' , 'RTW' : 'RTW' , 'ELW 1' : 'ELW' , 'TLF 20/40 - SL' : 'TLF' , 'DLA (K) 23/12' : 'DLK' , 'RW' : 'RW' , 'Kran' : 'FwK' , 'Kleinlöschfahrzeug' : 'LF' , 'GW-A' : 'GWA' , 'GW-L2 - Wasser' : 'GWL' , 'GW-Öl' : 'GWÖ' , 'GW-Schiene' : 'GWS' , 'GW-Taucher' : 'GWT' , 'GW-Höhenrettung' : 'GWH' , 'GW-Messtechnik' : 'GWM' , 'GW-Gefahrgut' : 'GWG' , 'Flugfeldlöschfahrzeug': 'FLF' , 'Rettungstreppe' : 'RTF' , 'GW-TUIS' : 'GT' , 'ULF mit Löscharm' : 'ULF' , 'Feuerlöschboot' : 'Feuerlöschboot' , 'Rettungsboot' : 'Rettungsboot' , 'TLF 16/25' : 'LF' , 'Notarzteinsatzfahrzeug' : 'NEF' , 'Wechsellader' : 'WLF' , }; function createText(text) { return document.createTextNode(text); } // Beschreibung des Einsatzgebietes ermitteln function getAreaDescription(x, y) { var locArr = []; for (loc in locationArr) { if (locationArr[loc].from.x <= x && locationArr[loc].from.y <= y && locationArr[loc].to.x >= x && locationArr[loc].to.y >= y) { locArr.push(loc); } } return locArr.join(', '); } function bearbeiteFahrzeugseite() { // Fahrzeug bearbeiten var nodeCaption = document.getElementById("caption"); var nodeTD = createElement("td"); nodeCaption.parentNode.parentNode.insertBefore(nodeTD,nodeCaption.parentNode.nextSibling); var nodeScript = createElement('script', {'type': 'text/javascript'}); nodeScript.innerHTML = "function ToggleStatus6()\n\ {\n\ var I=document.getElementById('caption');\n\ var FN=I.value;\n\ if (FN.substr(0,4).toUpperCase()=='XXX ')\n\ { I.value = FN.substr(4,FN.length-4); }\n\ else { I.value = 'XXX ' + FN; }\n\}"; nodeTD.appendChild(nodeScript); var nodeA = createElement('a',{'href': 'javascript:ToggleStatus6();'}); nodeTD.appendChild(nodeA); nodeA.appendChild(createText('Fahrzeug in/außer Dienst stellen')); } // fasst mehrere Fahrzeuge mit Anzahl zusammen: LF, LF -> 2*LF function condenseFahrzeugliste(fListeArr){ var fCumArr = new Array; var fListeTxt = ''; // Einträge je Fahrzeug zählen (Fahrzeuge mit Alternativen werden separat gezählt) // für Alternativen bestimmen, wo sie einsortiert werden sollen var fhz=fListeArr; for (var i=0;i < fhz.length;i++){ var f = ''; var altFhz = fhz[i].split('/'); if (altFhz.length > 1) f = altFhz[0]; else f = fhz[i]; if (fCumArr[f] == undefined) { fCumArr[f] = new Array; fCumArr[f].value = 1; fCumArr[f].vehicles = fhz[i]; } else { fCumArr[f].value++; } } for (var i=0;i < fahrzeugabkuerzungen.length;i++) { fSeq=fahrzeugabkuerzungen[i]; if (fCumArr[fSeq] == undefined) { continue; } if (fListeTxt != '') { fListeTxt += '*'; } if (fCumArr[fSeq].value == 1) { fListeTxt += fCumArr[fSeq].vehicles; } else { var anzTxt = fCumArr[fSeq].value.toString(); fListeTxt += anzTxt + fCumArr[fSeq].vehicles; } } return fListeTxt; } function bearbeiteLogFile() { var TRs = document.getElementById("content").getElementsByTagName("tbody")[0].getElementsByTagName("tr"); { var AnzNotruf = 0, AnzFehl = 0, AnzErledigt = 0; for (i=0;i<TRs.length;i++) { var TR = TRs[i]; var TD = TR.getElementsByTagName("td")[0]; var H = TD.innerHTML; var Hstr = new String; Hstr = H; if (Hstr.match("Fehleinsatz:") != null ) { AnzFehl++; H = "<font color='orange'>"+H+"</font>"; } else if (Hstr.match("Notruf:") != null ) { AnzNotruf++; H = "<font color='red'>"+H+"</font>"; } else if (Hstr.match("Einsatz abgearbeitet:") != null ) { AnzErledigt++; H = "<font color='green'>"+H+"</font>"; } TD.innerHTML = H; } } var ret; var Fehlquote; Fehlquote = (100/(AnzErledigt+AnzFehl))*AnzFehl if (AnzFehl == 0) { Fehlquote = 0 } ret = "<table class='defaultTable'><tr>"; ret += "<th colspan='2'>Auswertung der aktuellen Logfile Seite:</th></tr>\n"; ret += "<tr><th>neue Notrufe</th><td style='width:365px;'><font color='red'><b>" + AnzNotruf + "</b></font></td></tr>\n"; ret += "<tr><th>Einsätze erledigt</th><td> <font color='green'><b>" + AnzErledigt + "</b></font></td></tr>\n"; ret += "<tr><th>Fehleinsätze</th><td><font color='orange'><b>" + AnzFehl + "</b></font></td></tr>\n"; ret += "<tr><th>Quote Fehleinsätze</th><td><b>" + Fehlquote.toFixed(2) + "%</b></td></tr>\n"; ret += "</table><br>\n"; var main, newElement; main = document.getElementsByTagName("h1")[0]; newElement = document.createElement('p'); main.parentNode.insertBefore(newElement, main.nextSibling); newElement.innerHTML = ret; } var Nachforderungen = { "Hier muss Wasser über weite Wegstrecken transportiert werden. Wir benötigen einen GW-L2 Wasser." : "GWL", "Das Feuer ist weiter ausserhalb und alle Wasserreserven sind aufgebraucht. Wir brauchen einen GW-L2 -Wasser um weitere Schläuche verlegen zu können." : "GWL", "Um Leitungen über weite Strecken legen zu können, benötigen wir einen GW - L2 - Wasser." : "GWL", "Wir müssen Wasser über eine weite Wegstrecke transporierten und benötigen einen GW-L2 Wasser" : "GWL", }; var WikiLinks = { 'Auffahrunfall' : 'http://wiki.feuerwache.net/wiki/Auffahrunfall', 'Baum auf Auto' : 'http://wiki.feuerwache.net/wiki/Baum_auf_Auto', 'Baum auf Dach' : 'http://wiki.feuerwache.net/wiki/Baum_auf_Dach', 'Baum auf Straße' : 'http://wiki.feuerwache.net/wiki/Baum_auf_Straße', 'Brand im Baumarkt' : 'http://wiki.feuerwache.net/wiki/Brand_im_Baumarkt', 'Brand in KFZ-Werkstatt' : 'http://wiki.feuerwache.net/wiki/Brand_in_KFZ-Werkstatt', 'Brand im Sägewerk' : 'http://wiki.feuerwache.net/wiki/Brand_im_Sägewerk', 'Brand im Supermarkt' : 'http://wiki.feuerwache.net/wiki/Brand_im_Supermarkt', 'Brand in Schule' : 'http://wiki.feuerwache.net/wiki/Brand_in_Schule', 'Brand in Spedition' : 'http://wiki.feuerwache.net/wiki/Brand_in_Spedition', 'Brand in Sporthalle' : 'http://wiki.feuerwache.net/wiki/Brand_in_Sporthalle', 'Brennende Bäume' : 'http://wiki.feuerwache.net/wiki/Brennende_Bäume', 'Brennende Telefonzelle' : 'http://wiki.feuerwache.net/wiki/Brennende_Telefonzelle', 'Brennender LKW' : 'http://wiki.feuerwache.net/wiki/Brennender_LKW', 'Brennender PKW' : 'http://wiki.feuerwache.net/wiki/Brennender_PKW', 'Brennendes Gras' : 'http://wiki.feuerwache.net/wiki/Brennendes_Gras', 'Chemieunfall (an Schule)' : 'http://wiki.feuerwache.net/wiki/Chemieunfall_an_Schule', 'Chlorgas Alarm (Schwimmbad)' : 'http://wiki.feuerwache.net/wiki/Chlorgas_Alarm_Schwimmbad', 'Container Brand' : 'http://wiki.feuerwache.net/wiki/Containerbrand', 'Dachstuhlbrand' : 'http://wiki.feuerwache.net/wiki/Dachstuhlbrand', 'Fahrstuhl - Türöffnung' : 'http://wiki.feuerwache.net/wiki/Fahrstuhl-Türöffnung', 'Feldbrand' : 'http://wiki.feuerwache.net/wiki/Feldbrand', 'Fettbrand in Pommesbude' : 'http://wiki.feuerwache.net/wiki/Fettbrand_in_Pommesbude', 'Feuer im Altenheim' : 'http://wiki.feuerwache.net/wiki/Feuer_im_Altenheim', 'Feuer im Laubhaufen' : 'http://wiki.feuerwache.net/wiki/Feuer_im_Laubhaufen', 'Gartenlaubenbrand' : 'http://wiki.feuerwache.net/wiki/Gartenlaubenbrand', 'Gastronomiebrand' : 'http://wiki.feuerwache.net/wiki/Gastronomiebrand', 'Gewerbebrand' : 'http://wiki.feuerwache.net/wiki/Gewerbebrand', 'Kellerbrand' : 'http://wiki.feuerwache.net/wiki/Kellerbrand', 'Keller unter Wasser' : 'http://wiki.feuerwache.net/wiki/Keller_unter_Wasser', 'Kinobrand' : 'http://wiki.feuerwache.net/wiki/Kinobrand', 'Motorrad-Brand' : 'http://wiki.feuerwache.net/wiki/Motorradbrand', 'Mülleimer Brand' : 'http://wiki.feuerwache.net/wiki/Mülleimerbrand', 'Scheunenbrand' : 'http://wiki.feuerwache.net/wiki/Scheunenbrand', 'Schornsteinbrand' : 'http://wiki.feuerwache.net/wiki/Schornsteinbrand', 'Silobrand' : 'http://wiki.feuerwache.net/wiki/Silobrand', 'Sperrmüllbrand' : 'http://wiki.feuerwache.net/wiki/Sperrmüllbrand', 'Strohballen Brand' : 'http://wiki.feuerwache.net/wiki/Strohballen_Brand', 'Traktorbrand' : 'http://wiki.feuerwache.net/wiki/Traktorbrand', 'Verkehrsunfall' : 'http://wiki.feuerwache.net/wiki/Verkehrsunfall', 'Wohnblockbrand' : 'http://wiki.feuerwache.net/wiki/Wohnblockbrand', 'Wohnungsbrand' : 'http://wiki.feuerwache.net/wiki/Wohnungsbrand', 'Brand auf Weihnachtsmarkt' : 'http://wiki.feuerwache.net/wiki/Brand_auf_Weihnachtsmarkt', 'Brand-Weihnachtsbaum in Kirche' : 'http://wiki.feuerwache.net/wiki/Brand-Weihnachtsbaum_in_Kirche', //neu 22.01.2010 'Brennender Sicherungskasten' : 'http://wiki.feuerwache.net/wiki/Brennender_Sicherungskasten', 'Schuppenbrand' : 'http://wiki.feuerwache.net/wiki/Schuppenbrand', 'Brennende S-Bahn' : 'http://wiki.feuerwache.net/wiki/Brennende S-Bahn', //neu 08.03.2010 'Wohnwagenbrand' : 'http://wiki.feuerwache.net/wiki/Wohnwagenbrand', 'Brand in Briefkasten' : 'http://wiki.feuerwache.net/wiki/Brand_in_Briefkasten', 'Kleiner Waldbrand' : 'http://wiki.feuerwache.net/wiki/Kleiner_Waldbrand', 'Brennender Müllwagen' : 'http://wiki.feuerwache.net/wiki/Brennender_Müllwagen', 'Ölspur' : 'http://wiki.feuerwache.net/wiki/Ölspur', 'Brand in Zugdepot' : 'http://wiki.feuerwache.net/wiki/Brand_im_Zugdepot', 'Brand in Autohaus' : 'http://wiki.feuerwache.net/wiki/Brand_in_Autohaus', 'Brand in Druckerei' : 'http://wiki.feuerwache.net/wiki/Brand_in_Druckerei', 'Brand in Lackfabrik' : 'http://wiki.feuerwache.net/wiki/Brand_in_Lackfabrik', 'Person im Fluss' : 'http://wiki.feuerwache.net/wiki/Person_im_Fluss', //neu 29.03.2010 'Trocknerbrand' : 'http://wiki.feuerwache.net/wiki/Trocknerbrand', 'Brand in Reifenlager' : 'http://wiki.feuerwache.net/wiki/Brand_in_Reifenlager', 'Brand im Casino' : 'http://wiki.feuerwache.net/wiki/Brand_im_Casino', //neu 23.04.2010 'Brennendes Gebüsch' : 'http://wiki.feuerwache.net/wiki/Brennendes_Gebüsch', 'Kioskbrand' : 'http://wiki.feuerwache.net/wiki/Kioskbrand', 'Garagenbrand' : 'http://wiki.feuerwache.net/wiki/Garagenbrand', 'Mähdrescherbrand' : 'http://wiki.feuerwache.net/wiki/Mähdrescherbrand', 'Kaminbrand' : 'http://wiki.feuerwache.net/wiki/Kaminbrand', 'PKW in Fluss' : 'http://wiki.feuerwache.net/wiki/PKW_in_Fluss', 'Brand in Schloss' : 'http://wiki.feuerwache.net/wiki/Brand_in_Schloss', 'Brand in Kühlhaus' : 'http://wiki.feuerwache.net/wiki/Brand_in_Kühlhaus', 'Feuer im Krankenhaus' : 'http://wiki.feuerwache.net/wiki/Feuer_im_Krankenhaus', 'Brand in Kletterhalle' : 'http://wiki.feuerwache.net/wiki/Brand_in_Kletterhalle', //neu 23.08.2010 'Grasnarbenbrand' : 'http://wiki.feuerwache.net/wiki/Grasnarbenbrand', //neu 01.09.2010 'Brennendes Flugzeug' : 'http://wiki.feuerwache.net/wiki/Brennendes_Flugzeug', // Einsätze neu ab 27.10.2010 Gärtnerei, Metzger, Eilshalle 'Brand in Gärtnerei' : 'http://wiki.feuerwache.net/wiki/Brand_in_Gärtnerei', 'Brand in Eishalle' : 'http://wiki.feuerwache.net/wiki/Brand_in_Eishalle', 'Brand in Metzgerei' : 'http://wiki.feuerwache.net/wiki/Brand_in_Metzgerei', // Einsatz neu 19.11.2010 Boot Klein 'Boot (Klein)' : 'http://wiki.feuerwache.net/wiki/Boot_Klein', // Einsatz neu 28.11.2010 Boot Mittel 'Boot (Klein)' : 'http://wiki.feuerwache.net/wiki/Boot_Mittel', // Einsatz neu 12.21.2010 'Gabelstapler im Hafenbecken' : 'http://wiki.feuerwache.net/wiki/Gabelstapler_im_Hafenbecken', // Einsätze neu 05.01.2011 'Brand in Gemeindehaus' : 'http://wiki.feuerwache.net/wiki/Brand_in_Gemeindehaus', 'Maschinenbrand' : 'http://wiki.feuerwache.net/wiki/Maschinenbrand', // Einsätze neu 14.02.2011 'Tankbrand' : 'http://wiki.feuerwache.net/wiki/Tankbrand', 'Brennt Tanklager ' : 'http://wiki.feuerwache.net/wiki/Brennt_Tanklager', 'Brennt Tanklager' : 'http://wiki.feuerwache.net/wiki/Brennt_Tanklager', 'Brand in Raffinerie' : 'http://wiki.feuerwache.net/wiki/Brand_in_Raffinerie', // Einsätze neu 12.05.2011 'Unfall mit Gefahrgut-Transport' : 'http://wiki.feuerwache.net/wiki/Unfall_mit_Gefahrgut-Transport', 'Gefahrstoff-Austritt in Firma' : 'http://wiki.feuerwache.net/wiki/Gefahrstoff-Austritt_in_Firma', // Einsätze neu 26.06.2011 'Waldbrand' : 'http://wiki.feuerwache.net/wiki/Waldbrand', 'Türöffnung' : 'http://wiki.feuerwache.net/wiki/Türöffnung', 'Küchenbrand' : 'http://wiki.feuerwache.net/wiki/Küchenbrand', 'Brand in Betankungsanlage' : 'http://wiki.feuerwache.net/wiki/Brand_in_Betankungsanlage', 'VU mit Strassenbahn' : 'http://wiki.feuerwache.net/wiki/VU_mit_Strassenbahn', 'VU mit Straßenbahn' : 'http://wiki.feuerwache.net/wiki/VU_mit_Strassenbahn', // Verbands GSL 'Brand in Industriepark' : 'http://wiki.feuerwache.net/wiki/Brand_in_Industriepark', 'Brand in Steinbruch' : 'http://wiki.feuerwache.net/wiki/Brand_in_Steinbruch', // Einsätze neu 24.12.2011 Bahnstrecke 'Brennender Güterzug' : 'http://wiki.feuerwache.net/wiki/Brennender_Güterzug', 'Feuer im Personenzug' : 'http://wiki.feuerwache.net/wiki/Feuer_im_Personenzug', 'Güterzug entgleist' : 'http://wiki.feuerwache.net/wiki/Güterzug_entgleist', 'Brand am Bahndamm' : 'http://wiki.feuerwache.net/wiki/Brand_am_Bahndamm', 'Baum auf Schiene' : 'http://wiki.feuerwache.net/wiki/Baum_auf_Schiene', // Einsätze neu 17.01.2012 'Brennender Güterzug (Bahnhof)' : 'http://wiki.feuerwache.net/wiki/Brennender_Güterzug_Bahnhof', 'Feuer im Personenzug (Bahnhof)' : 'http://wiki.feuerwache.net/wiki/Feuer_im_Personenzug_Bahnhof', 'Güterzug entgleist (Bahnhof)' : 'http://wiki.feuerwache.net/wiki/Güterzug_entgleist_Bahnhof', 'Unfall an Bahnübergang' : 'http://wiki.feuerwache.net/wiki/Unfall_an_Bahnübergang', 'Brand in Fahrkartenautomat' : 'http://wiki.feuerwache.net/wiki/Brand_in_Fahrkartenautomat', 'Brennende Lokomotive' : 'http://wiki.feuerwache.net/wiki/Brennende_Lokomotive', 'Rangierunfall' : 'http://wiki.feuerwache.net/wiki/Rangierunfall', 'Feuer in Bahnhofshalle' : 'http://wiki.feuerwache.net/wiki/Feuer_in_Bahnhofshalle', // Einsätze neu 03.02.2012 'Feuer im Personenzug (Tunnel)' : 'http://wiki.feuerwache.net/wiki/Feuer_im_Personenzug_Tunnel', // Einsätze ab 14.03.2012 'Ausgedehnter Waldbrand' : 'http://wiki.feuerwache.net/wiki/Ausgedehnter_Waldbrand', 'LKW in Brückengeländer' : 'http://wiki.feuerwache.net/wiki/LKW_in_Br%C3%BCckengel%C3%A4nder', // Einsätze ab 15.03.2012 'Brand in Großwäscherei' : 'http://wiki.feuerwache.net/wiki/Brand_in_Großwäscherei', 'Ammoniakaustritt in Eishalle' : 'http://wiki.feuerwache.net/wiki/Ammoniakaustritt_in_Eishalle', 'Brand in Brauerei' : 'http://wiki.feuerwache.net/wiki/Brand_in_Brauerei', // Einsätze ab 05.06.2012 'Gasaustritt in Fabrik' : 'http://wiki.feuerwache.net/wiki/Gasaustritt_in_Fabrik', 'Ausgedehnter Waldbrand' : 'http://wiki.feuerwache.net/wiki/Ausgedehnter_Waldbrand', }; // // really no need to change anything below // // // really no need to change anything below // // // ...unless you know what you do... // var ToAlarm = new Array; var Optional = new Array; var Unterwegs = new Array; var AmOrt = new Array; var AufAnfahrt = new Array; var Wartend = new Array; var NichtVerf = new Array; var ichBins; var FirstRun = true; var CBClicked = false; var debugging; var machVorschlag=true; var zweiterAbmarsch=GM_getValue("zweiterAbmarsch",0); var alarmtyp=GM_getValue("alarmtyp",0); var AlleGleich; var showInfoRTWplus; var showInfoKlasseInListe; var showInfoEinsatzNr,InfotextEinsatzNr; var showInfoStichwort,InfotextStichwort; var showInfoKlasse,InfotextKlasse; var showInfoKlassenalarm,InfotextKlassenalarm; var showInfoKlassenalarmOpt,InfotextKlassenalarmOpt; var showInfoRTW,InfotextRTW; var showInfoUnterwegs,InfotextUnterwegs; var showInfoNachforderungen,InfotextNachforderungen; var showInfoToAlarm,InfotextToAlarm; var showInfoFahrzeit,InfotextFahrzeit; var showInfoFahrzeitOpt,InfotextFahrzeitOpt; var showInfoNichtVerfuegbar,InfotextNichtVerfuegbar; var showInfoVerfuegbar,InfotextVerfuegbar; var ScriptUpdateAvailable=""; var adr = document.location.href; var showInfoOptionalAnkreuzen; var manv_sound; var showInfoVerbandSound; var showInfoProbeSound; var alarm_sound; var vgsl_sound; var soundplayed=''; init(); main(); function main() { mylog("main\nadr=" + adr); ichBins = true; if (adr == "http://www.feuerwache.net/feuerwehr-einsaetze") { bearbeiteÜbersichtsseite(); } else if (adr == "http://www.feuerwache.net/feuerwehrleitstelle") { bearbeiteLeitstelle(); } else if (adr == "http://www.feuerwache.net/feuerwehrfahrzeuge") { bearbeiteFahrzeugliste(); } else if (adr == "http://www.feuerwache.net/feuerwachen") { bearbeiteFeuerwachenliste(); Bilderkleiner(); } else if (adr == "http://www.feuerwache.net/feuerwachen/werbeaktion") { bearbeiteWerbeaktion(); } else if (adr == "http://www.feuerwache.net/gebaeude") { Bilderkleiner(); } else if (adr == "http://www.feuerwache.net/vehicle_to_user/repair/vehicle_to_user_id/[0-9]+") { Bilderkleiner(); } else if (adr == "http://www.feuerwache.net/personal/list") { bearbeitePersonaltabellen(); } else if (adr.match("http://www.feuerwache.net/feuerwachen/.*/feuerwehrleute")) { bearbeitePersonaltabellen(); } else if (adr.match("http://www.feuerwache.net/feuerwachen/.*/feuerwehrautos")) { FahrzeugTabellenToggle(); } else if (adr.match("http://www.feuerwache.net/vehicle/show/caption_url/*")) { bearbeiteFahrzeugkauf(); } else if (adr.match("http://www.feuerwache.net/feuerwehrfahrzeuge/[0-9]*/verschieben")) { bearbeiteFahrzeugkauf(); } else if (adr.match("http://www.feuerwache.net/building_to_user/show/id/*")) { bearbeiteLehrgangszuteilung(); } else if (adr.match("http://www.feuerwache.net/feuerwehr-einsaetze/[0-9]*")) { bearbeiteEinsatzseite(); } else if (adr.match("http://www.feuerwache.net/feuerwehrfahrzeuge/[0-9]*/bearbeiten")) { bearbeiteFahrzeugseite(); } else if (adr.match("http://www.feuerwache.net/event_logfile/*")) { bearbeiteLogFile(); } else if (adr.match("http://www.feuerwache.net/feuerwehrfahrzeuge/[0-9]*/reparieren")) { Bilderkleiner(); } ichBins = false; } function Bilderkleiner() { var IMGs = document.getElementsByTagName("img"); for each (IMG in IMGs) IMG.src = IMG.src.replace("/images/map/","/images/map_25/"); } function FahrzeugTabellenToggle() { if (!adr.match("http://www.feuerwache.net/feuerwachen/[0-9]+/feuerwehrautos")) return; var DC = document.getElementById("content"); if (!DC) return; var H2s = DC.getElementsByTagName("h2"); var TBs = DC.getElementsByTagName("table"); for (i=0;i<H2s.length;i++) { var H2=H2s[i]; if (H2.innerHTML.match("Fahrzeuge die unterwegs sind")) { TBs[i].style.display = "none"; TBs[i].id="hiddentable"; H2.innerHTML += " (toggle Anzeige)</font>"; H2.addEventListener("click", showTableUnterwegs, false); } } function showTableUnterwegs() { var T=document.getElementById("hiddentable"); if (!T) return; T.style.display = (T.style.display=="none" ? "" : "none") } } function createText(text) { return document.createTextNode(text); } function bearbeiteFahrzeugseite() { // Fahrzeug bearbeiten var H = "<script type='text/javascript'>\n"; H += "function ToggleStatus6()\n"; H += "{\n"; H += " var I=document.getElementById('caption');\n"; H += " var FN=I.value;\n"; H += " if (FN.substr(0,4).toUpperCase()=='XXX ')\n"; H += " { I.value = FN.substr(4,FN.length-4); }\n"; H += " else { I.value = 'XXX ' + FN; }\n"; H += "}\n"; H += "</script>\n\n"; H += "<a href='javascript:ToggleStatus6();';>Fahrzeug in/außer Dienst stellen</a>\n"; var INP = document.getElementById("caption"); var td = document.createElement("td"); td.innerHTML = H; INP.parentNode.parentNode.insertBefore(td,INP.parentNode.nextSibling); } function bearbeiteLogFile() { var TRs = document.getElementById("content").getElementsByTagName("tbody")[0].getElementsByTagName("tr"); { var AnzNotruf = 0, AnzFehl = 0, AnzErledigt = 0; for (i=0;i<TRs.length;i++) { var TR = TRs[i]; var TD = TR.getElementsByTagName("td")[0]; var H = TD.innerHTML; var Hstr = new String; Hstr = H; if (Hstr.match("Fehleinsatz:") != null ) { AnzFehl++; H = "<font color='blue'>"+H+"</font>"; } else if (Hstr.match("Notruf:") != null ) { AnzNotruf++; H = "<font color='red'>"+H+"</font>"; } else if (Hstr.match("Einsatz abgearbeitet:") != null ) { AnzErledigt++; H = "<font color='green'>"+H+"</font>"; } TD.innerHTML = H; } } var ret; var Fehlquote; Fehlquote = (100/(AnzErledigt+AnzFehl))*AnzFehl if (AnzFehl == 0) { Fehlquote = 0 } ret = "<table class='defaultTable'><tr>"; ret += "<th colspan='2'>Auswertung der aktuellen Logfile Seite:</th></tr>\n"; ret += "<tr><th>neue Notrufe</th><td style='width:365px;'><font color='red'><b>" + AnzNotruf + "</b></font></td></tr>\n"; ret += "<tr><th>Einsätze erledigt</th><td> <font color='green'><b>" + AnzErledigt + "</b></font></td></tr>\n"; ret += "<tr><th>Fehleinsätze</th><td><font color='blue'><b>" + AnzFehl + "</b></font></td></tr>\n"; ret += "<tr><th>Quote Fehleinsätze</th><td><b>" + Fehlquote.toFixed(2) + "%</b></td></tr>\n"; ret += "</table><br>\n"; var main, newElement; main = document.getElementsByTagName("h1")[0]; newElement = document.createElement('p'); main.parentNode.insertBefore(newElement, main.nextSibling); newElement.innerHTML = ret; } function bearbeiteFahrzeugkauf() { var FRM = document.getElementsByTagName("form")[0]; if (!FRM) return; var TB = FRM.getElementsByTagName("table")[0]; if (!TB) return; var TR = TB.getElementsByTagName("tr")[2]; if (!TR) return; var TD = TR.getElementsByTagName("td")[1]; if (!TD) return; var Par=TD.getElementsByTagName("p"); for (var i=0;i < Par.length;i++) { if (Par[i].innerHTML.match("Diese Feuerwache kann keine Fahrzeuge mehr aufnehmen")) { Par[i].style.display = "none"; } if (Par[i].innerHTML.match("Zuwenig bzw. keine Stellplätze für Rettungswagen")) { Par[i].style.display = "none"; } if (Par[i].innerHTML.match("Zuwenig bzw. keine Stellplätze für ein Notarztfahrzeug")) {Par[i].style.display = "none";} } } function bearbeiteFeuerwachenliste() { var TRs = document.getElementById("content").getElementsByTagName("tbody")[0].getElementsByTagName("tr"); for (i=0;i<TRs.length;i++) { var TR=TRs[i]; var TD = TR.getElementsByTagName("td")[1]; var L = TD.getElementsByTagName("a")[0]; // Spalte Fahrzeuge var TD = TR.getElementsByTagName("td")[3]; var H1 = TD.getElementsByTagName("a")[0].innerHTML; var H2 = TD.innerHTML.split(" / ")[1]; var H = " " + H1 + " / " + H2 + " " ; if (parseInt(H1) != parseInt(H2)) H = "<font color='blue'>"+H+"</font>"; H = "<a href='" + L + "/feuerwehrautos'>" + H + "</a>"; TD.innerHTML = H; // Spalte Rettungswagen TD = TR.getElementsByTagName("td")[4]; H = TD.innerHTML; H2 = H.split("/"); if (parseInt(H2[0]) != parseInt(H2[1])) H = "<font color='blue'>"+H+"</font>"; TD.innerHTML = H; // Spalte Feuerwehrleute TD = TR.getElementsByTagName("td")[5]; var A = TD.getElementsByTagName("a")[0]; A.innerHTML = " " + A.innerHTML + " "; // Spalte Stufe TD = TR.getElementsByTagName("td")[6]; TD.style.textAlign = "left"; H = TD.innerHTML; if (parseInt(H) < 5) H += " <a href='" + L + "/ausbauen'> + </a>"; TD.innerHTML = H; } } function bearbeiteLeitstelle() { var DC = document.getElementById("content"); var TBs = DC.getElementsByClassName("defaultTable"); var H2s = DC.getElementsByTagName("h2"); for each (H2 in H2s) { var A = H2.getElementsByTagName("a")[0]; if (A) { var FWLink = A.href; H2.innerHTML += "<br><a href='" + FWLink + "/feuerwehrleute'><font size='-1'>Personal</font></a>"; H2.innerHTML += " / <a href='" + FWLink + "/feuerwehrautos'><font size='-1'>Fahrzeuge</font></a>"; } } } function bearbeitePersonaltabellen() { var DC = document.getElementById("content"); var TBs = DC.getElementsByClassName("defaultTable"); var H2s = DC.getElementsByTagName("h2"); for (var i=0; i<TBs.length; i++) { var TB=TBs[i]; var T = BearbeitePersonaltabelle(TB); if (T != "" && !document.getElementById("PersonalÜbersicht")) { var FWStat = document.createElement("div") TB.parentNode.insertBefore(FWStat,TB); FWStat.id = "PersonalÜbersicht" FWStat.innerHTML = T; } // WORK JM // var H2 = H2s[i]; // var A = H2.getElementsByTagName("a")[1]; // var FWLink = A.href; // H2.innerHTML += "  <a href='" + FWLink + "/feuerwehrautos'><font size='-1'>(Fahrzeuge)</font></a>"; } // vor der ersten Überschrift Default-Sortierung anbieten: if (!document.getElementById("DefaultSort")) { var div = document.createElement("div"); div.style.paddingBottom = "10px"; div.innerHTML = "Standard-Sortierung: "; var H1 = document.getElementsByTagName("h1")[0]; if (!H1) H1 = document.getElementsByTagName("h2")[0]; H1.parentNode.insertBefore(div,H1); var SEL = document.createElement("select"); SEL.id = "DefaultSort"; SEL.options[SEL.length] = new Option("(unsortiert)","-1"); SEL.options[SEL.length] = new Option("Name"); SEL.options[SEL.length] = new Option("Motivation"); SEL.options[SEL.length] = new Option("Fähigkeiten"); SEL.options[SEL.length] = new Option("Alter"); SEL.options[SEL.length] = new Option("Ausbildung"); SEL.options[SEL.length] = new Option("Status"); SEL.options[SEL.length] = new Option("Schicht"); div.appendChild(SEL); document.getElementById("DefaultSort").addEventListener( "change" , DefaultSortChanged , true ); } var SEL = document.getElementById("DefaultSort"); SEL.value = GM_getValue("DefaultTabSort","-1"); } function DefaultSortChanged() { var S = document.getElementById('DefaultSort').value GM_setValue("DefaultTabSort",S); } function bearbeiteLehrgangszuteilung() { var R=document.getElementsByName("education_type"); for (var i=0;i < R.length;i++) { R[i].addEventListener ( "click" , Markiere_Schueler , true ); } } function Markiere_Schueler() { var GG = document.getElementById("education_type_1").checked; var RA = document.getElementById("education_type_2").checked; var TA = document.getElementById("education_type_3").checked; var AP = document.getElementById("education_type_4").checked; var LB = document.getElementById("education_type_5").checked; var RB = document.getElementById("education_type_6").checked; var TU = document.getElementById("education_type_7").checked; var WE = document.getElementById("education_type_8").checked; var RE = document.getElementById("education_type_9").checked; var HO = document.getElementById("education_type_10").checked; var DT = document.getElementsByClassName("defaultTable"); if (DT.length<2) return; for (var i=1; i<DT.length; i++) { var TB = DT[i]; var TR=TB.getElementsByTagName("tr"); for ( var j=0;j<TR.length;j++) { var TDs = TR[j].getElementsByTagName("td"); if (TDs.length==7) { TDs[0].style.backgroundColor="transparent"; var Ausb = TDs[5].innerHTML; var verf = (TDs[1].innerHTML.match("Nicht verfügbar") == null); var Mot = parseInt(TDs[2].innerHTML); if (Mot >= 75) TDs[2].style.color="#66FF66"; if (Mot <= 25) TDs[2].style.color="#FF6666"; if (verf) { var bgc=""; if (GG && Ausb.match("Gefahrgut") == null) bgc = "#226622"; if (RA && Ausb.match("Rettungsassistent") == null) bgc = "#662222"; if (TA && Ausb.match("Taucher") == null) bgc = "#222266"; if (AP && Ausb.match("Flughafen") == null) bgc = "#CD9B1D"; if (LB && Ausb.match("Löschboot") == null) bgc = "#0000FF"; if (RB && Ausb.match("Rettungsboot") == null) bgc = "#C0C0C0"; if (TU && Ausb.match("TUIS") == null) bgc = "#669900"; if (WE && Ausb.match("2-Wege-Führerschein") == null) bgc = "#33ddbb"; if (RE && Ausb.match("Rettungszug") == null) bgc = "#669900"; if (HO && Ausb.match("Höhenrettungs-Lehrgang") == null) bgc = "#222266"; if (bgc) { TDs[0].style.backgroundColor = bgc; TR[j].style.display = ""; } else { TR[j].style.display = "none"; } } else { TR[j].style.display = "none"; } } } } } function createElement(type, attributes) { var node = document.createElement(type); for (var attr in attributes) { if (attributes.hasOwnProperty(attr)) { node.setAttribute(attr, attributes[attr]); } } return node; } function bearbeiteFahrzeugliste() { var DC=document.getElementById("content"); var ArrTR=new Array; var H2 = DC.getElementsByTagName("h2"); for (var i=0; i<H2.length; i++) { var A = H2[i].getElementsByTagName("a")[0]; if (A) { var FWLink = A.href; H2[i].innerHTML += " <a href='" + FWLink + "/feuerwehrleute'><font size='-1'>(Personal)</font></a>"; } } var H1 = document.getElementsByTagName("h1")[0]; var H2=document.createElement("h2"); H2.innerHTML = "Übersicht"; DC.insertBefore(H2,H1.nextSibling); var TB=document.createElement("table"); TB.className="defaultTable"; TB.id="Übersichtstabelle"; var T = "<thead><tr>\n"; T += "<th rowspan='2'>Fahrzeugtyp</th>" + "<th rowspan='2'>Anzahl</th>" + "<th colspan='6'>Status</th>" + "<th rowspan='2'>Σ km</th><th rowspan='2'>Ø-km</th><th rowspan='2'>Ø Zust.</th>" + "</tr>\n<tr>\n"; T += "<th style='background-color:#0000F8;' width='55'><b>1</b></th>" + "<th style='background-color:#00FF2d;color:#000000;' width='55'><b>2</b></th>" + "<th style='background-color:#FFCC27;color:#000000;' width='55'><b>3</b></th>" + "<th style='background-color:#FF5A19;color:#000000;' width='55'><b>4</b></th>" + "<th style='background-color:#BABABA;color:#000000;' width='55'><b>6</b></th>" + "<th style='background-color:#DAD815;color:#000000;' width='55'><b>7</b></th>"; T += "</tr></thead><tbody>\n"; var FZNamen = new Array; var gefFZ = new Array; var gefS1 = new Array; var gefS2 = new Array; var gefS3 = new Array; var gefS4 = new Array; var gefS6 = new Array; var gefS6a = new Array; var gefS7 = new Array; var kmSumme = new Array; var ZustandSumme = new Array; var gesamtZustand=0; var AnzS1=0; var AnzS2=0; var AnzS3=0; var AnzS4=0; var AnzS6=0; var AnzS6a=0; var AnzS7=0; var gesamtkm=0; var ArrTopKM = new Array; TBs = document.getElementsByTagName("table"); for (var i=1;i<TBs.length-2;i++) { var TB2=TBs[i]; var TR=TB2.getElementsByTagName("tr")[0]; var index=TR.getElementsByTagName("th").length-1; var LastTH = TR.getElementsByTagName("th")[index].firstChild.nodeValue; { var TRs = TBs[i].getElementsByTagName("tr"); var AnzTR = TRs.length; for (var j=1;j<AnzTR;j++) { var FZName = TRs[j].getElementsByTagName("td")[2].innerHTML; if (gefFZ[FZName] == undefined) { FZNamen.push(FZName); gefFZ[FZName]=1; gefS1[FZName]=0; gefS2[FZName]=0; gefS3[FZName]=0; gefS4[FZName]=0; gefS6[FZName]=0; gefS6a[FZName]=0; gefS7[FZName]=0; kmSumme[FZName]=0; ZustandSumme[FZName]=0; } else { gefFZ[FZName]++; } var Funkname = TRs[j].getElementsByTagName("td")[1].getElementsByTagName("a")[0].innerHTML; var FZStat = trim(TRs[j].getElementsByTagName("td")[3].innerHTML); if (FZStat=="Einsatzbereit auf Wache" && Funkname.substr(0,3).toUpperCase()=="XXX") FZStat = "Außer Dienst"; switch (FZStat) { case "Frei (Dienstfahrt)": gefS1[FZName]++; break; case "Einsatzbereit auf Wache": gefS2[FZName]++; break; case "Auf dem Weg zum Einsatz": gefS3[FZName]++; break; case "Ankunft am Einsatzort": gefS4[FZName]++; break; case "Nicht einsatzbereit": gefS6[FZName]++; break; case "Außer Dienst": gefS6a[FZName]++; break; case "Patient aufgenommen": gefS7[FZName]++; break; } var FZLink = TRs[j].getElementsByTagName("td")[1].innerHTML; var kmStand = TRs[j].getElementsByTagName("td")[5].innerHTML; var IntkmStand = parseInt(kmStand.substr(0,kmStand.length-2).replace(".","")) ArrTopKM.push(new Array(IntkmStand,FZLink)); kmSumme[FZName] += IntkmStand; //Zustand prüfen und ggf. Link zur Werkstatt einbauen var TD = TRs[j].getElementsByTagName("td")[6]; var FZID = TRs[j].getElementsByTagName("td")[1].getElementsByTagName("a")[0].href; FZID = FZID.replace("http://www.feuerwache.net/feuerwehrfahrzeuge/",""); var Zustand = parseInt(removeTags(TD.innerHTML)); if (Zustand != 100) { ArrTR.push(TRs[j].cloneNode(true)); } ZustandSumme[FZName] += Zustand; } } } var FZName=FZNamen.sort(); for (var i=0;i < FZName.length;i++) { var FZNamei=FZName[i]; AnzS1 += gefS1[FZNamei]; AnzS2 += gefS2[FZNamei]; AnzS3 += gefS3[FZNamei]; AnzS4 += gefS4[FZNamei]; AnzS6 += gefS6[FZNamei]; AnzS6a += gefS6a[FZNamei]; AnzS7 += gefS7[FZNamei]; gesamtkm += kmSumme[FZNamei]; gesamtZustand += ZustandSumme[FZNamei]; if (gefS1[FZNamei]==0) gefS1[FZNamei] = "<font color='#227755'>0</font>"; if (gefS2[FZNamei]==0) gefS2[FZNamei] = "<font color='#227755'>0</font>"; if (gefS3[FZNamei]==0) gefS3[FZNamei] = "<font color='#227755'>0</font>"; if (gefS4[FZNamei]==0) gefS4[FZNamei] = "<font color='#227755'>0</font>"; if (gefS6[FZNamei]==0) gefS6[FZNamei] = "<font color='#227755'>0</font>"; if (gefS6a[FZNamei]==0) gefS6a[FZNamei] = ""; if (gefS7[FZNamei]==0) gefS7[FZNamei] = "<font color='#227755'>0</font>"; T += "<tr><td><b>" + FZNamei + "</b></td>"; T += "<td style='text-align:center'>" + gefFZ[FZNamei] + "</td>"; T += "<td style='text-align:center'>" + gefS1[FZNamei] + "</td>"; T += "<td style='text-align:center'>" + gefS2[FZNamei] + "</td>"; T += "<td style='text-align:center'>" + gefS3[FZNamei] + "</td>"; T += "<td style='text-align:center'>" + gefS4[FZNamei] + "</td>"; T += "<td style='text-align:center'>" + gefS6[FZNamei]; if (gefS6a[FZNamei]) T += " + " + gefS6a[FZNamei]; T += "</td>"; T += "<td style='text-align:center'>" + gefS7[FZNamei] + "</td>"; T += "<td style='text-align:right'>" + makeDots(kmSumme[FZNamei]) + "</td>"; var Schnitt = parseInt(kmSumme[FZNamei] / gefFZ[FZNamei]); T += "<td style='text-align:right'>" + makeDots(Schnitt) + "</td>"; Schnitt = parseInt(10 * ZustandSumme[FZNamei] / gefFZ[FZNamei]) / 10; var txtSchnitt = Schnitt.toString(); if (txtSchnitt.substr(txtSchnitt.length-2,1) != ".") txtSchnitt += ".0"; T += "<td style='text-align:right'>" + txtSchnitt + " %</td>"; T += "</tr>\n"; } var Anz = AnzS1+AnzS2+AnzS3+AnzS4+AnzS6+AnzS6a+AnzS7; T += "<tr><th style='text-align:left'>SUMME</th>"; T += "<th>" + Anz + "</th>"; T += "<th>" + AnzS1 + "</th>"; T += "<th>" + AnzS2 + "</th>"; T += "<th>" + AnzS3 + "</th>"; T += "<th>" + AnzS4 + "</th>"; T += "<th>" + AnzS6; if (AnzS6a) T += " + " + AnzS6a; T += "</th>"; T += "<th>" + AnzS7 + "</th>"; T += "<th style='text-align:right;padding:1px 5px;'>" + makeDots(gesamtkm) + "</th>"; var Schnitt = parseInt(gesamtkm / Anz); T += "<th style='text-align:right;padding:1px 5px;'>" + makeDots(Schnitt) + "</th>"; Schnitt = parseInt(10 * gesamtZustand / Anz) / 10; var txtSchnitt = Schnitt.toString(); if (txtSchnitt.substr(txtSchnitt.length-2,1) != ".") txtSchnitt += ".0"; T += "<th style='text-align:right;padding:1px 5px;'>" + txtSchnitt + " %</th>"; T += "</tr>\n"; T += "</tbody></table>\n"; TB.innerHTML=T; DC.insertBefore(TB,H2.nextSibling); TB = TBs[TBs.length-1]; var lastTR = TB.getElementsByTagName("tr")[TB.getElementsByTagName("tr").length-1]; var TR=document.createElement("tr"); lastTR.parentNode.insertBefore(TR,lastTR.nextSibling); TR.innerHTML = "<th>Fahrzeuge mit der höchsten Laufleistung:</th>\n<td colspan='8'></td>"; var TD=TR.getElementsByTagName("td")[0]; ArrTopKM.sort(function s(a,b){return b[0]-a[0];}); for (var i=0;i<5;i++) { TD.innerHTML += " " + makeDots(ArrTopKM[i][0]) + " km - " + ArrTopKM[i][1] + "<br>\n"; } TB = TBs[TBs.length-1]; var lastTR = TB.getElementsByTagName("tr")[TB.getElementsByTagName("tr").length-1]; var TR=document.createElement("tr"); lastTR.parentNode.insertBefore(TR,lastTR.nextSibling); TR.innerHTML = "<th>Fahrzeuge mit der niedrigsten Laufleistung:</th>\n<td colspan='8'></td>"; var TD=TR.getElementsByTagName("td")[0]; ArrTopKM.sort(function s(b,a){return b[0]-a[0];}); for (var i=0;i<5;i++) { TD.innerHTML += " " + makeDots(ArrTopKM[i][0]) + " km - " + ArrTopKM[i][1] + "<br>\n"; } // Tabelle mit beschädigten Fahrzeugen in Dokument schreiben, // aber erstmal verstecken, Anzeigen erst durch Klick auf Toggle-Link var NewDiv = document.createElement("div"); var nodeScript = createElement('script', {'type': 'text/javascript'}); nodeScript.innerHTML = "function toggledisplay()\n\ { var e = document.getElementById('DivZustandstabelle');\n\ e.style.display = (e.style.display == 'block') ? 'none' : 'block';\n\ }\n"; NewDiv.appendChild(nodeScript); var nodeA = createElement('a', {'href': 'javascript:toggledisplay();'}); nodeA.appendChild(document.createTextNode('Defekte Fahrzeuge aus/einblenden')); NewDiv.appendChild(nodeA); NewDiv.appendChild(createElement('br')); NewDiv.appendChild(createElement('br')); // Tabelle mit beschädigten Fahrzeugen in Dokument schreiben, // und direckt auflisten var hiddenDiv=document.createElement("div"); hiddenDiv.id = "DivZustandstabelle"; hiddenDiv.style.display = "Block"; var H2 = document.createElement("h2"); H2.appendChild(document.createTextNode("beschädigte Fahrzeuge:")); hiddenDiv.appendChild(H2); var hiddTB = document.createElement("table"); hiddTB.className="defaultTable"; hiddTB.id="Zustandstabelle"; hiddenDiv.appendChild(hiddTB); var THead=document.createElement("thead"); hiddTB.appendChild(THead); H = "<tr>"; H += "<th style='width: 10px;'></th>\n"; H += "<th style='width: auto;'>Funkrufname</th>\n"; H += "<th style='width: 120px;'>Fahrzeugtyp</th>\n"; H += "<th style='width: 190px;'>FMS</th>\n"; H += "<th style='width: 55px;' title='Aktuelle Position'>Akt. Pos</th>\n"; H += "<th style='width: 100px;'>Laufleistung</th>\n"; H += "<th style='width: 60px;'>Zustand</th>\n"; H += "</tr>\n"; THead.innerHTML = H; var TBody=document.createElement("tbody"); hiddTB.appendChild(TBody); TB=document.getElementById("Übersichtstabelle"); TB.parentNode.insertBefore(hiddenDiv,TB.nextSibling); TB.parentNode.insertBefore(NewDiv,TB.nextSibling); TB=document.getElementById("Zustandstabelle").getElementsByTagName("tbody")[0]; var TR=ArrTR; for (var i=0;i < TR.length;i++) TB.appendChild(TR[i]); // Tabelle sortieren SortTabelle(hiddTB,6,true,true,true); } function bearbeiteEinsatzseite() { // Alle Infobox-Variablen leer machen InfotextStichwort=""; InfotexteinsatzNr=""; InfotextKlasse=""; InfotextKlassenalarm=""; InfotextKlassenalarmOpt=""; InfotextRTW=""; InfotextUnterwegs=""; InfotextNachforderungen=""; InfotextToAlarm=""; InfotextFahrzeit=""; InfotextFahrzeitopt=""; InfotextNichtVerfuegbar=""; InfotextVerfuegbar=""; // verfügbare FZ zählen if (showInfoVerfuegbar) InfotextVerfuegbar = zaehleVerfuegbar(); // im Verbandseinsatz die Checkbox per default NICHT anhaken, sonst schon if (document.getElementById("machVorschlag") == undefined) machVorschlaganhaken = !Verbandseinsatz(); // Einsatz Nr. ermitteln var EinsatzNr = adr.replace(/[^0-9]/g, ""); if (showInfoEinsatzNr) InfotextEinsatzNr = EinsatzNr; // Einsatzstichwort ermitteln var EinsatzDiv = document.getElementById("mission_content"); var Einsatz = document.getElementsByTagName("h1")[0]; var Einsatzstichwort = getStichwort(Einsatz.innerHTML); if (showInfoStichwort) { InfotextStichwort = Einsatzstichwort; var L = getWikiLink(Einsatzstichwort); if (L != "") InfotextStichwort = "<a target='_new' href='" + L + "'>" + Einsatzstichwort + "</a>"; } // Einsatzklasse var Einsatzklasse = getEinsatzKlasse(Einsatzstichwort); //dt();mylog(Einsatzklasse);df(); if (showInfoKlasse) InfotextKlasse = Einsatzklasse; // Fahrzeuge zusammenstellen FillAlarmListe(Einsatzklasse); if (showInfoKlassenalarm) InfotextKlassenalarm = condenseFahrzeugliste(ToAlarm); if (showInfoKlassenalarmOpt && Optional.length>0) InfotextKlassenalarmOpt = condenseFahrzeugliste(Optional); // Anzahl der nötigen RTW ermitteln var V = Verletzte(); if (V>0) { if (showInfoRTW) { InfotextRTW = ""; for (var i=0;i<V;i++) InfotextRTW += "<img class='famfamfamicon' src='/images/pill.png' alt='Pill'>"; InfotextRTW += " " + V + " verletzte Person"; if (V>1) InfotextRTW +="en"; } // Option mehr RTWs als Verletzte bei der Alarmierung if (Einsatzklasse == 'RD') V = 0; if (showInfoRTWplus) { V++; if (Einsatzklasse == 'RD') { V = 1; } } // -> (einen RTW mehr schicken) // Wassereinsatz ? var Buchstabe = Einsatzklasse.charAt(0); if (Buchstabe == 'W') { if (showInfoRTWplus) { V--; } } while (V>0) { if (Buchstabe == 'W') { ToAlarm.push("Rettungsboot"); } if (Buchstabe != 'W') { ToAlarm.push("RTW"); } V--; } } // Prüfung ob NEF benötigt wird var tblMissoncontent = document.getElementById("mission_content").getElementsByTagName("table")[0]; if (tblMissoncontent.getElementsByTagName("tr").length > 5) if (tblMissoncontent.getElementsByTagName("tr")[5].innerHTML.match("Notarzt")) ToAlarm.push("NEF"); // bereits eingebundene Fahrzeuge ermitteln FillUnterwegsListe(); // Diese Unterwegs-Fahrzeuge auflisten... if (Unterwegs.length>0) { if (showInfoUnterwegs) { if (AmOrt.length) InfotextUnterwegs += "am Ort: <font color='green'>" + condenseFahrzeugliste(AmOrt) + "</font>, "; if (AufAnfahrt.length) InfotextUnterwegs += "auf Anfahrt: <font color='cc0099'>" + condenseFahrzeugliste(AufAnfahrt) + "</font>, "; if (Wartend.length) InfotextUnterwegs += "wartend: <font color='red'>" + condenseFahrzeugliste(Wartend) + "</font>, "; InfotextUnterwegs = InfotextUnterwegs.substr(0,InfotextUnterwegs.length-2); } } // ToAlarm um die FZ kürzen, die bereits unterwegs sind // sowie die Reihenfolge anpassen, dass Alternativen am Ende stehen if(Einsatzklasse!="Waldbrand" && Einsatzklasse!="Explosion")bereinigeToAlarm(); // Nachforderungen auslesen var NF = AddNachforderungen(); if (NF != "" && showInfoNachforderungen) InfotextNachforderungen = NF; if (showInfoOptionalAnkreuzen) while (Optional.length>0) ToAlarm.push(Optional.pop()); if (!machVorschlag) { // es sollen keine Vorschläge angehakt werden, also alles aus ToAlarm // nach Optional verschieben, so dass alles nur gelb markiert wird. while (ToAlarm.length>0) Optional.push(ToAlarm.pop()); } if (ToAlarm.length>0) { if (showInfoToAlarm) InfotextToAlarm = "<font color='#1865C9'>" + condenseFahrzeugliste(ToAlarm) + "</font>"; } else { if (showInfoToAlarm) { var colour; if ( unsafeWindow.feuerwache_layout == 'light') colour='green'; else colour='lime'; InfotextToAlarm = "<font color='"+colour+"'><b><font size=2>keine Fahrzeuge vorgeschlagen!</b></font></font>"; if (Optional.length>0) InfotextToAlarm += "<br><font size=1>Optional: " + condenseFahrzeugliste(ToAlarm) + " </font>"; } } // ************************************************************************************ // an dieser Stelle sind die Listen ToAlarm und Optional gefüllt. Jetzt kann alles // aus ToAlarm abgehakt werden und alles aus Optional gelb markiert // ************************************************************************************ // ToAlarm-Fahrzeuge tatsächlich abhaken var Dauer1 = AlarmiereFahrzeuge(); if (Dauer1 != "" && showInfoFahrzeit) InfotextFahrzeit = Dauer1; // Optionale Fahrzeuge markieren var Dauer2 = MarkiereFahrzeuge(); if (Dauer2 != "" && showInfoFahrzeitOpt) InfotextFahrzeitOpt = Dauer2; // falls Fahrzeuge nicht alarmiert werden konnten, diese auflisten if (ToAlarm.length > 0 && showInfoNichtVerfuegbar) InfotextNichtVerfuegbar = condenseFahrzeugliste(ToAlarm); // Text für die Infobox zusammenstellen var Info = "<h2>Einsatzinfos</h2>\n"; // Vorschläge ein- und ausschalten Info += "<table width='100%'><tr><td><input type='checkbox' id='machVorschlag' "; if (machVorschlag) Info +="checked"; Info += "><font color='yellow'> Fahrzeuge auswählen</font></td>"; Info += "<tr><td><input type='checkbox' id='RTWZeit' "; if (alarmtyp==1) Info +="checked"; Info += "><font color='yellow'> Nur RTW unter 30 Min. auswählen </font></td>"; Info += "<td align='right'><input type='checkbox' id='zweiterAbmarschTr' "; if (zweiterAbmarsch==1) Info +="checked"; Info += "><font color='yellow'> Trupp vor Gruppe </font></td>"; Info += "<th> oder </th><td align='center'><input type='checkbox' id='zweiterAbmarschAusb' "; if (zweiterAbmarsch==2) Info +="checked"; Info += "><font color='yellow'> Ausbildung zuerst </font></td>"; // Infos in Tabelle strukturieren Info += "<table class='defaultTable'>\n"; var InfoVorspann = "<tr><th style='width: 150px;'>"; var InfoVorspann2 = "<tr><th colspan='2'>"; if (InfotextStichwort) Info += InfoVorspann + "Wiki-Link</th><td>" + InfotextStichwort + "</td></tr>\n"; if (InfotextEinsatzNr) Info += InfoVorspann + "Einsatz Nr:</th><td>" + InfotextEinsatzNr + "</td></tr>\n"; if (InfotextKlasse) { Info += InfoVorspann + "Einsatzklasse</th><td><font color='red'>" + InfotextKlasse + "</font>"; if (InfotextKlassenalarmOpt) InfotextKlassenalarm += ", Optional: " + InfotextKlassenalarmOpt + " "; if (InfotextKlassenalarm) Info += " ( " + InfotextKlassenalarm + " )"; Info += "</td></tr>\n"; } if (InfotextRTW) Info += InfoVorspann + "Verletzte:</th><td>" + InfotextRTW + "</td></tr>\n"; if (InfotextNachforderungen) Info += InfoVorspann + "Nachforderung</th><td>" + InfotextNachforderungen + "</td></tr>\n"; if (InfotextUnterwegs) Info += InfoVorspann + "im Einsatz:</th><td>" + InfotextUnterwegs + "</td></tr>\n"; if (InfotextToAlarm) Info += InfoVorspann + "zu alarmieren:</th><td id='TA'><font size='2'>" + InfotextToAlarm + "</font></td></tr>\n"; if (InfotextNichtVerfuegbar) Info += InfoVorspann + "<font color='red'>nicht verfügbar:</font></th><td><font color='#EE0000'>" + InfotextNichtVerfuegbar + "</font></td></tr>\n"; if (InfotextFahrzeit || InfotextFahrzeitOpt) { Info += InfoVorspann + "Anfahrzeit</th><td>" if (InfotextFahrzeit) Info += " beträgt: " + InfotextFahrzeit; if (InfotextFahrzeit && InfotextFahrzeitOpt) Info += "<br>"; if (InfotextFahrzeitOpt) Info += "der optionalen Fahrzeuge: " + InfotextFahrzeitOpt; Info += "</td></tr>\n"; } if (InfotextVerfuegbar) Info += InfoVorspann2 + "<font size=2>aktuell einsatzbereite Fahrzeuge: (<a target='_new' href='http://www.feuerwache.net/feuerwehrfahrzeuge'>Übersicht</a>)</font></th></tr><tr><td colspan='2'><font size='1'>" + InfotextVerfuegbar + "</font></td></tr>\n"; Info += "</table>\n"; mylog("Info=\n" + Info); // Infobereich in die Seite einbauen var InfoBereich = document.getElementById("InfoBereich"); if (!InfoBereich) { InfoBereich = document.createElement("div"); InfoBereich.id = "InfoBereich"; EinsatzDiv.parentNode.insertBefore(InfoBereich,Einsatz.nextSibling); } InfoBereich.innerHTML = Info; document.getElementById("machVorschlag").addEventListener ( "click" , machVorschlag_clicked , false ) ; document.getElementById("RTWZeit").addEventListener ( "click" , alarmTyp_clicked , false ) ; document.getElementById("zweiterAbmarschAusb").addEventListener ( "click" , zweiterAbmarsch_clicked , false ) ; document.getElementById("zweiterAbmarschTr").addEventListener ( "click" , zweiterAbmarsch_clicked , false ) ; var BTN = document.getElementsByName("commit")[0]; if (BTN) BTN.addEventListener ( "click" , function(){ FirstRun=true; } , false ) ; for each (A in document.getElementsByTagName("a")) { if (A.innerHTML == "zurück alarmieren") A.addEventListener ( "click" , function(){ FirstRun=true;CBClicked=false; } , false ) ; } var D=document.getElementsByName("vehicle_to_user_id[]"); for ( var i=0;i < D.length;i++) { D[i].addEventListener ( "click" , function(){ CBClicked=true; } , false ) ; } // for each (I in document.getElementsByName("vehicle_to_user_id[]")) // { I.addEventListener ( "click" , function(){ CBClicked=true; } , false ) ; } findeFahrzeugeZumZurückalarmieren(); FirstRun=false; if ( alarm_sound == 1 ) document.getElementsByClassName('no_padding')[0].getElementsByTagName('input')[0].addEventListener("click",function(){playsound('horn');},false); if ( alarm_sound == 2 ) document.getElementsByClassName('no_padding')[0].getElementsByTagName('input')[0].addEventListener("click",function(){playsound('alarm-5ton');},false)}; function findeFahrzeugeZumZurückalarmieren() { var D = document.getElementById("driving_vehicle"); var TB1=D.getElementsByTagName("table")[0]; if (!TB1) return; var Rows1 = TB1.getElementsByTagName("tr"); D = document.getElementsByClassName("free_vehicle")[0]; var TB2=D.getElementsByTagName("table")[0]; if (!TB2) return; var Rows2 = TB2.getElementsByTagName("tr"); for (var i=1; i<Rows1.length; i++) { var Row1 = Rows1[i]; var FZID1 = Row1.getElementsByTagName("td")[0].getElementsByTagName("a")[0].href; FZID1 = FZID1.replace("http://www.feuerwache.net/feuerwehrfahrzeuge/",""); var FZBez1 = Row1.getElementsByTagName("td")[1].innerHTML; var FZKlasse1 = getFahrzeugKlasse(FZBez1); if (!FZKlasse1) FZKlasse1 = "1"; var RestSek1 = document.getElementById("hidden_driving_countdown_" + FZID1).value; if (!RestSek1) RestSek1=0; var sucheWeiter=true; var j=1; while (sucheWeiter) { var Row2 = Rows2[j]; var FZBez2 = Row2.getElementsByTagName("td")[2].innerHTML; var FZKlasse2 = getFahrzeugKlasse(FZBez2); var Fahrzeit2 = Row2.getElementsByTagName("td")[4].innerHTML; var FahrtSek2 = ZeitToSek(Fahrzeit2); var FZName2 = Row2.getElementsByTagName("td")[1].getElementsByTagName("a")[0].innerHTML; if (FZName2.substr(0,3).toUpperCase()=="XXX") FZKlasse2 = "2"; FZName2 = Row2.getElementsByTagName("td")[1].innerHTML; if (!FZName2.match(".*(unterwegs)")) FahrtSek2 += 90; if (FZKlasse1 == FZKlasse2 && RestSek1 > FahrtSek2) { Row1.getElementsByTagName("td")[5].style.backgroundColor="#224488"; Row2.getElementsByTagName("td")[4].style.backgroundColor="#226622"; sucheWeiter = false; } if (FahrtSek2 > RestSek1) sucheWeiter = false; j++; if (j >= Rows2.length) sucheWeiter = false; } } } function einsatz_clicked(element,nummer) { var done=GM_getValue("done_einsatz",''); if ( done.match(nummer) ) { element.innerHTML='<span style="display:none;">'+nummer+'</span>'; done=done.replace('||'+nummer); } else { done=done+'||'+nummer; element.innerHTML='<span style="display:none;">'+nummer+'</span><img src="http://verband-hogsmeade.de/skript/skript_update/tick.png" title="erledigt" alt="erledigt" class="famfamfamicon">'; } GM_setValue("done_einsatz",done); } function bearbeiteÜbersichtsseite() { if (showInfoKlasseInListe) { var TD=document.getElementsByTagName("td"); for (var i=0;TD.length > i; i++){ var A=TD[i].getElementsByTagName("a"); for (var j=0;A.length > j; j++){ if ( A[j].href.indexOf("http://www.feuerwache.net/feuerwehr-einsaetze/") == 0) { TD[i].innerHTML += "<span style='padding-right:2px; float:right;'><font color='blue'>(" + getEinsatzKlasse(A[j].innerHTML) + ")</font></span>"; } } } } var H1=document.getElementsByTagName("h1")[0]; var D = KonfigHTML(); if (D != "") { H1.parentNode.insertBefore(D,H1); AddKonfigEventlisteners(); } } var einsatznummer=A[j].href.replace('http://www.feuerwache.net/feuerwehr-einsaetze/',''); // Icon ob erledigt var x=i-1; if ( done_einsatz.match(einsatznummer) ) { TD[x].innerHTML='<img src="http://verband-hogsmeade.de/skript/skript_update/tick.png" title="erledigt" alt="erledigt" class="famfamfamicon">'; } TD[x].innerHTML+='<span style="display:none;">'+einsatznummer+'</span>'; TD[x].addEventListener("dblclick",function(){ einsatz_clicked(this,this.getElementsByTagName("span")[0].innerHTML);},false); //// Sound bei GSL abspielen, nur einmal pro Einsatz if ( Einsatzklasse=='Waldbrand' && ! soundplayed.match(einsatznummer) && vgsl_sound != 0 ) { if (vgsl_sound==1) playsound('waldbrand'); else if (vgsl_sound==2) playsound('Waldbrand-5ton'); soundplayed=soundplayed+'||'+einsatznummer; GM_setValue("soundplayed",soundplayed); } else if ( Einsatzklasse=='Explosion' && ! soundplayed.match(einsatznummer) && vgsl_sound != 0 ) { if (vgsl_sound==1) playsound('explosion'); else if (vgsl_sound==2) playsound('Explosion-5ton'); soundplayed=soundplayed+'||'+einsatznummer; GM_setValue("soundplayed",soundplayed); } else if ( Einsatzklasse=='Crash' && ! soundplayed.match(einsatznummer) && manv_sound != 0 ) { if (manv_sound==1) playsound('flugzeug'); else if (manv_sound==2) playsound('Flugzeug-5ton'); soundplayed=soundplayed+'||'+einsatznummer; GM_setValue("soundplayed",soundplayed); } else if ( Einsatzklasse=='F-MANV' && ! soundplayed.match(einsatznummer) && manv_sound != 0 ) { if (manv_sound==1) playsound('krankenhaus'); else if (manv_sound==2) playsound('krankenhaus-5ton'); soundplayed=soundplayed+'||'+einsatznummer; GM_setValue("soundplayed",soundplayed); } TD[i].innerHTML += "<span style='padding-right:2px; float:right;'><font color='#1865C9'>(" + Einsatzklasse + ")</font></span>"; function AddKonfigEventlisteners() { var Boxes = document.getElementsByName("KonfigBox"); for ( var i=0;i < Boxes.length;i++) { Boxes[i].addEventListener("click",KonfigBox_clicked,false); } if (ScriptUpdateAvailable != "") { document.getElementById("installURL").addEventListener ( "click" , function(){ GM_setValue("Version",ScriptUpdateAvailable); ScriptUpdateAvailable=""; GM_setValue("pleaseUpdate",""); } , true ) } } function SortiereNachSpalte(Tab,SortBy) { var Spalte = -1; var c=0; for each (TH in Tab.getElementsByTagName("th")) { if (TH.innerHTML == SortBy) Spalte=c; c++; } if (Spalte == -1) return; switch(SortBy) { case "Name": SortTabelle(Tab,Spalte,true,false,true); break; case "Motivation": SortTabelle(Tab,Spalte,false,true,false); break; case "Fähigkeiten": SortTabelle(Tab,Spalte,false,true,false); break; case "Alter": SortTabelle(Tab,Spalte,true,true,false); break; case "Ausbildung": SortTabelle(Tab,Spalte,true,false,false); break; case "Status": SortTabelle(Tab,Spalte,true,false,false); break; case "Schicht": SortTabelle(Tab,Spalte,true,true,false); break; } } function SortiereNachSpalteClick(event) { var t = event.target; var SortBy = t.innerHTML; var Tab = t.parentNode.parentNode.parentNode; if (!Tab) return; SortiereNachSpalte(Tab,SortBy); } function MachSortierbar(myTB) { var THead = myTB.getElementsByTagName("thead")[0]; if (!THead) return; var THs = THead.getElementsByTagName("th"); var TH=THs; for (var i=0;i<TH.length;i++) { var H = TH[i].innerHTML; TH[i].addEventListener ( "click" , function(e){SortiereNachSpalteClick(e)} , true ) ; } } function BearbeitePersonaltabelle(myTB) { MachSortierbar(myTB); var DefSort = GM_getValue("DefaultTabSort","-1") if (DefSort != "-1") SortiereNachSpalte(myTB,DefSort) var AnzFM=0, AnzEinsatz =0, AnzSchule =0, AnzBereit=0, AnzDienst=0; var AnzGG=0, AnzGGDienst=0, AnzGGBereit=0, AnzGGSchule=0, AnzGGEinsatz=0, AnzGGFrei=0; var AnzRA=0, AnzRADienst=0, AnzRABereit=0, AnzRASchule=0, AnzRAEinsatz=0, AnzRAFrei=0; var AnzTA=0, AnzTADienst=0, AnzTABereit=0, AnzTASchule=0, AnzTAEinsatz=0, AnzTAFrei=0; var AnzAP=0, AnzAPDienst=0, AnzAPBereit=0, AnzAPSchule=0, AnzAPEinsatz=0, AnzAPFrei=0; var AnzLB=0, AnzLBDienst=0, AnzLBBereit=0, AnzLBSchule=0, AnzLBEinsatz=0, AnzLBFrei=0; var AnzRB=0, AnzRBDienst=0, AnzRBBereit=0, AnzRBSchule=0, AnzRBEinsatz=0, AnzRBFrei=0; var AnzTU=0, AnzTUDienst=0, AnzTUBereit=0, AnzTUSchule=0, AnzTUEinsatz=0, AnzTUFrei=0; var AnzWE=0, AnzWEDienst=0, AnzWEBereit=0, AnzWESchule=0, AnzWEEinsatz=0, AnzWEFrei=0; var AnzRE=0, AnzREDienst=0, AnzREBereit=0, AnzRESchule=0, AnzREEinsatz=0, AnzREFrei=0; var AnzHO=0, AnzHODienst=0, AnzHOBereit=0, AnzHOSchule=0, AnzHOEinsatz=0, AnzHOFrei=0; var TR=myTB.getElementsByTagName("tr"); for (var i=0;i<TR.length;i++) { if (TR[i].getElementsByTagName("td").length>5) { var TDs = TR[i].getElementsByTagName("td"); var Stat = trim(TDs[5].innerHTML); var Ausb = trim(TDs[4].innerHTML); // Motivation kennzeichnen: var Mot = parseInt(TDs[1].innerHTML); if (Mot >= 75) TDs[1].style.color = "#00CB00"; if (Mot <= 25) TDs[1].style.color = "#FF6666"; // Personalstatistik: AnzFM++; // Status kennzeichnen und zählen if (Stat.match("Beim Einsatz")) { AnzDienst++; AnzEinsatz++; TDs[5].style.color="#FF0000"; } if (Stat.match("Frei - nicht im Dienst")) TDs[5].style.color="#555555"; if (Stat.match("Einsatzbereit")) { AnzDienst++; AnzBereit++; TDs[5].style.color="#008000"; } if (Stat.match("In der Feuerwehrschule")) { AnzSchule++; TDs[5].getElementsByTagName("a")[0].style.color="#5555FF"; } // Ausbildungsstand if (Ausb.match("Gefahrgut")) { AnzGG++; if (Stat == "Beim Einsatz" || Stat == "Einsatzbereit") AnzGGDienst++; if (Stat == "Einsatzbereit") AnzGGBereit++; if (Stat == "In der Feuerwehrschule") AnzGGSchule++; if (Stat == "Frei - nicht im Dienst") AnzGGFrei++; if (Stat == "Beim Einsatz") AnzGGEinsatz++; } if (Ausb.match("Rettungsassistent")) { AnzRA++; if (Stat == "Beim Einsatz" || Stat == "Einsatzbereit") AnzRADienst++; if (Stat == "Einsatzbereit") AnzRABereit++; if (Stat == "In der Feuerwehrschule") AnzRASchule++; if (Stat == "Frei - nicht im Dienst") AnzRAFrei++; if (Stat == "Beim Einsatz") AnzRAEinsatz++; } if (Ausb.match("Taucher")) { AnzTA++; if (Stat == "Beim Einsatz" || Stat == "Einsatzbereit") AnzTADienst++; if (Stat == "Einsatzbereit") AnzTABereit++; if (Stat == "In der Feuerwehrschule") AnzTASchule++; if (Stat == "Frei - nicht im Dienst") AnzTAFrei++; if (Stat == "Beim Einsatz") AnzTAEinsatz++; } if (Ausb.match("Flughafen")) { AnzAP++; if (Stat == "Beim Einsatz" || Stat == "Einsatzbereit") AnzAPDienst++; if (Stat == "Einsatzbereit") AnzAPBereit++; if (Stat == "In der Feuerwehrschule") AnzAPSchule++; if (Stat == "Frei - nicht im Dienst") AnzAPFrei++; if (Stat == "Beim Einsatz") AnzAPEinsatz++; } if (Ausb.match("Löschboot")) { AnzLB++; if (Stat == "Beim Einsatz" || Stat == "Einsatzbereit") AnzLBDienst++; if (Stat == "Einsatzbereit") AnzLBBereit++; if (Stat == "In der Feuerwehrschule") AnzLBSchule++; if (Stat == "Frei - nicht im Dienst") AnzLBFrei++; if (Stat == "Beim Einsatz") AnzLBEinsatz++; } if (Ausb.match("Rettungsboot")) { AnzRB++; if (Stat == "Beim Einsatz" || Stat == "Einsatzbereit") AnzRBDienst++; if (Stat == "Einsatzbereit") AnzRBBereit++; if (Stat == "In der Feuerwehrschule") AnzRBSchule++; if (Stat == "Frei - nicht im Dienst") AnzRBFrei++; if (Stat == "Beim Einsatz") AnzRBEinsatz++; } if (Ausb.match("TUIS")) { AnzTU++; if (Stat == "Beim Einsatz" || Stat == "Einsatzbereit") AnzTUDienst++; if (Stat == "Einsatzbereit") AnzTUBereit++; if (Stat == "In der Feuerwehrschule") AnzTUSchule++; if (Stat == "Frei - nicht im Dienst") AnzTUFrei++; if (Stat == "Beim Einsatz") AnzTUEinsatz++; } if (Ausb.match("Rettungszug")) { AnzRE++; if (Stat == "Beim Einsatz" || Stat == "Einsatzbereit") AnzREDienst++; if (Stat == "Einsatzbereit") AnzREBereit++; if (Stat == "In der Feuerwehrschule") AnzRESchule++; if (Stat == "Frei - nicht im Dienst") AnzREFrei++; if (Stat == "Beim Einsatz") AnzREEinsatz++; } if (Ausb.match("Höhenrettungs-Lehrgang")) { Anzho++; if (Stat == "Beim Einsatz" || Stat == "Einsatzbereit") AnzHODienst++; if (Stat == "Einsatzbereit") AnzHOBereit++; if (Stat == "In der Feuerwehrschule") AnzHOSchule++; if (Stat == "Frei - nicht im Dienst") AnzHOFrei++; if (Stat == "Beim Einsatz") AnzHOEinsatz++; } if (Ausb.match("2-Wege-Führerschein")) { AnzWE++; if (Stat == "Beim Einsatz" || Stat == "Einsatzbereit") AnzWEDienst++; if (Stat == "Einsatzbereit") AnzWEBereit++; if (Stat == "In der Feuerwehrschule") AnzWESchule++; if (Stat == "Frei - nicht im Dienst") AnzWEFrei++; if (Stat == "Beim Einsatz") AnzWEEinsatz++; } } } // WORK JM var ret; //ret = "<table width='100%' border='1'><tr>"; // BUG: ret = "<table class='defaultTable'><tr>"; // Wenn das hier steht, wird die Sortierfunktion nicht aufgerufen, dafür zweimal die Statistik ret += " <thead>" + " <tr>" + " <th style='width: 25%'>Personal</th>" + " <th style='width: 15%'>Summe Σ</th>" + " <th style='width: 15%'><font color='#FF0000'>im Einsatz</font></th>" + " <th style='width: 15%'><font color='#008000'>Einsatzbereit</font></th>" + " <th style='width: 15%'><font color='#555555'>Frei</font></th>" + " <th style='width: 15%'><font color='#5555FF'>Schule</font></th>" + " </tr>" + " </thead>"; ret += " <tbody>"; ret += " <tr> " + " <th>⇒ gesamt ⇐</th>" + " <th>" + AnzFM + "</th>" + " <td><font color='#FF0000'>" + AnzEinsatz + "</td>" + " <td><font color='#008000'><b>" + AnzBereit + "</b></font></td>" + " <td><font color='#555555'>" + (AnzFM - AnzDienst) + "</font></td>" + " <td><font color='#5555FF'>" + AnzSchule + "</font></td>" + " </tr>"; if ((AnzGG) || (AnzRA) || (AnzTA) || (AnzAP) || (AnzLB) || (AnzRB) || (AnzTU) || (AnzRE) || (Anzho) || (AnzWE)) { ret += " <tr>" + " <th colspan='6'>Übersicht der Ausbildung - gestaffelt nach der jeweiligen Ausbildung:</th>" + " </tr>"; } if (AnzGG) { ret += " <tr> " + " <th>Gefahrgut</th>" + " <th>" + AnzGG + "</th>" + " <td><font color='#FF0000'>" + AnzGGEinsatz + "</td>" + " <td><font color='#008000'><b>" + AnzGGBereit + "</b></font></td>" + " <td><font color='#555555'>" + AnzGGFrei + "</font></td>" + " <td><font color='#5555FF'>" + AnzGGSchule + "</font></td>" + " </tr>"; } if (AnzRA) { ret += " <tr> " + " <th>Rettungsassistent</th>" + " <th>" + AnzRA + "</th>" + " <td><font color='#FF0000'>" + AnzRAEinsatz + "</td>" + " <td><font color='#008000'><b>" + AnzRABereit + "</b></font></td>" + " <td><font color='#555555'>" + AnzRAFrei + "</font></td>" + " <td><font color='#5555FF'>" + AnzRASchule + "</font></td>" + " </tr>"; } if (AnzTA) { ret += " <tr> " + " <th>Taucher</th>" + " <th>" + AnzTA + "</th>" + " <td><font color='#FF0000'>" + AnzTAEinsatz + "</td>" + " <td><font color='#008000'><b>" + AnzTABereit + "</b></font></td>" + " <td><font color='#555555'>" + AnzTAFrei + "</font></td>" + " <td><font color='#5555FF'>" + AnzTASchule + "</font></td>" + " </tr>"; } if (AnzAP) { ret += " <tr> " + " <th>Flughafen</th>" + " <th>" + AnzAP + "</th>" + " <td><font color='#FF0000'>" + AnzAPEinsatz + "</td>" + " <td><font color='#008000'><b>" + AnzAPBereit + "</b></font></td>" + " <td><font color='#555555'>" + AnzAPFrei + "</font></td>" + " <td><font color='#5555FF'>" + AnzAPSchule + "</font></td>" + " </tr>"; } if (AnzLB) { ret += " <tr> " + " <th>Löschboot</th>" + " <th>" + AnzLB + "</th>" + " <td><font color='#FF0000'>" + AnzLBEinsatz + "</td>" + " <td><font color='#008000'><b>" + AnzLBBereit + "</b></font></td>" + " <td><font color='#555555'>" + AnzLBFrei + "</font></td>" + " <td><font color='#5555FF'>" + AnzLBSchule + "</font></td>" + " </tr>"; } if (AnzRB) { ret += " <tr> " + " <th>Rettungsboot</th>" + " <th>" + AnzRB + "</th>" + " <td><font color='#FF0000'>" + AnzRBEinsatz + "</td>" + " <td><font color='#008000'><b>" + AnzRBBereit + "</b></font></td>" + " <td><font color='#555555'>" + AnzRBFrei + "</font></td>" + " <td><font color='#5555FF'>" + AnzRBSchule + "</font></td>" + " </tr>"; } if (AnzTU) { ret += " <tr> " + " <th>TUIS</th>" + " <th>" + AnzTU + "</th>" + " <td><font color='#FF0000'>" + AnzTUEinsatz + "</td>" + " <td><font color='#008000'><b>" + AnzTUBereit + "</b></font></td>" + " <td><font color='#555555'>" + AnzTUFrei + "</font></td>" + " <td><font color='#5555FF'>" + AnzTUSchule + "</font></td>" + " </tr>"; } if (AnzRE) { ret += " <tr> " + " <th>Rettungszug</th>" + " <th>" + AnzTU + "</th>" + " <td><font color='#FF0000'>" + AnzREinsatz + "</td>" + " <td><font color='#008000'><b>" + AnzREBereit + "</b></font></td>" + " <td><font color='#555555'>" + AnzRErei + "</font></td>" + " <td><font color='#5555FF'>" + AnzRESchule + "</font></td>" + " </tr>"; } if (AnzWE) { ret += " <tr> " + " <th>2-Wege-Führerschein</th>" + " <th>" + AnzTU + "</th>" + " <td><font color='#FF0000'>" + AnzWEEinsatz + "</td>" + " <td><font color='#008000'><b>" + AnzWEBereit + "</b></font></td>" + " <td><font color='#555555'>" + AnzWEFrei + "</font></td>" + " <td><font color='#5555FF'>" + AnzWESchule + "</font></td>" + " </tr>"; } if (AnzHO) { ret += " <tr> " + " <th>Höhenrettungs-Lehrgang</th>" + " <th>" + AnzTU + "</th>" + " <td><font color='#FF0000'>" + AnzhoEinsatz + "</td>" + " <td><font color='#008000'><b>" + AnzhoBereit + "</b></font></td>" + " <td><font color='#555555'>" + AnzhoFrei + "</font></td>" + " <td><font color='#5555FF'>" + AnzhoSchule + "</font></td>" + " </tr>"; } ret += " </tbody>"; ret += "</table>"; ret += "<br>"; return ret; } function SortTabelle(myTB,Spalte,Richtung,Numerisch,Link) { var TBody = myTB.getElementsByTagName("tbody")[0]; if (!TBody) return; var ArrTR = new Array(); var TR=TBody.getElementsByTagName("tr"); for (var i=0;i<TR.length;i++) { ArrTR.push(TR[i]); } if (ArrTR.length==0) return; ArrTR.sort(function(x,y){return TableSort(x,y,Spalte,Richtung,Numerisch,Link);}); var H = ""; for (var i=0;i<ArrTR.length;i++) H += "<tr>" + ArrTR[i].innerHTML + "</tr>\n"; TBody.innerHTML = H; } function TableSort(Z1,Z2,S,richtung,num,link) { // sortiert Tabellenspalten nach Spalte S // übergeben werden zwei <tr> Objekte und die Spaltennummer, // nach der sortiert werden soll // die weiteren Parameter bedeuten: // richtung (t/f) = Richtung (true = A->Z, false = Z->A) // num (true/false) = numerisch sortieren? sonst alphanumerisch // link (true/false) = Zelleninhalt ist ein Link var S1,S2; var TDs = Z1.getElementsByTagName("td"); if (TDs.length <= S) return 0; S1 = removeTags(TDs[S].innerHTML); TDs = Z2.getElementsByTagName("td"); if (TDs.length <= S) return 0; S2 = removeTags(TDs[S].innerHTML); if (num) { S1 = parseInt(S1.replace(".","")); S2 = parseInt(S2.replace(".","")); } if (richtung) { if (S1<S2) return -1; if (S1>S2) return 1; } else { if (S1<S2) return 1; if (S1>S2) return -1; } return 0; } function ClearFreeVehiclesTable(auchHaken) { // löschen aller Hervorhebungen und ggf. Haken in der Liste freier Fahrzeuge: var D = document.getElementsByClassName("free_vehicle")[0]; var TB = D.getElementsByTagName("table")[0]; if (TB==undefined) return; var TRs=TB.getElementsByTagName("tr"); for ( var i=0;i < TRs.length;i++) { var TR=TRs[i]; // Farbe entfernen TR.style.backgroundColor = ''; var CB=TR.getElementsByTagName("input")[0]; if (CB) { CB.alt=undefined; if (CB.checked && auchHaken) CB.click(); } } } function KonfigHTML() { if (document.getElementById("DivKonfigurieren")) return ""; var NewDiv = document.createElement("div"); NewDiv.id = "DivKonfigurieren"; var H = "<script type='text/javascript'>\n"; H += "function toggledisplay() {\n"; H += "var e = document.getElementById('KonfigBoxes');\n"; H += " e.style.display = (e.style.display == 'block') ? 'none' : 'block';\n"; H += "}\n"; H += "</script>"; var H="<br>"; if (ScriptUpdateAvailable != "") { H = "<br><br><div align='center'><font color='red'>Hinweis: es ist ein Script-Update verfügbar!</font><br>"; H += "<a href='" + UPDATEURLlink + "' target='_new'>Informationen</a> dazu"; H += " oder gleich <a id='installURL' href='" + INSTALLURL + "' target='_new'>installieren</a>.<br><br>"; H += "<b>Hinweis:</b> solltet Ihr ein fehler finden, bitte um Nachricht.</div>"; } H += "\n"; NewDiv.innerHTML = H; var nodeScript = createElement('script', {'type': 'text/javascript'}); nodeScript.innerHTML = "function toggledisplay()\n\ { var e = document.getElementById('KonfigBoxes');\n\ e.style.display = (e.style.display == 'block') ? 'none' : 'block';\n\ }\n"; NewDiv.appendChild(nodeScript); var nodeA = createElement('a', {'href': 'javascript:toggledisplay();'}); nodeA.appendChild(createText('Anzeige und Fahrzeug Einstellungen')); NewDiv.appendChild(nodeA); //NewDiv.appendChild(createElement('br')); var hiddenDiv=document.createElement("div"); hiddenDiv.id = "KonfigBoxes"; hiddenDiv.style.display = "none" H = "\n"; H += "<h2><font color='yellow'>Einsatzübersicht<h2></font><br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfKlasseInListe'"; if (showInfoKlasseInListe) H += " checked"; H += "> Einsatzart anzeigen<br>\n"; H += "<h2><font color='yellow'><b>Hier kannst du Einstellen ob ein Ton abgespielt werden soll</h2></font><br>\n"; H += '<table class="defaultTable">'; H += '<tr><th></th><th>Kein Sound</th><th>Durchsage</th><th>5Ton</th></tr>'; H += '<tr><td>Großschadenslage</td><td><input type="radio" name="vgsl" value="0"'; if ( vgsl_sound == 0 ) H += " checked"; H += '></td><td><input type="radio" name="vgsl" value="1"'; if ( vgsl_sound == 1 ) H += " checked"; H += '></td><td><input type="radio" name="vgsl" value="2"'; if ( vgsl_sound == 2 ) H += " checked"; H += '></td></tr><tr class="row1"><td>Großeinsatz</td><td><input type="radio" name="manv" value="0"'; if ( manv_sound == 0 ) H += " checked"; H += '></td><td><input type="radio" name="manv" value="1"'; if ( manv_sound == 1 ) H += " checked"; H += '></td><td><input type="radio" name="manv" value="2"'; if ( manv_sound == 2 ) H += " checked"; H += '></td></tr><tr><td>Alarmierung</td><td><input type="radio" name="alarm" value="0"'; if ( alarm_sound == 0 ) H += " checked"; H += '></td><td><input type="radio" name="alarm" value="1"'; if ( alarm_sound == 1 ) H += " checked"; H += '></td><td><input type="radio" name="alarm" value="2"'; if ( alarm_sound == 2 ) H += " checked"; H += '></td></tr></table>'; H += "<h2><font color='yellow'><b>Anzeige Einstellungen auf der Einsatzseite</h2></font><br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfStichwort'"; if (showInfoStichwort) H += " checked"; H += "> Wiki-Link anzeigen<br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfEinsatzNr'"; if (showInfoEinsatzNr) H += " checked"; H += "> Einsatz-Nr anzeigen<br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfKlasse'"; if (showInfoKlasse) H += " checked"; H += "> Einsatzklasse anzeigen<br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfKlassenalarm'"; if (showInfoKlassenalarm) H += " checked"; H += "> gemäß Einsatzklasse zu alarmierende Fahrzeuge anzeigen<br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfKlassenalarmOpt'"; if (showInfoKlassenalarmOpt) H += " checked"; H += "> Anzeige der optionalen Fahrzeuge<br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfRTW'"; if (showInfoRTW) H += " checked"; H += "> Anzeige der benötigten RTW<br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfUnterwegs'"; if (showInfoUnterwegs) H += " checked"; H += "> Anzeige der Fahrzeuge, die bereits im Einsatz eingebunden sind<br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfNachforderungen'"; if (showInfoNachforderungen) H += " checked"; H += "> Anzeige der Fahrzeuge, die von der Einsatzstelle nachgefordert wurden<br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfToAlarm'"; if (showInfoToAlarm) H += " checked"; H += "> Anzeige der zu alarmierenden Fahrzeuge<br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfFahrzeit'"; if (showInfoFahrzeit) H += " checked"; H += "> Anzeige der Fahrzeiten zur Einsatzstelle (von-bis)<br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfFahrzeitOpt'"; if (showInfoFahrzeitOpt) H += " checked"; H += "> Anzeige der Fahrzeiten für die optionalen Fahrzeuge<br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfNichtVerfuegbar'"; if (showInfoNichtVerfuegbar) H += " checked"; H += "> Anzeige der benötigten, aber nicht verfügbaren Fahrzeuge<br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfVerfuegbar'"; if (showInfoVerfuegbar) H += " checked"; H += "> Anzeige aller verfügbarer Fahrzeugklassen<br>\n"; H += "<h2><font color='yellow'><b>Einstellungen für die Fahrzeuge</h2></font><br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfRTWplus'"; if (showInfoRTWplus) H += " checked"; H += "> Einen RTW mehr schicken als ursprünglich nötig<br>\n"; H += "<input type='checkbox' name='KonfigBox' id='KonfOptionalAnkreuzen'"; if (showInfoOptionalAnkreuzen) H += " checked"; H += "> Optionale Fahrzeuge direkt mitalarmieren<br>\n" H += "<br><a href='" + adr + "'>Speichern</a>\n"; H += "<br><br>\n"; hiddenDiv.innerHTML = H; NewDiv.appendChild(hiddenDiv); return NewDiv; } function KonfigBox_clicked() { mylog("KonfigBox_clicked"); var Boxes = document.getElementsByName("KonfigBox"); mylog("#Boxes = " + Boxes.length); for (var i=0;i<Boxes.length;i++) { var Box=Boxes[i]; var VarNam = Box.id.replace ("Konf","showInfo"); var OldVal = eval(VarNam); var NewVal = Box.checked; mylog(VarNam + " von " + OldVal + " nach " + NewVal); eval(VarNam + " = " + NewVal); mylog("Test, " + VarNam + " ist jetzt " + eval(VarNam)); } SetVariables(); } function zweiterAbmarsch_clicked(e) { var zATr = document.getElementById("zweiterAbmarschTr").checked; var zAGG = document.getElementById("zweiterAbmarschAusb").checked; if (e.target.id == "zweiterAbmarschTr" && zATr) zAGG=false; if (e.target.id == "zweiterAbmarschAusb" && zAGG) zATr=false; zweiterAbmarsch = 0; if (zATr) zweiterAbmarsch = 1; if (zAGG) zweiterAbmarsch = 2; GM_setValue("zweiterAbmarsch",zweiterAbmarsch); ClearFreeVehiclesTable(true); FirstRun=true; main(); } function machVorschlag_clicked(e) { machVorschlag = document.getElementById("machVorschlag").checked; ClearFreeVehiclesTable(true); FirstRun=true; main(); } function alarmTyp_clicked(e) { var rtw = document.getElementById("RTWZeit").checked; //var erkund = document.getElementById("Erkundungsmodus").checked; if (e.target.id == "RTWZeit" && rtw) erkund=false; //if (e.target.id == "Erkundungsmodus" && erkund) rtw=false; alarmtyp=0; if (rtw) alarmtyp = 1; //if (erkund) alarmtyp = 2; GM_setValue("alarmtyp",alarmtyp); ClearFreeVehiclesTable(true); FirstRun=true; main(); } function machVorschlag_clicked(e) { machVorschlag = document.getElementById("machVorschlag").checked; ClearFreeVehiclesTable(true); FirstRun=true; main(); } /* function Erkundungsmodus_clicked(e) { Erkundungsmodus=document.getElementById("Erkundungsmodus").checked; GM_setValue("Erkundungsmodus",Erkundungsmodus); if (Erkundungsmodus) Erkundungsmodus=false; document.getElementById("machVorschlag").checked=false; GM_setValue("machVorschlag",false); document.getElementById("RTWZeit").checked=false; GM_setValue("RTWZeit",false); location.reload(); } function RTWZeit_clicked(e) { RTWZeit=document.getElementById("RTWZeit").checked; GM_setValue("RTWZeit",RTWZeit); if (RTWZeit) RTWZeit=false; document.getElementById("Erkundungsmodus").checked=false; GM_setValue("Erkundungsmodus",false); document.getElementById("machVorschlag").checked=false; GM_setValue("machVorschlag",false); location.reload(); } */ function FillAlarmListe(Einsatzklasse) { mylog("FillAlarmListe(" + Einsatzklasse + ")"); var FZ = getFahrzeugListe(Einsatzklasse); ToAlarm = new Array; Optional = new Array; var Teile = FZ.split("|"); ToAlarm = Teile[0].split(","); if (Teile.length > 1) Optional = Teile[1].split(","); return; } function AddNachforderungen() { var D = document.getElementById("mission_reply"); if (D==undefined) return ""; var TB = D.getElementsByTagName("table"); if (TB.length == 0) return ""; var TRs = TB[0].getElementsByTagName("tr"); var NFFZ=""; var alleNF=""; for (var z=1;z<TRs.length;z++) { var TR=TRs[z]; if (TR.getElementsByTagName("td").length>=2) { var Q = TR.getElementsByTagName("td")[1].innerHTML; if (Q.indexOf("Leitstelle:") == -1) { var RM = TR.getElementsByTagName("td")[2].innerHTML; if (RM != undefined) { NFFZ = getNachforderungFahrzeug(RM); if (NFFZ != "") { if (FZinEinsatz(NFFZ)) NFFZ=""; if (NFFZ != "") { ToAlarm.push(NFFZ); alleNF += "," + NFFZ; } } } } } } if (alleNF != "") alleNF = alleNF.substr(1,100); mylog("Nachforderung: " + alleNF); return alleNF; } function FZinEinsatz(FZ) { mylog ("FZinEinsatz(" + FZ + ")"); mylog ("ToAlarm="+ToAlarm+"\nUnterwegs="+Unterwegs); var FZistDrin = false; for each (FZA in ToAlarm) { var A = FZA.split("/"); for each (F in A) { if (F == FZ) FZistDrin = true; } } for each (U in Unterwegs) { if (U == FZ) FZistDrin = true; } mylog("returns:"+FZistDrin); return FZistDrin; } function FillUnterwegsListe() { Unterwegs = new Array; AmOrt = new Array; AufAnfahrt = new Array; Wartend = new Array; var d = document.getElementById("mission_vehicle"); if (d.getElementsByTagName("table").length == 1) { var TB=d.getElementsByTagName("table")[0]; for each (TR in TB.getElementsByTagName("tr")) { var FZ; try { var FZ=TR.getElementsByTagName("td")[1].innerHTML; FZ = getFahrzeugKlasse(FZ); Unterwegs.push(FZ); AmOrt.push(FZ); } catch(e) {}; } } var d = document.getElementById("driving_vehicle"); if (d.getElementsByTagName("table").length == 1) { var TB=d.getElementsByTagName("table")[0]; for each (TR in TB.getElementsByTagName("tr")) { var FZ; try { var FZ=TR.getElementsByTagName("td")[1].innerHTML; FZ = getFahrzeugKlasse(FZ); Unterwegs.push(FZ); AufAnfahrt.push(FZ); } catch(e) {}; } } var d = document.getElementById("waiting_vehicle"); if (d.getElementsByTagName("table").length == 1) { var TB=d.getElementsByTagName("table")[0]; for each (TR in TB.getElementsByTagName("tr")) { var FZ; try { var FZ=TR.getElementsByTagName("td")[1].innerHTML; FZ = getFahrzeugKlasse(FZ); Unterwegs.push(FZ); Wartend.push(FZ); } catch(e) {}; } } } function bereinigeToAlarm() { // Alternativ-FZ in ToAalrm ans Ende stellen: mylog("vorher:"+ToAlarm); for (var ta=0; ta<ToAlarm.length; ta++) { if (ToAlarm[ta].indexOf("/") != -1) ToAlarm[ta] = "ZZZ/" + ToAlarm[ta]; } ToAlarm = ToAlarm.sort(); for (var ta=0; ta<ToAlarm.length; ta++) { if (ToAlarm[ta].indexOf("ZZZ/") != -1) ToAlarm[ta] = ToAlarm[ta].substring(4,100); } mylog("nachher:"+ToAlarm); // ebenso in Optional: mylog("vorher:"+Optional); for (var ta=0; ta<Optional.length; ta++) { if (Optional[ta].indexOf("/") != -1) Optional[ta] = "ZZZ/" + Optional[ta]; } Optional = Optional.sort(); for (var ta=0; ta<Optional.length; ta++) { if (Optional[ta].indexOf("ZZZ/") != -1) Optional[ta] = Optional[ta].substring(4,100); } mylog("nachher:"+Optional); var gefunden=false; for each (FZ in Unterwegs) { gefunden=false; for (var i=0; i<ToAlarm.length; i++) { var ALT = ToAlarm[i].split("/"); mylog("prüfe FZ (" + FZ + ") in ALT (" + ALT + ")"); for (a=0; a<ALT.length; a++) { if (FZ == ALT[a]) { ToAlarm.splice(i,1); i=ToAlarm.length; gefunden=true; } } } if (!gefunden) { for (var i=0; i<Optional.length; i++) { var ALT = Optional[i].split("/"); mylog("prüfe FZ (" + FZ + ") in ALT (" + ALT + ")"); for (a=0; a<ALT.length; a++) { if (FZ == ALT[a]) { Optional.splice(i,1); i=Optional.length; gefunden=true; } } } } } mylog("\nNACHHER: ToAlarm=" + ToAlarm + "\nUnterwegs=" + Unterwegs); } function Verletzte() { var TB = document.getElementById("mission_content").getElementsByTagName("table")[0]; for (var i=0; i<TB.getElementsByTagName("tr").length; i++) { var TR = TB.getElementsByTagName("tr")[i]; if (TR.getElementsByTagName("td")[0].innerHTML == "Verletzte") { var T = TR.getElementsByTagName("td")[1].innerHTML; var pos = T.indexOf("Personen - für jede Person") - 5; T = T.substr(pos,5); var Anz = parseInt(T); return Anz; } } return 0; } function getFahrzeugKlasse(Fahrzeugname) { mylog("getFahrzeugKlasse(" + Fahrzeugname + ")"); var FZ = Fahrzeugklassen[Fahrzeugname]; if (FZ == undefined) FZ=Fahrzeugname; mylog("returns " + FZ); return FZ; } function getFahrzeuggeschwindigkeit(Fahrzeugname) { var G = Fahrzeuggeschwindigkeiten[Fahrzeugname]; if (G == undefined) G = 1000; G = parseInt(G); return G; } function getEinsatzKlasse(Stichwort) { if (AlleGleich) return "-gleich-"; mylog("getEinsatzKlasse(" + Stichwort + ")"); var EK = Einsatzklassen[Stichwort]; if (EK == undefined) EK = "undef"; mylog("returns " + EK); return EK; } function getNachforderungFahrzeug(Rueckmeldung) { mylog("getNachforderungFahrzeug(" + Rueckmeldung + ")"); var FZ = Nachforderungen[Rueckmeldung]; if (FZ == undefined) FZ = errateNachforderungFahrzeug(Rueckmeldung); mylog("returns " + FZ); return FZ; } function errateNachforderungFahrzeug(Rueckmeldung) { for (F in Fahrzeugklassen) { if (Rueckmeldung.indexOf(F) != -1) { return Fahrzeugklassen[F]; } } return ""; } function getFahrzeugListe(EKListe) { mylog("getFahrzeugListe(" + EKListe + ")"); if (AlleGleich) return AlleGleich; var Klasse="", dazu="", opt=""; var Teile; if (EKListe.indexOf("|") != -1) { Teile = EKListe.split("|"); EKListe = Teile[0]; opt = Teile[1]; } if (EKListe.indexOf("+") != -1) { Teile = EKListe.split("+"); Klasse = Teile[0]; dazu = Teile[1]; } else { var X=getEinsatzklasseFahrzeugliste(EKListe); if (X != "") { Klasse = EKListe; } else { dazu = EKListe; } } mylog("Klasse=" + Klasse + "\ndazu=" + dazu + "\nopt=" + opt); Klasse = getEinsatzklasseFahrzeugliste(Klasse); if (Klasse != "" && dazu != "") Klasse +=","; Klasse += dazu; if (opt != "") Klasse += "|" + opt; mylog("ToAlarm = " + Klasse); return Klasse; } function getEinsatzklasseFahrzeugliste(Einsatzklasse) { mylog("getEinsatzklasseFahrzeugliste(" + Einsatzklasse +")"); var FZL = Einsatzklasse_Fahrzeugzuordnung[Einsatzklasse]; if (FZL == undefined) { mylog ("Einsatzklasse '" + Einsatzklasse + "' nicht definiert!") FZL = ""; } mylog("returns " + FZL); return FZL; } function getStichwort(Text) { mylog("getStichwort(" + Text + ")"); var Stichwort=Text; var Teile = Text.split(">"); if (Teile.length > 1) { Stichwort = Teile[1]; } Stichwort = trim(Stichwort); return Stichwort; } function getWikiLink(Stichwort) { mylog("getWikiLink(" + Stichwort + ")"); var WL = WikiLinks[Stichwort]; if (WL == undefined) WL = ""; mylog("returns " + WL); return WL; } function trim (S) { return S.replace (/^\s+/, '').replace (/\s+$/, ''); } function removeTags (S) { return trim(S.replace(/<.*?>/g, '')); } function makeDots(Zahl) { var Str = Zahl.toString(); var ret = ""; while (Str.length>3) { ret = "." + Str.substr(Str.length-3,3) + ret; Str = Str.substr(0,Str.length-3); } if (Str.length>0) { ret = Str + ret; } else { ret = ret.substr(1,ret.length-1); } return ret; } function MarkiereFahrzeuge() { var D = document.getElementsByClassName("free_vehicle")[0]; var TB = D.getElementsByTagName("table")[0]; if (TB==undefined) return; var Zeilen = TB.getElementsByTagName("tr"); var Anfahrt=""; var imax=0; var imin=9999; for (var opt=0; opt<Optional.length; opt++) { var FZ = Optional[opt]; var AlternativFZ = FZ.split("/"); var Alternativen = AlternativFZ.length; mylog("(opt) suche nach " + AlternativFZ); for (var i=1; i<Zeilen.length-1; i++) { var ThisZeile = Zeilen[i]; var ThisSpalten = ThisZeile.getElementsByTagName("td"); var ThisFZ = getFahrzeugKlasse(ThisSpalten[2].firstChild.nodeValue); var passt=false; for (var a=0 ; a<Alternativen ; a++) { if (ThisFZ == AlternativFZ[a]) passt = true; } if (passt) { var C = ThisSpalten[0].getElementsByTagName("input")[0]; var RN = ThisSpalten[1].getElementsByTagName("a")[0]; if (RN) RN = RN.innerHTML; if (C.alt != "x" && RN.substr(0,3).toUpperCase() != "XXX") { mylog("(opt) gefunden:" + ThisFZ); for (var s=0; s<ThisSpalten.length; s++) ThisSpalten[s].bgColor = "#008811"; C.alt = "x"; if (i>imax) imax=i; if (i<imin) imin=i; i=Zeilen.length; } // not checked } // FZ passt } // for Zeilen } // alle Optionalen if (imax>0) { var Zeile = Zeilen[imax]; Anfahrt = "<font color=#009911>" + Zeile.getElementsByTagName("td")[4].innerHTML + "</font>"; if (imin != imax) { Zeile = Zeilen[imin]; Anfahrt = "zwischen <font color=#009911>" + Zeile.getElementsByTagName("td")[4].innerHTML + "</font> und " + Anfahrt; } } return Anfahrt; } function AlarmiereFahrzeuge() { ClearFreeVehiclesTable(!CBClicked); var D = document.getElementsByClassName("free_vehicle")[0]; var TB = D.getElementsByTagName("table")[0]; if (TB==undefined) return; var Zeilen = TB.getElementsByTagName("tr"); var AlarmZeilen = new Array(); var FahrzeitZuLang = false; var Anfahrt=""; var imax=0; var imin=9999; for (var ta=0; ta<ToAlarm.length; ta++) { var FZ = ToAlarm[ta]; var AlternativFZ = FZ.split("/"); var Alternativen = AlternativFZ.length; mylog("suche nach " + AlternativFZ); for (var i=1; i<Zeilen.length-1; i++) { var ThisZeile = Zeilen[i]; var ThisSpalten = ThisZeile.getElementsByTagName("td"); var ThisFZ = getFahrzeugKlasse(ThisSpalten[2].innerHTML); var passt=false; for (var a=0 ; a<Alternativen ; a++) { if (ThisFZ == AlternativFZ[a]) passt = true; } if (passt) { var fahrzeit=ThisSpalten[4].firstChild.nodeValue; if (ThisFZ == 'RTW' && alarmtyp == 1 && ( fahrzeit.split(" Min.")[0] > 30 || fahrzeit.match("Std.") )) FahrzeitZuLang = true if (!FahrzeitZuLang) { var C = ThisSpalten[0].getElementsByTagName("input")[0]; var RN = ThisSpalten[1].getElementsByTagName("a")[0]; if (RN) RN = RN.innerHTML; if (C.alt != "x" && RN.substr(0,3).toUpperCase() != "XXX") { mylog("gefunden:" + ThisFZ); if (FirstRun || !CBClicked) { C.click(); AlarmZeilen.push (ThisZeile); } C.alt="x"; for (var s=0; s<ThisSpalten.length; s++) ThisSpalten[s].bgColor = "#ee1133"; FZ = "gefunden"; ToAlarm[ta] = "gefunden"; if (i>imax) imax=i; if (i<imin) imin=i; i=Zeilen.length; } // not checked } // Fahrzeit lang } // FZ passt } // for Zeilen } // alle ToAlarm if (imax>0) { var Zeile = Zeilen[imax]; Anfahrt = "<font color=#CC6666>" + Zeile.getElementsByTagName("td")[4].innerHTML + "</font>"; if (imin != imax) { Zeile = Zeilen[imin]; Anfahrt = "zwischen <font color=#CC6666>" + Zeile.getElementsByTagName("td")[4].innerHTML + "</font> und " + Anfahrt; } } if (zweiterAbmarsch != 0) { var AlarmWachen = new Array(); var WachAlarm = new Array(); for (var i=0; i<AlarmZeilen.length; i++) { var ThisZeile = AlarmZeilen[i]; var ThisSpalten = ThisZeile.getElementsByTagName("td"); var ThisCheckbox = ThisSpalten[0].getElementsByTagName("input")[0]; var ThisWache = ThisSpalten[3].getElementsByTagName("a")[0].innerHTML; var ThisFZTyp = GrTrFahrzeug(ThisSpalten[2].innerHTML); var ThisFZAusb = AusbFahrzeug(ThisSpalten[2].innerHTML); var ThisFunkName = ThisSpalten[1].innerHTML; var FNEndLink = ThisFunkName.indexOf("</a>"); var ThisFZUnterwegs = ( trim(ThisFunkName.substr(FNEndLink+4)) == "(unterwegs)" ); if (!ThisFZUnterwegs) { if (!WachAlarm[ThisWache]) { AlarmWachen.push (ThisWache); WachAlarm[ThisWache] = Array(); WachAlarm[ThisWache][0] = ""; WachAlarm[ThisWache][1] = ""; } if (zweiterAbmarsch == 1) { if (ThisFZTyp == "Gr") WachAlarm[ThisWache][0] += "," + i; if (ThisFZTyp == "Tr") WachAlarm[ThisWache][1] += "," + i; } else if (zweiterAbmarsch == 2) { if (ThisFZAusb == "") WachAlarm[ThisWache][0] += "," + i; if (ThisFZAusb == "Ausb") WachAlarm[ThisWache][1] += "," + i; } } } for each (W in AlarmWachen) { if (WachAlarm[W][0] && WachAlarm[W][1]) { var StornoZeilen = WachAlarm[W][0].split(","); for each (SZ in StornoZeilen) { if (SZ) AlarmZeilen[SZ].getElementsByTagName("input")[0].click(); } } } } for (ta=ToAlarm.length; ta>=0; ta--) { if (ToAlarm[ta]=="gefunden") ToAlarm.splice(ta,1); } return Anfahrt; } // Zuweisung der Fahrzeugart für Abmarsch-Reihenfolge function GrTrFahrzeug(FZBez) { var ret=""; ret = "Tr"; if (FZBez.substr(0,3) == "LF ") ret="Gr"; if (FZBez.substr(0,4) == "HLF ") ret="Gr"; if (FZBez == "Kleinlöschfahrzeug") ret="Gr"; mylog("FZBez = " + FZBez + ", Typ=" + ret); return ret; } // Fahrzeuge Ausbildung WORK JM function AusbFahrzeug(FZBez) { var ret=""; if (FZBez == "GW-Gefahrgut") ret="Ausb"; if (FZBez == "GW-Höhenrettung") ret="Ausb"; if (FZBez == "GW-Messtechnik") ret="Ausb"; if (FZBez == "GW-Taucher") ret="Ausb"; if (FZBez == "RTW") ret="Ausb"; if (FZBez == "Flugfeldlöschfahrzeug") ret="Ausb"; if (FZBez == "Rettungstreppe") ret="Ausb"; if (FZBez == "Feuerlöschboot") ret="Ausb"; if (FZBez == "Rettungsboot") ret="Ausb"; if (FZBez == "GW-TUIS") ret="Ausb"; if (FZBez == "HLF 24/14-S") ret="Ausb"; mylog("FZBez = " + FZBez + ", Typ=" + ret); return ret; } function zaehleVerfuegbar() { // Array aufbauen, Reihenfolge wie in Fahrzeugklassen var ArrFZK = new Array(); var strFZK = ""; for (F in Fahrzeugklassen) { var FZK = Fahrzeugklassen[F]; if (!strFZK.match("#"+FZK+"#")) { ArrFZK.push(FZK); strFZK += "#" + FZK + "#"; } } var AnzFZK=new Array(); var AnzFZKXXX=new Array(); for each (FZK in ArrFZK) { AnzFZK[FZK]=0; AnzFZKXXX[FZK]=0; } /* var FV=document.getElementsByClassName("free_vehicle"); if (!FV) return ""; var TB=FV[0].getElementsByTagName("table"); if (TB.length==0) return ""; for each (TR in TB[0].getElementsByTagName("tr")) { var FZ; var TDs=TR.getElementsByTagName("td"); if (TDs.length==5) { FZ=TDs[2].innerHTML; var FN=TDs[1].getElementsByTagName("a")[0].innerHTML; var FZK=getFahrzeugKlasse(FZ); if (FN.substr(0,3).toUpperCase()=="XXX") { AnzFZKXXX[FZK]++; } else { AnzFZK[FZK]++; } } } */ var FV=document.getElementsByClassName("free_vehicle"); if (!FV) return ""; var TB=FV[0].getElementsByTagName("table"); if (TB.length==0) return ""; var TR=TB[0].getElementsByTagName("tr"); for (var i=0;TR.length > i; i++){ var FZ; var TDs=TR[eval("i")].getElementsByTagName("td"); if (TDs.length==5) { FZ=TDs[2].innerHTML; var FN=TDs[1].getElementsByTagName("a")[0].innerHTML; var FZK=getFahrzeugKlasse(FZ); if (FN.substr(0,3).toUpperCase()=="XXX") { AnzFZKXXX[FZK]++; } else { AnzFZK[FZK]++; } } } // Tabelle Fzg wenn 0 dann Rot, sonst Grün var ret = "<table border='0' style='min-width:100%;'><tr>"; var c=0; for each (FZ in ArrFZK) { if (Einsatzklasse=(0) == 'W' && FZ != 'Rettungsboot' && FZ !='Feuerlöschboot') continue; else if (Einsatzklasse=(0) != 'W' && ( FZ == 'Rettungsboot' || FZ =='Feuerlöschboot' ) ) continue; if (c==MAXSPALTENVERFUEGBAR) c=0, ret+="</tr><tr>"; if (AnzFZK[FZ] == 0) ret += "<td style='border:0;text-align:center;'><font size=1><b><font color='red'>"+AnzFZK[FZ]+"</b></font></font>"; var colour; if ( unsafeWindow.feuerwache_layout == 'light') colour='green'; else colour='lime'; if (AnzFZK[FZ] != 0) ret += "<td style='border:0;text-align:center;'><font size=1><b><font color='"+colour+"'>"+AnzFZK[FZ]+"</b></font></font>"; var colour; if ( unsafeWindow.feuerwache_layout == 'light') colour='red'; else colour='orange'; if (AnzFZKXXX[FZ]) ret +="<font color='"+colour+"'>/"+AnzFZKXXX[FZ]+"</font>"; ret += "<br>"+FZ+" </td>"; c++; } ret +="</tr></table>"; return ret; } function mylog(Text) { if (!debugging) return; var Jetzt = new Date(); GM_log(Jetzt.toLocaleString() + "\n" + Text); } function GetVariables() { mylog("GetVariables"); showInfoKlasseInListe = GM_getValue("showInfoKlasseInListe",true); showInfoEinsatzNr = GM_getValue("showInfoEinsatzNr",true); showInfoStichwort = GM_getValue("showInfoStichwort",true); showInfoKlasse = GM_getValue("showInfoKlasse",true); showInfoKlassenalarm = GM_getValue("showInfoKlassenalarm",true); showInfoKlassenalarmOpt = GM_getValue("showInfoKlassenalarmOpt",true); showInfoRTW = GM_getValue("showInfoRTW",true); showInfoUnterwegs = GM_getValue("showInfoUnterwegs",true); showInfoNachforderungen = GM_getValue("showInfoNachforderungen",true); showInfoToAlarm = GM_getValue("showInfoToAlarm",true); showInfoFahrzeit = GM_getValue("showInfoFahrzeit",true); showInfoFahrzeitOpt = GM_getValue("showInfoFahrzeitOpt",true); showInfoNichtVerfuegbar = GM_getValue("showInfoNichtVerfuegbar",true); showInfoVerfuegbar = GM_getValue("showInfoVerfuegbar",true); showInfoRTWplus = GM_getValue("showInfoRTWplus",true); ScriptUpdateAvailable = GM_getValue("pleaseUpdate",""); showInfoOptionalAnkreuzen = GM_getValue("showInfoOptionalAnkreuzen",false); manv_sound = GM_getValue("manv_sound",1); showInfoVerbandSound = GM_getValue("showInfoVerbandSound",true); showInfoProbeSound = GM_getValue("showInfoProbeSound",true); vgsl_sound = GM_getValue("vgsl_sound",1); alarm_sound = GM_getValue("alarm_sound",0); soundplayed = GM_getValue("soundplayed",''); } function SetVariables() { mylog("SetVariables"); GM_setValue("showInfoKlasseInListe",showInfoKlasseInListe); GM_setValue("showInfoEinsatzNr",showInfoEinsatzNr); GM_setValue("showInfoStichwort",showInfoStichwort); GM_setValue("showInfoKlasse",showInfoKlasse); GM_setValue("showInfoKlassenalarm",showInfoKlassenalarm); GM_setValue("showInfoKlassenalarmOpt",showInfoKlassenalarmOpt); GM_setValue("showInfoRTW",showInfoRTW); GM_setValue("showInfoUnterwegs",showInfoUnterwegs); GM_setValue("showInfoNachforderungen",showInfoNachforderungen); GM_setValue("showInfoToAlarm",showInfoToAlarm); GM_setValue("showInfoFahrzeit",showInfoFahrzeit); GM_setValue("showInfoFahrzeitOpt",showInfoFahrzeit); GM_setValue("showInfoNichtVerfuegbar",showInfoNichtVerfuegbar); GM_setValue("showInfoVerfuegbar",showInfoVerfuegbar); GM_setValue("showInfoRTWplus",showInfoRTWplus); GM_setValue("showInfoOptionalAnkreuzen",showInfoOptionalAnkreuzen); GM_setValue("showInfoVerbandSound",showInfoVerbandSound); GM_setValue("showInfoProbeSound",showInfoProbeSound); } function ZeitToSek(txtZeit) { // errechnet aus der Klartext-Zeit die Anzahl der Sekunden var Teile = txtZeit.split("."); var sek=0; for each (Teil in Teile) { Teil = trim(Teil); var Wert = Teil.split(" "); var Zahl = Wert[0]; if (Zahl.match("0[1-9]+")) Zahl = Zahl.substr(1,Zahl.length); Zahl = parseInt(Zahl); var Einheit = Wert[1]; switch (Einheit) { case "Sek": sek += Zahl; break; case "Min": sek += Zahl*60; break; case "Std": sek += Zahl*3600; break; } } return sek; } function Verbandseinsatz() { var User="X"; var ret=false; var Obj = document.getElementById("navigation_top"); if (Obj) Obj = Obj.getElementsByTagName("ul")[0]; if (Obj) Obj = Obj.getElementsByTagName("ul")[0]; if (Obj) Obj = Obj.getElementsByTagName("li")[0]; if (Obj) Obj = Obj.getElementsByTagName("a")[0]; if (Obj) Obj = Obj.innerHTML; if (Obj) User = Obj.replace(/Benutzer: /,""); mylog("User = " + User); Obj = document.getElementById("mission_content"); if (Obj) Obj = Obj.getElementsByTagName("table")[0]; if (Obj) { var TRs=Obj.getElementsByTagName("tr"); for (var t=0;t<TRs.length;t++) { var TR=TRs[t]; var THText = TR.getElementsByTagName("td")[0].innerHTML; if (THText == "Einsatz von") { var UserEinsatz="Y"; Obj = TR.getElementsByTagName("td")[1]; if (Obj) Obj = Obj.getElementsByTagName("a")[0]; if (Obj) UserEinsatz=Obj.innerHTML; if (User != UserEinsatz) ret=true; } } } mylog("Verbandseinsatz=" + ret); return ret; } function NowDateString() { var Now = new Date(); var X,R=""; var X = Now.getFullYear(); R+=X; X = "0" + (Now.getMonth()+1); X = X.substr(X.length-2,2); R+=X; X = "0" + Now.getDate(); X = X.substr(X.length-2,2); R+=X; return R; } function updateTest() { // prüfen, ob heute bereits ein Update-Check stattgefunden hat: var LastUpdate = GM_getValue("LastUpdate","0"); var heute = NowDateString(); mylog("heute = " + heute + "\nLastUpdate = " + LastUpdate); // wenn ja, nicht noch einmal prüfen if (LastUpdate == heute) return; // heute nicht nochmal prüfen GM_setValue("LastUpdate",heute); // userscript-Seite öffnen, um Version auszulesen GM_xmlhttpRequest ( { method: 'GET', url: UPDATEURLmeta, onload: function(r) { if (r.status==200) { XML = r.responseText; DoUpdateCheck(XML); } } } ) } function DoUpdateCheck(XML) { var ThisVersion = GM_getValue("Version","version"); var OnlineVersion = ParseXMLforVersion(XML); mylog("This ="+ThisVersion); mylog("Online="+OnlineVersion); if (ThisVersion != OnlineVersion) { GM_setValue("pleaseUpdate",OnlineVersion); ScriptUpdateAvailable = OnlineVersion; } else { GM_setValue("pleaseUpdate",""); ScriptUpdateAvailable = ""; } } function ParseXMLforVersion(XML) { // aus XML den Versionsstand herausziehen: var versionArr = XML.match(/\/\/\s\@version\s*(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2})/); if (RegExp.$1 != "") { return RegExp.$1; } return ''; } function init() { ToAlarm=""; NichtVerf=""; mylog ("init startet"); document.addEventListener("DOMNodeInserted", nodeInserted, false); GetVariables(); if (CHECKFORUPDATES) updateTest(); } function emptySound () { // Die Variable, die speichert, für welchen Einsatz schon der Alarmsound gespielt werden soll muss ab und zu mal geleert werden. // Deswegen geschieht dies mit der Updateprüfung GM_setValue("soundplayed",''); GM_setValue("done_einsatz",''); } function playsound(src) { var footer=document.getElementById("footer"); var sound=createElement("object",{'id':'myFlashSound','type':'application/x-shockwave-flash','data':'http://verband-hogsmeade.de/Script_Sounds/'+src+'.swf','width':'1','height':'1'}); var param=createElement("param",{'name':'FlashVars','value':'listener=mySoundListener&interval=5000'}); var param2=createElement("param",{'name':'movie','value':'http://verband-hogsmeade.de/Script_Sounds/'+src+'.swf'}); var param3=createElement("param",{'name':'AllowScriptAccess','value':'always'}); var param4=createElement("param",{'name':'loop','value':'false'}); sound.appendChild(param); sound.appendChild(param2); sound.appendChild(param3); sound.appendChild(param4); footer.appendChild(sound); } var inputs=document.getElementsByTagName('table')[0].getElementsByTagName('input'); for ( var i=0;i<inputs.length;i++) { inputs[i].addEventListener ( "click" , function(){GM_setValue(this.name+"_sound",this.value);} , false ) ; } function nodeInserted(e) { // wenn ich selbst für die Änderung verantwortlich bin, nichts unternehmen if (ichBins) return; mylog ("nodeInserted, e=" + e.target.innerHTML.substr(0,100)); // reload auf Übersichtseite hat stattgefunden: if (e.target.innerHTML == "Einsätze deines Verbandes") { window.setTimeout(main, 10); return; } // reload auf Einsatzseite hat stattgefunden: if (e.target.innerHTML.indexOf("<h2>Freie Fahrzeuge</h2>") > 0) { window.setTimeout(main, 100); return; } // in Schule wurde eine Wache "aufgeklickt": if (e.target.innerHTML.indexOf("<th>Ausbildung</th>") > 0) { window.setTimeout(Markiere_Schueler(e),10); return; } // reload auf Leitstellenansicht hat stattgefunden: if (e.target.innerHTML == "Leitstellenansicht") { window.setTimeout(main, 10); return; } ////Bei neuer PN färben var div=document.getElementById('footerMessageLink'); var span=document.getElementById('footerMessageCountUnread'); if ( span ) div.style.backgroundColor='yellow'; mylog("HREF=" + document.location.href + "\nInserted: " + e.target.innerHTML.substr(0,500)); } // Verbandssound einbinden mit Interval! var datum = new Date(); var tag=datum.getDay(); var nummer=datum.getDate(); if ( ( verband == 'Hogsmeade (HFV)' || verband == 'Verband Paderborn (VPB)' ) && showInfoProbeSound == true && ! soundplayed.match('probealarm') && tag=='6' && nummer < 8) { var head=document.getElementsByTagName('head')[0]; var script= document.createElement('script'); script.type='text/javascript'; script.src='http://verband-hogsmeade.de/skript/verband_nachrichten/'+teil[0]+'_probealarm.js'; head.appendChild(script); unsafeWindow.BodyOnload(teil[0]+"_probealarm();"); window.setTimeout(probealarm_played, 10); } function verbandalarm_played() { var cookie=document.cookie; if ( cookie.match('sound_played') ) { soundplayed=soundplayed+'||verband'; GM_setValue("soundplayed",soundplayed); } } function probealarm_played() { var cookie=document.cookie; if ( cookie.match('probe_played') ) { soundplayed=soundplayed+'||probealarm'; GM_setValue("soundplayed",soundplayed); } } function bearbeiteWerbeaktion() { // Button einfügen var table=document.getElementsByTagName('table')[0]; var trs=table.getElementsByTagName('tr'); trs[0].getElementsByTagName('th')[0].colSpan="2"; var newth=document.createElement('th'); newth.appendChild(createText("Nur BF")); trs[0].appendChild(newth); var newth=document.createElement('th'); newth.appendChild(createText("Nur unter Soll")); trs[0].appendChild(newth); // Zeilen des ersten Tabbelenteils durchgehen, durch zwei Buttons ergänzen trs[1].getElementsByTagName('td')[1].colSpan="1"; var newtd=document.createElement('td'); var input=createElement("input",{'type':'radio','name':'checkAllRadioBF','id':'checkAllRadioBF1','style':'margin-right:20px'}); newtd.appendChild(input); newtd.appendChild(createText("Ein Tag")); trs[1].appendChild(newtd); document.getElementById("checkAllRadioBF1").addEventListener("click",function(){checkAllRadioBF(1);},false); var newtd=document.createElement('td'); var input=createElement("input",{'type':'radio','name':'checkAllRadioSoll','id':'checkAllRadioSoll1','style':'margin-right:20px'}); newtd.appendChild(input); newtd.appendChild(createText("Ein Tag")); trs[1].appendChild(newtd); document.getElementById("checkAllRadioSoll1").addEventListener("click",function(){checkAllRadioSoll(1);},false); trs[2].getElementsByTagName('td')[1].colSpan="1"; var newtd=document.createElement('td'); var input=createElement("input",{'type':'radio','name':'checkAllRadioBF','id':'checkAllRadioBF3','style':'margin-right:20px'}); newtd.appendChild(input); newtd.appendChild(createText("Drei Tage")); trs[2].appendChild(newtd); document.getElementById("checkAllRadioBF3").addEventListener("click",function(){checkAllRadioBF(3);},false); var newtd=document.createElement('td'); var input=createElement("input",{'type':'radio','name':'checkAllRadioSoll','id':'checkAllRadioSoll3','style':'margin-right:20px'}); newtd.appendChild(input); newtd.appendChild(createText("Drei Tage")); trs[2].appendChild(newtd); document.getElementById("checkAllRadioSoll3").addEventListener("click",function(){checkAllRadioSoll(3);},false); trs[3].getElementsByTagName('td')[1].colSpan="1"; var newtd=document.createElement('td'); var input=createElement("input",{'type':'radio','name':'checkAllRadioBF','id':'checkAllRadioBF5','style':'margin-right:20px'}); newtd.appendChild(input); newtd.appendChild(createText("Fünf Tage")); trs[3].appendChild(newtd); document.getElementById("checkAllRadioBF5").addEventListener("click",function(){checkAllRadioBF(5);},false); var newtd=document.createElement('td'); var input=createElement("input",{'type':'radio','name':'checkAllRadioSoll','id':'checkAllRadioSoll5','style':'margin-right:20px'}); newtd.appendChild(input); newtd.appendChild(createText("Fünf Tage")); trs[3].appendChild(newtd); document.getElementById("checkAllRadioSoll5").addEventListener("click",function(){checkAllRadioSoll(5);},false); // Ende des Durchgehens des ersten Tabbelenteils } function checkAllRadioBF(Tage){ var namen={'1':'Ein Tag','3':'Drei Tage','5':'Fünf Tage'}; var trs=document.getElementsByTagName('table')[0].getElementsByTagName('tr'); for (var i=5;i<trs.length;i++) { var td=trs[i].getElementsByTagName('td'); if (! td[1]) continue; if ( td[1].getElementsByTagName('label')[0].firstChild.nodeValue==namen[Tage]) td[0].getElementsByTagName('input')[0].checked=true; else td[0].getElementsByTagName('input')[0].checked=false; } } function checkAllRadioSoll(Tage){ var namen={'1':'1','3':'2','5':'3'}; var trs=document.getElementsByTagName('table')[0].getElementsByTagName('tr'); for (var i=4;i<trs.length;i++) { var td=trs[i+1].getElementsByTagName('td'); if ( td[0].innerHTML.match('Werbeaktion')) { i++; continue; } var th=trs[i].getElementsByTagName('th')[0].innerHTML; if (th.match("div")) { var j=parseInt(i)+parseInt(namen[Tage]); trs[j].getElementsByTagName('td')[0].getElementsByTagName('input')[0].checked=true; } i=i+3; } } function dt() { debugging = true; } function df() { debugging = false; }