// ==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://gf.qytechs.cn/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://gf.qytechs.cn/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://gf.qytechs.cn/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://gf.qytechs.cn/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://gf.qytechs.cn/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);