- // ==UserScript==
- // @name OChat
- // @author Mertyr_u82
- // @namespace http://ochat.crypt-msg.de/
- // @version 0.12
- // @description Ochat - An Ogame Ally Chat which gets displayed ingame
- // @include http://*.ogame.*/game/index.php?*page=*
- // @include http://*-*.ogame.gameforge.com/game/index.php?page=*
- // @grant GM_listValues
- // @grant GM_getValue
- // @grant GM_setValue
- // @grant GM_deleteValue
- // @grant GM_xmlhttpRequest
- // @copyright 2014+, Mertyr
- // @require http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js
- // ==/UserScript==
- var OJconfig;
- var mouseDragging = null;
- var lastAllyMsg = 0;
- var lastAllyMsgRead = 0;
- var allyChatTimer;
- var allyChatStatusTimer;
- var allyChatRate;
- var panelIsOpen = 0;
- var allyChatIsOpen = 0;
- var onlineListIsOpen = 0;
- var register = 0;
- var allyChatContinueLoading = 0;
-
- var OJVersion = "0.12";
- var devTrigger = 0;
- var devAlert = 0;
- var OJIsBeta = 0;
-
- jQuery.fn.exists = function() {return this.length>0;};
- jQuery.fn.slider = function() {
- $(this).children("h3").each(function(index, element){
- $(element).css("font-weight", "600");
- $(element).css("text-align", "center");
- $(element).css("height", "20px");
- $(element).css("line-height", "20px");
- $(element).css("margin-bottom", "2px");
- $(element).css("border", "1px solid #CCCCCC");
- $(element).css("border-radius", "5px");
-
- $(element).next().css("height", "auto");
- $(element).next().css("line-height", "20px");
- $(element).next().css("margin-bottom", "2px");
- $(element).next().css("border", "1px solid #999999");
- $(element).next().css("border-radius", "5px");
- $(element).css("cursor", "pointer");
-
- $(element).next().hide();
- $(element).click(function(event) {
- $(this).next().toggle();
- });
- });
- };
-
- function OJgetCurrentUniverse()
- {
- var url = document.URL;
- url = url.replace("http://s", "");
- url = url.replace(/\.ogame\.gameforge\.com\/.*/, "");
- return url;
- }
-
- function api(action, func, data) //data starts with "&key=value&key2=....."
- {
- if(typeof data === 'undefined')
- {
- data = "";
- }
- if(action == "login" || action == "register")
- {
- data = "action=" + action + data;
- }
- else
- {
- var uni = OJgetCurrentUniverse();
- var name = OJconfig["userName_" + uni];
- var passHash = OJconfig["password_" + uni];
- var hashed = 0;
- if(typeof OJconfig["hashed_" + uni] !== 'undefined')
- {
- hashed = OJconfig["hashed_" + uni];
- }
- data = "hashed=" + hashed + "&name=" + name + "&passHash=" + passHash + "&uni=" + uni + "&action=" + action + data;
- }
- var url = "http://ojobs.crypt-msg.de/api.php";
- if(devTrigger == 1)
- {
- url = "http://localhost/ojobs/api.php";
- }
- GM_xmlhttpRequest({
- method: "POST",
- url: url,
- data:data,
- headers: {
- "Content-Type": "application/x-www-form-urlencoded"
- },
- onabort: function(response) {
- alert("abort" + response.responseText);
- },
- onerror: function(response) {
- alert("error" + response.responseText);
- },
- ontimeout: function(response) {
- alert("timeout" + response.responseText);
- },
- onload: function(response) {
- if(devAlert == 1)
- {
- //$("#OJobs_panel").append("<span>" + response.responseText + "</span><br/>\n");
- dAlert(response.responseText);
- }
- func(response);
- var json = JSON.parse(response.responseText);
- return json;
- }
- });
- }
-
- function OJReadMetas(uni)
- {
- if(typeof uni === 'undefined')
- {
- uni = OJgetCurrentUniverse();
- }
- var metas = document.getElementsByTagName('meta');
- var result = new Array();
- for (i=0; i<metas.length; i++) {
- var name = metas[i].getAttribute("name");
- if (name == "ogame-player-id") {
- result["ogameId_" + uni] = metas[i].getAttribute("content");
- }
- else if (name == "ogame-player-name") {
- result["userName_" + uni] = metas[i].getAttribute("content");
- }
- else if (name == "ogame-alliance-tag") {
- result["alliance_" + uni] = metas[i].getAttribute("content");
- }
- }
- return result;
- }
-
- function OJAllyChatBlink(lastMsg, hidden)
- {
- if(typeof hidden === 'undefined')
- {
- hidden = 0;
- }
- if(lastMsg > 0 && allyChatContinueLoading == 1 && allyChatIsOpen == 0 && panelIsOpen == 1)
- {
- $("#OJobs_allyChat_header").css("background-color", "#26aa2b");
- $(".OJobs_allyChat_blinkText").css("color", "#6464dc");
- }
- else if( lastMsg > 0 && allyChatContinueLoading == 1 && panelIsOpen == 0)
- {
- $("#OJobs_tb").css("color", "#26aa2b");
- $(".OJobs_allyChat_blinkText").css("color", "#6464dc");
- }
- else if(lastMsg > 0 && lastMsg > lastAllyMsgRead)
- {
- $(".OJobs_allyChat_blinkText").css("color", "#6464dc");
- }
- else if(lastMsg == -1 || lastMsg == lastAllyMsgRead)
- {
- $(".OJobs_allyChat_from").css("color", "#6F9FC8");
- $(".OJobs_allyChat_blinkText").removeClass("OJobs_allyChat_blinkText");
- $("#OJobs_tb").css("color", "");
- $("#OJobs_allyChat_header").css("background-color", "");
- }
- else if(lastMsg == 0)
- {
- $("#OJobs_tb").css("color", "");
- $("#OJobs_allyChat_header").css("background-color", "");
- }
- }
-
- function OJReadConfig()
- {
- OJconfig = new Array();
- GM_listValues().forEach(function(val) {
- OJconfig[val] = GM_getValue(val);
- });
- var metas = OJReadMetas();
- for(var m in metas)
- {
- OJconfig[m] = metas[m];
- }
- OJconfig["uni"] = OJgetCurrentUniverse();
- if((typeof OJconfig["userName_" + OJconfig["uni"]] === 'undefined' || OJconfig["userName_" + OJconfig["uni"]] == "" || OJconfig["userName_" + OJconfig["uni"]] == 'undefined') && $("#playerName").children("span").html().replace(/\s*/g, "") != 'undefined')
- {
- OJconfig["userName_" + OJconfig["uni"]] = $("#playerName").children("span").html().replace(/\s*/g, "");
- }
- if(typeof OJconfig["panelIsOpen_" + OJconfig["uni"]] == 'undefined')
- {
- OJconfig["panelIsOpen_" + OJconfig["uni"]] = "0";
- GM_setValue("panelIsOpen_" + OJconfig["uni"], "0");
- }
- if(typeof OJconfig["allyChatIsOpen_" + OJconfig["uni"]] === 'undefined')
- {
- OJconfig["allyChatIsOpen_" + OJconfig["uni"]] = "0";
- GM_setValue("allyChatIsOpen_" + OJconfig["uni"], "0");
- }
- if(typeof OJconfig["onlineListIsOpen_" + OJconfig["uni"]] === 'undefined')
- {
- OJconfig["onlineListIsOpen_" + OJconfig["uni"]] = "0";
- GM_setValue("onlineListIsOpen_" + OJconfig["uni"], "0");
- }
- if(typeof OJconfig["allyChat_refresh_" + OJconfig["uni"]] === "undefined")
- {
- OJconfig["allyChat_refresh_" + OJconfig["uni"]] = 10;
- GM_setValue("allyChat_refresh_" + OJconfig["uni"], 10);
- }
- if(typeof OJconfig["allyChat_fontSize_" + OJconfig["uni"]] === "undefined")
- {
- OJconfig["allyChat_fontSize_" + OJconfig["uni"]] = 12;
- GM_setValue("allyChat_fontSize_" + OJconfig["uni"], 12);
- }
- if(typeof OJconfig["lastAllyMsgRead_" + OJconfig["uni"]] === "undefined")
- {
- OJconfig["lastAllyMsgRead_" + OJconfig["uni"]] = 0;
- GM_setValue("lastAllyMsgRead_" + OJconfig["uni"], 0);
- }
- if(typeof OJconfig["allyChat_continueLoading_" + OJconfig["uni"]] === "undefined")
- {
- OJconfig["allyChat_continueLoading_" + OJconfig["uni"]] = 1;
- GM_setValue("allyChat_continueLoading_" + OJconfig["uni"], 1);
- }
- }
-
- function OJobsAllyChatSend(message)
- {
- lastAllyMsgRead = lastAllyMsg;
- var func = function(response) {
- result = JSON.parse(response.responseText);
- if(result.status >= 1)
- {
- lastAllyMsgRead = result.messageId;
- OJconfig["lastAllyMsgRead_" + OJconfig["uni"]] = lastAllyMsgRead;
- GM_setValue("lastAllyMsgRead_" + OJconfig["uni"], lastAllyMsgRead);
- $("#OJobs_allyChat_input").val("");
- OJAllyChatBlink(-1);
- }
- else
- {
- $("#OJobs_allyChat_input").val(result.message);
- OJAllyChatBlink(lastAllyMsg);
- }
- };
- api("allyChat_send", func, "&message=" + message);
- }
-
- function OJobsAllyChatGetMessages(hidden)
- {
- allyChatContinueLoading = allyChatContinueLoading%2;
- if(allyChatIsOpen != "1" && allyChatContinueLoading != 1)
- {
- clearTimeout(allyChatTimer);
- }
- else
- {
- var func = function(response) {
- result = JSON.parse(response.responseText);
- if(result.status == 1)
- {
- for (var key in result.messages) {
- var id = result.messages[key].id;
- var from = result.messages[key].name;
- var message = result.messages[key].message;
- var at = result.messages[key].at;
- if(id > lastAllyMsgRead)
- {
- $("#OJobs_allyChat_log").append("<span title=\"" + at + "\" class=\"OJobs_allyChat_blinkText OJobs_allyChat_from\" ><b>" + from + ":</b> </span>" + message + "<br />\n");
- }
- else
- {
- $("#OJobs_allyChat_log").append("<span title=\"" + at + "\" class=\"OJobs_allyChat_from\" ><b>" + from + ":</b> </span>" + message + "<br />\n");
- }
- if(id > lastAllyMsg)
- {
- lastAllyMsg = id;
- }
- }
- if(result.messages.length > 0)
- {
- $(".OJobs_allyChat_from").css("cursor", "pointer").css("color", "#6F9FC8");
- $(".OJobs_allyChat_blinkText").css("color", "#6464dc");
- $("#OJobs_allyChat_log").scrollTop($("#OJobs_allyChat_log")[0].scrollHeight);
- if(typeof hidden === 'undefined')
- {
- hiddenn = 0;
- }
- if(hidden == 0 || lastAllyMsg > lastAllyMsgRead)
- {
- OJAllyChatBlink(lastAllyMsg, hidden);
- }
- }
- }
- else
- {
- alert(result.message);
- }
- allyChatTimer = setTimeout(function() {OJobsAllyChatGetMessages()}, OJconfig["allyChat_refresh_" + OJconfig["uni"]]*1000);
- };
- api("allyChat_getMessages", func, "&lastMsg=" + lastAllyMsg);
- }
- }
-
- function OJobsAllyChatGetOnlineStatus(hidden)
- {
- allyChatContinueLoading = allyChatContinueLoading%2;
- if(onlineListIsOpen == 1 && allyChatContinueLoading != 1)
- {
- clearTimeout(allyChatStatusTimer);
- }
- else
- {
- var func = function(response) {
- result = JSON.parse(response.responseText);
- if(result.status == 1)
- {
- $("#OJobs_allyChat_whoIsOnline").html("");
- for (var key in result.users) {
- var id = result.users[key].id;
- var name = result.users[key].name;
- var time = result.users[key].time;
- var minutes = result.users[key].minutes;
- var hours = result.users[key].hours;
- var statusClass = "OJobs_statusOnline";
- if(time > 900 && time < 3600)
- {
- statusClass = "OJobs_statusShort";
- }
- else if(time > 3600)
- {
- statusClass = "OJobs_statusLong";
- }
- var timeString = minutes + "m";
- if(hours > 0)
- {
- timeString = hours + "h" + timeString;
- }
- $("#OJobs_allyChat_whoIsOnline").append("<span ogameId=\"" + id + "\" class=\"" + statusClass + "\">" + name + "</span><span class=\"" + statusClass + " OJobs_statusTime\">" + timeString + "</span><span class=\"clearRight\"> </span><br />\n");
- }
- $(".OJobs_statusTime").css("float", "right");
- $(".clearRight").css("clear", "right");
- $(".OJobs_statusOnline").css("color", "#26aa2b");
- $(".OJobs_statusShort").css("color", "#e1d000");
- $(".OJobs_statusLong").css("color", "#a63000");
- }
- else
- {
- alert(result.message);
- }
- allyChatStatusTimer = setTimeout(function() {OJobsAllyChatGetOnlineStatus()}, 15000);
- };
- api("allyChat_whoisOnline", func);
- }
- }
-
- function OJCreateContent()
- {
- $("#OJobs_panel").append("<div id=\"OJobs_slider\">");
- $("#OJobs_slider").append("<h3>Config</h3><div id=\"OJobs_config\"></div>");
- $("#OJobs_slider").append("<h3 id=\"OJobs_allyChat_header\" >Ally-Chat</h3><div id=\"OJobs_allyChat\"></div>");
- $("#OJobs_slider").append("<h3 id=\"OJobs_allyChat_whoIsOnline_header\" >Online-Liste</h3><div id=\"OJobs_allyChat_whoIsOnline\"></div>");
- $("#OJobs_slider").slider();
-
- $("#OJobs_config").append("<table><tr><td>" +
- "Refresh: </td><td><textarea id=\"OJobs_config_allyChat_refresh\" \" /></textarea>" +
- "</td></tr><tr><td>" +
- "FontSize: </td><td><textarea id=\"OJobs_config_allyChat_fontSize\" /></textarea>" +
- "</td></tr><tr><td>" +
- "<span title=\"Sollen wie Nachrichten auch dann abgerufen werden, wenn das Fenster minimiert ist?\">Durchgehend laden</span>: </td><td><input type=\"checkbox\" name=\"OJobs_config_allyChat_continueLoading\" id=\"OJobs_config_allyChat_continueLoading\" /><i>(Zeigt Online-Status)</i>" +
- "</td></tr></table>");
-
- $("#OJobs_allyChat").append("<div id=\"OJobs_allyChat_log\"></div>");
- $("#OJobs_allyChat").children(0).css("height", "280px");
- $("#OJobs_allyChat").append("<textarea id=\"OJobs_allyChat_input\" ></textarea>");
- $("#OJobs_allyChat_input").css("width", "70%").css("height", "1.2em").css("min-height", "1.2em").css("max-height", "1.2em").css("top", "5px");
- $("#OJobs_allyChat").append(" <button id=\"OJobs_allyChat_send\">Send</button>");
-
- $("#OJobs_allyChat_log").css("overflow", "auto");
- $("#OJobs_allyChat_log").click(function(event) {
- OJAllyChatBlink(-1);
- if(lastAllyMsg != 0)
- {
- lastAllyMsgRead = lastAllyMsg;
- OJconfig["lastAllyMsgRead_" + OJconfig["uni"]] = lastAllyMsgRead;
- GM_setValue("lastAllyMsgRead_" + OJconfig["uni"], lastAllyMsgRead);
- }
- });
- $("#OJobs_allyChat_log").css("word-wrap", "break-word");
- $("#OJobs_allyChat_header").click(function(event) {
- OJAllyChatBlink(0);
- $("#OJobs_allyChat_log").scrollTop($("#OJobs_allyChat_log")[0].scrollHeight);
- if(lastAllyMsg != 0)
- {
- OJconfig["lastAllyMsgRead_" + OJconfig["uni"]] = lastAllyMsgRead;
- GM_setValue("lastAllyMsgRead_" + OJconfig["uni"], lastAllyMsgRead);
- }
- });
- $("#OJobs_allyChat_input").css("margin-left", "3px");
- OJconfig["allyChat_continueLoading_" + OJconfig["uni"]] = OJconfig["allyChat_continueLoading_" + OJconfig["uni"]]%2;
- allyChatContinueLoading = OJconfig["allyChat_continueLoading_" + OJconfig["uni"]];
- if(allyChatContinueLoading == 1)
- {
- $("#OJobs_config_allyChat_continueLoading").attr("checked", "checked");
- }
- $("#OJobs_config_allyChat_continueLoading").change(function(event) {
- if($("#OJobs_config_allyChat_continueLoading").is(":checked")){
- allyChatContinueLoading = 1;
- }
- else
- {
- allyChatContinueLoading = 0;
- }
- OJconfig["allyChat_continueLoading_" + OJconfig["uni"]] = allyChatContinueLoading;
- GM_setValue("allyChat_continueLoading_" + OJconfig["uni"], allyChatContinueLoading);
- });
-
- allyChatRate = OJconfig["allyChat_refresh_" + OJconfig["uni"]];
- $("#OJobs_config_allyChat_refresh").val(allyChatRate);
- $("#OJobs_config_allyChat_refresh").change(function(event) {
- if($("#OJobs_config_allyChat_refresh").val() < 3)
- {
- $("#OJobs_config_allyChat_refresh").val("3");
- }
- allyChatRate = $("#OJobs_config_allyChat_refresh").val();
- OJconfig["allyChat_refresh_" + OJconfig["uni"]] = allyChatRate;
- GM_setValue("allyChat_refresh_" + OJconfig["uni"], allyChatRate);
- }).css("height", "1.2em").css("min-height", "1.2em").css("max-height", "1.2em");
-
- allyChatRate = OJconfig["allyChat_refresh_" + OJconfig["uni"]];
- $("#OJobs_config_allyChat_refresh").val(allyChatRate);
- $("#OJobs_config_allyChat_refresh").change(function(event) {
- if($("#OJobs_config_allyChat_refresh").val() < 3)
- {
- $("#OJobs_config_allyChat_refresh").val("3");
- }
- allyChatRate = $("#OJobs_config_allyChat_refresh").val();
- OJconfig["allyChat_refresh_" + OJconfig["uni"]] = allyChatRate;
- GM_setValue("allyChat_refresh_" + OJconfig["uni"], allyChatRate);
- }).css("height", "1.2em").css("min-height", "1.2em").css("max-height", "1.2em");
-
- $("#OJobs_config_allyChat_fontSize").val(OJconfig["allyChat_fontSize_" + OJconfig["uni"]]);
- $("#OJobs_allyChat").css("fontSize", OJconfig["allyChat_fontSize_" + OJconfig["uni"]] + "px");
- $("#OJobs_config_allyChat_fontSize").change(function(event) {
- OJconfig["allyChat_fontSize_" + OJconfig["uni"]] = $("#OJobs_config_allyChat_fontSize").val();
- GM_setValue("allyChat_fontSize_" + OJconfig["uni"], $("#OJobs_config_allyChat_fontSize").val());
- $("#OJobs_allyChat").css("fontSize", OJconfig["allyChat_fontSize_" + OJconfig["uni"]] + "px");
- }).css("height", "1.2em").css("min-height", "1.2em").css("max-height", "1.2em");
-
- MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
-
- var observer = new MutationObserver(function(mutations, observer) {
- if($("#OJobs_allyChat_input").hasClass("markItUpEditor"))
- {
- $("#OJobs_allyChat_input").parent().parent().parent()[0].outerHTML = $("#OJobs_allyChat_input")[0].outerHTML;
- $("#OJobs_allyChat_input").next().remove();
- $("#OJobs_allyChat_input").removeClass("markItUpEditor");
- }
- if($("#OJobs_config_allyChat_refresh").hasClass("markItUpEditor"))
- {
- $("#OJobs_config_allyChat_refresh").parent().parent().parent()[0].outerHTML = $("#OJobs_config_allyChat_refresh")[0].outerHTML;
- $("#OJobs_config_allyChat_refresh").next().remove();
- $("#OJobs_config_allyChat_refresh").removeClass("markItUpEditor");
- $("#OJobs_config_allyChat_refresh").val(OJconfig["allyChat_refresh_" + OJconfig["uni"]]);
- }
- if($("#OJobs_config_allyChat_fontSize").hasClass("markItUpEditor"))
- {
- $("#OJobs_config_allyChat_fontSize").parent().parent().parent()[0].outerHTML = $("#OJobs_config_allyChat_fontSize")[0].outerHTML;
- $("#OJobs_config_allyChat_fontSize").next().remove();
- $("#OJobs_config_allyChat_fontSize").removeClass("markItUpEditor");
- $("#OJobs_config_allyChat_fontSize").val(OJconfig["allyChat_fontSize_" + OJconfig["uni"]]);
- }
- observer.observe(document.getElementById("OJobs_allyChat_input"), {
- attributes: true
- });
- });
-
- observer.observe(document.getElementById("OJobs_allyChat_input"), {
- attributes: true
- });
-
- var OJAllySend = function(event) {
- event.preventDefault();
- if($("#OJobs_allyChat_input").val() != "")
- {
- var result = OJobsAllyChatSend($("#OJobs_allyChat_input").val());
- event.preventDefault();
- }
- };
- $("#OJobs_allyChat_send").click(function(event) {
- OJAllySend(event);
- }).css("height", "25px").css("min-height", "25px").css("max-height", "25px");
- $("#OJobs_allyChat_input").keydown(function(event) {
- if(event.keyCode == 13)
- {
- OJAllySend(event);
- }
- });
- $("#OJobs_allyChat").prev().click(function(event) {
- allyChatIsOpen = (allyChatIsOpen+1)%2;
- if(allyChatIsOpen == 1)
- {
- OJconfig["allyChatIsOpen_" +"uni"] = "1";
- GM_setValue("allyChatIsOpen_" + OJconfig["uni"], "1");
- OJobsAllyChatGetMessages(0);
- OJobsAllyChatGetOnlineStatus(0);
- }
- else
- {
- OJconfig["allyChatIsOpen_" +"uni"] = "0";
- GM_setValue("allyChatIsOpen_" + OJconfig["uni"], "0");
- }
- });
- $("#OJobs_allyChat_whoIsOnline_header").click(function(event) {
- onlineListIsOpen = (onlineListIsOpen+1)%2;
- if(onlineListIsOpen == 1)
- {
- OJconfig["onlineListIsOpen_" +"uni"] = "1";
- GM_setValue("onlineListIsOpen_" + OJconfig["uni"], "1");
- OJobsAllyChatGetOnlineStatus(0);
- }
- else
- {
- OJconfig["onlineListIsOpen_" +"uni"] = "0";
- GM_setValue("onlineListIsOpen_" + OJconfig["uni"], "0");
- }
- });
- if(GM_getValue("allyChatIsOpen_" + OJconfig["uni"]) == 1 && GM_getValue("panelIsOpen_" + OJconfig["uni"]) == 1)
- {
- OJobsAllyChatGetMessages(1);
- $("#OJobs_allyChat").toggle();
- allyChatIsOpen = (allyChatIsOpen+1)%2;
- }
- else if(allyChatContinueLoading == 1)
- {
- OJobsAllyChatGetMessages(1);
- }
- if(GM_getValue("onlineListIsOpen_" + OJconfig["uni"]) == 1)
- {
- OJobsAllyChatGetOnlineStatus(1);
- $("#OJobs_allyChat_whoIsOnline").toggle();
- onlineListIsOpen = (onlineListIsOpen+1)%2;
- }
- else if(allyChatContinueLoading == 1)
- {
- OJobsAllyChatGetOnlineStatus(1);
- }
- }
-
- function OJLogout()
- {
- clearTimeout(allyChatTimer);
- var uni = OJgetCurrentUniverse();
- GM_deleteValue("userName_" + uni);
- GM_deleteValue("password_" + uni);
- GM_deleteValue("hashed_" + uni);
-
- delete OJconfig["userName_" + uni];
- delete OJconfig["password_" + uni];
- delete OJconfig["hashed_" + uni];
-
- $("#OJUsernameSpan").remove();
- $("#OJobs_slider").remove();
- $("#OJobs_loginDiv").show();
-
- allyChatIsOpen = 0;
- OJconfig["allyChatIsOpen_" + OJconfig["uni"]] = 0;
- GM_setValue("allyChatIsOpen_" + OJconfig["uni"], 0);
- onlineListIsOpen = 0;
- OJconfig["onlineListIsOpen_" + OJconfig["uni"]] = 0;
- GM_setValue("onlineListIsOpen_" + OJconfig["uni"], 0);
- allyChatContinueLoading = 0;
- OJconfig["OJobs_deleteUserSpanallyChatContinueLoading_" + OJconfig["uni"]] = 0;
- $("#OJobs_allyChat").hide();
- }
-
- function OJLogin(force, hidden)
- {
- var uni = OJgetCurrentUniverse();
- var name;
- var passHashed;
- var hashed;
- var hashed = 0;
- if(typeof force === 'undefined')
- {
- force = 0;
- }
- if(force != 1 && typeof OJconfig["userName_" + uni] !== 'undefined' && OJconfig["userName_" + uni].length > 0)
- {
- name = OJconfig["userName_" + uni];
- }
- else
- {
- name = $("#OJobs_loginText").val();
- }
- if(force != 1 && typeof OJconfig["hashed_" + uni] !== 'undefined' && OJconfig["hashed_" + uni] == 1 && $("#OJobs_loginPass").val().length < 1)
- {
- passHashed = OJconfig["password_" + uni];
- hashed = 1;
- }
- else
- {
- if(force != 1 && typeof OJconfig["password_" + uni] !== 'undefined' && OJconfig["password_" + uni].length > 0 && $("#OJobs_loginPass").val().length < 1)
- {
- passHashed = OJconfig["password_" + uni];
- hashed = 0;
- }
- else
- {
- passHashed = $("#OJobs_loginPass").val();
- }
- }
- var func = function(response) {
- var result = JSON.parse(response.responseText);
- if(result.status >= 1)
- {
- GM_setValue("userName_" + uni, result.name);
- GM_setValue("password_" + uni, result.passHash);
- GM_setValue("hashed_" + uni, "1");
- OJconfig["userName_" + uni] = result.name;
- OJconfig["password_" + uni] = result.passHash;
- OJconfig["hashed_" + uni] = "1";
- $("#OJobs_loginDiv").hide();
- $("#OJobs_loginDiv").before("<span id =\"OJUsernameSpan\">Angemeldet: <b>" + result.name + "</b> <i id=\"OJLogout\">Logout<span id=\"OJobs_deleteUserSpan\" style=\"float: right;\">Delete</span><span style=\"clear: right;\"></span></i><br /></span>\n");
- $("#OJLogout").click(function (event) {
- OJLogout();
- }).css("cursor", "pointer");
- $("#OJobs_deleteUserSpan").click(function (event) {
- var ays = prompt("Soll der OChat-Account wircklich gelöscht weden?(\"YES\")");
- if(ays == "YES")
- {
- OJDeleteUser(ays);
- }
- else
- {
- alert("Bitte auch auf Groß- und Kleinschreibung achten.");
- }
- }).css("cursor", "pointer");
- OJCreateContent();
- if(allyChatContinueLoading == 0 && OJconfig["allyChatContinueLoading_" + OJconfig["uni"]] == 1)
- {
- allyChatContinueLoading = OJconfig["allyChatContinueLoading_" + OJconfig["uni"]];
- OJobsAllyChatGetMessages();
- OJobsAllyChatGetOnlineStatus();
- }
- var version1 = OJVersion;
- var version2;
- if(OJIsBeta == 1)
- {
- version2 = result.betaVersion;
- }
- else
- {
- version2 = result.clientVersion;
- }
- if(version1 != version2)
- {
- version1 = version1.split(".");
- version2 = version2.split(".");
-
- var version2Old = 0;
- var versionBigger = 0;
- version2.forEach(function(element, index) {
- if(typeof version1[index] === 'undefined')
- {
- version1[index] = 0;
- }
- });
- version1.forEach(function(element, index) {
- if(typeof version2[index] === 'undefined')
- {
- version2[index] = 0;
- }
- version1[index] = parseInt(version1[index]);
- version2[index] = parseInt(version2[index]);
- if(version2Old == 0 && versionBigger == 0 && version1[index] < version2[index])
- {
- version2Old = 1;
- }
- else if(version2Old != 1 && version1[index] > version2[index])
- {
- versionBigger = 1
- }
- });
- if(version2Old == 1)
- {
- if(OJIsBeta != 1)
- {
- $("#OJobs_versionSpan").css("color", "#FF0000");
- $("#OJobs_versionSpan").append("<b>Update</b>");
- $("#OJobs_versionSpan").click(function(event) {
- window.location = "http://ochat.crypt-msg.de/OChat.user.js";
- }).css("cursor", "pointer");
- }
- else
- {
- $("#OJobs_versionSpan").css("color", "#FF0000");
- $("#OJobs_versionSpan").append("<b>Update</b>");
- $("#OJobs_versionSpan").click(function(event) {
- window.location = "http://ochat.crypt-msg.de/OChat.beta.user.js";
- }).css("cursor", "pointer");
- }
- }
- }
- }
- else
- {
- if(typeof hidden === "undefined")
- {
- hidden = 0;
- }
- if(hidden != 1)
- {
- alert("Falsche Benutzerdaten!");
- }
- OJLogout();
- }
- };
- var result = api("login", func, "&hashed=" + hashed + "&name=" + name + "&passHash=" + passHashed + "&uni=" + uni + "&version=" + OJVersion);
- }
-
- function OJDeleteUser(areYouSure)
- {
- var func = function(response) {
- result = JSON.parse(response.responseText);
- if(result.status >= 1)
- {
- alert("Erfolgreich gelöscht!");
- }
- else
- {
- alert("Fehlgeschlagen:\n" + result.message);
- }
- };
- api("deleteUser", func, "&areYouSure=" + areYouSure);
- }
-
- function OJRegister()
- {
- if($("#OJobs_registerPass1").val() == $("#OJobs_registerPass2").val())
- {
- var passHash = $("#OJobs_registerPass1").val();
- var func = function(response) {
- result = JSON.parse(response.responseText);
- if(result.status >= 1)
- {
- OJconfig["hashed_" + OJconfig["uni"]] = "1";
- GM_setValue("hashed_" + OJconfig["uni"], "1");
- OJconfig["password_" + OJconfig["uni"]] = result.passHash;
- GM_setValue("password_" + OJconfig["uni"], result.passHash);
- OJLogin(0,1);
- $("#OJobs_registerPass1").val("");
- $("#OJobs_registerPass2").val("");
- }
- else
- {
- alert("Anmeldung Fehlgeschlagen:\n" + result.message);
- }
- };
- api("register", func, "&hashed=0&name=" + $("#OJobs_loginText").val() + "&passHash=" + passHash + "&uni=" + OJconfig["uni"]);
- }
- else
- {
- alert("Die Passwörter stimmen nicht überein.");
- }
- }
-
- function OJcreateMenu(hidden, event)
- {
- var uni = OJgetCurrentUniverse();
- $("#box").append("<div id=\"OJobs_panel\"></div>");
- $("#OJobs_panel").css("position", "absolute");
- $("#OJobs_panel").width("300px");
-
- $("#OJobs_panel").css("z-index", "3001").css("right", "-158px").css("height", "auto").css("background-color", "#192026");
-
- //$("#OJobs_panel").css("margin-left", "133px");
- $("#OJobs_panel").css("padding-top", "20px").css("padding-left", "5px").css("padding-right", "5px").css("padding-bottom", "20px");
-
- $("#OJobs_panel").append("<div id=\"OJobs_loginDiv\"><b>Nur auf der Übersichtsseite einloggen und registrieren!</b><br /><br /></div>");
-
- //$("#OJobs_loginDiv").append("<form id=\"OJobs_loginForm\"><input type=\"text\" id=\"OJobs_loginText\" tabindex=\"1\" value=\"" + OJconfig["userName_" + uni] + "\"/><br />" +
- $("#OJobs_loginDiv").append("Login:<br /><form id=\"OJobs_loginForm\"><table><tr><td>Name</td><td><input type=\"text\" id=\"OJobs_loginText\" tabindex=\"1\" disabled=\"disabled\" value=\"" + OJconfig["userName_" + uni] + "\"/></td></tr>" +
- "<tr><td>Passwort:</td><td><input type=\"password\" id=\"OJobs_loginPass\" tabindex=\"2\" /></td></tr>" +
- "<tr><td> </td><td><button id=\"OJobs_loginButton\" tabindex=\"3\">Login</button></td></tr></table></form><br /><br />");
-
- $("#OJobs_loginDiv").append("Register:<br /><form id=\"OJobs_registerForm\"><table><tr><td>Name</td><td><input type=\"text\" id=\"OJobs_loginText\" tabindex=\"4\" title=\"MUSS mit namen aus diesem Universum übereinstimmen\" value=\"" + OJconfig["userName_" + uni] + "\"/></td></tr>" +
- "<tr><td>Passwort:</td><td><input type=\"password\" id=\"OJobs_registerPass1\" tabindex=\"5\" /></td></tr>" +
- "<tr><td>Passwort wdh.:</td><td><input type=\"password\" id=\"OJobs_registerPass2\" tabindex=\"6\" /></td></tr>" +
- "<tr><td> </td><td><button id=\"OJobs_registerButton\" tabindex=\"7\">Register</button></td></tr></table></form>");
-
- $("#OJobs_panel").append("<div id=\"OJobs_header\"><b>OChat</b> <i><span id=\"OJobs_versionSpan\">v" + OJVersion + "</span></i></div>");
- $("#OJobs_header").append("<span id=\"OJobs_minimizePanel\">[-]</span><span></span>");
- $("#OJobs_minimizePanel").css("float", "right").css("cursor", "pointer");
- $("#OJobs_minimizePanel").click(function (event) {
- OJdisplayMenu();
- });
- $("#OJobs_minimizePanel").next().css("clear", "right");
- $("#OJobs_panel").append("<div id=\"OJobs_footer\"> </div>");
- $("#OJobs_loginForm").submit(function(event){
- event.preventDefault();
- });
- $("#OJobs_loginButton").click(function (event) {
- OJLogin(1);
- $("#OJobsloginPass").val("");
- event.preventDefault();
- });
- $("#OJobs_loginPass").keydown(function(event)
- {
- if(event.keyCode == 13)
- {
- event.preventDefault();
- }
- });
- $("#OJobs_footer").css("bottom", "0px").css("width", "100%").css("position", "absolute").css("left", "0px").css("background-color", "#222329");
- $("#OJobs_header").css("top", "0px").css("width", "306px").css("position", "absolute").css("left", "0px").css("background-color", "#222329").css("padding", "2px");
- $("#OJobs_header").css("cursor", "move");
- if(typeof OJconfig["userName_" + OJconfig["uni"]] !== 'undefined' && OJconfig["userName_" + OJconfig["uni"]].length > 0)
- {
- $("#OJobs_loginText").val(OJconfig["userName_" + OJconfig["uni"]]);
- if(OJconfig["hashed_" + OJconfig["uni"]] == 1)
- {
- if(typeof hidden === undefined)
- {
- OJLogin(0, 0);
- }
- else
- {
- OJLogin(0, hidden);
- }
- }
- }
- $("#OJobs_registerButton").click(function (event) {
- OJRegister();
- event.preventDefault();
- });
-
- var offLeft = GM_getValue("offsetLeft_" + OJconfig["uni"]);
- var offTop = GM_getValue("offsetTop_" + OJconfig["uni"]);
- if(offLeft != '0')
- {
- $("#OJobs_panel").offset({
- top: offTop,
- left: offLeft
- });
- }
- $( document ).on("mousemove", function(e) {
- if (mouseDragging == 1) {
- $("#OJobs_panel").offset({
- top: e.pageY-10,
- left: e.pageX-100
- });
- }
- });
- $("#OJobs_header").mousedown(function(event) {
- mouseDragging = 1;
- });
- $("#OJobs_header").on("mouseup", function(event) {
- mouseDragging = 0;
- GM_setValue("offsetTop_" + OJconfig["uni"], $("#OJobs_panel").offset().top);
- GM_setValue("offsetLeft_" + OJconfig["uni"], $("#OJobs_panel").offset().left);
- });
-
- }
-
- function OJdisplayMenu(hidden, event)
- {
- if($("#OJobs_panel").exists() )
- {
- if($("#OJobs_panel").is(":visible"))
- {
- $("#OJobs_panel").hide();
- panelIsOpen = 0;
- OJconfig["panelIsOpen_" + OJconfig["uni"]] = 0;
- GM_setValue("panelIsOpen_" + OJconfig["uni"], 0);
- }
- else
- {
- $("#OJobs_panel").show();
- panelIsOpen = 1;
- OJconfig["panelIsOpen_" + OJconfig["uni"]] = 1;
- GM_setValue("panelIsOpen_" + OJconfig["uni"], 1);
- }
- }
- else
- {
- if(hidden == 1 && GM_getValue("panelIsOpen_" + OJconfig["uni"]) == 1)
- {
- panelIsOpen = 1;
- OJconfig["panelIsOpen_" + OJconfig["uni"]] = 1;
- GM_setValue("panelIsOpen_" + OJconfig["uni"], 1);
- OJcreateMenu(1, null);
- }
- else
- {
- if(hidden == 0)
- {
- panelIsOpen = 1;
- OJconfig["panelIsOpen_" + OJconfig["uni"]] = 1;
- GM_setValue("panelIsOpen_" + OJconfig["uni"], 1);
- OJcreateMenu(0, event);
- }
- else
- {
- panelIsOpen = 0;
- OJconfig["panelIsOpen_" + OJconfig["uni"]] = 0;
- GM_setValue("panelIsOpen_" + OJconfig["uni"], 0);
- OJcreateMenu(1, event);
- }
- }
- }
- }
-
- $( document ).ready(function() {
- OJReadConfig();
- panelIsOpen = OJconfig["panelIsOpen_" + OJconfig["uni"]];
- allyChatIsOpen = OJconfig["allyChatIsOpen_" + OJconfig["uni"]];
- onlineListIsOpen = OJconfig["onlineListIsOpen_" + OJconfig["uni"]];
- allyChatContinueLoading = OJconfig["allyChatContinueLoading_" + OJconfig["uni"]];
- lastAllyMsgRead = OJconfig["lastAllyMsgRead_" + OJconfig["uni"]];
- var i = 0;
- var list = $("#bar").children("ul");
- var html = "<li><a href='#' id='OJobs_tb'>OChat</a></li>";
- list.append(html);
- $("#OJobs_tb").click(function(event) {
- OJdisplayMenu(0, event);
- if(allyChatIsOpen == 1 && panelIsOpen == 1 && !$("#OJobs_allyChat_log").is(":visible"))
- {
- $("#OJobs_allyChat_header").click();
- }
- });
- if(GM_getValue("panelIsOpen_" + OJconfig["uni"]) == "1")
- {
- OJdisplayMenu(1);
- }
- else if(OJconfig["allyChat_continueLoading_" + OJconfig["uni"]] == 1)
- {
- OJcreateMenu(1);
- $("#OJobs_panel").hide();
- }
- });
-
- function dAlert(text)
- {
- var arr = text.split(",");
- var alertText ="";
- arr.forEach(function(element, index) {
- while(element.length > 45)
- {
- var t = element.substr(0, 45);
- element = element.substr(45);
- alertText = alertText + "\n" + t;
- }
- alertText = alertText + "\n" + element;
- });
- alert(alertText);
- }