您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A UserScript that's made to help you play!
- // ==UserScript==
- // @name Kapi Hospital Helper
- // @description A UserScript that's made to help you play!
- // @date 19.07.2015
- // @version 2.4.8.9
- // @author IreuN
- // @include http://*kapihospital.com/*
- // @grant GM_getValue
- // @grant GM_setValue
- // @grant GM_addStyle
- // @grant GM_xmlhttpRequest
- // @require http://code.jquery.com/jquery-2.1.4.min.js
- // @namespace https://greasyfork.org/users/5507
- // @supportURL https://github.com/ireun/Kapi-Hospital-Berater/issues
- // ==/UserScript==
- window.addEventListener("load", function () {
- var info = "[Helper] ";
- console.log( info + "Start");
- // Special Characters - DE
- var ae_de = "\u00E4"; // ä
- var oe_de = "\u00F6"; // ö
- var ue_de = "\u00FC"; // ü
- var Ae_de = "\u00C4"; // Ä
- var Oe_de = "\u00D6"; // Ö
- var Ue_de = "\u00DC"; // Ü
- var sz_de = "\u00DF"; // ß
- // Special Characters - PL
- var a_pl = "\u0105"; // ą
- var c_pl = "\u0107"; // ć
- var e_pl = "\u0119"; // ę
- var l_pl = "\u0142"; // ł
- var n_pl = "\u0144"; // ń
- var o_pl = "\u00F3"; // ó
- var s_pl = "\u015B"; // ś
- var z_pl = "\u017C"; // ź
- var x_pl = "\u017A"; // ż
- // Special Characters - CZ
- var a_cz = "\u00E1"; // á
- var c_cz = "\u010D"; // č
- var d_cz = "\u010F"; // ď
- var e_cz = "\u00E9"; // é
- var i_cz = "\u00ED"; // í
- var o_cz = "\u00F3"; // ó
- var r_cz = "\u0159"; // ř
- var s_cz = "\u0161"; // š
- var t_cz = "\u0165"; // ť
- var u_cz = "\u00FA"; // ú
- var y_cz = "\u00FD"; // ý
- var z_cz = "\u017E"; // ž
- var e2_cz = "\u011B"; // ě
- var u2_cz = "\u016F"; // ů
- var u3_cz = "\u00DA"; // Ú
- // global definitions
- var texte = {};
- var medi = {};
- var reg2 = /http:\/\/(s\d+\.|www\.|)kapihospital\.com\/(.*)/i;
- var delimThou = ".";
- var regDelimThou = /\./g;
- var delimDeci = ",";
- var regDelimDeci = /,/;
- var ccode = [
- ["de", "de", ".de.kapihospital.com"],
- ["en", "uk", ".uk.kapihospital.com"],
- ["en", "uk", ".uk.kapihospital.com"],
- ["en", "nl", ".nl.kapihospital.com"],
- ["en", "fr", ".fr.kapihospital.com"],
- ["en", "tr", ".tr.kapihospital.com"],
- ["en", "bg", ".bg.kapihospital.com"],
- ["en", "es", ".es.kapihospital.com"],
- ["pl", "pl", ".pl.kapihospital.com"],
- ["en", "ro", ".ro.kapihospital.com"],
- ["en", "ru", ".ru.kapihospital.com"],
- ["cz", "cz", ".cz.kapihospital.com"],
- ["en", "se", ".se.kapihospital.com"],
- ["en", "pt", ".pt.kapihospital.com"],
- ["en", "hu", ".hu.kapihospital.com"],
- ["en", "gr", ".gr.kapihospital.com"],
- ["en", "us", ".us.kapihospital.com"],
- ["en", "it", ".it.kapihospital.com"],
- ["en", "dk", ".dk.kapihospital.com"],
- ["en", "br", ".br.kapihospital.com"],
- ["en", "ir", ".ir.kapihospital.com"],
- ["en", "no", ".no.kapihospital.com"],
- ["en", "ae", ".ae.kapihospital.com"]];
- var lng;
- var reg;
- var gamepages = {};
- ccode.forEach(function (ccode) {
- if (document.location.href.search(ccode[1] + ".kapihospital.com") != -1) {
- lng = ccode[0];
- reg = new RegExp("http://s(\\d+)\\." + ccode[1] + "\\.kapihospital\\.com/(.*?)\\.php(.*)", "i");
- gamepages[ccode[1]] = "http://www" + ccode[2];
- console.log( info + "Setting language: " + lng);
- loadLanguage(lng);
- }
- });
- //***********************************************************************************************************
- var scriptUrl = "https://greasyfork.org/scripts/5182-kapi-hospital-berater";
- var Global = unsafeWindow.Global;
- var loc = reg.exec(document.location.href);
- var all = document.getElementsByTagName("body")[0];
- var now = Math.floor((new Date()).getTime() / 1000);
- var nie = 2147483000;
- var questcnt = 0;
- var server = "";
- var page = "";
- var pageZusatz = "";
- var developer = true;
- var candtable = document.getElementsByTagName("table");
- var username = "";
- var valRackLimit = "";
- var valMaxRackLimit = "";
- var valGlobalClockInTitle = "";
- var questTime = "";
- var valStartQuestAutomatic = false;
- var logindata = [];
- if (loc) {
- server = loc[1];
- page = loc[2];
- pageZusatz = loc[3];
- developer = (pageZusatz == "?dev");
- candtable = document.getElementsByTagName("table");
- username = GM_getValue(lng + "_" + server + "_username", "");
- switch (page) {
- case "main":
- do_main();
- break;
- case "logout":
- do_login();
- break;
- }
- }
- else {
- do_login();
- }
- //***********************************************************************************************************
- function do_main() {
- console.log( info + "Start do_main()");
- //if (!username) document.location.href = "http://www"+gamepage;
- // CSS
- GM_addStyle("tr:hover{background-color:lightblue;}");
- GM_addStyle("table.hoveryellow tr:hover{background-color:yellow;}");
- GM_addStyle("div.hoverlightblue:hover{background-color:lightblue;}");
- GM_addStyle("div.hoverblue:hover{background-color:blue;}");
- GM_addStyle("#quicklinks{position:fixed;right:-100px;top:0px;width:100px;height:100%;padding-left:15px;background-color:#999;z-index:200;}");
- GM_addStyle("#quicklinks:hover{right:0px;!important}");
- GM_addStyle("#quicklinks>div{float:left;}");
- GM_addStyle("#quicklinks>div>div{position:relative;width:50px;height:50px;}");
- GM_addStyle(".miniicon{font-weight:bold;padding:2px;border:1px inset white;}");
- GM_addStyle(".allcured{border:3px solid green!important;}");
- GM_addStyle(".needminitreatment{border:3px solid yellow;border-left:3px solid yellow!important;}");
- GM_addStyle(".unhealable{border:3px solid red;border-top:3px solid red!important;border-right:3px solid red!important;}");
- GM_addStyle(".racklow{" + GM_getValue(lng + "_" + server + "_" + username + "_css_racklow", "background-color:orangered;") + "}");
- GM_addStyle(".cursorstandard{ cursor: default!important;}");
- console.log( info + "Updatecheck");
- if (GM_getValue("valUpdate", true)) {
- valLastUpdate = GM_getValue("valLastUpdate", "");
- if (valLastUpdate == "") {
- GM_xmlhttpRequest({
- method: "GET",
- url: "https://greasyfork.org/scripts/5182-kapi-hospital-berater/code/Kapi%20Hospital%20Berater.meta.js",
- onload: function (response) {
- keyusoversion = /uso:version\s+(\d+)/;
- serverversion = keyusoversion.exec(response.responseText)[1];
- GM_setValue("valLastUpdate", serverversion);
- }
- });
- } else {
- GM_xmlhttpRequest({
- method: "GET",
- url: "https://greasyfork.org/scripts/5182-kapi-hospital-berater/code/Kapi%20Hospital%20Berater.meta.js",
- onload: function (response) {
- keyusoversion = /uso:version\s+(\d+)/;
- serverversion = keyusoversion.exec(response.responseText)[1];
- if (valLastUpdate != serverversion) {
- GM_setValue("valLastUpdate", serverversion);
- if (confirm(texte["confirmUpdate"])) {
- document.location.href = "https://greasyfork.org/scripts/5182-kapi-hospital-berater/code/Kapi%20Hospital%20Berater.user.js";
- }
- }
- }
- });
- }
- }
- var documentTitle = document.title;
- try {
- var maincontainer = $("border4").parentNode;
- } catch (err) {
- var maincontainer = all;
- }
- try {
- var werbecontainer = document.getElementsByTagName("form")[0].parentNode;
- } catch (err) {
- var werbecontainer = all;
- }
- var lastXmlRequest = 0;
- var rooms = [];
- var patients = [];
- var roomTimes = {};
- roomTimes["global"] = [0, 0];
- roomTimes["allrooms"] = [0, 0];
- roomTimes["emptyrooms"] = [0, 0];
- for (var v in Global.availableMedics[0]) {
- medi[Global.availableMedics[0][v]["diseases"]] = Global.availableMedics[0][v];
- }
- var cand = document.getElementsByClassName("room");
- valRackLimit = GM_getValue(lng + "_" + server + "_" + username + "_valRackLimit", 50);
- valMaxRackLimit = GM_getValue(lng + "_" + server + "_" + username + "_valMaxRackLimit", 100);
- valGlobalClockInTitle = GM_getValue(lng + "_" + server + "_" + username + "_valGlobalClockInTitle", true);
- questTime = GM_getValue(lng + "_" + server + "_" + username + "_questTime", 0);
- valStartQuestAutomatic = GM_getValue(lng + "_" + server + "_" + username + "_valStartQuestAutomatic", true);
- if (developer) {
- createElement("div", {
- id: "help1",
- style: "z-index:2;position:absolute;top:15px;left:0px;background-color:#CCC;border:2px solid black;padding:3px;"
- }, all);
- }
- console.log( info + "Points");
- // punkte
- GM_xmlhttpRequest({
- method: "GET",
- url: "service.help.php?mode=level",
- // synchronous: true,
- onload: function (response) {
- var text = JSON.parse(response.responseText);
- var dom = (new DOMParser()).parseFromString(text["message"], "text/xml");
- var tbdy = dom.getElementsByTagName("tbody").item(0);
- var tz = tbdy.getElementsByTagName("tr");
- $("pkt").addEventListener("mouseover", function () {
- var punkte = parseInt(this.innerHTML.replace(/\./g, ""), 10);
- for (var z = 0; z < tz.length; z++) {
- if (punkte < parseInt(tz.item(z).getElementsByTagName("td").item(1).textContent.replace(/\./g, ""), 10)) {
- break;
- }
- this.title = texte["noch"] + " " + number_format(parseInt(tz.item(z).getElementsByTagName("td").item(1).textContent.replace(/\./g, ""), 10) - punkte);
- }
- }, false);
- }
- });
- patientDiseases = {};
- console.log( info + "patientDiseases");
- // patientDiseases[patientId][diseaseNr]: heartbeat,cured,notreatment,comesnext,""=ill
- // patientDiseases[patientId][room]: current room (type)
- // patientDiseases[patientId][floor]: current floor
- // patientDiseases[patientId][roomX]: needed room to go (type)
- // patientDiseases[patientId][m]: count of needed minitreatments
- // patientDiseases[patientId][state]: 0=waitingroom,1=bed,2=nurse,3=in room,4=treatment,5=cured
- // patientDiseases[patientId][unhealable]: if not healable
- /*try{ patientDiseases = explode(GM_getValue(lng+"_"+server+"_"+username+"_patientDiseases","{}")); }catch(err){}
- for(var pat in patientDiseases)
- {
- if(!Global.refPatients.get("p"+pat)){ delete patientDiseases[pat]; }
- else {
- if(!patientDiseases[pat]["state"]){ patientDiseases[pat]["state"]=1; }
- if(!patientDiseases[pat]["room"]){ patientDiseases[pat]["room"]=6; }
- if(!patientDiseases[pat]["floor"]){ patientDiseases[pat]["floor"]=1; }
- }
- }*/
- console.log( info + "For non Premium Players, read patient stats from Server");
- if (!Global.ISPREMIUM) {
- console.log( info + "User not premium");
- var patids = Global.refPatients.values();
- /*for (var v = 0; v < patids.length; v++) {
- refreshPatient(patids[v]["id"], false);
- }*/
- }
- if (developer) {
- console.log( info + "You are a developer");
- $("garten_komplett").addEventListener("mouseover", function (event) {
- $("help1").innerHTML = "";
- var roomId = 0;
- var patientId = 0;
- if (!isNaN(event.target.id.replace("r", ""))) {
- roomId = event.target.id.replace("r", "");
- patientId = Global.refRooms.get(event.target.id).patient;
- }
- else if (!isNaN(event.target.id.replace("p", ""))) {
- roomId = (Global.refPatients.get(event.target.id).room + "").replace("r", "");
- patientId = event.target.id.replace("p", "");
- }
- if (patientId != 0) {
- var help = Global.refPatients.get("p" + patientId);
- for (var v in help) {
- if (typeof(help[v]) != "function") {
- $("help1").innerHTML += "<br>" + v + " : " + help[v];
- }
- }
- $("help1").innerHTML += "<br>";
- if (patientDiseases[patientId]) {
- for (var v in patientDiseases[patientId]) {
- $("help1").innerHTML += "<br>" + v + " : " + patientDiseases[patientId][v];
- }
- }
- $("help1").innerHTML += "<br>"
- }
- if (roomId != 0) {
- var help = Global.refRooms.get("r" + roomId);
- for (var v in help) {
- if (typeof(help[v]) != "function") {
- $("help1").innerHTML += "<br>" + v + " : " + help[v];
- }
- //else $("help1").innerHTML += "<br>"+v+" : Fkt";
- }
- $("help1").innerHTML += "<br>";
- var help = Global.availableRooms[help["roomid"]];
- for (var v in help) {
- if (typeof(help[v]) != "function") {
- $("help1").innerHTML += "<br>" + v + " : " + help[v];
- }
- }
- }
- }, false);
- help = Global.availableRooms[1];
- help = Global.availableDiseases[6];
- help = Global.availableMedics[0]["med6"];
- help = Global.availableMedics[0];
- //Log(help);
- }
- //Mediregal durchblaetterfunktion
- $("racknavigation_right").removeAttribute("onclick");
- $("racknavigation_left").removeAttribute("onclick");
- $("racknavigation_left").addEventListener("click",
- function () {
- var prev = unsafeWindow.Rack._curPage - 1;
- var max = Math.ceil(unsafeWindow.Rack["_elements"].size() / 16);
- if (unsafeWindow.Rack._curPage == 1) {
- unsafeWindow.Rack.update(max);
- }
- else {
- unsafeWindow.Rack.update(prev);
- }
- }, false);
- $("racknavigation_right").addEventListener("click",
- function () {
- var next = unsafeWindow.Rack._curPage + 1;
- var max = Math.ceil(unsafeWindow.Rack["_elements"].size() / 16);
- if (next > max) {
- unsafeWindow.Rack.update(1);
- }
- else {
- unsafeWindow.Rack.update(next);
- }
- }, true);
- var newdiv, newdiv1, newbutton;
- // Werbung
- if (werbecontainer) {
- werbecontainer.style.display = "";
- maincontainer.style.marginTop = "5px";
- }
- if ($("getcoinsnow")) {
- $("getcoinsnow").style.display = "none";
- }
- if ($("nicelink")) {
- $("nicelink").style.display = "none";
- }
- newdiv = document.getElementsByTagName("div");
- for (var v = 0; v < newdiv.length; v++) {
- if (newdiv[v].hasAttribute("onclick") && newdiv[v].getAttribute("onclick").search("facebook") != -1) {
- newdiv[v].style.display = "none";
- }
- }
- // MiniIcons
- newdiv = createElement("div", {
- id: "berater_miniicons ",
- style: "color:white;height:50px;position:absolute;width:13px;z-index:10;top:186px;left:5px;"
- }, maincontainer);
- newdiv1 = createElement("div", {class: "miniicon hoverblue cursorclickable", style: "border:0;"}, newdiv, "P");
- newdiv1.addEventListener("click", function () {
- buildInfoPanel("patients");
- }, false);
- createElement("div", {style: "height:10px;"}, newdiv);
- /*
- var floors = 2;
- for(var v=floors;v>0;v--){
- newdiv1 = createElement("div",{id:"miniiconSelectFloor"+v,class:"miniicon hoverblue cursorclickable"},newdiv,v);
- newdiv1.addEventListener("click",function(){unsafeWindow.Map.jumpTo("floor"+this.id.replace("miniiconSelectFloor",""));miniiconSelectFloor();},false);
- }
- function miniiconSelectFloor(){
- for(var v=1;v<=floors;v++) $("miniiconSelectFloor"+v).style.backgroundColor = (v==parseInt(Global.selectedFloor,10)?"blue":"");
- }
- miniiconSelectFloor();
- */
- console.log( info + "Button list");
- // Button-Leiste
- newdiv = createElement("div", {style: "position:absolute;top:784px;display:inline;"}, maincontainer);
- newbutton = createElement("button", {
- type: "button",
- class: "cursorclickable",
- style: "margin-left:3px;"
- }, newdiv, texte["set_ScriptHomepage"]);
- newbutton.addEventListener("click", function () {
- window.open(scriptUrl);
- }, false);
- newbutton.addEventListener("mouseover", function () {
- this.style.backgroundColor = "#cc9";
- }, false);
- newbutton.addEventListener("mouseout", function () {
- this.style.backgroundColor = "";
- }, false);
- newbutton = createElement("button", {
- id: "berateroptionen",
- type: "button",
- class: "cursorclickable",
- style: "margin-left:3px;"
- }, newdiv, texte["options"]);
- newbutton.addEventListener("click", function () {
- console.log( info + "Opening settings..");
- buildInfoPanel("options");
- }, false);
- newbutton.addEventListener("mouseover", function () {
- this.style.backgroundColor = "#cc9";
- }, false);
- newbutton.addEventListener("mouseout", function () {
- this.style.backgroundColor = "";
- }, false);
- // InfoPanel
- createElement("div", {
- id: "infoPanel",
- name: "",
- style: "position:absolute;top:184px;left:252px;width:600px;height:500px;background-image:url('http://pics.kapihospital.de/bg_referral_01.jpg');z-index:101;display:none;"
- }, all);
- // Quicklinks
- var arrQuicklinks = [
- [],
- [[texte["shop1"]], "shop1", 1, 1],
- [[texte["quildhouse"]], "guildhouse", 3, 1],
- [[texte["townhall"]], "townhall", 3, 1],
- [[texte["shop2"]], "shop2", 1, 1],
- [[texte["editoraloffice"]], "editoraloffice", 3, 1],
- [[texte["ambulancestore"]], "ambulancestore", 3, 2],
- [[texte["rcenter"]], "rcenter", 3, 2],
- [],
- [[texte["shop3"]], "shop3", 1, 2],
- [[texte["architect"]], "architect", 3, 2],
- [[texte["shop4"]], "shop4", 1, 2],
- [[texte["busstop"]], "busstop", 3, 1],
- [[texte["speakers"]], "speakers", 3, 1],
- [[texte["garage"]], "garage", 2, 1],
- [[texte["bank"]], "bank", 3, 1],
- [[texte["exchange"]], "exchange", 2, 1],
- [[texte["goodgirl"]], "goodgirl", 3, 1],
- [[texte["badboy"]], "badboy", 3, 2]
- ];
- newdiv = createElement("div", {id: "quicklinks"}, all);
- var day = (new Date()).getDay();
- var city2Allowed = (Global.ISPREMIUM || (day == 3) || (day == 6));
- for (var mode = 1; mode < 4; mode++) {
- for (var v = 1; v < arrQuicklinks.length; v++) {
- if (arrQuicklinks[v][2] == mode) {
- newdiv1 = createElement("div", {
- id: v,
- class: "hoverlightblue",
- title: arrQuicklinks[v][0]
- }, newdiv);
- createElement("div", {
- class: "cursorclickable c1_a_50 c1_" + v + "_50",
- title: arrQuicklinks[v][0]
- }, newdiv1);
- if ((arrQuicklinks[v][3] == 1) || city2Allowed) {
- newdiv1.addEventListener("click", function () {
- unsafeWindow.show_page(arrQuicklinks[this.id][1]);
- }, false);
- }
- else {
- newdiv1.style.opacity = "0.3";
- }
- }
- }
- createElement("div", {style: "clear:both;"}, newdiv);
- createElement("div", {style: "height:20px;width:100px;"}, newdiv);
- }
- var breaker = createElement("div", {style: "height:20px;width:100px;"}, newdiv);
- createElement("hr", {style: "height:2px;color:blue; background: blue; width:100%;"}, breaker);
- // Autobuttons
- var arrQuicklinks2 = [
- [texte["autoBuy"]],
- [texte["autoNurse"]],
- [texte["autoClean"]],
- [texte["autoDisposeMedi"], 3]
- ];
- for (var v = 0; v < arrQuicklinks2.length; v++) {
- newdiv1 = createElement("div", {
- id: "auto" + v,
- class: "hoverlightblue",
- title: arrQuicklinks2[v][0]
- }, newdiv);
- if (v == 0) {
- // Medi Buy Button
- createElement("div", {
- class: "cursorclickable c1_a_50 c1_" + 15 + "_50",
- title: arrQuicklinks2[v][0]
- }, newdiv1);
- newdiv1.addEventListener("click", function () {
- var medstoBuy = [];
- var price_overall = 0.00;
- //var buytext ="";
- var dialogdiv = createElement("div", {
- "id": "buyquest",
- "style": "text-align:center; background-color:white; padding: 4px; height:500px; position:absolute; left:50%; top:50%; margin-left:-200px; margin-top:-200px; widht:400px; z-index:999;font-size:normal;"
- }, all);
- var dialogdiv2 = createElement("div", {
- "id": "buyquest2",
- "style": "overflow:auto; width:400px; height:475px;"
- }, dialogdiv);
- var dialogdiv3 = createElement("div", {
- "id": "buyquest3",
- "style": "height:25px;text-align:center;"
- }, dialogdiv);
- createElement("h2", {}, dialogdiv2, texte["BuyingMedics"]);
- var newtab = createElement("table", {
- border: "1px",
- cellspacing: "0px",
- cellpadding: "0px",
- style: "text-align:left;width:100%;"
- }, dialogdiv2);
- tabrow = createElement("tr", "", newtab);
- createElement("td", {style: "text-align:center;"}, tabrow, texte["Buying"]);
- createElement("td", {style: "text-align:center;"}, tabrow, texte["Dsignation"]);
- createElement("td", {style: "text-align:center;"}, tabrow, texte["Price"]);
- for (var i = 0; i < unsafeWindow.Rack["_elements"].length; i++) {
- for (var k in Global.availableMedics[0]) {
- if (Global.availableMedics[0][k]["id"] == unsafeWindow.Rack["_elements"][i]["product"]) {
- if (Global.availableMedics[0][k]["shop"] != 0) {
- if (Global.availableMedics[0][k]["shop"] < 3 || city2Allowed) {
- //console.log(Global.availableMedics[0][k]);
- if (( diff = valMaxRackLimit - parseInt(unsafeWindow.Rack["_elements"][i]["amount"], 10) ) > 0) {
- medprice = number_format((Global.availableMedics[0][k]["price"] * diff), 2, ',', '.');
- //console.log("medprice >"+ medprice + "<" );
- price_overall += parseFloat((Global.availableMedics[0][k]["price"] * diff), 2);
- console.log( info + "price_overall >" + price_overall + "<");
- //medstoBuy.push( { "itemid":Global.availableMedics[0][k]["id"], "amount":diff } );
- //buytext += diff + " x " +Global.availableMedics[0][k]["name"] + ": " + medprice + Global._KH_CURRENCY + "\n";
- tabrow = createElement("tr", "", newtab);
- tabcell = createElement("td", {style: "text-align:center;"}, tabrow);
- newinput = createElement("input", {
- "id": Global.availableMedics[0][k]["id"] + "#" + diff,
- "type": "checkbox",
- "checked": "checked",
- "title": Global.availableMedics[0][k]["name"],
- "style": "margin-right:0px;margin-left:1px;"
- }, tabcell);
- newinput.addEventListener("click", function () {
- price = Global.availableMedics[0]["med" + this.id.split('#')[0]]["price"];
- price *= parseInt(this.id.split('#')[1]);
- if (this.checked) {
- price_overall = parseFloat(price_overall) + parseFloat(price);
- }
- else {
- price_overall = parseFloat(price_overall) - parseFloat(price);
- }
- if ($('prover')) {
- $('prover').innerHTML = hT_format(price_overall);
- }
- }, false);
- newinput = createElement("input", {
- "id": "am_" + Global.availableMedics[0][k]["id"],
- "type": "text",
- "maxlength": "3",
- "size": "3",
- "value": diff,
- "title": "Menge",
- "style": "width:25px;margin-left:5px;"
- }, tabcell);
- newinput.addEventListener("keyup", function () {
- this.value = keepDigits(this.value);
- if (!isNaN(this.value)) {
- calc_overall();
- }
- }, false);
- tabcell = createElement("td", "", tabrow, Global.availableMedics[0][k]["name"]);
- tabcell = createElement("td", {
- id: "prc" + Global.availableMedics[0][k]["id"],
- style: "text-align:right;"
- }, tabrow, medprice + " " + Global._KH_CURRENCY);
- break;
- }
- }
- }
- }
- }
- }
- tabrow = createElement("tr", "", newtab);
- createElement("td", {}, tabrow, "Gesamtsumme");
- createElement("td", {
- id: "prover",
- colspan: "2",
- style: "text-align:right;font-color:red;font-weigth:bold;"
- }, tabrow, hT_format(price_overall));
- newbutton = createElement("button", {
- type: "button",
- class: "cursorclickable",
- id: "buyok",
- style: "width:100px;height:20px;margin:3px;"
- }, dialogdiv3, texte["buy"]);
- newbutton.addEventListener("click", function () {
- var checkboxes = dialogdiv2.querySelectorAll('input[type="checkbox"]');
- for (var i = 0; i < checkboxes.length; i++) {
- if (checkboxes[i].checked) {
- medstoBuy.push({
- "itemid": checkboxes[i].id.split('#')[0],
- "amount": $('am_' + checkboxes[i].id.split('#')[0]).value
- })
- }
- }
- if (medstoBuy.length > 0) {
- medstoBuy.push("send");
- var payload = JSON.stringify(medstoBuy);
- //console.log(payload);
- unsafeWindow.Cart._sendRequest("city.shop", "get", payload, true);
- }
- all.removeChild(dialogdiv);
- }, false);
- newbutton = createElement("button", {
- type: "button",
- class: "cursorclickable",
- id: "buycancel",
- style: "width:100px;height:20px;margin:3px;"
- }, dialogdiv3, texte["cancel"]);
- newbutton.addEventListener("click", function () {
- all.removeChild(dialogdiv);
- dialogdiv = null;
- }, false);
- }, false);
- }
- if (v == 1) {
- var actpat;
- // Autoschwester Button
- createElement("div", {
- class: "cursorclickable c1_a_50 c1_" + 2 + "_50",
- title: arrQuicklinks2[v][0]
- }, newdiv1);
- newdiv1.addEventListener("click", function () {
- rooms = Global.refRooms.values();
- for (var v = 0; v < rooms.length; v++) {
- if (( rooms[v].roomid == 6 )) {
- console.log( info + "Checking room: " + rooms[v].topleft);
- //If pateint has a room
- if (rooms[v].patient != 0) {
- console.log( info + "Room " + rooms[v].topleft + " belongs to patient: " + rooms[v].patient);
- refreshPatient(rooms[v].patient, true);
- }
- }
- }
- }, false);
- }
- //Dreckige R�ume s�ubern
- if (v == 2) {
- createElement("div", {
- class: "cursorclickable c1_a_50 c1_" + 8 + "_50",
- title: arrQuicklinks2[v][0]
- }, newdiv1);
- newdiv1.addEventListener("click", cleaningfunc, false);
- }
- //MEdis verteilen
- if (v == 3) {
- createElement("div", {
- class: "cursorclickable c1_a_50 c1_" + 1 + "_50",
- title: arrQuicklinks2[v][0]
- }, newdiv1);
- newdiv1.addEventListener("click", medifunc, false);
- }
- }
- createElement("div", {style: "clear:both;"}, newdiv);
- createElement("div", {style: "height:20px;width:100px;"}, newdiv);
- // Hotkeys
- if (GM_getValue(lng + "_" + server + "_" + username + "_valHotkey", true)) {
- window.addEventListener("keydown", function (event) {
- if (event.altKey) {
- switch (event.keyCode) {
- case 49:
- if ($("floor_jump_1")) {
- closeInfoPanel();
- click($("floor_jump_1"));
- }
- event.preventDefault();
- break; // Ebene 1
- case 50:
- if ($("floor_jump_2")) {
- closeInfoPanel();
- click($("floor_jump_2"));
- }
- event.preventDefault();
- break; // Ebene 2
- case 51:
- if ($("floor_jump_3")) {
- closeInfoPanel();
- click($("floor_jump_3"));
- }
- event.preventDefault();
- break; // Ebene 3
- case 52:
- if ($("floor_jump_4")) {
- closeInfoPanel();
- click($("floor_jump_4"));
- }
- event.preventDefault();
- break; // Ebene 3
- case 66:
- unsafeWindow.show_page("exchange");
- event.preventDefault();
- break; // B:Boerse
- case 71:
- unsafeWindow.show_page("garage");
- event.preventDefault();
- break; // G:Garage
- case 80:
- buildInfoPanel("patients");
- event.preventDefault();
- break; // P:Patients
- }
- }
- }, false);
- }
- window.setInterval(function () {
- now = Math.floor((new Date()).getTime() / 1000);
- rooms = Global.refRooms.values();
- patients = Global.refPatients.values();
- var currPatientId = 0;
- var currRoom = null;
- if (!roomTimes[Global.selectedFloor]) {
- roomTimes[Global.selectedFloor] = {};
- }
- var calcGlobalTime = false;
- roomTimes["allrooms"][Global.selectedFloor] = 0;
- // Rooms
- var cand = document.getElementsByClassName("room");
- /* room states ...so far
- 0:
- 1:
- 2: ready
- 3: treatment
- 4:
- 5:
- 6: cleaning
- 7: dirty
- */
- if (Global.nonEmptyFields[0]) {
- for (var v = 0; v < cand.length; v++) {
- if ((currRoom = Global.refRooms.get(cand[v].id) )) {
- if (currRoom["roomid"] == 6) {
- // Bed
- if (currPatientId = parseInt(currRoom["patient"], 10)) {
- if (patientDiseases[currPatientId]) {
- if (!$("p" + currPatientId)) {
- patientDiseases[currPatientId]["state"] = 2;
- patientDiseases[currPatientId]["floor"] = 1;
- patientDiseases[currPatientId]["room"] = 6;
- }
- }
- else {
- initPatient(currPatientId);
- }
- if ($("treatmentr" + currRoom["topleft"])) {
- if ((!roomTimes[Global.selectedFloor][currRoom["topleft"]]) || (currRoom["ends"] != roomTimes[Global.selectedFloor][currRoom["topleft"]][0])) {
- roomTimes[Global.selectedFloor][currRoom["topleft"]] = [currRoom["ends"], now + currRoom["ends"], 3];
- }
- if (!$("timeinfo_" + currRoom["topleft"])) {
- createElement("div", {
- id: "timeinfo_" + currRoom["topleft"],
- style: "position:absolute;top:0px;left:1px;background-color:white;"
- }, $("r" + currRoom["topleft"]));
- }
- //console.log( time2str(roomTimes[Global.selectedFloor][currRoom["topleft"]][1]-now, 2) );
- $("timeinfo_" + currRoom["topleft"]).innerHTML = time2str(roomTimes[Global.selectedFloor][currRoom["topleft"]][1] - now, 2);
- }
- else {
- if ($("timeinfo_" + currRoom["topleft"])) {
- removeElement($("timeinfo_" + currRoom.topleft));
- }
- }
- }
- }
- else if ((Global.availableRooms[currRoom["roomid"]] ) && (Global.availableRooms[currRoom["roomid"]]["diseases"].length > 0)) { // Behandlungsraum
- roomTimes["allrooms"][Global.selectedFloor]++;
- if (currRoom["state"] == 3 || currRoom["state"] == 6) {
- if ((!roomTimes[Global.selectedFloor][currRoom["topleft"]]) || (currRoom["ends"] != roomTimes[Global.selectedFloor][currRoom["topleft"]][0])) {
- roomTimes[Global.selectedFloor][currRoom["topleft"]] = [currRoom["ends"], now + currRoom["ends"], 3];
- if (currRoom["state"] == 3) {
- calcGlobalTime = true;
- }
- }
- if (!$("timeinfo_" + currRoom["topleft"])) {
- createElement("div", {
- id: "timeinfo_" + currRoom["topleft"],
- style: "position:absolute;bottom:23px;left:13px;font-weight:bold;background-color:white;"
- }, $("r" + currRoom["topleft"]));
- }
- $("timeinfo_" + currRoom["topleft"]).innerHTML = time2str(roomTimes[Global.selectedFloor][currRoom["topleft"]][1] - now);
- // treatment?
- if ($("gradient_r" + currRoom["topleft"])) {
- if (currRoom["state"] == 3) {
- if (currPatientId = parseInt(currRoom["patient"], 10)) {
- if (patientDiseases[currPatientId]) {
- patientDiseases[currPatientId]["state"] = 4;
- patientDiseases[currPatientId]["floor"] = Global.selectedFloor;
- patientDiseases[currPatientId]["room"] = currRoom["roomid"];
- } else {
- initPatient(currPatientId);
- }
- }
- // Medis
- if ($("alert" + currRoom.topleft)) {
- var currDisease = null;
- if (currDisease = calcCurrDisease(currRoom["patient"])) {
- if (!$("mediinfo_" + currRoom.topleft)) {
- createElement("div", {
- id: "mediinfo_" + currRoom.topleft,
- style: "position:absolute;top:5px;left:5px;font-weight:bold;background-color:white;-moz-border-radius:5px;"
- }, $("r" + currRoom.topleft));
- }
- $("mediinfo_" + currRoom.topleft).setAttribute("class", "m_a_30 m_" + medi[currDisease]["id"] + "_30");
- }
- } else {
- if ($("mediinfo_" + currRoom.topleft)) {
- removeElement($("mediinfo_" + currRoom.topleft));
- }
- }
- }
- } else {
- if (currRoom["state"] == 3) {
- if ($("timeinfo_" + currRoom.topleft)) {
- removeElement($("timeinfo_" + currRoom.topleft));
- }
- if ($("mediinfo_" + currRoom.topleft)) {
- removeElement($("mediinfo_" + currRoom.topleft));
- }
- }
- }
- } else {
- if ((!roomTimes[Global.selectedFloor][currRoom["topleft"]]) || (currRoom["state"] != roomTimes[Global.selectedFloor][currRoom["topleft"]][2])) {
- calcGlobalTime = true;
- }
- roomTimes[Global.selectedFloor][currRoom["topleft"]] = [0, 0, currRoom["state"]];
- if ($("timeinfo_" + currRoom.topleft)) {
- removeElement($("timeinfo_" + currRoom.topleft));
- }
- if ($("mediinfo_" + currRoom.topleft)) {
- removeElement($("mediinfo_" + currRoom.topleft));
- }
- }
- }
- }
- }
- }
- if (roomTimes["global"][0] <= now) {
- calcGlobalTime = true;
- }
- if (calcGlobalTime) {
- Log("calcGlobalTime");
- roomTimes["global"][0] = nie;
- //roomTimes["allrooms"][0] = 0;
- roomTimes["emptyrooms"][0] = 0;
- roomTimes["global"][Global.selectedFloor] = nie;
- for (var floor = 1; floor < roomTimes["global"].length; floor++) {
- roomTimes["global"][floor] = nie;
- roomTimes["emptyrooms"][floor] = 0;
- for (var help in roomTimes[floor]) {
- if (roomTimes[floor][help][1] <= now) {
- roomTimes["emptyrooms"][floor]++;
- }
- else {
- roomTimes["global"][floor] = Math.min(roomTimes["global"][floor], roomTimes[floor][help][1]);
- }
- }
- roomTimes["global"][0] = Math.min(roomTimes["global"][0], roomTimes["global"][floor]);
- //roomTimes["allrooms"][0] += roomTimes["allrooms"][floor];
- roomTimes["emptyrooms"][0] += roomTimes["emptyrooms"][floor];
- }
- }
- if (valGlobalClockInTitle) {
- document.title = (roomTimes["global"][0] < nie ? time2str(roomTimes["global"][0] - now) : texte["fertig"].toUpperCase()) + " - " + roomTimes["emptyrooms"][0] + " - " + documentTitle;
- } else {
- if (!$("globalclock")) {
- createElement("div", {
- id: "globalclock",
- title: texte["GlobalTime"],
- style: "position:absolute;top:0px;left:0px;font-weight:bold;background-color:white;"
- }, all);
- }
- $("globalclock").innerHTML = (roomTimes["global"][0] < nie ? time2str(roomTimes["global"][0] - now) : texte["fertig"].toUpperCase()) + " - " + roomTimes["emptyrooms"][0];
- }
- if (!$("floorclock")) {
- createElement("div", {
- id: "floorclock",
- title: texte["FloorTime"],
- style: "position:absolute;top:5px;left:20px;font-weight:bold;background-color:white;"
- }, $("hospital_content"));
- }
- $("floorclock").innerHTML = ((roomTimes["allrooms"][Global.selectedFloor] > 0) ? (roomTimes["global"][Global.selectedFloor] < nie ? time2str(roomTimes["global"][Global.selectedFloor] - now) : texte["fertig"].toUpperCase()) : "---") + " - " + roomTimes["emptyrooms"][Global.selectedFloor];
- // Patients Divs
- var canddiv = $("hospital_content").getElementsByClassName("patient");
- for (var pat = 0; pat < canddiv.length; pat++) {
- currPatientId = parseInt(canddiv[pat].id.replace("p", ""), 10);
- if (patientDiseases[currPatientId]) {
- patientDiseases[currPatientId]["floor"] = Global.refPatients.get("p" + currPatientId)["floor"];
- var classStr = canddiv[pat].getAttribute("class").replace(" allcured", "").replace(" unhealable", "").replace(" needminitreatment", "");
- //dont remove, its flickring to much
- if ($("mcont_" + currPatientId)) {
- //removeElement( $("mcont_"+currPatientId) );
- }
- // 0=waitingroom,1=bed,2=nurse,3=in room,4=treatment,5=cured
- if (patientDiseases[currPatientId]["state"] != 5) {
- if (patientDiseases[currPatientId]["state"] == 2) {
- patientDiseases[currPatientId]["m"]++;
- calcEndTreatment(currPatientId);
- }
- else if (patientDiseases[currPatientId]["state"] == 4) {
- calcEndTreatment(currPatientId);
- }
- patientDiseases[currPatientId]["room"] = Global.refRooms.get(Global.refPatients.get("p" + currPatientId)["room"])["roomid"];
- if (patientDiseases[currPatientId]["room"] == 6) { // Is under nurse treatment
- patientDiseases[currPatientId]["state"] = 1;
- //in bed
- if (!$("mcont_" + currPatientId)) {
- createElement("div", {
- id: "mcont_" + currPatientId,
- style: "float:right;background-color:white;margin-right:2px;"
- }, canddiv[pat]);
- for (var m = 0; m < patientDiseases[currPatientId]["m"]; m++) {
- createElement("div", {style: "width: 7px; height: 7px; margin: 1px;background-color:green;"}, $("mcont_" + currPatientId));
- }
- for (; m < 4; m++) {
- createElement("div", {style: "width: 7px; height: 7px; margin: 1px;background-color:red;"}, $("mcont_" + currPatientId));
- }
- }
- }
- else {
- patientDiseases[currPatientId]["state"] = 3;
- }
- //ist zu testen
- calcEndTreatment(currPatientId);
- }
- if (patientDiseases[currPatientId]["state"] != 5) {
- if (patientDiseases[currPatientId]["m"] < 4) {
- classStr += " needminitreatment" + (patientDiseases[currPatientId]["unhealable"] ? " unhealable" : "");
- }
- else if (patientDiseases[currPatientId]["unhealable"]) {
- classStr += " unhealable";
- }
- }
- else {
- classStr += " allcured";
- }
- canddiv[pat].setAttribute("class", classStr);
- }
- else {
- initPatient(currPatientId);
- }
- }
- // waiting patients
- canddiv = $("waitingroom").getElementsByClassName("waitingpatient");
- for (var pat = 0; pat < canddiv.length; pat++) {
- canddiv[pat].style.opacity = ((Global.refPatients.get(canddiv[pat].id).referred != 0) ? "0.4" : "1"); //verkaufte
- var currPatientId = parseInt(canddiv[pat].id.replace("p", ""), 10);
- if (patientDiseases[currPatientId]) {
- patientDiseases[currPatientId]["floor"] = 0;
- patientDiseases[currPatientId]["room"] = 0;
- if (patientDiseases[currPatientId]["unhealable"]) {
- canddiv[pat].setAttribute("class", canddiv[pat].getAttribute("class").replace(" unhealable", "") + " unhealable");
- }
- if (patientDiseases[currPatientId]["state"] > 0) {
- patientDiseases[currPatientId]["state"] = 0;
- }
- } else {
- initPatient(currPatientId);
- }
- }
- canddiv = null;
- // QuestClock
- if (!$("questclock")) {
- createElement("div", {
- id: "questclock",
- title: texte["QuestTime"],
- style: "position:absolute;bottom:0px;right:0px;font-weight:bold;background-color:white;"
- }, $("waitingroom"));
- }
- $("questclock").innerHTML = ( (questTime > now) ? time2str(questTime - now) : texte["fertig"].toUpperCase() );
- }, 1000);
- window.setInterval(function () {
- var now = Math.floor((new Date()).getTime() / 1000);
- if (valStartQuestAutomatic) {
- if (!(questTime > now) && questcnt < 8) {
- start_Quest();
- }
- }
- }, 3000);
- window.setInterval(function () { // leaving patient
- var cand = $("goingpatient").getElementsByClassName("patient");
- for (var v = 0; v < cand.length; v++) {
- var currPatientId = parseInt(cand[v].id.replace("p", ""), 10);
- if (patientDiseases[currPatientId]) {
- delete patientDiseases[currPatientId];
- }
- }
- //<div style="position: absolute; left: 46px; width: 25px; height: 36px; top: 31px;
- //background-image: url("http://pics.kapihospital.de/patient3_walksaway.gif"); z-index: 1000;"
- //class="patient cursordrag allcured" id="p9233468"></div>
- }, 500);
- window.setInterval(function () {
- var cand = $("rackItems").getElementsByClassName("medamount");
- for (var v in cand) {
- if (cand[v].nodeType === 1) {
- var help = cand[v].getAttribute("class");
- if (parseInt(cand[v].innerHTML, 10) < valRackLimit) {
- if (help.search(" racklow") == -1) {
- cand[v].setAttribute("class", help + " racklow");
- }
- }
- else {
- if (help.search(" racklow") != -1) {
- cand[v].setAttribute("class", help.replace(" racklow", ""));
- }
- }
- }
- }
- for (var pat in patientDiseases) {
- if ((patientDiseases[pat]["state"] == 0) && (!$("p" + pat))) { // waiting+gone
- delete patientDiseases[pat];
- }
- }
- GM_setValue(lng + "_" + server + "_" + username + "_patientDiseases", implode(patientDiseases));
- cand = null;
- }, 5000);
- // Patient-MouseOver Diseases
- var beraterDiseaseBubble = createElement("div", {
- id: "beraterDiseaseBubble",
- style: "z-index:2000;position:absolute;top:0px;left:0px;background-color:#CCC;-moz-border-radius:10px;border:2px solid black;padding:3px;margin-left:40px;"
- }, all);
- hiddenPatientDiv = createElement("div", {id: "hiddenPatientDiv", style: "display:;"}, all);
- $("garten_komplett").addEventListener("mouseover", function (event) {
- Log("MOUSEOVER " + event.target.id);
- var patientId = 0;
- if (!isNaN(event.target.id.replace("r", ""))) {
- var currRoom = Global.refRooms.get(event.target.id);
- highlightPatients(currRoom.roomid);
- patientId = currRoom.patient;
- }
- else if (!isNaN(event.target.id.replace("p", ""))) {
- patientId = event.target.id.replace("p", "");
- }
- beraterDiseaseBubble.innerHTML = "";
- if (patientId != 0) {
- beraterDiseaseBubble.style.display = "block";
- beraterDiseaseBubble.setAttribute("name", patientId);
- plotPatient(beraterDiseaseBubble);
- //getPatientData(patientId);
- if (Global.ISPREMIUM) {
- var patdetail = $("treatico");
- if (patdetail.childNodes.length > 0) {
- patientDiseases[patientId]["m"] = 4;
- }
- }
- }
- }, false);
- $("garten_komplett").addEventListener("mousemove", function (event) {
- beraterDiseaseBubble.style.left = event.pageX + "px";
- beraterDiseaseBubble.style.top = event.pageY + "px";
- }, false);
- $("garten_komplett").addEventListener("mouseout", function (event) {
- beraterDiseaseBubble.style.display = "none";
- unhighlightPatients();
- }, false);
- // Frame Observer
- newswindowObserver = window.setInterval(function () {
- if (($("newswindow").style.display != "none") && (!$("newswindowObserver"))) {
- createElement("h1", {id: "newswindowObserver"}, $("newswindow"));
- if ($("msgwindow")) {
- var help = $("msgwindow").getAttribute("style");
- if (help.search("medicalrecord_1.png") != -1) {
- do_Patientenblatt();
- }
- else if (help.search("bg_exchange2.jpg") != -1) {
- do_Patientenboerse();
- }
- else if (help.search("bg_notes.png") != -1) {
- do_Notepad();
- }
- else if (help.search("bg_questfinished") != -1) {
- do_Quest();
- }
- else if (help.search("bg_garage") != -1) {
- do_Quest();
- }
- else if (help.search("quest_bg") != -1) {
- do_Quest();
- }
- else if (help.search("bg_shop") != -1) {
- do_Shop();
- }
- else if (help.search("bg_mail") != -1) {
- do_Mail();
- }
- }
- }
- }, 200);
- // Rack
- $("rackItems").addEventListener("dblclick", function (event) {
- var shop = Global.availableMedics[0]["med" + event.target.getAttribute("medid")]["shop"];
- if ((shop < 3) || city2Allowed) {
- unsafeWindow.show_page("shop" + shop);
- } else {
- alert(texte["shopNotAvailable"]);
- }
- }, false);
- newdiv = null;
- newdiv1 = null;
- newbutton = null;
- }
- console.log( info + "End do_main()");
- /*************************** end do_main() ******************************************/
- /*************************** definition helper functions ****************************/
- function loadLanguage(lang) {
- switch (lang) {
- case "en":
- texte["berater"] = "Adviser";
- texte["autologin1"] = "Checking active sessions. Please wait 5 seconds<br>...";
- texte["autologin2"] = "All accounts logged in.";
- texte["options"] = "Options";
- texte["fertig"] = "Done";
- texte["shopNotAvailable"] = "The shop is not available";
- texte["noch"] = "Left";
- texte["QuestTime"] = "Quest time";
- texte["FloorTime"] = "Floor time";
- texte["GlobalTime"] = "Global time";
- // options panel
- texte["set_ScriptHomepage"] = "Script Homepage";
- texte["set_AutoLogin"] = "Automatic login";
- texte["set_Update"] = "Update";
- texte["set_RackLow"] = "Minimal rackamount";
- texte["set_RackMax"] = "Automatic buying limit";
- texte["set_valGlobalClockInTitle"] = "Time in page title";
- texte["set_valStartQuestAutomatic"] = "AutoQuest";
- texte["info_AutoLogin"] = "Once username and password information is given, all accounts will be logged in";
- texte["info_Update"] = "Checks whether an updated version of this Advisor script is available.";
- texte["info_RackLow"] = "A product is marked if its amount in your rack is falling below this value.";
- texte["info_RackMax"] = "By Automatic buying product will be purchased until reaching this number.";
- texte["info_valGlobalClockInTitle"] = "Global clock in title";
- texte["info_valStartQuestAutomatic"] = "Should the next quest start automaticly, if the previous ends?";
- texte["confirmUpdate"] = "There is new version of Kapi Hospital Berater. Would You like to install it?";
- texte["zeigePasswoerter"] = "Show password";
- texte["autoLogin"] = "Automatic loging in";
- texte["accountAktiv"] = "Account is acrive";
- texte["server"] = "Server";
- texte["ungueltigerServer"] = "Wrong server";
- texte["name"] = "Name";
- texte["passwort"] = "Password";
- texte["speichern"] = "Save";
- texte["loeschen"] = "Erase";
- texte["buy"] = "Buy";
- texte["cancel"] = "Cancel";
- texte["autoBuy"] = "Buy medics";
- texte["autoClean"] = "Clean rooms";
- texte["autoNurse"] = "Call nurse";
- texte["autoDisposeMedi"] = "Dispose medics";
- // patients panel
- texte["zeigeGeheilteKrankheiten"] = "Show cured of the disease";
- texte["minipics"] = "Minipics";
- texte["Beschreibung"] = "untreated/overall";
- texte["Beschreibung2"] = "helptext to understand this window: Number of untreated diseases without those currently treated/overall number";
- texte["frei"] = "Hospital beds";
- texte["inBehandlung"] = "in a room";
- texte["waitingroom"] = "Waiting room";
- texte["Gesamt"] = "Overall";
- texte["Patients"] = "Patients";
- texte["Rooms"] = "Rooms";
- // Buy medics view
- texte["BuyingMedics"] = "Buying medics";
- texte["Buying"] = "Buying";
- texte["Dsignation"] = "Designation";
- texte["Price"] = "Price";
- // Exchange
- texte["showUncurable"] = "Show uncurable";
- //Systemwords
- texte["waehrung"] = "hT"; //Global._KH_CURRENCY
- texte["coins"] = "Coins";
- // Quicklinks
- texte["shop1"] = "";
- texte["quildhouse"] = "";
- texte["townhall"] = "";
- texte["shop2"] = "";
- texte["editoraloffice"] = "";
- texte["ambulancestore"] = "";
- texte["rcenter"] = "";
- texte["shop3"] = "";
- texte["architect"] = "";
- texte["shop4"] = "";
- texte["busstop"] = "";
- texte["speakers"] = "";
- texte[""] = "";
- texte["garage"] = "";
- texte["bank"] = "";
- texte["exchange"] = "";
- texte["goodgirl"] = "";
- texte["badboy"] = "";
- //TODO: Add English translation
- break;
- case "de":
- texte["berater"] = "Berater";
- texte["autologin1"] = "Ermittle aktive Sessions. Bitte 5 Sekunden warten<br>...";
- texte["autologin2"] = "Alle Accounts eingeloggt.";
- texte["options"] = "Optionen";
- texte["fertig"] = "Fertig";
- texte["shopNotAvailable"] = "Shop heute nicht erreichbar";
- texte["noch"] = "noch";
- texte["QuestTime"] = "Quest time";
- texte["FloorTime"] = "Etage time";
- texte["GlobalTime"] = "Global time";
- // options panel
- texte["set_ScriptHomepage"] = "Scripthomepage";
- texte["set_AutoLogin"] = "Automatisch einloggen";
- texte["set_Update"] = "Update";
- texte["set_RackLow"] = "Minimaler Lagerbestand";
- texte["set_RackMax"] = "Maximaler Lagerbestand";
- texte["set_valGlobalClockInTitle"] = "Globale Zeit im Titel";
- texte["set_valStartQuestAutomatic"] = "Quests automatisch";
- texte["info_AutoLogin"] = "Sobald Nutzerdaten und Passwort eingegeben sind, werden die Accounts wieder eingeloggt. Es m" + ue_de + "ssen Popups erlaubt werden bei mehreren Accounts.";
- texte["info_Update"] = "Es wird gepr" + ue_de + "ft, ob eine neuere Version dieses Scriptes verf" + ue_de + "gbar ist.";
- texte["info_RackLow"] = "Ein Medikament wird markiert, falls der Lagerbestand unter diese Grenze f" + ae_de + "llt.";
- texte["info_RackMax"] = "Es werden beim automatischen Einkauf die Medikamente bis zu diesem Lagerbestand afgef" + ue_de + "llt.";
- texte["info_valGlobalClockInTitle"] = "Die globale Zeit wird im Fenstertitel angezeigt. Ansonsten im Fenster.";
- texte["info_valStartQuestAutomatic"] = "Soll sofort die n" + ae_de + "chste Quest gestartet werden, wenn eine beended wurde ( max. 8 )?";
- texte["confirmUpdate"] = "Es liegt eine neue Script-Version vor. Diese installieren?";
- texte["zeigePasswoerter"] = "zeige Passw" + oe_de + "rter";
- texte["autoLogin"] = "Automatischer Login";
- texte["accountAktiv"] = "Account aktiv";
- texte["server"] = "Server";
- texte["ungueltigerServer"] = "Ungueltiger Server";
- texte["name"] = "Name";
- texte["passwort"] = "Passwort";
- texte["speichern"] = "speichern";
- texte["loeschen"] = "l" + oe_de + "schen";
- texte["buy"] = "Kaufen";
- texte["cancel"] = "Abbrechen";
- texte["autoBuy"] = "automatische Lagerauff" + ue_de + "llung";
- texte["autoClean"] = "R" + ae_de + "ume s" + ae_de + "ubern";
- texte["autoNurse"] = "Krankenschwester rufen";
- texte["autoDisposeMedi"] = "Medikamente verteilen";
- // patients panel
- texte["zeigeGeheilteKrankheiten"] = "Zeige geheilte Krankheiten";
- texte["minipics"] = "Minipics";
- texte["Beschreibung"] = "unbehandelt/Gesamt";
- texte["Beschreibung2"] = "Hilfetext um dieses Fenster zu verstehen: Anzahl dieser Krankheit unbehandelt ohne gerade in Behandlung befindliche/Anzahl Gesamt";
- texte["frei"] = "Krankenbetten";
- texte["inBehandlung"] = "in Behandlung";
- texte["waitingroom"] = "Warteraum";
- texte["Gesamt"] = "Gesamt";
- texte["Patients"] = "Patients";
- texte["Rooms"] = "R" + ae_de + "ume";
- // Buy medics view
- texte["BuyMedics"] = "Medis kaufen";
- texte["Buying"] = "Kaufen";
- texte["Dsignation"] = "Bezeichnung";
- texte["Price"] = "Preis";
- // Exchange
- texte["showUncurable"] = "Zeige Unheilbare";
- //Systemwords
- texte["waehrung"] = "hT"; //Global._KH_CURRENCY
- texte["coins"] = "Coins";
- // Quicklinks
- texte["shop1"] = "Apotheke Pillenexpress";
- texte["quildhouse"] = Ae_de + "rztevereinigung und Wettbewerb";
- texte["townhall"] = "Rathaus";
- texte["shop2"] = "Medizinischer Gro";
- texte["editoraloffice"] = "Zeitungsredaktion";
- texte["ambulancestore"] = "Autoh" + ae_de + "ndler";
- texte["rcenter"] = "Forschungszentrum";
- texte["shop3"] = "Internetcafe";
- texte["architect"] = "Architekturb" + ue_de + "ro";
- texte["shop4"] = "Tante-Emma-Laden";
- texte["busstop"] = "Bushaltestelle";
- texte["speakers"] = "Speakers Corner";
- texte["garage"] = "Garage";
- texte["bank"] = "Bank";
- texte["exchange"] = "Patientenb" + oe_de + "rse";
- texte["goodgirl"] = "Fr" + ae_de + "ulein Rosenwasser";
- texte["badboy"] = "Dr. Knievel";
- break;
- case "pl":
- texte["berater"] = "Doradca";
- texte["autologin1"] = "Sprawdzanie aktywnych sesji. Prosz" + e_pl + "odczekac 5 sekund...";
- texte["autologin2"] = "Wszystkie konta zalogowane.";
- texte["options"] = "Opcje";
- texte["fertig"] = "Gotowe";
- texte["shopNotAvailable"] = "Sklep jest teraz niedost" + e_pl + "pny";
- texte["noch"] = "Pozosta" + l_pl + "o";
- texte["QuestTime"] = "Czas questu";
- texte["FloorTime"] = "Czas piętra";
- texte["GlobalTime"] = "Czas globalny";
- // options panel
- texte["set_ScriptHomepage"] = "Strona domowa skryptu";
- texte["set_AutoLogin"] = "Automatyczne logowanie";
- texte["set_Update"] = "Aktualizacja";
- texte["set_RackLow"] = "Minimalna ilo" + s_pl + c_pl + " lekarstw w regale";
- texte["set_RackMax"] = "Limit zakupu";
- texte["set_valGlobalClockInTitle"] = "Czas w tytule karty.";
- texte["set_valStartQuestAutomatic"] = "AutoQuest.";
- texte["info_AutoLogin"] = "Po wprowadzeniu nazwy u" + z_pl + "ytkownika i has" + l_pl + "a nast" + e_pl + "puje automatyczne logowanie. Pozwala to zachowa" + c_pl + " " + c_pl + "iaglosc grania. Przy wielu kontach musi by" + c_pl + "dozwolone wyskakiwanie okienek.";
- texte["info_Update"] = "Automatycznie sprawdza czy jest nowsza wersja tego skryptu.";
- texte["info_RackLow"] = "Produkt zostanie zaznaczony, gdy jego ilo" + s_pl + c_pl + " w regale spadnie poni" + z_pl + "ej tego poziomu";
- texte["info_RackMax"] = "Poprzez automnatyczny zakup, produkt b" + e_pl + "dzie zape" + l_pl + "niany do tego limitu.";
- texte["info_valGlobalClockInTitle"] = "Czas globalny jest wy" + s_pl + "wietlany w pasku tytu" + l_pl + "owym okna.";
- texte["info_valStartQuestAutomatic"] = "Czy kolejny quest powinien si" + e_pl + " zacz" + a_pl + c_pl + " zaraz po tym, gdy sko" + n_pl + "czy" + l_pl + " si" + e_pl + " poprzedni?";
- texte["confirmUpdate"] = "Jest nowa wersja skryptu Doradca Kapi Hospital. Czy chcesz j" + a_pl + " zainstalowa" + c_pl + "?";
- texte["zeigePasswoerter"] = "Poka" + z_pl + " has" + l_pl + "o";
- texte["autoLogin"] = "Automatyczne logowanie";
- texte["accountAktiv"] = "Konto aktywne";
- texte["server"] = "Serwer";
- texte["ungueltigerServer"] = "B" + l_pl + e_pl + "dny serwer";
- texte["name"] = "Login";
- texte["passwort"] = "Has" + l_pl + "o";
- texte["speichern"] = "Zapisz";
- texte["loeschen"] = "Usu" + n_pl;
- texte["buy"] = "Kup";
- texte["cancel"] = "Anuluj";
- texte["autoBuy"] = "Kup leki";
- texte["autoClean"] = "Wyczy" + s_pl + c_pl + " pokoje";
- texte["autoNurse"] = "Zadzwo" + n_pl + " po piel" + e_pl + "gniark" + e_pl + ".";
- texte["autoDisposeMedi"] = "Rozprowad" + x_pl + " leki";
- // patients panel
- texte["zeigeGeheilteKrankheiten"] = "Poka" + z_pl + " wyleczone choroby";
- texte["minipics"] = "Małe obrazki";
- texte["Beschreibung"] = "untreated/overall";
- texte["Beschreibung2"] = "helptext to understand this window: Number of untreated diseases without those currently treated/overall number";
- texte["frei"] = "Wolni";
- texte["inBehandlung"] = "Leczony";
- texte["waitingroom"] = "Poczekalnia";
- texte["Gesamt"] = "Og" + o_pl + l_pl + "em";
- texte["Patients"] = "Pacjenci";
- texte["Rooms"] = "Pomieszczenia";
- // Buy medics view
- texte["BuyMedics"] = "Kupowanie leków";
- texte["Buying"] = "Kupowanie";
- texte["Dsignation"] = "Nazwa";
- texte["Price"] = "Cena";
- // Exchange
- texte["showUncurable"] = "Poka" + z_pl + " nieuleczalnych";
- //Systemwords
- texte["waehrung"] = "hT"; //Global._KH_CURRENCY
- texte["coins"] = "Monety";
- // Quicklinks
- texte["shop1"] = "Apteka Sza" + l_pl + "pigu" + l_pl;
- texte["quildhouse"] = "Zwi" + a_pl + "zek lekarzy i konkursy";
- texte["townhall"] = "Ratusz";
- texte["shop2"] = "Hurtownia G.Rypa";
- texte["editoraloffice"] = "3";
- texte["ambulancestore"] = "Autokomis";
- texte["rcenter"] = "Instytut badawczy";
- texte["shop3"] = "Kafejka internetowa";
- texte["architect"] = "Biuro architektoniczne";
- texte["shop4"] = "Sklepik pani Wandzi";
- texte["busstop"] = "Przystanek autobusowy";
- texte["speakers"] = "Mr. Gafon";
- texte["garage"] = "Gara" + z_pl;
- texte["bank"] = "Bank";
- texte["exchange"] = "Gie" + l_pl + "da pacjent" + o_pl + "w";
- texte["goodgirl"] = "Panienka z okienka";
- texte["badboy"] = "Dr S. Raczek";
- break;
- case "cz":
- texte["berater"] = "Poradce";
- texte["autologin1"] = "Kontroluji aktivn" + i_cz + " relace. " + c_cz + "ekejte pros" + i_cz + "m 5 sekund<br>...";
- texte["autologin2"] = "V" + s_cz + "echny " + u_cz + c_cz + "ty p" + r_cz + "ihl" + a_cz + s_cz + "eny.";
- texte["options"] = "Mo" + z_cz + "nosti";
- texte["fertig"] = "Hotovo";
- texte["shopNotAvailable"] = "Obchod nen" + i_cz + " dostupn" + y_cz;
- texte["noch"] = "Zb" + y_cz + "v" + a_cz;
- texte["FloorTime"] = "Floor time";
- texte["GlobalTime"] = "Global time";
- // options panel
- texte["set_ScriptHomepage"] = "Domovsk" + a_cz + " str" + a_cz + "nka Scriptu";
- texte["set_AutoLogin"] = "Automatick" + e_cz + " p" + r_cz + "ihla" + s_cz + "ov" + a_cz + "n" + i_cz;
- texte["set_Update"] = "Aktualizace";
- texte["set_RackLow"] = "Minim" + a_cz + "ln" + i_cz + " z" + a_cz + "soba l" + e_cz + "k" + u2_cz;
- texte["set_RackMax"] = "Automatic buying limit";
- texte["set_valGlobalClockInTitle"] = c_cz + "as v n" + a_cz + "zvu karty.";
- texte["set_valStartQuestAutomatic"] = "AutoQuest";
- texte["info_AutoLogin"] = "Jakmile zad" + a_cz + "te sv" + e_cz + " u" + z_cz + "ivatelsk" + e_cz + " jm" + e_cz + "no a heslo, v" + s_cz + "echny " + u_cz + c_cz + "ty budou p" + r_cz + "ihl" + a_cz + s_cz + "eny.";
- texte["info_Update"] = "Automaticky kontroluje, zda je k dispozici nov" + e2_cz + "j" + s_cz + i_cz + " verze tohoto Poradce.";
- texte["info_RackLow"] = "Ozna" + c_cz + i_cz + " l" + e_cz + "ky, jejich" + z_cz + " mno" + z_cz + "stv" + i_cz + " klesne pod zadanou hodnotu.";
- texte["info_RackMax"] = "By Automatic buying product will be purchased until reaching this number.";
- texte["info_valGlobalClockInTitle"] = "Zobraz" + i_cz + " glob" + a_cz + "ln" + i_cz + " " + c_cz + "as v titulku okna.";
- texte["info_valStartQuestAutomatic"] = "Soll sofort die n" + ae_de + "chste Quest gestartet werden, wenn eine beended wurde ( max. 8 )?";
- texte["confirmUpdate"] = "Je kdispozici nov" + a_cz + " verze R" + a_cz + "dce Kapi Hospital. Chcete ji nainstalovat?";
- texte["zeigePasswoerter"] = "Uk" + a_cz + "zat heslo";
- texte["autoLogin"] = "Automatick" + e_cz + " p" + r_cz + "ihla" + s_cz + "ov" + a_cz + "n" + i_cz;
- texte["accountAktiv"] = u3_cz + c_cz + "et je aktivn" + i_cz;
- texte["server"] = "Server";
- texte["ungueltigerServer"] = "Neplatn" + y_cz + " server";
- texte["name"] = "Login";
- texte["passwort"] = "Heslo";
- texte["speichern"] = "Ulo" + z_cz + "it";
- texte["loeschen"] = "Vymazat";
- texte["buy"] = "kaufen";
- texte["cancel"] = "Abbrechen";
- texte["autoBuy"] = "automatische Lagerauff" + ue_de + "llung";
- texte["autoClean"] = "R" + ae_de + "ume s" + ae_de + "ubern";
- texte["autoNurse"] = "Krankenschwester rufen";
- texte["autoDisposeMedi"] = "Medikamente verteilen";
- // patients panel
- texte["zeigeGeheilteKrankheiten"] = "Zobrazit vyl" + e_cz + c_cz + "iteln" + e_cz;
- texte["minipics"] = "Miniobr" + a_cz + "zky";
- texte["Beschreibung"] = "unbehandelt/Gesamt";
- texte["Beschreibung2"] = "Hilfetext um dieses Fenster zu verstehen: Anzahl dieser Krankheit unbehandelt ohne gerade in Behandlung befindliche/Anzahl Gesamt";
- texte["frei"] = "Voln" + e_cz;
- texte["inBehandlung"] = "Vyl" + e_cz + c_cz + "eno";
- texte["waitingroom"] = c_cz + "ek" + a_cz + "rna";
- texte["Gesamt"] = "Gesamt";
- texte["Rooms"] = "Rooms";
- texte["Patients"] = "Patients";
- // Buy medics view
- texte["BuyingMedics"] = "Buying medics";
- texte["Buying"] = "Buying";
- texte["Dsignation"] = "Designation";
- texte["Price"] = "Price";
- // Exchange
- texte["showUncurable"] = "Zobrazit nevyl" + e_cz + c_cz + "iteln" + e_cz;
- //Systemwords
- texte["waehrung"] = "hT"; //Global._KH_CURRENCY
- texte["coins"] = "Mince";
- // Quicklinks
- texte["shop1"] = "";
- texte["quildhouse"] = "";
- texte["townhall"] = "";
- texte["shop2"] = "";
- texte["editoraloffice"] = "";
- texte["ambulancestore"] = "";
- texte["rcenter"] = "";
- texte["shop3"] = "";
- texte["architect"] = "";
- texte["shop4"] = "";
- texte["busstop"] = "";
- texte["speakers"] = "";
- texte[""] = "";
- texte["garage"] = "";
- texte["bank"] = "";
- texte["exchange"] = "";
- texte["goodgirl"] = "";
- texte["badboy"] = "";
- break;
- }
- }
- function $(ID) {
- return document.getElementById(ID)
- }
- function removeElement(node) {
- node.parentNode.removeChild(node)
- }
- function createElement(type, attributes, append, inner) {
- var node = document.createElement(type);
- for (var attr in attributes) {
- if (attr == "checked") {
- node.checked = attributes[attr];
- }
- else if (attributes.hasOwnProperty(attr)) {
- node.setAttribute(attr, attributes[attr]);
- }
- }
- if (append) {
- append.appendChild(node);
- }
- if (inner) {
- node.innerHTML = inner;
- }
- return node;
- }
- function click(A) {
- var B = document.createEvent("MouseEvents");
- B.initEvent("click", true, true);
- A.dispatchEvent(B);
- if (A.href) {
- document.location.href = A.href;
- }
- }
- function mousedown(A) {
- var B = document.createEvent("MouseEvents");
- B.initEvent("mousedown", true, true);
- A.dispatchEvent(B);
- }
- function mousemove(A) {
- var B = document.createEvent("MouseEvents");
- B.initEvent("mousemove", true, true);
- A.dispatchEvent(B);
- }
- function number_format(number, decimals, dec_point, thousands_sep) {
- // http://kevin.vanzonneveld.net
- // + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
- // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
- // + bugfix by: Michael White (http://getsprink.com)
- // + bugfix by: Benjamin Lupton
- // + bugfix by: Allan Jensen (http://www.winternet.no)
- // + revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
- // + bugfix by: Howard Yeend
- // + revised by: Luke Smith (http://lucassmith.name)
- // + bugfix by: Diogo Resende
- // + bugfix by: Rival
- // % note 1: For 1000.55 result with precision 1 in FF/Opera is 1,000.5, but in IE is 1,000.6
- // * example 1: number_format(1234.56);
- // * returns 1: '1,235'
- // * example 2: number_format(1234.56, 2, ',', ' ');
- // * returns 2: '1 234,56'
- // * example 3: number_format(1234.5678, 2, '.', '');
- // * returns 3: '1234.57'
- // * example 4: number_format(67, 2, ',', '.');
- // * returns 4: '67,00'
- // * example 5: number_format(1000);
- // * returns 5: '1,000'
- // * example 6: number_format(67.311, 2);
- // * returns 6: '67.31'
- var n = number, prec = decimals;
- n = !isFinite(+n) ? 0 : +n;
- prec = !isFinite(+prec) ? 0 : Math.abs(prec);
- var sep = (typeof thousands_sep == "undefined") ? delimThou : thousands_sep; // changed!
- var dec = (typeof dec_point == "undefined") ? delimDeci : dec_point; // changed!
- var s = (prec > 0) ? n.toFixed(prec) : Math.round(n).toFixed(prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
- var abs = Math.abs(n).toFixed(prec);
- var _, i;
- if (abs >= 1000) {
- _ = abs.split(/\D/);
- i = _[0].length % 3 || 3;
- _[0] = s.slice(0, i + (n < 0)) +
- _[0].slice(i).replace(/(\d{3})/g, sep + '$1');
- s = _.join(dec);
- }
- else {
- s = s.replace('.', dec);
- }
- return s;
- }
- function hT_format(number) {
- return number_format(number, 2) + " " + Global._KH_CURRENCY;
- }
- function hT_formatgr(number) {
- return number_format(number, 0) + " " + Global._KH_CURRENCY;
- }
- function keepDigits(str) {
- return str.replace(/[^0-9]/g, "");
- }
- function calc_overall() {
- var checkboxes = $('buyquest2').querySelectorAll('input[type="checkbox"]');
- var overall = 0.00;
- for (var i = 0; i < checkboxes.length; i++) {
- if (checkboxes[i].checked) {
- var medid = checkboxes[i].id.split('#')[0];
- var amount = $('am_' + medid).value;
- var medprice = number_format((Global.availableMedics[0]["med" + medid]["price"] * amount), 2, ',', '.');
- $('prc' + medid).innerHTML = medprice + " " + Global._KH_CURRENCY;
- overall += parseFloat((Global.availableMedics[0]["med" + medid]["price"] * amount), 2);
- }
- }
- if ($('prover')) {
- $('prover').innerHTML = hT_format(overall);
- }
- }
- function time2str(time, mode) {
- str = "";
- time = Math.max(0, time);
- tmp = "";
- //seconds
- if (!mode || mode == 2) {
- if (time % 60 >= 10) {
- str += ":" + Math.floor(time % 60);
- }
- else {
- str += ":0" + Math.floor(time % 60);
- }
- }
- //minutes
- time /= 60;
- if (mode != 2) {
- tmp = ":";
- }
- if (time >= 1) {
- if (time % 60 >= 10) {
- str = tmp + Math.floor(time % 60) + str;
- }
- else {
- str = tmp + "0" + Math.floor(time % 60) + str;
- }
- }
- else {
- str = tmp + "00" + str;
- }
- if (mode != 2) {
- //hours
- time /= 60;
- if (time >= 1) {
- str = Math.floor(time % 24) + str;
- }
- else {
- str = "0" + str;
- }
- //days
- time /= 24;
- if (time >= 1) {
- str = Math.floor(time) + "d " + str;
- }
- }
- return str;
- }
- function uhrzeit(time, mode) {
- var help = new Date(time * 1000);
- if (help.getHours() < 10) {
- var str = "0" + help.getHours();
- }
- else {
- var str = help.getHours();
- }
- if (help.getMinutes() < 10) {
- str += ":0" + help.getMinutes();
- }
- else {
- str += ":" + help.getMinutes();
- }
- if (!mode) {
- if (help.getSeconds() < 10) {
- str += ":0" + help.getSeconds();
- }
- else {
- str += ":" + help.getSeconds();
- }
- }
- return str;
- }
- function explode(str) {
- //GM_log("Begin explode "+ str);
- if (str == "") {
- throw("Explode error Argument empty");
- }
- if (str == "undefined") {
- throw ("Explode error Argument is undefined");
- }
- if (typeof str != "string") {
- throw ("Explode error Argument not a String");
- }
- try {
- return eval('(' + str + ')');
- } catch (err) {
- GM_log("Explode error : " + err);
- throw ("Explode error : " + err);
- }
- }
- console.log( info + "Start implode(arr)");
- function implode(arr) {//--- function written by Jan-Hans
- try {
- var line = String();
- var InternalCounter = -1;
- var NoKey = Boolean(false);
- if (typeof arr != "object") {
- throw("Argument not a Object or Array" + typeof arr + "<br>");
- }
- var type = (arr instanceof Array); //true->array | false->object
- line = (type) ? "[" : "{";
- for (var i in arr) {
- if (typeof arr[i] == "function")
- continue;
- InternalCounter++;
- if (type) {
- while (i > InternalCounter) {
- line += ",";
- InternalCounter++;
- }
- } else { //arr == object
- line += "\"" + i + "\"";
- line += ":";
- }
- if (typeof arr[i] == "number" || typeof arr[i] == "boolean") {
- line += arr[i];
- } else if (typeof arr[i] == "string") {
- line += "\"" + arr[i] + "\"";
- } else if (typeof arr[i] == "undefined") {
- line += '';
- } else {
- line += implode(arr[i]);
- }
- line += ",";
- }
- var endChar = line.substring(line.length - 1, line.length);
- return line.substring(0, line.length - 1) + (("{[".indexOf(endChar) != -1) ? endChar : "") + ((type) ? "]" : "}");
- } catch (err) {
- GM_log("Implode error : " + err);
- throw ("Implode error : " + err);
- }
- }
- function Log(obj, pre) {
- if (developer) {
- if (typeof(pre) == "undefined") {
- pre = "";
- }
- if (typeof(obj) == "object") {
- //GM_log("______________________________ object");
- for (var v in obj) {
- Log(obj[v], pre + v + " : ");
- }
- //GM_log("______________________________ object end");
- } else {
- GM_log(pre + obj);
- }
- }
- }
- function closeInfoPanel() {
- $("infoPanel").setAttribute("name", "");
- $("infoPanel").style.display = "none";
- }
- function buildInfoPanel(mode) {
- if (mode == $("infoPanel").getAttribute("name")) {
- closeInfoPanel();
- }
- else {
- $("infoPanel").setAttribute("name", mode);
- $("infoPanel").innerHTML = "";
- $("infoPanel").style.display = "block";
- divInfo = createElement("div", {style: "position:absolute;left:20px;top:80px;width:570px;height:400px;overflow:auto;"}, $("infoPanel"));
- newdiv = createElement("img", {
- class: "cursorclickable",
- style: "font-size:10px;position:absolute;height:35px;width:35px;right:10px;top:2px;"
- }, $("infoPanel"));
- newdiv.addEventListener("click", closeInfoPanel, false);
- if (mode == "options") {
- createElement("div", {
- align: "center",
- style: "line-height:30px;font-weight:bold;"
- }, divInfo, texte["options"]);
- newtable = createElement("table", {style: "width:100%;", border: "1"}, divInfo);
- newtr = createElement("tr", "", newtable);
- newtd = createElement("td", {align: "center"}, newtr);
- var valUpdate = GM_getValue("valUpdate", true);
- inp = createElement("input", {
- id: "inputvalUpdate",
- type: "checkbox",
- class: "link",
- checked: valUpdate
- }, newtd);
- inp.addEventListener("click", function () {
- valUpdate = this.checked;
- GM_setValue("valUpdate", valUpdate);
- }, false);
- createElement("td", "", newtr, texte["set_Update"]);
- createElement("td", "", newtr, texte["info_Update"]);
- newtr = createElement("tr", "", newtable);
- newtd = createElement("td", {align: "center"}, newtr);
- inp = createElement("input", {
- id: "inputvalGlobalClockInTitle",
- type: "checkbox",
- class: "link",
- checked: valGlobalClockInTitle
- }, newtd);
- inp.addEventListener("click", function () {
- valGlobalClockInTitle = this.checked;
- GM_setValue(lng + "_" + server + "_" + username + "_valGlobalClockInTitle", valGlobalClockInTitle);
- }, false);
- createElement("td", "", newtr, texte["set_valGlobalClockInTitle"]);
- createElement("td", "", newtr, texte["info_valGlobalClockInTitle"]);
- newtr = createElement("tr", "", newtable);
- newtd = createElement("td", {align: "center"}, newtr);
- newinput = createElement("input", {
- id: "inputvalRackLimit",
- value: valRackLimit,
- maxlength: "5",
- size: "5px",
- style: "background-color:transparent;"
- }, newtd);
- newinput.addEventListener("focus", function () {
- this.style.backgroundColor = "lightblue";
- }, false);
- newinput.addEventListener("blur", function () {
- this.style.backgroundColor = "transparent";
- }, false);
- newinput.addEventListener("keyup", function () {
- valRackLimit = parseInt(this.value, 10);
- if (!isNaN(valRackLimit)) {
- GM_setValue(lng + "_" + server + "_" + username + "_valRackLimit", valRackLimit);
- }
- this.value = (isNaN(valRackLimit) ? "" : valRackLimit);
- }, false);
- createElement("td", "", newtr, texte["set_RackLow"]);
- createElement("td", "", newtr, texte["info_RackLow"]);
- newtr = createElement("tr", "", newtable);
- newtd = createElement("td", {align: "center"}, newtr);
- newinput = createElement("input", {
- id: "inputvalMaxRackLimit",
- value: valMaxRackLimit,
- maxlength: "5",
- size: "5px",
- style: "background-color:transparent;"
- }, newtd);
- newinput.addEventListener("focus", function () {
- this.style.backgroundColor = "lightblue";
- }, false);
- newinput.addEventListener("blur", function () {
- this.style.backgroundColor = "transparent";
- }, false);
- newinput.addEventListener("keyup", function () {
- valMaxRackLimit = parseInt(this.value, 10);
- if (!isNaN(valMaxRackLimit)) {
- GM_setValue(lng + "_" + server + "_" + username + "_valMaxRackLimit", valMaxRackLimit);
- }
- this.value = (isNaN(valMaxRackLimit) ? "" : valMaxRackLimit);
- }, false);
- createElement("td", "", newtr, texte["set_RackMax"]);
- createElement("td", "", newtr, texte["info_RackMax"]);
- newtr = createElement("tr", "", newtable);
- newtd = createElement("td", {align: "center"}, newtr);
- inp = createElement("input", {
- id: "inputvalStartQuestAutomatic",
- type: "checkbox",
- class: "link",
- checked: valStartQuestAutomatic
- }, newtd);
- inp.addEventListener("click", function () {
- valStartQuestAutomatic = this.checked;
- GM_setValue(lng + "_" + server + "_" + username + "_valStartQuestAutomatic", valStartQuestAutomatic);
- }, false);
- createElement("td", "", newtr, texte["set_valStartQuestAutomatic"]);
- createElement("td", "", newtr, texte["info_valStartQuestAutomatic"]);
- //AutoLogin
- createElement("div", {
- align: "center",
- style: "line-height:30px;margin-top:20px;font-weight:bold;"
- }, divInfo, texte["autoLogin"]);
- newtable = createElement("table", {id: "tableAutologin", align: "center"}, divInfo);
- buildLoginTable(false);
- newdiv = createElement("div", {align: "center"}, divInfo);
- newinput = createElement("input", {type: "checkbox", class: "cursorclickable", checked: false}, newdiv);
- newinput.addEventListener("click", function () {
- buildLoginTable(this.checked);
- }, false);
- newspan = createElement("span", "", newdiv, texte["zeigePasswoerter"]);
- //CSS
- var cssArr = {};
- cssArr["css_racklow"] = [
- [],
- "background-color:orangered;"
- ];
- createElement("div", {
- align: "center",
- style: "line-height:30px;margin-top:20px;font-weight:bold;"
- }, divInfo, "CSS");
- newtable = createElement("table", {align: "center"}, divInfo);
- for (var v in cssArr) {
- newtr = createElement("tr", "", newtable);
- createElement("td", "", newtr, v);
- newtd = createElement("td", "", newtr);
- var help = GM_getValue(lng + "_" + server + "_" + username + "_" + v, cssArr[v][1]);
- newinput = createElement("input", {id: v, value: help, style: "width:300px;"}, newtd);
- newinput.addEventListener("keyup", function () {
- if (this.value == "") {
- this.value = cssArr[this.id][1];
- }
- GM_setValue(lng + "_" + server + "_" + username + "_" + this.id, this.value);
- cssArr[this.id][1] = this.value;
- var help = cssArr[this.id][1];
- for (var w = 0; w < cssArr[this.id][0].length; w++) {
- help = cssArr[cssArr[this.id][0][w]][1] + help;
- }
- this.parentNode.nextSibling.firstChild.setAttribute("style", help);
- }, false);
- newtd = createElement("td", "", newtr);
- for (var w = 0; w < cssArr[v][0].length; w++) {
- help = cssArr[cssArr[v][0][w]][1] + help;
- }
- newdiv = createElement("div", {style: help}, newtd, "test");
- }
- }
- if (mode == "patients") {
- buildPatientsTable(1, true, false);
- }
- }
- }
- function saveLogin() {
- GM_setValue("logindata", implode(logindata));
- }
- function buildLoginTable(showPW) {
- try {
- logindata = explode(GM_getValue("logindata", "[]"));
- }
- catch (err) {
- logindata = [];
- }
- newtable = createElement("table", {align: "center"});
- $("tableAutologin").parentNode.replaceChild(newtable, $("tableAutologin"));
- newtable.id = "tableAutologin";
- newtable.addEventListener("change", saveLogin, false);
- newtr = createElement("tr", {}, newtable);
- createElement("th", {}, newtr, texte["server"]);
- createElement("th", {}, newtr, texte["name"]);
- createElement("th", {}, newtr, texte["passwort"]);
- for (var v = 0; v < logindata.length; v++) {
- newtr = createElement("tr", "", newtable);
- newtd = createElement("td", "", newtr);
- newinp = createElement("input", {
- id: "loginActive" + v,
- type: "checkbox",
- title: texte["accountAktiv"],
- checked: logindata[v][4]
- }, newtd);
- newinp.addEventListener("change", function () {
- logindata[this.id.replace("loginActive", "")][4] = this.checked;
- }, false);
- newinp = createElement("input", {id: "loginServer" + v, style: "width:20px", maxlength: "2"}, newtd);
- if (isNaN(logindata[v][1])) {
- logindata[v][1] = "0";
- }
- if (logindata[v][1] != "0") {
- newinp.value = logindata[v][1];
- }
- newinp.addEventListener("change", function () {
- var readin = parseInt(this.value, 10);
- if (isNaN(readin) || (readin < 1)) {
- alert(texte["ungueltigerServer"]);
- this.value = "";
- }
- else {
- this.value = readin;
- logindata[this.id.replace("loginServer", "")][1] = readin;
- }
- }, false);
- newselect = createElement("select", {id: "loginLng" + v}, newtd);
- for (var w in gamepages) {
- createElement("option", {value: w}, newselect, w);
- }
- newselect.value = logindata[v][0];
- newselect.addEventListener("change", function () {
- logindata[this.id.replace("loginLng", "")][0] = this.value;
- }, false);
- newtd = createElement("td", "", newtr);
- newinput = createElement("input", {
- id: "loginName" + v,
- style: "width:150px",
- value: logindata[v][2],
- maxlength: "20"
- }, newtd);
- newinput.addEventListener("change", function () {
- logindata[this.id.replace("loginName", "")][2] = this.value;
- }, false);
- newtd = createElement("td", {}, newtr);
- newinput = createElement("input", {
- id: "loginPW" + v,
- style: "width:150px",
- value: logindata[v][3],
- maxlength: "20"
- }, newtd);
- if (!showPW) {
- newinput.type = "password";
- }
- newinput.addEventListener("change", function () {
- logindata[this.id.replace("loginPW", "")][3] = this.value;
- }, false);
- newtd = createElement("td", "", newtr);
- if (v > 0) {
- newdiv = createElement("div", {
- id: "loginUp" + v,
- class: "link2",
- style: "width:14px;height:10px;"
- }, newtd);
- createElement("img", {
- src: "http://dqt9wzym747n.cloudfront.net/pics/quest_up.gif",
- style: "width:14px;height:10px;"
- }, newdiv);
- newdiv.addEventListener("mouseover", function () {
- this.style.backgroundColor = "blue"
- }, false);
- newdiv.addEventListener("mouseout", function () {
- this.style.backgroundColor = "transparent"
- }, false);
- newdiv.addEventListener("click", function () {
- var currLine = parseInt(this.id.replace("loginUp", ""), 10);
- logindata.splice(currLine - 1, 2, logindata[currLine], logindata[currLine - 1]);
- saveLogin();
- buildLoginTable(showPW);
- }, false);
- }
- if (v < logindata.length - 1) {
- newdiv = createElement("div", {
- id: "loginDown" + v,
- class: "link2",
- style: "width:14px;height:10px;"
- }, newtd);
- createElement("img", {
- src: "http://dqt9wzym747n.cloudfront.net/pics/quest_down.gif",
- style: "width:14px;height:10px;"
- }, newdiv);
- newdiv.addEventListener("mouseover", function () {
- this.style.backgroundColor = "blue"
- }, false);
- newdiv.addEventListener("mouseout", function () {
- this.style.backgroundColor = "transparent"
- }, false);
- newdiv.addEventListener("click", function () {
- var currLine = parseInt(this.id.replace("loginDown", ""), 10);
- logindata.splice(currLine, 2, logindata[currLine + 1], logindata[currLine]);
- saveLogin();
- buildLoginTable(showPW);
- }, false);
- }
- newtd = createElement("td", {
- title: texte["loeschen"],
- id: "loginDelete" + v
- }, newtr);
- createElement("img", {
- src: "https://cdn2.iconfinder.com/data/icons/windows-8-metro-style/128/delete.png",
- class: "link2",
- style: "width: 16px; height: 16px;"
- }, newtd);
- newtd.addEventListener("mouseover", function () {
- this.style.backgroundColor = "blue"
- }, false);
- newtd.addEventListener("mouseout", function () {
- this.style.backgroundColor = "transparent"
- }, false);
- newtd.addEventListener("click", function () {
- var currLine = this.id.replace("loginDelete", "");
- logindata.splice(currLine, 1);
- saveLogin();
- buildLoginTable(showPW);
- }, false);
- }
- newtr = createElement("tr", "", newtable);
- newtd = createElement("td", {
- colspan: "5",
- class: "link",
- style: "font-weight:bold;font-size:16px;text-align:right;"
- }, newtr, "+");
- newtd.addEventListener("mouseover", function () {
- this.style.backgroundColor = "blue"
- }, false);
- newtd.addEventListener("mouseout", function () {
- this.style.backgroundColor = "transparent"
- }, false);
- newtd.addEventListener("click", function () {
- logindata.push([lng, "0", "", "", "true"]); // New empty line
- saveLogin();
- buildLoginTable(showPW);
- }, false);
- }
- function buildPatientsTable(mode, showCured, minipic) {
- divInfo.innerHTML = "";
- patients = Global.refPatients.values();
- newtable = createElement("table", {border: "1", width: "100%"}, divInfo);
- newtablehead = createElement("thead", "", newtable);
- newtablebody = createElement("tbody", {style: "overflow-y:auto;overflow-x:hidden;height:365px;"}, newtable);
- newtr = createElement("tr", "", newtablehead);
- newth = createElement("th", {colspan: "5"}, newtr);
- newspan = createElement("span", {style: "margin-right:3px"}, newth);
- newinput = createElement("input", {type: "checkbox", checked: showCured, class: "cursorclickable"}, newspan);
- newinput.addEventListener("click", function () {
- buildPatientsTable(mode, this.checked, minipic);
- }, false);
- createElement("span", "", newspan, texte["zeigeGeheilteKrankheiten"]);
- newspan = createElement("span", {style: "margin-right:3px"}, newth);
- newinput = createElement("input", {type: "checkbox", checked: minipic, class: "cursorclickable"}, newspan);
- newinput.addEventListener("click", function () {
- buildPatientsTable(mode, showCured, this.checked);
- }, false);
- createElement("span", "", newspan, texte["minipics"]);
- newinput = createElement("input", {
- type: "button",
- style: "margin-right:3px",
- value: texte["Patients"],
- class: "cursorclickable"
- }, newth);
- newinput.addEventListener("click", function () {
- buildPatientsTable(1, showCured, minipic);
- }, false);
- newinput = createElement("input", {
- type: "button",
- style: "margin-right:3px",
- value: texte["Rooms"],
- class: "cursorclickable"
- }, newth);
- newinput.addEventListener("click", function () {
- buildPatientsTable(2, showCured, minipic);
- }, false);
- if (mode == 1) {
- for (var posi = 0; posi < 3; posi++) {
- for (var pat in patientDiseases) {
- switch (patientDiseases[pat]["state"]) {
- case 1:
- case 2:
- if (posi == 0) {
- newtr = createElement("tr", {
- "id": pat,
- "class": "cursorclickable",
- "onclick": 'show_page("medical",this)'
- }, newtablebody);
- newtr.addEventListener("click", closeInfoPanel, false);
- createElement("td", "", newtr, pat);
- createElement("td", {colspan: "2"}, newtr, Global.availableRooms[6]["name"]);
- newtd = createElement("td", {style: "padding-right:30px"}, newtr);
- plotPatient(newtd, pat, showCured, minipic);
- }
- break;
- case 3:
- case 4:
- if (posi == 1) {
- newtr = createElement("tr", {
- "id": pat,
- "class": "cursorclickable",
- "onclick": 'show_page("medical",this)'
- }, newtablebody);
- newtr.addEventListener("click", closeInfoPanel, false);
- createElement("td", "", newtr, pat);
- createElement("td", "", newtr, patientDiseases[pat]["floor"]);
- createElement("td", "", newtr, Global.availableRooms[patientDiseases[pat]["room"]]["name"]);
- newtd = createElement("td", {style: "padding-right:30px"}, newtr);
- plotPatient(newtd, pat, showCured, minipic);
- }
- break;
- case 0:
- if (posi == 2) {
- newtr = createElement("tr", {
- "id": pat,
- "class": "cursorclickable",
- "onclick": 'show_page("medical",this)'
- }, newtablebody);
- newtr.addEventListener("click", closeInfoPanel, false);
- createElement("td", "", newtr, pat);
- createElement("td", {colspan: "2"}, newtr, texte["waitingroom"]);
- newtd = createElement("td", {style: "padding-right:30px"}, newtr);
- plotPatient(newtd, pat, showCured, minipic);
- }
- break;
- }
- }
- newtr = createElement("tr", "", newtablebody);
- createElement("td", {colspan: "4"}, newtr, "");
- }
- } else if (mode == 2) {
- var sumDiseases = {};
- for (var pat in patientDiseases) {
- for (var disease in patientDiseases[pat]) {
- if (!isNaN(disease)) {
- var currRoom = Global.availableDiseases[0][disease]["room"][0];
- if (!sumDiseases[currRoom]) {
- sumDiseases[currRoom] = {};
- }
- if (!sumDiseases[currRoom][disease]) {
- sumDiseases[currRoom][disease] = [0, 0, 0, 0, 0, 0];
- }
- switch (patientDiseases[pat]["state"]) {
- case 1:
- case 2:
- sumDiseases[currRoom][disease][0]++;
- if ((patientDiseases[pat][disease] != "cured") && (patientDiseases[pat][disease] != "heartbeat")) {
- sumDiseases[currRoom][disease][1]++;
- }
- break;
- case 3:
- case 4:
- sumDiseases[currRoom][disease][2]++;
- if ((patientDiseases[pat][disease] != "cured") && (patientDiseases[pat][disease] != "heartbeat")) {
- sumDiseases[currRoom][disease][3]++;
- }
- break;
- case 0:
- sumDiseases[currRoom][disease][4]++;
- if ((patientDiseases[pat][disease] != "cured") && (patientDiseases[pat][disease] != "heartbeat")) {
- sumDiseases[currRoom][disease][5]++;
- }
- break;
- }
- }
- }
- }
- newtr = createElement("tr", "", newtablebody);
- newtd = createElement("td", {title: texte["Beschreibung2"]}, newtr, texte["Beschreibung"]);
- newtd = createElement("td", "", newtr, texte["frei"]);
- newtd = createElement("td", "", newtr, texte["inBehandlung"]);
- newtd = createElement("td", "", newtr, texte["waitingroom"]);
- newtd = createElement("td", "", newtr, texte["Gesamt"]);
- for (var r in sumDiseases) {
- newtr = createElement("tr", "", newtablebody);
- newtd = createElement("td", "", newtr, Global.availableRooms[r].name);
- var totalTotalTime = 0;
- for (var v = 0; v < 4; v++) {
- var totalTime = 0;
- newtd = createElement("td", {style: (v == 3 ? "padding-right:30px;" : "")}, newtr);
- for (var disease in sumDiseases[r]) {
- if (sumDiseases[r][disease][2 * v + ( 1 - showCured )] > 0) {
- newdiv = createElement("div", {style: "float:left;margin-right:2px;"}, newtd);
- createElement("div", {class: "d_a_30 d_" + disease + "_30"}, newdiv);
- createElement("div", "", newdiv, time2str(Global.availableDiseases[0][disease]["basetime"], 1));
- createElement("div", "", newdiv, sumDiseases[r][disease][2 * v + 1] + "/" + sumDiseases[r][disease][2 * v]);
- totalTime += sumDiseases[r][disease][2 * v + 1] * Global.availableDiseases[0][disease]["basetime"];
- }
- }
- totalTotalTime += totalTime;
- if (v == 3) {
- newdiv = createElement("div", {style: "margin-right:2px;font-weight:bold;padding-top:20px;"}, newtd, time2str(totalTotalTime, 1));
- }
- else {
- newdiv = createElement("div", {style: "margin-right:2px;font-weight:bold;padding-top:20px;"}, newtd, time2str(totalTime, 1));
- }
- }
- }
- }
- }
- // Cleaner Function
- function cleaningfunc() {
- var cleaner = $("cleaner");
- var cur_floor = Global.selectedFloor;
- var floor = 1;
- for (var max_floor = 1; $("floor_jump_" + max_floor); max_floor++);
- max_floor--;
- function initfloor(nfloor) {
- $('floor_jump_' + nfloor).click();
- setTimeout(
- function () {
- rooms = Global.rooms;
- for (var v = 0; v < rooms.length; v++) {
- if (( rooms[v].cleanup ) && ( rooms[v].ends == 0 ) && ( rooms[v].roomid != 6 )) {
- var croom = Global.refRooms.get("r" + rooms[v].topleft);
- console.log( info + "Cleaning room: " + rooms[v].topleft);
- croom._onDrop(cleaner, "", "");
- }
- }
- if (floor < max_floor) {
- floor++;
- initfloor(floor);
- }
- else {
- if (floor != cur_floor) {
- $('floor_jump_' + cur_floor).click();
- }
- }
- }, 1000);
- }
- initfloor(floor);
- }
- function medifunc() {
- var cur_floor = Global.selectedFloor;
- var floor = 1;
- for (var max_floor = 1; $("floor_jump_" + max_floor); max_floor++);
- max_floor--;
- function initmedi(nfloor) {
- $('floor_jump_' + nfloor).click();
- setTimeout(
- function () {
- rooms = Global.rooms;
- for (var v = 0; v < rooms.length; v++) {
- if (( currRoom = Global.refRooms.get("r" + rooms[v].topleft) )) {
- if (currRoom["roomid"] != 6) {
- if ((Global.availableRooms[currRoom["roomid"]] ) && (Global.availableRooms[currRoom["roomid"]]["diseases"].length > 0 )) { // Behandlungsraum
- if (currRoom["state"] == 3) {
- if ($("gradient_r" + currRoom["topleft"]) && $("alert" + currRoom.topleft)) {
- // Medis
- var currDisease = null;
- currDisease = calcCurrDisease(currRoom["patient"]);
- //console.log(currDisease);
- if (currDisease) {
- if ($("mediinfo_" + currRoom.topleft)) {
- //console.log( $('rackItem'+medi[currDisease]["id"] ) );
- for (var i = 0; i < unsafeWindow.Rack["_elements"]; i++) {
- if (unsafeWindow.Rack["_elements"][i]["product"] == medi[currDisease]["id"])
- break;
- }
- var med = createElement("div", {
- id: "rackItem" + medi[currDisease]["id"],
- class: "med ri_a",
- medid: medi[currDisease]["id"],
- amount: unsafeWindow.Rack["_elements"][i]["amount"],
- rlevel: unsafeWindow.Rack["_elements"][i]["rlevel"]
- }, null);
- //console.log(med);
- currRoom._onDrop(med, "", "");
- }
- }
- }
- }
- }
- }
- }
- }
- if (floor < max_floor) {
- floor++;
- initmedi(floor);
- }
- else {
- /*
- * error window is shown, close it and start again
- * (its when disease array is not complete)
- */
- if ($("dlg_message").style.display != "none" && $("btn_info")) {
- click($("btn_info"));
- floor = 1;
- initmedi(floor);
- }
- if (floor != cur_floor) {
- $('floor_jump_' + cur_floor).click();
- }
- }
- }
- , 1500);
- }
- initmedi(floor);
- }
- function initPatient(patientId) {
- if (!patientDiseases[patientId]) {
- //console.log("initPatient "+patientId);
- patientDiseases[patientId] = {};
- patientDiseases[patientId]["m"] = 0;
- patientDiseases[patientId]["floor"] = 1;
- //patientDiseases[patientId]["xml"] = 0;
- var help = Global.refPatients.get("p" + patientId);
- if (help) {
- patientDiseases[patientId]["floor"] = help["floor"];
- }
- for (var v = 0; v < help["diseases"].length; v++) {
- patientDiseases[patientId][help["diseases"][v]] = "";
- patientDiseases[patientId]["room" + Global.availableDiseases[0][help["diseases"][v]]["room"][0]] = 1;
- }
- }
- calcPatientState(patientId);
- }
- function refreshPatient(patientId, with_nurse) {
- if (!patientDiseases[patientId]) {
- initPatient(patientId);
- }
- getPatientInfos(patientId, with_nurse);
- }
- function updPatientState(patientId, infos, with_nurse) {
- var cured = true;
- var obj = infos.find('div#medi_diseases');
- // is not set with special diseases
- if (obj[0]) {
- for (var w = 0; w < obj[0].childNodes.length - 3; w++) {
- var disease = (/d_(\d+)_50/).exec(obj[0].childNodes[w].childNodes[1].getAttribute("class"))[1];
- if (obj[0].childNodes[w].childNodes[1].firstChild) {
- patientDiseases[patientId][disease] = (/(.+) (.+)/).exec(obj[0].childNodes[w].childNodes[1].firstChild.getAttribute("class"))[2];
- if (patientDiseases[patientId][disease] == "notreatment") {
- patientDiseases[patientId]["unhealable"] = 1;
- }
- if (patientDiseases[patientId][disease] != "cured") {
- cured = false;
- }
- else {
- patientDiseases[patientId]["room" + Global.availableDiseases[0][disease]["room"][0]] = 0;
- }
- }
- else {
- patientDiseases[patientId][disease] = "";
- patientDiseases[patientId]["room" + Global.availableDiseases[0][disease]["room"][0]] = 1;
- cured = false;
- }
- }
- }
- else {
- //special disease
- for (var disease in patientDiseases[patientId]) {
- if (!isNaN(disease)) {
- patientDiseases[patientId][disease] = "cured";
- break;
- }
- }
- }
- // nurse
- var canddiv = infos.find('.minitreatment');
- patientDiseases[patientId]["m"] = 4;
- for (var v = 0; v < canddiv.length; v++) {
- if (canddiv[v].style.backgroundImage == "") {
- patientDiseases[patientId]["m"]--;
- cured = false;
- }
- }
- if (with_nurse) {
- for (var v = 0; v < canddiv.length; v++) {
- if (canddiv[v].style.backgroundImage == "") {
- var help = Global.refPatients.get("p" + patientId);
- if (!( $("treatment" + help["room"]) )) {
- unsafeWindow.MedicalRecord._onclick(canddiv[v], patientId);
- break;
- }
- }
- }
- }
- if (cured) {
- patientDiseases[patientId]["state"] = 5;
- }
- else {
- calcComesNext(patientId);
- }
- calcPatientState(patientId);
- }
- function calcPatientState(patientId) {
- var help = Global.refPatients.get("p" + patientId);
- var help2 = null;
- if (help) {
- help2 = Global.refRooms.get(help["room"]);
- }
- if (patientDiseases[patientId]["state"] != 5) {
- if ($("p" + patientId)) {
- if ($("p" + patientId).getAttribute("class").search("waitingpatient") != -1) {
- patientDiseases[patientId]["state"] = 0;
- patientDiseases[patientId]["room"] = 0;
- }
- else {
- if (help2) {
- patientDiseases[patientId]["state"] = ( help2["roomid"] == 6 ) ? 1 : 3;
- patientDiseases[patientId]["room"] = help2["roomid"];
- }
- else {
- patientDiseases[patientId]["state"] = 1;
- patientDiseases[patientId]["room"] = 6;
- }
- }
- }
- else {
- if (help2) {
- patientDiseases[patientId]["state"] = (help2["roomid"] == 6) ? 2 : 4;
- patientDiseases[patientId]["room"] = help2["roomid"];
- }
- else {
- patientDiseases[patientId]["state"] = 2;
- patientDiseases[patientId]["room"] = 6;
- }
- }
- }
- }
- function plotPatient(target, currPatientId, showCured, minipic) { //(target) , (target,showCured)
- if (!isNaN(currPatientId)) {
- if (typeof(showCured) != "boolean") {
- showCured = true;
- }
- } else {
- if (typeof(currPatientId) == "boolean") {
- showCured = currPatientId;
- }
- else {
- showCured = true;
- }
- currPatientId = parseInt(target.getAttribute("name"), 10);
- }
- if (typeof(minipic) != "boolean") {
- minipic = false;
- }
- Log("plotPatient " + currPatientId + " " + showCured + " " + minipic);
- target.innerHTML = "";
- initPatient(currPatientId);
- // diseases
- var usedRooms = {};
- var newdiv;
- var restlicheZeit = 0;
- for (var disease in patientDiseases[currPatientId]) {
- if (!isNaN(disease)) {
- if (showCured || patientDiseases[currPatientId][disease] != "cured") {
- newdiv = createElement("div", {style: "float:left;"}, target);
- if (minipic) {
- if (patientDiseases[currPatientId][disease] == "cured") {
- newdiv1 = createElement("div", {
- class: "d_a_15 d_" + disease + "_15",
- style: "opacity:0.5;"
- }, newdiv);
- createElement("div", {class: "treatment_icon_15 treatment_icon_15_1"}, newdiv1);
- }
- else {
- newdiv1 = createElement("div", {class: "d_a_15 d_" + disease + "_15"}, newdiv);
- }
- }
- else {
- if (patientDiseases[currPatientId][disease] == "cured") {
- newdiv1 = createElement("div", {
- class: "d_a_30 d_" + disease + "_30",
- style: "opacity:0.3;"
- }, newdiv);
- createElement("div", {class: "treatmenticons " + patientDiseases[currPatientId][disease] + "s"}, newdiv1);
- }
- else if (patientDiseases[currPatientId][disease]) {
- newdiv1 = createElement("div", {class: "d_a_30 d_" + disease + "_30"}, newdiv);
- createElement("div", {class: "treatmenticons " + patientDiseases[currPatientId][disease] + "s"}, newdiv1);
- }
- else {
- newdiv1 = createElement("div", {class: "d_a_30 d_" + disease + "_30"}, newdiv);
- }
- if (patientDiseases[currPatientId][disease] != "cured") {
- newdiv2 = createElement("div", "", newdiv, time2str(Global.availableDiseases[0][disease]["basetime"], 1));
- restlicheZeit += Global.availableDiseases[0][disease]["basetime"];
- if (!usedRooms[Global.availableDiseases[0][disease]["room"][0]]) {
- usedRooms[Global.availableDiseases[0][disease]["room"][0]] = 1;
- newdiv2.style.fontWeight = "bold";
- }
- }
- }
- }
- }
- }
- // nurse
- if (patientDiseases[currPatientId]["m"] == 4) {
- if (minipic) {
- newdiv = createElement("div", {style: "position:relative;float:left;"}, target);
- createElement("div", {class: "treatment_icon_15 treatment_icon_15_1"}, newdiv);
- } else {
- newdiv = createElement("div", {style: "position:relative;float:left;margin-left:30px;"}, target);
- createElement("div", {class: "pat_dis1 treatmenticonpa"}, newdiv);
- createElement("div", {class: "treatmenticons cureds"}, newdiv);
- newdiv2 = createElement("div", "", newdiv, time2str(restlicheZeit, 1));
- newdiv2.style.fontWeight = "bold";
- }
- }
- else {
- if (!minipic) {
- newdiv = createElement("div", {style: "position:relative;float:left;margin-left:30px;"}, target);
- createElement("div", {class: "pat_dis1 treatmenticonpa"}, newdiv);
- newdiv2 = createElement("div", "", newdiv, time2str(restlicheZeit, 1));
- newdiv2.style.fontWeight = "bold";
- }
- }
- newdiv = null;
- }
- function getPatientInfos(id, with_nurse) {
- var answ = GM_xmlhttpRequest({
- method: "GET",
- url: "medicalrecord.php?patient=" + id,
- // synchronous: true,
- onload: function (response) {
- var text = JSON.parse(response.responseText);
- updPatientState(id, jQuery(text["message"]), with_nurse);
- },
- object: onerror = function (response) {
- return "";
- }
- });
- }
- function highlightPatients(roomid) {
- // Patients
- var canddiv = $("garten_komplett").getElementsByClassName("patient");
- for (var v = 0; v < canddiv.length; v++) {
- canddiv[v].style.border = "";
- var currPatientId = parseInt(canddiv[v].id.replace("p", ""), 10);
- if (patientDiseases[currPatientId]) {
- //TODO: Emty "if" statement
- if (patientDiseases[currPatientId]["room" + roomid]) {
- canddiv[v].style.border = "3px solid blue";
- }
- }
- else
- initPatient(currPatientId);
- }
- // in Rooms
- var canddiv = $("garten_komplett").getElementsByClassName("room");
- for (var v = 0; v < canddiv.length; v++) {
- canddiv[v].style.backgroundColor = "";
- var currPatientId = Global.refRooms.get(canddiv[v].id)["patient"];
- if (currPatientId) {
- if (!$("p" + currPatientId)) {
- if (patientDiseases[currPatientId]) {
- if (patientDiseases[currPatientId]["room" + roomid]) {
- canddiv[v].style.backgroundColor = "blue";
- }
- } else {
- initPatient(currPatientId);
- }
- }
- }
- }
- canddiv = null;
- }
- function unhighlightPatients() {
- Log("unhighlightPatients");
- var canddiv = $("garten_komplett").getElementsByClassName("patient");
- for (var v = 0; v < canddiv.length; v++) {
- canddiv[v].style.border = "";
- }
- var canddiv = $("garten_komplett").getElementsByClassName("room");
- for (var v = 0; v < canddiv.length; v++) {
- canddiv[v].style.backgroundColor = "";
- }
- canddiv = null;
- }
- function calcCurrDisease(patientId) { // returns current treatment
- var result = null;
- if (patientDiseases[patientId]) {
- for (var v in patientDiseases[patientId]) {
- if ((!isNaN(v)) && (patientDiseases[patientId][v] == "heartbeat")) {
- result = v;
- break;
- }
- }
- if (!result) { // no treatment found, set one
- var currPatient = Global.refPatients.get("p" + patientId);
- var currRoom = Global.refRooms.get(currPatient["room"]);
- if (currRoom) {
- if (patientDiseases[patientId]["room" + currRoom.roomid]) {
- delete patientDiseases[patientId]["room" + currRoom.roomid];
- }
- for (var disease in patientDiseases[patientId]) {
- if ((!isNaN(disease)) && (patientDiseases[patientId][disease] != "cured")) {
- for (var roomDiseaseNr = 0; roomDiseaseNr < Global.availableRooms[currRoom.roomid]["diseases"][roomDiseaseNr]; roomDiseaseNr++) {
- if (disease == Global.availableRooms[currRoom.roomid]["diseases"][roomDiseaseNr]) {
- if (result) {
- patientDiseases[patientId]["room" + currRoom.roomid] = 1;
- } else {
- patientDiseases[patientId][disease] = "heartbeat";
- result = disease;
- }
- }
- }
- }
- }
- }
- }
- } else {
- initPatient(patientId);
- result = calcCurrDisease(patientId);
- }
- calcComesNext(patientId);
- return result;
- }
- function calcComesNext(patientId) {
- Log("calcComesNext " + patientId);
- if (patientDiseases[patientId]) {
- var currRoomId = null;
- for (var disease in patientDiseases[patientId]) {
- if (!isNaN(disease) && (patientDiseases[patientId][disease] == "heartbeat")) {
- currRoomId = Global.availableDiseases[0][disease]["room"][0];
- break;
- }
- }
- if (currRoomId) {
- for (var disease in patientDiseases[patientId]) {
- if (!isNaN(disease) && (patientDiseases[patientId][disease] == "") && (currRoomId == Global.availableDiseases[0][disease]["room"])) {
- patientDiseases[patientId][disease] = "comesnext";
- }
- }
- }
- } else {
- initPatient(patientId);
- }
- }
- function calcEndTreatment(patientId) {
- Log("calcEndTreatment " + patientId);
- if (patientDiseases[patientId]) {
- var cured = true;
- for (var v in patientDiseases[patientId]) {
- if (!isNaN(v)) {
- var currDiseaseRoom = Global.availableDiseases[0][v]["room"][0];
- if (patientDiseases[patientId][v] == "heartbeat") {
- patientDiseases[patientId][v] = "cured";
- if (patientDiseases[patientId]["room" + currDiseaseRoom]) {
- delete patientDiseases[patientId]["room" + currDiseaseRoom];
- }
- } else {
- if (patientDiseases[patientId][v] == "comesnext") {
- patientDiseases[patientId][v] = "";
- }
- if (patientDiseases[patientId][v] != "cured") {
- cured = false;
- patientDiseases[patientId]["room" + currDiseaseRoom] = 1;
- }
- }
- }
- }
- if (cured && (patientDiseases[patientId]["m"] > 3)) {
- patientDiseases[patientId]["state"] = 5;
- }
- } else {
- initPatient(patientId);
- }
- }
- function do_Patientenblatt() {
- var currPatientId = parseInt((/MedicalRecord\.\_onclick\(this, (\d+)/).exec($("msgwindow").innerHTML)[1], 10);
- var currPatient = Global.refPatients.get("p" + currPatientId);
- // diseases
- var canddiv = $("msgwindow").getElementsByTagName("div");
- for (var v = 0; v < canddiv.length - 1; v++) {
- if (canddiv[v].id == "medi_diseases") {
- break;
- }
- }
- patientDiseases[currPatientId] = {};
- var cured = true;
- for (var w = 0; w < canddiv[v].childNodes.length - 3; w++) {
- var disease = (/d_(\d+)_50/).exec(canddiv[v].childNodes[w].childNodes[1].getAttribute("class"))[1];
- if (canddiv[v].childNodes[w].childNodes[1].firstChild) {
- patientDiseases[currPatientId][disease] = (/(.+) (.+)/).exec(canddiv[v].childNodes[w].childNodes[1].firstChild.getAttribute("class"))[2];
- if (patientDiseases[currPatientId][disease] == "notreatment") {
- patientDiseases[currPatientId]["unhealable"] = 1;
- }
- if (patientDiseases[currPatientId][disease] != "cured") {
- cured = false;
- }
- } else {
- patientDiseases[currPatientId][disease] = "";
- patientDiseases[currPatientId]["room" + Global.availableDiseases[0][disease]["room"][0]] = 1;
- cured = false;
- }
- }
- // nurse
- var canddiv = $("msgwindow").getElementsByClassName("minitreatment");
- patientDiseases[currPatientId]["m"] = 4;
- for (var v = 0; v < canddiv.length; v++) {
- if (canddiv[v].style.backgroundImage == "") {
- patientDiseases[currPatientId]["m"]--;
- cured = false;
- }
- }
- if (cured) {
- patientDiseases[currPatientId]["state"] = 5;
- }
- else {
- calcComesNext(currPatientId);
- calcPatientState(currPatientId);
- }
- var maxprice = parseFloat($("med_price").getElementsByTagName("span")[0].innerHTML.split("-")[1].replace(Global._KH_THOUSANDSEPERATOR, "").replace(Global._KH_DECIMALSEPERATOR, "."), 10);
- createElement("div", {"style": "position:absolute;top:380px;right:130px;color:red;"}, $("ref_divdetailsbig"), "85%: " + hT_formatgr(0.85 * maxprice) + ", 90%: " + hT_formatgr(0.9 * maxprice) + ", 95%: " + hT_formatgr(0.95 * maxprice));
- var newimg = createElement("img", {
- "style": "position:absolute;top:440px;left:219px;width:16px;height:16px;",
- "src": "http://pics.kapihospital.de/addressbook.gif",
- "class": "cursorclickable",
- "title": "Adressbuch"
- }, $("ref_divdetailsbig"));
- newimg.addEventListener("click", function () {
- var newdiv = createElement("div", {
- "id": "refAdressBook",
- "style": "top:70px;width:265px;height:350px;position:absolute;z-index:30;right:0px;background:url('http://pics.kapihospital.de/addressbook_newmsg.gif') no-repeat scroll left top transparent;overflow:visible;"
- }, $("ref_divdetails"));
- var newdiv1 = createElement("div", {
- "style": "position:absolute;left:12px;top:5px;z-index:2;width:15px;height:10px;",
- "class": "cursorclickable",
- "title": "schlie" + sz_de + "en"
- }, newdiv);
- newdiv1.addEventListener("click", function () {
- removeElement($("refAdressBook"));
- }, false);
- createElement("div", {"style": "z-index:1;position:absolute;width:165px;top:15px;left:45px;right:15px;text-align:center;font-weight:bold;font-size:medium;"}, newdiv, "Adressbuch");
- newdiv1 = createElement("div", {"style": "position:absolute;width:180px;height:225px;top:50px;left:45px;right:0px;overflow-y:auto;overflow-x:hidden;"}, newdiv);
- var newtable = createElement("table", {"cellspacing": "0"}, newdiv1);
- contacts = explode(GM_getValue(lng + "_" + server + "_" + username + "_contacts", "[]"));
- for (var v = 0; v < contacts.length; v++) {
- newdiv1 = createElement("div", {"class": "cursorclickable"}, createElement("td", {}, createElement("tr", {}, newtable)), contacts[v]);
- newdiv1.addEventListener("click", function () {
- $("ref_recipient").value = this.innerHTML;
- removeElement($("refAdressBook"));
- }, false);
- }
- newdiv = null;
- newdiv1 = null;
- newtable = null;
- newdiv1 = null;
- }, false);
- canddiv = null;
- newimg = null;
- }
- function do_Quest() {
- Log("do_Quest");
- if ($("ga_running")) {
- if ($("ga_running").style.display != "none") {
- questTime = now + unsafeWindow.Garage["ends"];
- GM_setValue(lng + "_" + server + "_" + username + "_questTime", questTime);
- }
- else {
- window.setTimeout(do_Quest, 200);
- }
- }
- }
- function start_Quest() {
- console.log( info + "StartQuest");
- unsafeWindow.show_page("garage");
- window.setTimeout(function () {
- if ($("newswindow_badge")) {
- //Success message
- console.log( info + "Finished!");
- unsafeWindow.close_badge();
- }
- window.setTimeout(function () {
- console.log( info + "Search window");
- if ($("ga_new") && $("ga_new").style.display != "none") {
- console.log( info + "Creating new");
- questcnt = $('ga_done').innerHTML[0];
- console.log( info + "Quest number: " + questcnt);
- if (questcnt < 8) {
- unsafeWindow.Garage.doJob();
- }
- else {
- console.log( info +"Eight quests done, job's done. ;)");
- }
- }
- if ($("ga_running") && $("ga_running").style.display != "none") {
- console.log( info + "Still working..");
- }
- window.setTimeout(unsafeWindow.close_page, 500);
- }, 400);
- }, 500);
- }
- console.log( info + "Start do_mail()");
- function do_Mail() {
- var keyMsgShow = /showMessage\(['|\s]*(\d+)['|\s]*,'(.*?)'\)/;
- var keyMsgDelete = /deleteMessage\(['|\s]*(\d+)['|\s]*,\s*this,\s*'(.*?)'\)/;
- var candtable = $("msgwindow").getElementsByTagName("table");
- var cand = null;
- var help = null;
- if (candtable[0]) {
- cand = candtable[0].getElementsByTagName("a");
- if (cand[0] && (help = keyMsgShow.exec(cand[0].href))) {
- if (help[2] == "inbox") {
- console.log( info * "inbox");
- var msgIdIn = [];
- for (var v = 0; v < cand.length; v++) {
- help = keyMsgShow.exec(cand[v].href);
- if (help) {
- msgIdIn.push(help[1]);
- }
- }
- GM_setValue(lng + "_" + server + "_" + username + "msgIdIn", implode(msgIdIn));
- cand = candtable[0].getElementsByTagName("input");
- for (var v = 0; v < cand.length; v++) {
- cand[v].setAttribute("title", "Alt+Klick um alle Gleichen zu markieren");
- cand[v].addEventListener("click", function (event) {
- if (event.altKey) {
- var cand = this.parentNode.parentNode.getElementsByTagName("a");
- var cand2 = null;
- var help = [this.checked, cand[0].innerHTML, cand[1].innerHTML];
- cand = this.parentNode.parentNode.parentNode.getElementsByTagName("tr");
- for (var v = 0; v < cand.length; v++) {
- cand2 = cand[v].getElementsByTagName("a");
- if ((help[1] == cand2[0].innerHTML) && (help[2] == cand2[1].innerHTML)) {
- cand[v].getElementsByTagName("input")[0].checked = help[0];
- }
- }
- cand = null;
- cand2 = null;
- help = null;
- }
- }, false);
- }
- }
- } else {
- cand = $("msgNavigation").getElementsByTagName("input");
- if (cand.length > 1) {
- // InMessage
- help = keyMsgDelete.exec(cand[cand.length - 2].getAttribute("onclick"));
- if (help) {
- if (help[2] == "inbox") {
- var msgIdIn = explode(GM_getValue(lng + "_" + server + "_" + username + "msgIdIn", "[]"));
- for (var c = 0; c < msgIdIn.length; c++) {
- if (msgIdIn[c] == help[1]) {
- break
- }
- }
- if (c > 0) {
- createElement("input", {
- "type": "button",
- "value": "Previous message",
- "onclick": "javascript:Messages.showMessage(" + msgIdIn[c - 1] + ",'inbox');",
- "class": "cursorclickable msg_input"
- }, $("msgNavigation"));
- }
- if (c < msgIdIn.length - 1) {
- createElement("input", {
- "type": "button",
- "value": "Next message",
- "onclick": "javascript:Messages.showMessage(" + msgIdIn[c + 1] + ",'inbox');",
- "class": "cursorclickable msg_input"
- }, $("msgNavigation"));
- }
- }
- }
- }
- if ($("deleteContact")) {
- console.log( info + "Contacts");
- var contacts = [];
- cand = candtable[0].getElementsByTagName("tr");
- for (var tr = 1; tr < cand.length - 3; tr++) {
- contacts.push(/(.*?) /.exec(cand[tr].getElementsByTagName("td")[0].innerHTML)[1]);
- }
- GM_setValue(lng + "_" + server + "_" + username + "_contacts", implode(contacts));
- }
- }
- }
- candtable = null;
- cand = null;
- }
- function laden(elemente, i) {
- /* Initialize Object-loader */
- loader.onload = function () {
- if (i < (elemente.length - 1)) {
- laden(elemente, i + 1);
- }
- else {
- /* All elements loaded */
- }
- }
- }
- function do_Notepad() {
- removeElement($("premiumicon"));
- $("msg_body").disabled = "";
- $("msg_body").value = GM_getValue(lng + "_" + server + "_" + username + "_notepad", "");
- $("msg_body").addEventListener("keyup", function () {
- GM_setValue(lng + "_" + server + "_" + username + "_notepad", this.value);
- }, false);
- }
- function do_Patientenboerse() {
- Log("do_Patientenboerse");
- createElement("div", {style: "z-index:0;position:absolute;top:0px;right:0px;height:500px;width:250px;background-image: url('http://pics.kapihospital.de/bg_exchange2.jpg');background-position:250px 0px;"}, $("msgwindow"));
- $("msgwindow").style.width = "750px";
- $("ex_bubble").style.width = "";
- $("ex_bubble").style.zIndex = "1";
- /*var newdiv = createElement("div",{style:"position:absolute;bottom:-70px;left:20px;background-color: white;"},$("msgwindow"));*/
- var newtab = createElement("table", {
- border: "1px",
- cellspacing: "0px",
- cellpadding: "0px",
- style: "text-align:center;position:absolute;bottom:-120px;left:-100px;width:750px;background-color: white;"
- }, $("msgwindow"));
- var valShowUncurable = GM_getValue(lng + "_" + server + "_" + username + "_valShowUncurable", false);
- var highlightBoerse = {};
- var highlightBoerse1 = {};
- try {
- highlightBoerse = explode(GM_getValue(lng + "_" + server + "_" + username + "_highlightBoerse", "{}"));
- } catch (err) {
- }
- try {
- highlightBoerse1 = explode(GM_getValue(lng + "_" + server + "_" + username + "_highlightBoerse1", "{}"));
- } catch (err) {
- }
- var blockBoerse = explode(GM_getValue(lng + "_" + server + "_" + username + "_blockBoerse", "{}"));
- //var newdiv1 = createElement("div",{style:"display:block;"},newdiv);
- var tabrow = createElement("tr", "", newtab);
- var tabcell = createElement("td", {colspan: "20"}, tabrow);
- var newinput = createElement("input", {
- "id": "valShowUncurable",
- "type": "checkbox",
- "checked": valShowUncurable
- }, tabcell);
- newinput.addEventListener("click", function () {
- GM_setValue(lng + "_" + server + "_" + username + "_valShowUncurable", this.checked);
- click($("ex_navi").getElementsByTagName("div")[1]);
- }, false);
- createElement("span", {}, tabcell, texte["showUncurable"]);
- tabrow = createElement("tr", "", newtab);
- tabcell = createElement("td", "", tabrow);
- for (var r in Global.availableRooms) {
- if (Global.availableRooms[r].diseases.length > 0) {
- tabcell = createElement("td", "", tabrow, Global.availableRooms[r].name);
- }
- }
- /*var newdiv1 = createElement("div",{style:"display:block;background-color:green;"},newdiv);
- var newdiv2 = createElement("div",{style:"display:block;background-color:yellow;"},newdiv);
- var newdiv3 = createElement("div",{style:"display:block;background-color:#900;"},newdiv);
- */
- var newrow1 = createElement("tr", {style: "background-color:green;"}, newtab);
- var newrow2 = createElement("tr", {style: "background-color:yellow;"}, newtab);
- var newrow3 = createElement("tr", {style: "background-color:#900;"}, newtab);
- tabcell = createElement("td", "", newrow1, "Hervorheben 1");
- tabcell = createElement("td", "", newrow2, "Hervorheben 2");
- tabcell = createElement("td", "", newrow3, "Verberge");
- for (var r in Global.availableRooms) {
- if (Global.availableRooms[r].diseases.length > 0) {
- tabcell = createElement("td", "", newrow1);
- newinput = createElement("input", {
- "id": "hl" + r,
- "type": "checkbox",
- "checked": highlightBoerse[r],
- "title": Global.availableRooms[r].name,
- "style": "margin-right:0px;margin-left:1px;"
- }, tabcell);
- newinput.addEventListener("click", function () {
- highlightBoerse[this.id.replace("hl", "")] = this.checked;
- GM_setValue(lng + "_" + server + "_" + username + "_highlightBoerse", implode(highlightBoerse));
- click($("ex_navi").getElementsByTagName("div")[1]);
- }, false);
- tabcell = createElement("td", "", newrow2);
- newinput = createElement("input", {
- "id": "hl1" + r,
- "type": "checkbox",
- "checked": highlightBoerse1[r],
- "title": Global.availableRooms[r].name,
- "style": "margin-right:0px;margin-left:1px;"
- }, tabcell);
- newinput.addEventListener("click", function () {
- highlightBoerse1[this.id.replace("hl1", "")] = this.checked;
- GM_setValue(lng + "_" + server + "_" + username + "_highlightBoerse1", implode(highlightBoerse1));
- click($("ex_navi").getElementsByTagName("div")[1]);
- }, false);
- tabcell = createElement("td", "", newrow3);
- newinput = createElement("input", {
- "id": "bl" + r,
- "type": "checkbox",
- "checked": blockBoerse[r],
- "title": Global.availableRooms[r].name,
- "style": "margin-right:0px;margin-left:1px;"
- }, tabcell);
- newinput.addEventListener("click", function () {
- blockBoerse[this.id.replace("bl", "")] = this.checked;
- GM_setValue(lng + "_" + server + "_" + username + "_blockBoerse", implode(blockBoerse));
- click($("ex_navi").getElementsByTagName("div")[1]);
- }, false);
- }
- }
- var candtable = $("msgwindow").getElementsByTagName("table");
- candtable[0].style.width = "650px";
- candtable[0].setAttribute("class", "hoveryellow");
- var candtr = candtable[0].getElementsByTagName("tr");
- var candtd = candtr[0].getElementsByTagName("td");
- candtd[5].innerHTML = "Kaufen";
- createElement("td", {style: "text-align:right;"}, candtr[0], "Differenz");
- createElement("td", {style: "text-align:right;"}, candtr[0], "Restzeit");
- createElement("td", "", candtr[0], "");
- for (var tr = 1; tr < candtr.length; tr++) {
- candtr[tr].setAttribute("onmouseover", "");
- candtr[tr].setAttribute("onmouseout", "");
- candtd = candtr[tr].getElementsByTagName("td");
- var restlicheZeit = 0;
- var help = null;
- var uncurable = false;
- var buyable = false;
- var unwanted = false;
- var mark1 = false;
- for (var c = 0; c < candtd[2].childNodes.length; c++) {
- var disease = Global.availableDiseases[(/d_(\d+?)_15/).exec(candtd[2].childNodes[c].getAttribute("class"))[1]];
- help = candtd[2].childNodes[c].firstChild.getAttribute("class").slice(-1);
- if (help != "1") {
- restlicheZeit += disease["basetime"];
- if (help == "2") {
- uncurable = true;
- }
- else if (help == "0") {
- buyable = true;
- if (highlightBoerse[disease["room"][0]]) {
- candtd[2].style.backgroundColor = "green";
- }
- if (highlightBoerse1[disease["room"][0]]) {
- mark1 = true;
- }
- if (blockBoerse[disease["room"][0]]) {
- unwanted = true;
- }
- }
- }
- }
- if (uncurable) {
- candtd[2].style.backgroundColor = "red";
- if (unwanted || !buyable || !valShowUncurable) {
- candtr[tr].style.display = "none";
- }
- } else {
- if (unwanted || !buyable) {
- candtr[tr].style.display = "none";
- }
- else if (mark1) {
- candtd[2].style.backgroundColor = "yellow";
- }
- }
- var priceMax = parseFloat(candtd[3].innerHTML.replace(regDelimThou, "").replace(regDelimDeci, "."), 10);
- candtd[3].innerHTML = " " + number_format(priceMax, 2);
- candtd[3].style.textAlign = "right";
- candtd[4].style.textAlign = "right";
- candtd[5].style.textAlign = "right";
- var price = parseFloat(candtd[4].innerHTML.replace(regDelimThou, "").replace(regDelimDeci, "."), 10);
- candtd[4].innerHTML = " " + number_format(price, 2);
- candtd[5].getElementsByTagName("a")[0].innerHTML = " " + number_format(100 * price / priceMax) + "%";
- candtd[5].getElementsByTagName("a")[0].addEventListener("click", function () {
- clickYes = window.setInterval(function () {
- if (($("dlg_message").style.display != "none") && ($("btn_yes"))) {
- click($("btn_yes"));
- clearInterval(clickYes);
- }
- }, 50);
- }, false);
- createElement("td", {style: "text-align:right;"}, candtr[tr], " " + (price > priceMax ? "+" : "") + number_format(price - priceMax, 2));
- createElement("td", {style: "text-align:right;"}, candtr[tr], " " + time2str(restlicheZeit, 1) + "h");
- createElement("td", {style: "text-align:right;"}, candtr[tr], " " + (price > priceMax ? "---" : number_format((priceMax - price) * 3600 / restlicheZeit)));
- }
- var canddiv = $("ex_navi").getElementsByTagName("div");
- canddiv[1].addEventListener("mouseover", function () {
- this.style.backgroundColor = "blue";
- click(this);
- }, false);
- newdiv = null;
- newselect = null;
- newselect1 = null;
- candtable = null;
- candtr = null;
- candtd = null;
- canddiv = null;
- }
- function do_Shop() {
- var cand = $("dropzonesource").getElementsByTagName("div");
- for (var v in cand) {
- if (cand[v].addEventListener) {
- cand[v].addEventListener("mousedown", function () {
- $("dropzonetarget").style.border = "2px solid red";
- }, false);
- cand[v].addEventListener("mouseup", function () {
- $("dropzonetarget").style.border = "";
- }, false);
- }
- }
- cand = null;
- }
- //***********************************************************************************************************
- console.log( info + "do_login");
- function do_login() {
- var loc = reg2.exec(document.location.href);
- //Auto backing to login page
- if (document.location.href.search("logout") != -1) {
- window.setTimeout(function () {
- document.location.href = "http://www." + lng + ".kapihospital.com";
- }, 100);
- }
- else {
- //login
- try {
- var logindata = explode(GM_getValue("logindata", "[]"));
- }
- catch (err) {
- var logindata = [];
- }
- unsafeWindow.showDiv("login_div");
- $("login_div").style.zIndex = "20";
- $("login_div").getElementsByClassName("kh_btn")[0].addEventListener("click", function () {
- var currServer = $("l_server").value;
- var currUser = $("l_loginname").value.toLowerCase();
- GM_setValue(lng + "_" + currServer + "_username", currUser);
- }, false);
- function submit_login(currUserNr) {
- $("l_server").value = logindata[currUserNr][1];
- $("l_loginname").value = logindata[currUserNr][2];
- $("l_password").value = logindata[currUserNr][3];
- $("login_div").getElementsByClassName("kh_btn")[0].click();
- }
- var newdiv = createElement("div", {style: "position:absolute;top:0px;left:0px;width:412px;padding:10px;background-color:#999;-moz-border-radius:10px;"}, $("login_div"));
- var newbutton;
- for (var v = 0; v < logindata.length; v++) {
- if (logindata[v][1] != "0") {
- newbutton = createElement("button", {
- type: "button",
- class: "cursorclickable",
- id: "autologin" + v,
- style: "width:200px;height:20px;margin:3px;"
- }, newdiv, texte["server"] + " " + logindata[v][1] + "." + logindata[v][0] + ": " + logindata[v][2]);
- newbutton.addEventListener("click", function () {
- submit_login(this.id.replace("autologin", ""));
- }, false);
- }
- }
- newdiv = null;
- newbutton = null;
- }
- }
- /*************************** end function declarations **************************/
- console.log( info + "Removing ads");
- removeElement($("sky"));
- }, false);