您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
add some premium functionallity to the game
// ==UserScript== // @name Kapi Hospital Berater // @date 05.10.2017 // @version 2.4.3.04 // @include http://*kapihospital.com/* // @grant GM_getValue // @grant GM_setValue // @grant GM_addStyle // @grant GM_xmlhttpRequest // @description add some premium functionallity to the game // @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js // @namespace https://greasyfork.org/users/155060 // ==/UserScript== window.addEventListener("load", function() { // Umlaute var ae = "\u00E4"; var oe = "\u00F6"; var ue = "\u00FC"; var Ae = "\u00C4"; var Oe = "\u00D6"; var Ue = "\u00DC"; var sz = "\u00DF"; // global definitions var texte = new Object(); var gamepages = new Object(); var medi = new Object(); if (document.location.href.search("de.kapihospital.com")!=-1) { var lng = "de"; var gamepage = ".kapihospital.com"; var reg = /http:\/\/s(\d+)\.de\.kapihospital\.com\/(.*?)\.php(.*)/i; var reg2 = /http:\/\/(s\d+\.de\.|de\.|)kapihospital\.com\/(.*)/i; var delimThou = "."; var regDelimThou = /\./g; var delimDeci = ","; var regDelimDeci = /,/; } if (document.location.href.search("pl.kapihospital.com")!=-1) { var lng = "pl"; var gamepage = ".pl.kapihospital.com"; var reg = /http:\/\/s(\d+)\.pl\.kapihospital\.com\/(.*?)\.php(.*)/i; var reg2 = /http:\/\/(s\d+\.|www\.|)kapihospital\.com\/(.*)/i; var delimThou = "."; var regDelimThou = /\./g; var delimDeci = ","; var regDelimDeci = /,/; } if (document.location.href.search("uk.kapihospital.com")!=-1) { var lng = "uk"; var gamepage = ".uk.kapihospital.com"; var reg = /http:\/\/s(\d+)\.uk\.kapihospital\.com\/(.*?)\.php(.*)/i; var reg2 = /http:\/\/(s\d+\.|www\.|)kapihospital\.com\/(.*)/i; var delimThou = "."; var regDelimThou = /\./g; var delimDeci = ","; var regDelimDeci = /,/; } loadLanguage(lng); gamepages["de"] = "http://www.de.kapihospital.com"; gamepages["pl"] = "http://www.pl.kapihospital.com/"; gamepages["uk"] = "http://www.uk.kapihospital.com/"; //*********************************************************************************************************** var scriptUrl = "https://userscripts-mirror.org/scripts/show/149667"; 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 = false; var candtable = document.getElementsByTagName("table"); var username = ""; var valRackLimit = ""; var valMaxRackLimit = ""; var valGlobalClockInTitle = ""; var questTime = ""; var valStartQuestAutomatic = false; var logindata = new Array; 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() { //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;}"); // Updatecheck if (GM_getValue("valUpdate",true)) { valLastUpdate = GM_getValue("valLastUpdate",""); if(valLastUpdate=="") { GM_xmlhttpRequest({ method: "GET", url: "https://userscripts-mirror.org/scripts/source/149667.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://userscripts-mirror.org/scripts/source/149667.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://userscripts-mirror.org/scripts/source/149667.user.js"; } } } }); } } var documentTitle = document.title; try{var maincontainer = $("border4").parentNode;}catch(err){var maincontainer=all;} try{var werbecontainer = $("defaultUpjersToolbarContainer").parentNode;}catch(err){var werbecontainer=all;} var lastXmlRequest = 0; var rooms = new Array(); var patients = new Array(); var roomTimes = new Object(); 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); // 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 = new Object(); // 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_done]: count of minitreatments done // 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; } } }*/ //For non Premium Players, read patient stats from Server if( ! Global.ISPREMIUM ) { var patids = Global.refPatients.values(); for(var v=0; v < patids.length; v++ ) { refreshPatient(patids[v]["id"], false); } } if(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]){ $("help1").innerHTML += "<br>Diseases:" for(var v in patientDiseases[patientId]){ $("help1").innerHTML += "<br>"+v+" : "+patientDiseases[patientId][v]; } } $("help1").innerHTML += "<br>" } $("help1").innerHTML += "<br>Floor:" + Global.selectedFloor; if(roomId!=0){ $("help1").innerHTML += "<br>Roominfos:" 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[0][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[unsafeWindow.Rack._actualMedType].size() / unsafeWindow.Rack._elementsPerPage ); if( unsafeWindow.Rack._curPage == 1 ) unsafeWindow.Rack.showPage( max ); else unsafeWindow.Rack.showPage( prev ); }, false ); $("racknavigation_right").addEventListener("click", function( ) { var next = unsafeWindow.Rack._curPage + 1; var max = Math.ceil( unsafeWindow.Rack._elements[unsafeWindow.Rack._actualMedType].size() / unsafeWindow.Rack._elementsPerPage ); if( next > max ) unsafeWindow.Rack.showPage( 1 ); else unsafeWindow.Rack.showPage( 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(); */ // 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["optionen"]); newbutton.addEventListener("click",function(){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 = [ [], ["Apotheke Pillenexpress", "shop1", 1, 1], [Ae + "rztevereinigung und Wettbewerb", "guildhouse", 3, 1], ["Rathaus", "townhall", 3, 1], ["Medizinischer Gro" + sz + "handel", "shop2", 1, 1], ["Zeitungsredaktion", "editoraloffice", 3, 1], ["Autoh" + ae + "ndler", "ambulancestore", 3, 2], ["Forschungszentrum", "rcenter", 3, 2], [], ["Internetcafe", "shop3", 1, 2], ["Architekturb" + ue + "ro", "architect", 3, 2], ["Tante-Emma-Laden", "shop4", 1, 2], ["Bushaltestelle", "busstop", 3, 1], ["Speakers Corner", "speakers", 3, 1], ["Garage", "garage", 2, 1], ["Bank", "bank", 3, 1], ["Patientenb" + oe + "rse", "exchange", 2, 1], ["Fr" + ae + "ulein Rosenwasser", "goodgirl", 3, 1], ["Dr. Knievel", "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) { var 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); // Neue Autobuttons var arrQuicklinks2 = [ [texte["autoBuy"]], [texte["autoNurse"]], [texte["autoClean"]], [texte["autoDisposeMedi"], 3] ]; for (var v = 0; v < arrQuicklinks2.length; v++) { var 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 = Array(); 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, "Medis kaufen"); 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, "kaufen"); createElement("td", {style: "text-align:center;"}, tabrow, "Bezeichnung"); createElement("td", {style: "text-align:center;"}, tabrow, "Preis"); for (var i = 0; i < unsafeWindow.Rack.elements.length; i++) { for (var k in Global.availableMedics._object) { if (Global.availableMedics._object[k]["id"] == unsafeWindow.Rack.elements[i]["product"]) { if (Global.availableMedics._object[k]["shop"] != 0) { if (Global.availableMedics._object[k]["shop"] < 3 || city2Allowed) { //console.log(Global.availableMedics._object[k]); if (( diff = valMaxRackLimit - parseInt(unsafeWindow.Rack.elements[i]["amount"], 10) ) > 0) { medprice = number_format((Global.availableMedics._object[k]["price"] * diff), 2, ',', '.'); //console.log("medprice >"+ medprice + "<" ); price_overall += parseFloat((Global.availableMedics._object[k]["price"] * diff), 2); console.log("price_overall >" + price_overall + "<"); //medstoBuy.push( { "itemid":Global.availableMedics._object[k]["id"], "amount":diff } ); //buytext += diff + " x " +Global.availableMedics._object[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._object[k]["id"] + "#" + diff, "type": "checkbox", "checked": "checked", "title": Global.availableMedics._object[k]["name"], "style": "margin-right:0px;margin-left:1px;"}, tabcell); newinput.addEventListener("click", function () { if( this.checked ) { if( $("am_"+this.id.split('#')[0]) ) { $("am_"+this.id.split('#')[0]).removeAttribute("readonly") } } else { if( $("am_"+this.id.split('#')[0]) ) { $("am_"+this.id.split('#')[0]).setAttribute("readonly", "readonly") } } calc_overall(); return; },false); buymed.check = newinput; 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); buymed.diff_inp = newinput; 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 ); medstoBuy.push(buymed); 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(){ //sorting by shop medstoBuy.sort(function(a, b){ return a.product.shop-b.product.shop }) lastshop=-1; buyme = Array(); for( idx in medstoBuy ) { if( medstoBuy[idx].check.checked ) { if( lastshop > -1 && lastshop != medstoBuy[idx].product.shop ) { //shop has changed, so make request var payload = JSON.stringify(medstoBuy); params={}; params.shop=lastshop; params.products=JSON.stringify(buyme); console.log(params); unsafeWindow.Cart._sendRequest( "city.shop", "get", params, true); all.removeChild(dialogdiv); new Ajax.Request("service.setinfobox.php",{method:"get",parameters:{ infomsg:$("dlg_msgtype").value }}) all.removeChild($("dlg_message")); all.removeChild($("dlg_background")); buyme = Array(); } buyme.push( { "id":medstoBuy[idx].check.id.split('#')[0], "amount":$('am_'+medstoBuy[idx].check.id.split('#')[0]).value } ); lastshop = medstoBuy[idx].product.shop; } } // send also the last shop if( medstoBuy.length > 0 ) { params={}; params.shop=lastshop; params.products=JSON.stringify(buyme); unsafeWindow.Cart._sendRequest( "city.shop", "get", params, true); all.removeChild(dialogdiv); /*var answ = GM_xmlhttpRequest({ method: "GET", url: "service.setinfobox.php?infomsg="+$("dlg_msgtype").value // synchronous: true, }); console.log(answ);*/ /*all.removeChild($("dlg_message")); all.removeChild($("dlg_background"));*/ } },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; return; },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 || rooms[v].roomid == 60 ) { console.log( "Prüfe Raum: "+ rooms[v].topleft ); //Wenn ein Patient drin liegt if( rooms[v].patient != 0 ) { console.log("Bett hat 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); } /* adding minigolf rooms */ click($("floor_jump_90")); click($("floor_jump_1")); 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] = new Object; } 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 || currRoom["roomid"]==60) { // Bed if(currPatientId = parseInt(currRoom["patient"],10)) { if( patientDiseases[currPatientId] ) { if(!$("p"+currPatientId)) { patientDiseases[currPatientId]["state"] = 2; patientDiseases[currPatientId]["floor"] = currRoom["roomid"]==60 ? 90 : 1; patientDiseases[currPatientId]["room"] = currRoom["roomid"]; } } else { initPatient(currPatientId); } if( $( "treatmentr"+currRoom["topleft"] ) || $( "barmaidr"+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"] ) ); } $("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:"global time",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:"floor time",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/barkeeper,3=in room,4=treatment/bar,5=cured if( patientDiseases[currPatientId]["state"] !=5 ) { if(patientDiseases[currPatientId]["state"] == 2 ) { patientDiseases[currPatientId]["m_done"]++; 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 || patientDiseases[currPatientId]["room"] == 60 ) { 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_done"]; 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_done"] < 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; // waiting doctors canddiv = $("golfwaitingroom").getElementsByClassName("waitingdoctor"); 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:"quest time",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_done"]=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["shopHeuteNichtErreichbar"]); } },false); newdiv=null;newdiv1=null;newbutton=null; } /*************************** end do_main() ******************************************/ /*************************** definition helper functions ****************************/ function loadLanguage(lang) { switch (lang) { case "de": texte["berater"] = "Berater"; texte["autologin1"] = "Ermittle aktive Sessions. Bitte 5 Sekunden warten<br>..."; texte["autologin2"] = "Alle Accounts eingeloggt."; texte["optionen"] = "Optionen"; texte["fertig"] = "Fertig"; texte["shopHeuteNichtErreichbar"] = "Shop heute nicht erreichbar"; texte["noch"] = "noch"; // 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+"ssen Popups erlaubt werden bei mehreren Accounts."; texte["info_Update"] = "Es wird gepr"+ue+"ft, ob eine neuere Version dieses Scriptes verf"+ue+"gbar ist."; texte["info_RackLow"] = "Ein Medikament wird markiert, falls der Lagerbestand unter diese Grenze f"+ae+"llt."; texte["info_RackMax"] = "Es werden beim automatischen Einkauf die Medikamente bis zu diesem Lagerbestand afgef"+ue+"llt."; texte["info_valGlobalClockInTitle"] = "Die globale Zeit wird im Fenstertitel angezeigt. Ansonsten im Fenster."; texte["info_valStartQuestAutomatic"] = "Soll sofort die nä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+"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+"schen"; texte["buy"] = "kaufen"; texte["cancel"] = "Abbrechen"; texte["autoBuy"] = "automatische Lagerauff"+ue+"llung"; texte["autoClean"] = "R"+ae+"ume s"+ae+"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"; // boerse texte["showUncurable"] = "Zeige Unheilbare"; //Systemwords texte["waehrung"] = "hT"; //Global._KH_CURRENCY texte["coins"] = "Coins"; break; case "uk": texte["berater"] = "Adviser"; texte["autologin1"] = "Checking active sessions. Please wait 5 seconds<br>..."; texte["autologin2"] = "All accounts logged in."; texte["optionen"] = "Options"; texte["fertig"] = "Done"; texte["shopHeuteNichtErreichbar"] = "The shop is not available"; texte["noch"] = "Left"; // options panel texte["set_ScriptHomepage"] = "Script Homepage"; texte["set_AutoLogin"] = "Automatic login"; texte["set_Update"] = "Update"; texte["set_RackLow"] = "Minimal rackamount"; texte["set_valGlobalClockInTitle"] = "Czas w tytule karty."; 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_valGlobalClockInTitle"] = "Global clock in title"; texte["info_valStartQuestAutomatic"] = "Should the next quest start automaticly, if the previous ends?"; texte["info_RackMax"] = "By automatic buy, the product will be filled until this limit."; texte["confirmUpdate"] = "Jest nowa wersja skryptu Doradca Kapi Hospital. Czy chcesz ja zainstalowac?"; texte["zeigePasswoerter"] = "Pokaz haslo"; 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"; // boerse texte["showUncurable"] = "Show uncurable"; //Systemwords texte["waehrung"] = "hT"; //Global._KH_CURRENCY texte["coins"] = "Coins"; break; case "pl": texte["berater"] = "Doradca"; texte["autologin1"] = "Sprawdzenie aktywnych sesji. Prosze odczekac 5 sekund<br>..."; texte["autologin2"] = "Wszystkie konta zalogowane."; texte["optionen"] = "Opcje"; texte["fertig"] = "Gotowe"; texte["shopHeuteNichtErreichbar"] = "Sklep jest teraz niedostepny"; texte["noch"] = "Pozostalo"; // options panel texte["set_ScriptHomepage"] = "Strona domowa skryptu"; texte["set_AutoLogin"] = "Automatyczne logowanie"; texte["set_Update"] = "Aktualizacja"; texte["set_RackLow"] = "Minimalna ilosc lekarstw w regale"; texte["set_valGlobalClockInTitle"] = "Czas w tytule karty."; texte["info_AutoLogin"] = "Po wprowadzeniu nazwy uzytkownika i hasla nastepuje automatyczne logowanie. Pozwala to zachowac ciaglosc grania. Przy wielu kontach musi byc dozwolone wyskakiwanie okienek."; texte["info_Update"] = "Automatycznie sprawdza czy jest nowsza wersja tego skryptu."; texte["info_RackLow"] = "Produkt zostanie zaznaczony, gdy jego ilosc w regale spadnie ponizej tego poziomu"; texte["info_valGlobalClockInTitle"] = "Czas globalny jest wyswietlany w pasku tytulowym okna."; texte["info_valStartQuestAutomatic"] = "Should the next quest starrt automaticly, if the previous ends?"; texte["info_RackMax"] = "By automatic buy, the product will be filled until this limit."; texte["confirmUpdate"] = "Jest nowa wersja skryptu Doradca Kapi Hospital. Czy chcesz ja zainstalowac?"; texte["zeigePasswoerter"] = "Pokaz haslo"; texte["autoLogin"] = "Automatyczne logowanie"; texte["accountAktiv"] = "Konto aktywne"; texte["server"] = "Serwer"; texte["ungueltigerServer"] = "Bledny serwer"; texte["name"] = "Login"; texte["passwort"] = "Haslo"; texte["speichern"] = "Zapisz"; texte["loeschen"] = "Usun"; 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"] = "Pokaz wyleczone choroby"; 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"] = "Wolny"; texte["inBehandlung"] = "Leczony"; texte["waitingroom"] = "Poczekalnia"; texte["Gesamt"] = "Overall"; // boerse texte["showUncurable"] = "Pokaz nieuleczalnych"; //Systemwords texte["waehrung"] = "hT"; //Global._KH_CURRENCY texte["coins"] = "Monety"; 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][medid]["price"] * amount), 2, ',', '.'); $('prc'+medid).innerHTML = medprice + " " + Global._KH_CURRENCY; overall += parseFloat((Global.availableMedics[0][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=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=time/60; if (time>=1) str=Math.floor(time%24)+str; else str="0"+str; //days time=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); } } function implode(arr){//--- function written by Jan-Hans try { var line = new String(); var InternalCounter = -1; var NoKey = new 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["optionen"]); 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 = new Object(); 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= new Array; } 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:"http://dqt9wzym747n.cloudfront.net/pics/popin/contracts/anullieren.gif",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"]); // neue leere zeile 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:"Patienten",class:"cursorclickable"},newth); newinput.addEventListener("click",function(){ buildPatientsTable(1,showCured,minipic); },false); newinput = createElement("input",{type:"button",style:"margin-right:3px",value:"R"+ae+"ume",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 = new Object(); 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] = new Object(); 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"]); var disease_baseclass = "d"; var icon_baseclass = "d"; if( Global.selectedFloor == 90 ) { disease_baseclass = "minigolf_d"; icon_baseclass = "mgd"; } 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:disease_baseclass+"_a_30 "+icon_baseclass+"_"+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 || rooms[v].roomid != 60 ) ) { var croom=Global.refRooms.get("r"+rooms[v].topleft); console.log("cleaner for 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; var type = unsafeWindow.Rack._actualMedType; console.log("MediType: " + type); 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 && currRoom["roomid"] !=60 ) { 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[type]; i++ ) { if( unsafeWindow.Rack._elements[type][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[type][i]["amount"], rlevel:unsafeWindow.Rack._elements[type][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] ) { patientDiseases[patientId] = new Object; patientDiseases[patientId]["m_done"] = 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[ (Global.selectedFloor == 90?2:0)][help["diseases"][v]]["room"][0]] = 1; } } } getPatientInfos( patientId, false ); 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#diseases'); // is not set with special diseases if( obj[0] ) { for(var w=0; w<obj[0].children.length; w++ ) { var disease = (/d_(\d+)_50/).exec(obj[0].children[w].firstElementChild.getAttribute("class"))[1]; if(obj[0].children[w].firstElementChild.firstElementChild) { patientDiseases[patientId][disease] = (/(.+) (.+)/).exec(obj[0].children[w].firstElementChild.firstElementChild.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_done"] = 4; for(var v=0; v<canddiv.length; v++ ) { var classstr = canddiv[v].getAttribute("class").trim(); if( classstr == "minitreatment" ) { patientDiseases[patientId]["m_done"]--; cured = false; } } if( with_nurse ) { for(var v=0; v<canddiv.length; v++ ) { var classstr = canddiv[v].getAttribute("class").trim(); if( classstr == "minitreatment" ) { var help = Global.refPatients.get("p"+patientId); if( patientDiseases[patientId]["state"] == 1 && !( $("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 || help2["roomid"] == 60 )? 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 || help2["roomid"] == 60 ) ? 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 = new Object(); var newdiv; var restlicheZeit = 0; var disease_baseclass = "d"; var icon_baseclass = "d"; if( Global.selectedFloor == 90 ) { disease_baseclass = "minigolf_d"; icon_baseclass = "mgd"; } 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: disease_baseclass+"_a_15 " + icon_baseclass + "_"+disease+"_15",style:"opacity:0.5;"},newdiv); createElement("div",{class:"treatment_icon_15 treatment_icon_15_1"},newdiv1); } else { newdiv1 = createElement("div",{class:disease_baseclass+"_a_15 " + icon_baseclass + "_"+disease+"_15"},newdiv); } } else { if(patientDiseases[currPatientId][disease]=="cured") { newdiv1 = createElement("div",{class:disease_baseclass+"_a_30 " + icon_baseclass + "_"+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:disease_baseclass+"_a_30 " + icon_baseclass + "_"+disease+"_30"},newdiv); createElement("div",{class:"treatmenticons "+patientDiseases[currPatientId][disease]+"s"},newdiv1); } else { newdiv1 = createElement("div",{class:disease_baseclass+"_a_30 " + icon_baseclass + "_"+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_done"]==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 ); }, 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); //refresh on minigolf if( Global.selectedFloor == 90 ) { var help = Global.refPatients.get("p"+currPatientId); if(help) { patientDiseases[currPatientId]["floor"] = help["floor"]; for(var j=0;j<help["diseases"].length;j++) { patientDiseases[currPatientId][help["diseases"][j]] = ""; patientDiseases[currPatientId]["room"+Global.availableDiseases[2][help["diseases"][j]]["room"][0]] = 1; } } } if(patientDiseases[currPatientId]) { 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][disease] = "heartbeat"; result = disease; } else { patientDiseases[patientId]["room"+currRoom.roomid]=1; } } } } } } } 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_done"]>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;v++) if(canddiv[v].id=="diseases") break; patientDiseases[currPatientId] = new Object; var cured = true; for(var w=0; w<canddiv[v].children.length; w++ ){ var disease = (/d_(\d+)_50/).exec(canddiv[v].children[w].firstElementChild.getAttribute("class"))[1]; if(canddiv[v].children[w].firstElementChild.firstElementChild ){ patientDiseases[currPatientId][disease] = (/(.+) (.+)/).exec(canddiv[v].children[w].firstElementChild.firstElementChild.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_done"] = 4; for(var v=0;v<canddiv.length;v++) { if( canddiv[v].getAttribute("class") != "minitreatment doneNormal" && canddiv[v].getAttribute("class") != "minitreatment doneMinigolf" ) { patientDiseases[currPatientId]["m_done"]--; 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+"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(){ console.log("do_Quest"); if($("ga_running")) { if($("ga_running").style.display != "none") { questTime = now+unsafeWindow.GarageOld["ends"]; GM_setValue(lng+"_"+server+"_"+username+"_questTime", questTime); } else { window.setTimeout(do_Quest,200); } } } function start_Quest() { if( unsafeWindow.GarageOld["ends"] > 0 ) return; unsafeWindow.show_page("garage"); window.setTimeout( function() { if( $("newswindow_badge") ) { //Erfolgsmeldung wird angezeigt console.log("Im Finish"); unsafeWindow.close_badge(); } window.setTimeout( function() { if( $("ga_new") && $("ga_new").style.display != "none" ) { if( unsafeWindow.GarageOld.actualOperation < 8 ) unsafeWindow.GarageOld.doJob(); } window.setTimeout( unsafeWindow.close_page, 500 ); }, 400 ); }, 500 ); } 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"){ // Inbox var msgIdIn = new Array; 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 var 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":"vorige Nachricht","onclick":"javascript:Messages.showMessage("+msgIdIn[c-1]+",'inbox');","class":"cursorclickable msg_input"},$("msgNavigation")); if(c<msgIdIn.length-1) createElement("input",{"type":"button","value":"n"+ae+"chste Nachricht","onclick":"javascript:Messages.showMessage("+msgIdIn[c+1]+",'inbox');","class":"cursorclickable msg_input"},$("msgNavigation")); } } } if($("deleteContact")){ // contacts var contacts = new Array(); 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) { /* loader-Objekt initialisieren */ loader.onload = function() { if(i < (elemente.length-1)) { laden(elemente, i+1); } else { /* alle Elemente geladen */ } } } 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=new Object; var highlightBoerse1=new Object; 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[0][(/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; } //*********************************************************************************************************** function do_login() { var loc = reg2.exec(document.location.href); if (loc[2].search("logout")!=-1) { window.setTimeout(function(){ document.location.href="http://www"+gamepage; },100);//auf login-seite leiten } else { //login try{ var logindata = explode(GM_getValue("logindata","[]")); } catch(err){ var logindata= new Array; } 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 **************************/ },false);