the source is over 100KB, syntax highlighting in the browser is too slow
// ==UserScript==
// @name OGame-Skript
// @namespace OGame
// @description Erweitert OGame um nützliche Funktionen
// @injectframes 1
// @include http://uni*.ogame.*/*
// @include http://www.ogame.*/*
// @include http://ogame.*/*
// ==/UserScript==
/*
OGame-Skript, ein Greasemonkey-Userscript, das OGame um einige, nuetzliche Funktionen erweitert.
Copyright (C) 2006-2007 Windows-zerstoerer, ab Maerz 2007 Eleria & Co, ab Juli 2007 hakaz & User-Gruppe des OGame-Forums
Dieses Programm ist freie Software. Du kannst es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veroeffentlicht, weitergeben und/oder modifizieren, gemaess Version 2 der Lizenz.
Die Veroeffentlichung dieses Programms erfolgt in der Hoffnung, dass es dir von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FUeR EINEN BESTIMMTEN ZWECK. Details findest du in der GNU General Public License.
Fuer weitere Details, schaue dir die volle GPL im Internet an: http://www.gnu.org/licenses/gpl.html
Auf deutsch: http://www.gnu.de/gpl-ger.html
Oder schreibe an die Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA.
*/
//---------------------------------------------------------------------------------------------------------------------------------------------------
/********************
* Grundeinstellungen
********************/
var ogs_init; //ie support
if (ogs_init != true)
{
ogs_init = true;
var ogs = new Object();
//functionen anbinden
ogs.save = ogs_save;
ogs.load = ogs_load;
ogs.version = ogs_version;
ogs.getLink = ogs_getLink;
ogs.setTextArea = ogs_setTextArea;
ogs.getTextArea = ogs_getTextArea;
ogs.addEvent = ogs_addEvent;
ogs.getKosten = ogs_getKosten;
ogs.getEnergie = ogs_getEnergie;
ogs.debug = ogs_debug;
ogs.addOverLib = ogs_addOverLib;
//dom or doom?!?
ogs.dom = new Object();
ogs.dom.newElement = ogs_dom_NeuesElement;
ogs.dom.insertBehind = ogs_dom_EinfuegenHinter;
ogs.dom.removeElement = ogs_dom_Loesche;
ogs.dom.getCEBF = ogs_dom_getCEBF;
ogs.dom.getEBF = ogs_dom_getEBF;
//array functions
ogs.array = new Object();
ogs.array.dropElement = ogs_array_dropElement;
ogs.array.getElement = ogs_array_getElement;
ogs.array.split = ogs_split;
ogs.array.join = ogs_join;
//zeit
ogs.time = new Object();
ogs.time.einlesen = ogs_LeseZeit;
ogs.time.now = ogs_getTime;
ogs.time.duration = ogs_aTimeDuration;
ogs.time.stamp = ogs_time_stamp;
ogs.time.toString = ogs_ZeitFormatieren;
//Startzeit des Skripts
ogs.start = new Object();
ogs.start.time = new Date();
//anzahl startversuche und wartezeit
ogs.start.versuche = 0;
ogs.start.versuche_max = 10;
ogs.start.versuche_warte = 2500;
//zeitdifferenz zur lokalen Uhrzeit
ogs.zeitdifferenz = 0;
//browser support herstellen
ogs.browser = '';
if (typeof GM_getValue != 'undefined') // firefox GM plugin
{
ogs.browser = 'ff';
ogs.window = unsafeWindow;
}
else if (typeof PRO_getValue != 'undefined') // ie pro plugin
{
ogs.browser = 'ie';
ogs.window = window;
//functions umleiten
GM_getValue = PRO_getValue;
GM_setValue = PRO_setValue;
unsafeWindow = document;
}
else
{
ogs.debug('Unsupported Web-Browser');
ogs.start.versuche_max = -1; // dont run script
unsafeWindow = document;
ogs.window = window;
}
ogs.addStyle = function (text) //stylehinzufuegen anpassen
{
if (ogs.browser == 'ff')
GM_addStyle(text);
else
PRO_addStyle(text,unsafeWindow);
}
//binding
ogs.bound = new Object(); //bound bindet die funktion nur fuer den externen aufruf (z.b. eine onclick) durch den browser in firefox
ogs.bind = function(name, func){eval('ogs.' + name + ' = func; ogs.bound.' + name + ' = func;');}; //bind bindet die funktion fuer externen aufruf und gleichzeitig an das hier verwendete ogs object
unsafeWindow.ogs = ogs.bound;
window.ogs = ogs;
// Speicher Variablen
var settingsglobalcur = new Array();
var settingsglobaldef = new Array();
var settingscur = new Array();
var settingsdef = new Array();
// zusaetzlich in das ogs Object einbinden
ogs.settings = new Object();
ogs.settings.global = new Object();
ogs.settings.global.cur = settingsglobalcur;
ogs.settings.global.def = settingsglobaldef;
ogs.settings.cur = settingscur;
ogs.settings.def = settingsdef;
// Globale Grundwerte
settingsglobaldef['selectuniverse'] = true;
settingsglobaldef['version'] = 10000;
settingsglobaldef['gpl'] = 0;
settingsglobaldef['fokusonlogin'] = true;
settingsglobaldef['ogs_language'] = 'de&de|';
// aktuelle Versionsnummer abspeichern
ogs.save('version', 10607);
// Account Grundwerte
settingsdef['skript_online'] = true;
settingsdef['galaxietool'] = false;
settingsdef['colored_ress'] = true;
settingsdef['skin_advance'] = true;
settingsdef['merkliste'] = '';
settingsdef['kein_deut'] = false;
settingsdef['fehlress_als_text'] = true;
settingsdef['flotten_zusatz'] = true;
settingsdef['flotten_faerben'] = true;
settingsdef['color_met'] = '#FF8800';
settingsdef['color_kris'] = '#55B4DD';
settingsdef['color_deut'] = '#99ABCC';
settingsdef['color_eng'] = '#F0D899';
settingsdef['transbuild'] = true;
settingsdef['max_tab_breite'] = 519;
settingsdef['skriptcolor'] = '#C0C0C0';
settingsdef['tf_limit'] = 20000;
settingsdef['tf_color'] = 'red';
settingsdef['platz_anzeige'] = true;
settingsdef['endzeiten'] = false;
settingsdef['zeit_links'] = false;
settingsdef['ang_zeit'] = true;
settingsdef['ankft_zeit'] = true;
settingsdef['schiffs_geschw'] = true;
settingsdef['fltmenu_buttons'] = true;
settingsdef['auto_auftrag'] = true;
settingsdef['stationieren_vorz'] = false;
settingsdef['allyplatz_anzeige'] = true;
settingsdef['bewegteress'] = true;
settingsdef['pranger'] = true;
settingsdef['warnung'] = false;
settingsdef['kursmet'] = '3';
settingsdef['kurskris'] = '2';
settingsdef['kursdeut'] = '1';
settingsdef['handelsrechner'] = false;
settingsdef['ml_sort'] = true;
settingsdef['ml_typ'] = '3';
settingsdef['ml_art'] = '0';
settingsdef['head_fix'] = false;
settingsdef['def_plani'] = 0;
//allgemein
settingsdef['buildings'] = '';
settingsdef['res_timer'] = false;
settingsdef['uni_speed'] = 1;
settingsdef['temperatur'] = '';
//hintergrundbild
settingsdef['hintergrundbild_use'] = false;
settingsdef['hintergrundbild_url'] = 'none';
//forschung
settingsdef['forschung'] = '';
//overview
settingsdef['overview_planetenliste'] = 1;
settingsdef['zeit_diff'] = 0;
settingsdef['zeitverschiebung'] = 0;
settingsdef['zeitverschiebung_auto'] = true;
settingsdef['show_punkte_diff'] = false;
settingsdef['show_punkte_diff_top'] = false;
settingsdef['punkte_diff_fontsize'] = 'smaller';
settingsdef['stats_plusminusbuttons'] = false;
//nachrichten erweiterungen
settingsdef['spio'] = true;
settingsdef['news_expo_aktiv'] = false;
settingsdef['news_expo_farbe'] = 'yellow';
settingsdef['news_pm_aktiv'] = false;
settingsdef['news_pm_farbe'] = 'blue';
settingsdef['news_am_aktiv'] = false;
settingsdef['news_am_farbe'] = 'lightblue';
settingsdef['news_color_res'] = true;
settingsdef['news_deletemessages'] = false;
//imperiumsansicht
settingsdef['imperium_calc_resis'] = true;
settingsdef['imperium_kosten'] = false;
settingsdef['imperium_pic_change'] = false;
settingsdef['imperium_pic_abstand'] = 5;
settingsdef['imperium_pic_x'] = 50;
settingsdef['imperium_pic_y'] = 50;
//galaxie
settingsdef['gala_ally_faerben'] = true;
settingsdef['gala_ally_sn_in_af'] = false;
settingsdef['gala_ally_spieler_farben'] = '';
settingsdef['gala_iprak_aktiv'] = false;
settingsdef['gala_iprak_wert'] = 6;
settingsdef['gala_iprak_max'] = true;
//farmliste default werte
settingsdef['farmliste_aktiv'] = false;
settingsdef['farmliste_liste'] = '';
//gebäude und forschung
settingsdef['building_energie'] = true;
settingsdef['building_klein'] = false;
settingsdef['building_klein_pics_size'] = 60;
settingsdef['building_bg'] = true;
settingsdef['building_bg_col1'] = '#000000';
settingsdef['building_bg_col2'] = '#453E25';
settingsdef['building_nopics'] = false;
settingsdef['building_doppelzeilen'] = false;
settingsdef['building_reichweite'] = false;
settingsdef['building_info'] = true;
//InGame Message
settingsdef['igm_signatur_bool'] = false;
settingsdef['igm_signatur'] = '';
//techtree
settingsdef['tech_info'] = true;
settingsdef['techtree_pics'] = true;
settingsdef['techtree_pics_size'] = '50';
settingsdef['techtree_bg'] = true;
settingsdef['techtree_bg_col1'] = '#000000';
settingsdef['techtree_bg_col2'] = '#453E25';
settingsdef['techtree_doppelzeilen'] = false;
//menü links
settingsdef['menu_link_enable'] = true;
settingsdef['menu_link_liste'] = 'Owiki&http://www.owiki.de/|';
settingsdef['menu_link_pos'] = -1;
settingsdef['menu_mode'] = 0;
//flottenfarben
settingsdef['uebersicht_flotten_farben'] = '';
settingsdef['uebersicht_flotten_farben'] += '0|ownespionage&0&#ffa500&0&0&0&0&#E6EBFB|ownespionage&1&#ffa500&1&0&0&2򢰪|espionage&0&#ffa500&0&1&0&0&#E6EBFB|'; //espionage&1&#ffa500&1&1&0&2򢰪|';
settingsdef['uebersicht_flotten_farben'] += '1|owntransport&0cff66&0&0&0&0&#E6EBFB|owntransport&2cff66&0&0&1&1&#E6EBFB|owntransport&1cff66&1&0&0&2򢰪|transport&0cff66&0&1&0&0&#E6EBFB|transport&2cff66&0&1&1&1&#E6EBFB|'; //transport&1cff66&1&1&0&2򢰪|';
settingsdef['uebersicht_flotten_farben'] += '2|ownharvest&0Xff00&0&0&0&0&#E6EBFB|ownharvest&1Xff00&1&0&0&2򢰪|harvest&0Xff00&0&1&0&0&#E6EBFB|'; //harvest&1Xff00&1&1&0&2򢰪|';
settingsdef['uebersicht_flotten_farben'] += '3|owndeploy&0�ff00&0&0&0&0&#E6EBFB|owndeploy&1�ff00&1&0&0&2򢰪|'; //deploy&0�ff00&0&1&0&0&#E6EBFB|';
settingsdef['uebersicht_flotten_farben'] += '4|ownhold&0�cc70&0&0&0&0&#E6EBFB|ownhold&2�cc70&0&0&1&1&#E6EBFB|ownhold&1�cc70&1&0&0&2򢰪|hold&0�cc70&0&1&0&0&#E6EBFB|hold&2�cc70&0&1&1&1&#E6EBFB|'; //hold&1�cc70&1&1&0&2򢰪|';
settingsdef['uebersicht_flotten_farben'] += '5|ownattack&0&#d00000&0&0&0&0&#E6EBFB|ownattack&1&#d00000&1&0&0&2򢰪|attack&0&#d00000&0&1&0&0&#E6EBFB|'; //attack&1&#d00000&1&1&0&2򢰪|';
settingsdef['uebersicht_flotten_farben'] += '6|ownfederation&0b0000&0&0&0&0&#E6EBFB|ownfederation&1b0000&1&0&0&2򢰪|federation&0b0000&0&1&0&0&#E6EBFB|'; //federation&1b0000&1&1&0&2򢰪|';
settingsdef['uebersicht_flotten_farben'] += '7|owndestroy&0&#cc6600&0&0&0&0&#E6EBFB|owndestroy&1&#cc6600&1&0&0&2򢰪|destroy&0&#cc6600&0&1&0&0&#E6EBFB|'; //destroy&1&#cc6600&1&1&0&2򢰪|';
settingsdef['uebersicht_flotten_farben'] += '8|ownmissile&0&#cc3300&0&0&0&0&#E6EBFB|missile&0&#cc3300&0&1&0&0&#E6EBFB|';
settingsdef['uebersicht_flotten_farben'] += '9|owncolony&0Pa0C0&0&0&0&0&#E6EBFB|owncolony&1Pa0C0&1&0&0&2򢰪|'; //colony&0Pa0C0&0&1&0&0&#E6EBFB|colony&1Pa0C0&1&1&0&2򢰪|';
settingsdef['uebersicht_flotten_farben'] += '10|phalanx_fleet&07FF00&0&0&0&0&#E6EBFB|phalanx_fleet&27FF00&0&0&1&1&#E6EBFB|phalanx_fleet&1ᕼ&0&0&0&0򢰪|';
settingsdef['flotte_schiffauswahl'] = false;
settingsdef['flotte_seite1_upsidedown'] = false;
settingsdef['flotte_seite2_combobox'] = false;
settingsdef['flotte_seite2_tfwahl'] = false;
settingsdef['flotte_seite2_shortlinks'] = false;
settingsdef['flotte_seite2_shortlinks_a'] = 'red';
settingsdef['flotte_seite2_shortlinks_p'] = 'orange';
settingsdef['flotte_seite3_zeiten'] = false;
settingsdef['flotte_flugpos'] = '';
settingsdef['flotte_flugpos_temp'] = '';
settingsdef['flotte_flugpos_enable'] = false;
//planiliste
settingsdef['plani_verbessern'] = false;
settingsdef['plani_shortname'] = false;
settingsdef['plani_mondklammern'] = false;
settingsdef['plani_linkplanetmond'] = false;
settingsdef['plani_mondextra'] = false;
settingsdef['plani_pnm'] = false;
settingsdef['plani_hpmarker'] = false;
settingsdef['plani_hptotop'] = false;
settingsdef['plani_next'] = false;
settingsdef['plani_next_modus'] = 0;
settingsdef['plani_next_liste'] = 0;
settingsdef['plani_next_tt'] = true;
settingsdef['plani_next_nomsg'] = true;
settingsdef['plani_combobox'] = false;
settingsdef['plani_combobox_type'] = 0;
settingsdef['plani_combobox_val'] = 'P';
settingsdef['plani_combobox_tooltip'] = true;
//statistiklinks
settingsdef['statlinks_use_stats'] = false;
settingsdef['statlinks_use_gala'] = true;
settingsdef['statlinks_use_spio'] = false;
settingsdef['statlinks_pn1'] = 'Spielerstats @ War-Riders.de';
settingsdef['statlinks_pu1'] = 'http://war-riders.de/index.cgi?uni=*UNI*&page=details&type=player&name=*NAME*';
settingsdef['statlinks_pn2'] = 'Spielerstats @ Playakind.de';
settingsdef['statlinks_pu2'] = 'http://www.playakind.de/index_ogs.php?extern=ogs&suche=spieler&uni=*UNI*&suche2=*NAME*';
settingsdef['statlinks_pn3'] = 'Spielerstats @ Ostat.de';
settingsdef['statlinks_pu3'] = 'http://uni*UNI*.ostat.de/index.php?ext=player&name=*NAME*';
settingsdef['statlinks_pn4'] = '';
settingsdef['statlinks_pu4'] = '';
settingsdef['statlinks_pn5'] = '';
settingsdef['statlinks_pu5'] = '';
settingsdef['statlinks_an1'] = 'Allystats @ War-Riders.de';
settingsdef['statlinks_au1'] = 'http://war-riders.de/index.cgi?uni=*UNI*&page=details&type=ally&name=*NAME*';
settingsdef['statlinks_an2'] = 'Allystats @ Playakind.de';
settingsdef['statlinks_au2'] = 'http://www.playakind.de/index_ogs.php?extern=ogs&suche=allianz&uni=*UNI*&suche2=*NAME*';
settingsdef['statlinks_an3'] = 'Allystats @ Ostat.de';
settingsdef['statlinks_au3'] = 'http://uni*UNI*.ostat.de/index.php?ext=ally&name=*NAME*';
settingsdef['statlinks_an4'] = '';
settingsdef['statlinks_au4'] = '';
settingsdef['statlinks_an5'] = '';
settingsdef['statlinks_au5'] = '';
// Schneide Leerzeichen vor/nach dem String weg
String.prototype.trim = function() { return this.replace(/^\s*|\s*$/g, ''); };
// enthaelt die infos was grade angezeigt wird und dergleichen
ogs.ogame = new Object();
// seite welche grade dargestellt wird flotte2 galaxy overview
ogs.ogame.page = document.URL.match(/\/game\/index.php\?page=([a-zA-Z0-9_\-\/]+)&/);
ogs.ogame.page = ogs.ogame.page ? ogs.ogame.page[1] : '';
// Daten laden
ogs.ogame.server = document.URL.match(/http:\/\/([0-9a-zA-Z\-\._]+)\//)[1]; // aktueller OGame-Server
ogs.ogame.sid = document.URL.match(/session=([0-9a-zA-Z]+)/); // Session-ID des Users
ogs.ogame.sid = ogs.ogame.sid ? ogs.ogame.sid[1] : '';
ogs.ogame.serversprache = ogs.ogame.server.replace(/.*\./,'');
// wird noch geladen
ogs.ogame.hpid = 0; // zum Speichern der HP-ID
ogs.planetliste = 0; // Planetenliste aus der SelectBox erstellt
// Plani-Typen (entsprechen den IDs in OGame)
ogs.planettype = new Object();
ogs.planettype.planet = 1;
ogs.planettype.tf = 2;
ogs.planettype.mond = 3;
//Skripttextfarbe
ogs.textfarbe = settingsdef['skriptcolor'];
// Umlaute
var ae = '\u00E4'; var oe = '\u00F6'; var ue = '\u00FC';
var Ae = '\u00C4'; var Oe = '\u00D6'; var Ue = '\u00DC';
var sz = '\u00DF';
// hilfswerte um z.b. die farmliste anzuzeigen / ogs setup
ogs.neueseite = new Object();
ogs.neueseite.user = ''; //enthält den namen wer die seite zurzeit benützt z.b. 'farmliste' und *sperrt* somit den zugriff für andere nur frei wenn '' leer.
ogs.neueseite.orginal = null; //link auf das element das augeblendet wird
ogs.neueseite.neu = null; //link auf das element was angezeigt wird
// Sprachdaten erstellen
ogs.lang = new Object();
ogs.lang.skript = -1; //sprachdaten skript
ogs.lang.ogame = -1; //sprachdaten ogame
ogs.lang.all = ogs.array.split(ogs.load('ogs_language'),'|','&'); //aktuelle einstellungen aller sprachgebiete
ogs.lang.cur = ogs.array.getElement(ogs.lang.all,ogs.ogame.serversprache,'de',0,1); //aktuelle einstellung der sprache des unis
ogs.lang.data = new Array(); //alle sprachdaten aller sprachen
if (typeof unsafeWindow.ogs_lang != 'undefined')
{
ogs.lang.data = unsafeWindow.ogs_lang;
for(lng in ogs.lang.data)
{
if (ogs.lang.cur == ogs.lang.data[lng]['id'])
{
ogs.lang.skript = ogs.lang.data[lng]['skript'];
}
if (ogs.ogame.serversprache == ogs.lang.data[lng]['url'])
{
ogs.lang.ogame = ogs.lang.data[lng]['ogame'];
}
}
}
unsafeWindow.ogs_lang = false;
var resUni = exp('res',new Array('Metall', 'Kristall', 'Deuterium', 'Energie'));
var resOGS = txt('res',new Array('Metall', 'Kristall', 'Deuterium', 'Energie'));
ogs.time.wochentage = txt('wochentage',new Array('So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa')); // Namen der Wochentage
ogs.time.monate = txt('monate',new Array('Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez')); // Namen der Monate
// Homepage Url
ogs.homepage = txt('hpurl','http://www.ogame-skript.com/de/');
// Buffer für Energiewerte
var EnergieBuffer = new Array();
//*******************
// Script starten...
//*******************
// Es muesen alle Seiten einen page Eintrag und eine ogs.ogame.sid haben
if (ogs.ogame.sid == '' || ogs.ogame.page == '')
{
if (!(document.URL.indexOf('ainfo.php?') + 1)) //auf ally info nix machen
{
ogs_startpage(); //startseite bearbeiten
}
}
else
{
startup(); //skript starten
var vBody = document.getElementsByTagName('body');
if (vBody.length)
{
vBody[0].style.overflow = 'visible';
//hintergrundbild hinzufuegen
if (ogs.load('hintergrundbild_use'))
{
ogs.load('hintergrundbild_url')
if (settingscur['hintergrundbild_url'].toLowerCase().trim() == 'none')
{
vBody[0].style.backgroundImage = 'none';
}
else if (settingscur['hintergrundbild_url'].trim() == '')
{
vBody[0].style.backgroundImage = 'none';
}
else
{
vBody[0].style.backgroundImage = 'url(' + settingscur['hintergrundbild_url'].trim() + ')';
}
}
}
}
}
/***********************************
* Funktionsabsatz - HilfsFunktionen
***********************************/
// Verwandelt den uebergebenen Text in eine Ganzzahl
function InInt(Text)
{
Text = Text.replace(/<[^<>]*>/g, '').replace(/[^0-9\-]/g, ''); // nicht-Ziffern entfernen
return parseInt(Text, 10); // als Zahl zurueckgeben
}
// Tausenderpunkte
function TausenderZahl(z, showPlus)
{
var negativ = false;
if (z < 0)
{
negativ = true;
z = z * -1;
}
z = String(Number(z));
var i = z.length % 3;
if (!i)
{
i = 3;
}
var erg = z.substr(0, i);
for (; i < z.length; i += 3)
{
erg += '.' + z.substr(i, 3);
}
if (negativ == false)
{
if (showPlus == true)
{
erg = '+' + erg;
}
}
else
{
erg = '-' + erg;
}
return erg;
}
// Finde heraus, wieviele Ressourcen welchen Typs der Spieler hat
function HoleRessourcen() // Finde heraus, wieviele Ressourcen welchen Typs der Spieler hat
{
var Zellen = document.getElementById('resources');
Zellen = Zellen.rows[2].cells;
var Arr = new Array(); // zum Speichern der Zahlen
for (var i = 0; i < 3; i++) // Zellen 0-2
{
Arr[i] = InInt(Zellen[i].innerHTML); // Inhalt in Ganzzahl verwandeln und speichern
}
var Werte = Zellen[4].innerHTML.replace(/<[^<>]*>/g, '').split('/'); // die Energie an dem / trennen
Arr[4] = InInt(Werte[0]); // und jeweils als Ganzzahl speichern, die Gesamtmenge zuerst, da sie fuer die Gebaeude und Forschungen benoetigt wird
Arr[3] = InInt(Werte[1]);
return Arr; // Zahlen zurueckgeben
}
// Breite einer Tabelle anhand der Einstellungen etc. berechnen
function TabBreite(Max, Min)
{
return Math.max(Math.min(Math.min(ogs.load('max_tab_breite'), Max), document.body.clientWidth-10), Min);
}
function ogs_statlinks_load()
{
var name, url;
var statlinks = new Object();
statlinks.pn = new Array();
statlinks.pu = new Array();
statlinks.an = new Array();
statlinks.au = new Array();
for (var i = 1; i < 6; i++)
{
name = ogs.load('statlinks_pn'+i).trim();
url = ogs.load('statlinks_pu'+i).trim();
if (name.length > 0 && url.length > 0)
{
statlinks.pn.push(name);
statlinks.pu.push(url);
}
name = ogs.load('statlinks_an'+i).trim();
url = ogs.load('statlinks_au'+i).trim();
if (name.length > 0 && url.length > 0)
{
statlinks.an.push(name);
statlinks.au.push(url);
}
}
return statlinks;
}
function ogs_statlinks_creattooltipline(str, name, linkname)
{
return '<tr><td><a href=\\\'' + ogs.getLink(str.replace(/\*UNI\*/g,ogs.ogame.server.match(/\d+/)).replace(/\*NAME\*/g,name)) + '\\\' target=\\\'_blank\\\'>'+linkname+'</a></td></tr>';
}
//*********************************************************************************************************************
// Funktionsabsatz - Skriptfunktionen
//*********************************************************************************************************************
function ogs_FlottenFaerben()
{
var ret = '';
var typArt = new Array('.flight','.return','.holding');
var typStyle = new Array('font-style: normal !important;','font-style: italic !important;');
var typTransform = new Array('text-transform: none !important;','text-transform: uppercase !important;','text-transform: lowercase !important;'); //,'text-transform: capitalize;'
var typDecoration = new Array('text-decoration: none !important;','text-decoration: underline !important;','text-decoration: overline !important;','text-decoration: line-through !important;','text-decoration: blink !important;');
var typSize = new Array('font-size: inherit !important;','font-size: larger !important;','font-size: smaller !important;'); //font-size: medium;
var thisdata = ogs.load('uebersicht_flotten_farben');
if (thisdata.trim() == '')
thisdata = settingsdef['uebersicht_flotten_farben'];
var data = ogs.array.split(thisdata,'|','&');
delete thisdata;
ogs.load('flotten_zusatz');
ogs.load('skin_advance');
ogs.load('flotten_faerben');
for (var i = 0; i < data.length; i++)
{
if (data[i].length > 1)
{
if (settingscur['flotten_faerben'])
{
//haupttext
ret += ' ' + typArt[data[i][1]] + '.' + data[i][0] + ' ,' + typArt[data[i][1]] + '.' + data[i][0] + ' a { color: ' + data[i][2] + ' !important; ';
ret += typStyle[data[i][3]] + ' ' + typTransform[data[i][4]] + ' ' + typDecoration[data[i][5]] + ' ' + typSize[data[i][6]] + '} ';
//linktext
ret += ' ' + typArt[data[i][1]] + '.' + data[i][0] + ' a { color: ' + data[i][7] + ' !important; font-size: inherit !important;} ';
}
if (settingscur['flotten_zusatz'] && settingscur['skin_advance'])
{
//zusatzinfos
//ogame bugfix ...
if (data[i][0] == 'ownattack')
{
if (data[i][1] == 0)
{
ret += ' span.attack a[title]:after ,';
}
}
else if (data[i][0] == 'ownfederation')
{
if (data[i][1] == 0)
{
ret += ' span.federation a[title]:after ,';
}
}
ret += ' ' + typArt[data[i][1]] + '.' + data[i][0] + ' a[title]:after { content:" ("attr(title)")"; ';
if (settingscur['flotten_faerben'])
ret += 'color: ' + data[i][2] + ' !important;}'
else
ret += 'color: ' + ogs.textfarbe + ' !important;}';
}
}
}
ogs.addStyle(ret);
}
//-----------------------------
// Notizen richtig anzeigen
//-----------------------------
function ogs_notizen()
{
var ContDiv = document.getElementById('content');
ContDiv.style.position = 'relative';
ContDiv.style.overflow = 'visible';
}
//-----------------------------
// Phalanx erweitern
//-----------------------------
function ogs_phalanx()
{
ogs.textfarbe = ogs.load('skriptcolor');
if (ogs.load('endzeiten'))
{
// Zeitdifferenz bestimmen
ogs.zeitdifferenz = parseInt(ogs.load('zeit_diff'),10);
var verschiebung = parseInt(ogs.load('zeitverschiebung'), 10);
var vBXX = ogs.dom.getEBF(document,'div','id.match(/bxx/)');
for (var i = 0; i < vBXX.length; i++)
{
var vP = document.createElement('b');
vP.innerHTML = ogs.time.stamp(new Date(verschiebung * 60000 + 1000 * parseInt(vBXX[i].getAttribute('star'))));
vBXX[i].parentNode.appendChild(vP);
}
}
if (ogs.load('flotten_zusatz') && ogs.load('skin_advance'))
{
ogs.load('flotten_zusatz');
var Links = document.getElementsByTagName('a');
for (var i = 0; i < Links.length; i++)
{
if (!Links[i].title || Links[i].title.search(/^[0-9]+$/) + 1) { continue; } // bei nur aus Zahlen bestehenden Titeln nichts tun (das sind die Counter)
Links[i].title = Links[i].title.replace(/([0-9])([A-Z])/g, '$1, $2');
Links[i].title = Links[i].title.replace(/Anzahl der Schiffe ([0-9]+)/g, 'Anzahl der Schiffe $1: ');
}
}
if (ogs.load('flotten_faerben') || (ogs.load('flotten_zusatz') && ogs.load('skin_advance')))
{
ogs_FlottenFaerben();
}
}
//--------------------------------
// pranger evolution css loeschen
//--------------------------------
function ogs_pranger()
{
csslinks = document.getElementsByTagName('link');
for (var i = csslinks.length - 1; i >= 0; i--)
{
if (csslinks[i].href == 'http://80.237.203.201/download/use/evolution/formate.css')
{
csslinks[i].parentNode.removeChild(csslinks[i]);
break;
}
}
}
//----------------------
// Startseiten Optionen
//----------------------
function ogs_startpage()
{
if (ogs.load('selectuniverse'))
{
var uniselect = document.getElementsByName('universe');
if (uniselect.length > 0)
{
uniselect = uniselect[0];
function saveUni()
{
if (confirm(txt('login_1','"#*1*#" als Standard-Universum ausw\u00E4hlen?\n\nEs wird nur die Nummer des Universums gespeichert.\n(kein Spielername und kein Passwort!)',uniselect.value)))
ogs.save('universe_'+ogs.ogame.serversprache, uniselect.selectedIndex);
}
var mainMenu = document.getElementById('mainmenu');
if (mainMenu != null)
{
var mainMenuA = document.createElement('a');
mainMenuA.href = '#';
mainMenuA.innerHTML = txt('login_2','OGS: Save Uni');
ogs.addEvent(mainMenuA,'click', saveUni, false);
mainMenu.appendChild(mainMenuA);
}
var value = ogs.load('universe_'+ogs.ogame.serversprache);
if (value >= 0 && uniselect.length > value)
uniselect.selectedIndex = value;
}
}
if (ogs.load('fokusonlogin'))
{
var loginbutton = document.getElementById('button');
if (loginbutton != null)
loginbutton.focus();
}
}
//--------------------------------
// Hier Startes das Hauptskript
//--------------------------------
function ogameskript()
{
//-----
// GPL
//-----
if (!ogs.load('gpl'))
{
alert('OGame-Skript v' + ogs.version() + ', Copyright (C) 2006-2007 Windows-zerstoerer, ab März 2007 Eleria & Co, ab Juli 2007 hakaz & User-Gruppe des OGame-Forums\nF' + ue + 'r das OGame-Skript besteht KEINERLEI GARANTIE. OGame-Skript ist freie Software, die du unter bestimmten Bedingungen weitergeben darfst. Weitere Details findest du im Einstellungen-Men' + ue + ' unten. Mit der Verwendung des Skriptes werden die Bedingungen der GPL aktzeptiert.');
ogs.save('gpl', 1);
}
// Textfarbe der eingefuegten Skripterweiterungen laden
ogs.textfarbe = ogs.load('skriptcolor');
// Zeitdifferenz bestimmen
ogs.zeitdifferenz = parseInt(ogs.load('zeit_diff'),10);
if (ogs.ogame.page == 'overview')
{
// Differenz Serverzeit <-> lokale Zeit bestimmen
var ZeitZelle = ogs.dom.getEBF(document, 'th','colSpan == 3')[0];
var ServerZeit = ogs.time.einlesen(ZeitZelle.firstChild.nodeValue);
ogs.zeitdifferenz = (ogs.start.time.getTime() - ServerZeit.getTime());
ogs.save('zeit_diff', '' + ogs.zeitdifferenz);
//zeitverschiebung automatisch gerechnet werden soll
if (ogs.load('zeitverschiebung_auto'))
{
//erste zeitangabe in der übersicht finden
var firstTimer = document.getElementById('bxx1');
if (firstTimer)
{
//endzeit (star) und restflugzeit (title) einlesen
var star = firstTimer.getAttribute('star');
var title = firstTimer.getAttribute('title');
//rechnet die verzoegerung in halben stunden aus
var verz = Math.round((Math.round(ogs.time.now().getTime() / 1000) - (star - title + parseInt(ogs.load('zeitverschiebung'),10) * 60)) / 1800);
if (verz != 0)
{
if (confirm(txt('o_1','Es wurde festgestellt dass die Zeitverschiebung um #*1*# Minuten falsch eingestellt ist. Soll diese Einstellung behoben werden?\n(Diese Meldung kann im OGS-Setup unter "Allgemein" => "Auto Zeitverschiebung" abgestellt werden.)',verz * 30)))
{
ogs.save('zeitverschiebung', verz * 30 + parseInt(ogs.load('zeitverschiebung'),10));
}
}
}
}
}
//------------------
// allgemeines Zeug
//------------------
// Ersatz fuer fruehere Body Var
// oGame v0.77 content fix (original by xsign.dll) + leftmenu fix
var ContDiv = document.getElementById('content');
var LeftDiv = document.getElementById('menu');
if (ogs.load('menu_mode') > 0)
{
if (ogs.browser == 'ff')
{
ContDiv.style.position = 'relative';
ContDiv.style.overflow = 'visible';
if (settingscur['menu_mode'] == 1)
LeftDiv.style.position = 'fixed';
else
LeftDiv.style.position = 'absolute';
LeftDiv.style.overflow = 'visible';
}
else
{
/*
ContDiv.style.position = 'relative';
ContDiv.style.overflow = 'visible';
if (settingscur['menu_mode'] == 1)
LeftDiv.style.position = 'fixed';
else
LeftDiv.style.position = 'absolute';
LeftDiv.style.overflow = 'visible';
*/
}
}
// Loeschen von <br><br><br><br> im oGame v0.77b Design
var ContDivBr1 = ogs.dom.getCEBF(ContDiv,'center');
if (ContDivBr1.length > 0)
{
var ContDivBr = ogs.dom.getCEBF(ContDivBr1[0], 'br');
for (var i = 0; i < ContDivBr.length; i++)
{
ogs.dom.removeElement(ContDivBr[i]);
}
ContDivBr1 = ogs.dom.getCEBF(ContDivBr1[0],'center');
if (ContDivBr1.length > 0)
{
ContDivBr = ogs.dom.getCEBF(ContDivBr1[0], 'br');
for (var i = 0; i < ContDivBr.length; i++)
{
ogs.dom.removeElement(ContDivBr[i]);
}
ContDivBr1 = ogs.dom.getCEBF(ContDivBr1[0],'form');
if (ContDivBr1.length > 0)
{
ContDivBr = ogs.dom.getCEBF(ContDivBr1[0], 'br');
for (var i = 0; i < ContDivBr.length; i++)
{
ogs.dom.removeElement(ContDivBr[i]);
}
}
}
}
ogs_kopfzeile();
// Zeit im linken Menu anzeigen
if (ogs.load('zeit_links')) // Zeit im NaviMenue anzeigen
{
function ZeitAktualisieren2() // aktualisiere die aktuelle Uhrzeit
{
document.getElementById('akt_zeit').innerHTML = ogs.time.toString(ogs.time.now()); // Ankunfszeit formatieren und anzeigen
window.setTimeout(ZeitAktualisieren2, 999);
}
var Zeitzeile = document.getElementsByTagName('nobr')[0]; // Absatz mit der OGame-Version finden
if (Zeitzeile)
{
Zeitzeile.innerHTML += '<br /><b><span style="color:' + ogs.textfarbe + ';" id="akt_zeit">-</span></b>';
ZeitAktualisieren2();
}
}
//Menüzeilen einträge anzeigen!
ogs.load('pranger');
if (ogs.load('menu_link_enable') || settingscur['pranger'])
{
//menütable laden
var vMenu = document.getElementById('menu').getElementsByTagName('table')[0];
var vMenuMode = false;
if (ogs.load('menu_link_pos') > -1 && vMenu.rows.length > settingscur['menu_link_pos'])
{
vMenu = vMenu.rows[settingscur['menu_link_pos']];
vMenuMode = true;
}
else
{
var vTr = document.createElement('tr');
var vTd = document.createElement('td');
vTr.appendChild(vTd);
vTd.innerHTML = ' ';
vMenu.appendChild(vTr);
}
if (settingscur['pranger'])
{
var vTr = document.createElement('tr');
var vTd = document.createElement('td');
vTr.appendChild(vTd);
vTd.innerHTML = '<div align="center"><font color="#FFFFFF"><a href="/game/pranger.php" target="_blank">'+txt('m_1','Pranger')+'</a></font></div>';
if (vMenuMode)
vMenu.parentNode.insertBefore(vTr,vMenu);
else
vMenu.appendChild(vTr);
}
if (settingscur['menu_link_enable'])
{
var vMenuData = ogs.array.split(ogs.load('menu_link_liste'),'|','&');
for (var i = 0; i < vMenuData.length; i++)
{
if (vMenuData[i].length == 2 && vMenuData[i][0] != '' && vMenuData[i][1] != '')
{
var vTr = document.createElement('tr');
var vTd = document.createElement('td');
vTr.appendChild(vTd);
vTd.innerHTML = '<div align="center"><font color="#FFFFFF"><a href="' + ogs.getLink(vMenuData[i][1]) + '" target="_blank">'+vMenuData[i][0]+'</a></font></div>';
if (vMenuMode)
vMenu.parentNode.insertBefore(vTr,vMenu);
else
vMenu.appendChild(vTr);
}
}
}
}
// In der Schiffsauswahl
if (ogs.ogame.page == 'flotten1')
{
// Fuegt einen weiteren Button 'ben' ein, berechnet Laderaumkapazitaet der ausgewaehlten Schiffe
var AnzeigeKap = ogs.dom.getEBF(ContDiv,'table','width == 519');
//Vertauscht die Anzeigen im Flotten 1 Menü
if (ogs.load('flotte_seite1_upsidedown')) AnzeigeKap[0].parentNode.appendChild(AnzeigeKap[0]);
//ogs.dom.removeElement(AnzeigeKap0);
if (AnzeigeKap[1].innerHTML.match(/Flottenverband/))
{
AnzeigeKap = AnzeigeKap[2];
}
else
{
AnzeigeKap = AnzeigeKap[1];
}
var zeile = document.createElement('tr');
var zelle = document.createElement('th');
ogs.dom.insertBehind(zeile,ogs.dom.getEBF(ContDiv,'a','href.match("maxShips()")')[0].parentNode.parentNode);
zeile.appendChild(zelle);
zeile.style.height = '20px';
zelle.colSpan = 4;
zelle.innerHTML = txt('f_storage','Gewählte Ladekapazität')+'<br /><div id="storage" style="color:lime;">0</div>';
var Ress = HoleRessourcen(); // vorhandene Ressourcen bestimmen
var RessSumme = Ress[0] + Ress[1] + ((!ogs.load('kein_deut')) ? Ress[2] : 0); // Summe der Ressourcen bestimmen, Deut nur einrechnen falls es nicht deaktiviert wurde
var Links = ogs.dom.getEBF(ContDiv,'a','href.match(/javascript:maxShip\\(/)'); // 'max'-Links finden
for (var i = 0; i < Links.length; i++) // Ueber alle max-Links
{
var ID = Links[i].href.match(/ship([0-9]+)/)[1]; // Schiffs-ID bestimmen
if (ID == 202 || ID == 203 || ID == 209) // fuer kleine und grosse Transporter
{
var BenSchiffe; // benoetigte Anzahl Schiffe
switch(ID)
{
case '202': BenSchiffe = Math.ceil(RessSumme / 5000); break;
case '203': BenSchiffe = Math.ceil(RessSumme / 25000); break;
default: BenSchiffe = Math.ceil(RessSumme / 20000); break;
}
var Vorhanden = document.getElementsByName('maxship' + ID)[0].value; // vorhandene Anzahl Schiffe
// Linkziel ist ein JavaScript, das die Schiffsanzahl entsprechend setzt
var url = 'javascript: void(document.getElementsByName("ship' + ID + '")[0].value = ' + Math.min(Vorhanden, BenSchiffe) + ');';
var tooltiptext = '<table width=\\\'100%\\\'><tr><td><center>';
var tooltiplang = txt('f_8',new Array('erforderlich: ','vorhanden: ','fehlend: '));
if (Vorhanden < BenSchiffe)
{
var farbe = 'red';
tooltiptext += tooltiplang[0] + BenSchiffe + '<br />' + tooltiplang[1] + Vorhanden + '<br />' + tooltiplang[2] + '<font style=\\\'color: '+farbe+'\\\'>'+(BenSchiffe - Vorhanden)+'</font>';
}
else
{
var farbe = 'green';
tooltiptext += tooltiplang[0] + BenSchiffe;
}
tooltiptext += '</center></td></tr></table>';
url += 'ogs.calcLaderaum();';
var link = ogs.dom.newElement('a', 'ben', 'href', url);
ogs.addOverLib(link,tooltiptext);
link.style.color = farbe;
Links[i].parentNode.appendChild(link); // Link einfuegen
}
}
function ogs_calcLaderaum()
{
window.setTimeout(function()
{
var z = 0;
for (var i = 200; i < 220; i++)
{
if (document.getElementsByName('ship' + i).length > 0 && i != 210)
z += document.getElementsByName('capacity' + i)[0].value * document.getElementsByName('ship' + i)[0].value;
}
document.getElementById('storage').innerHTML = TausenderZahl(z);
}, 50);
}
ogs.bind('calcLaderaum',ogs_calcLaderaum);
var Anzahl = ogs.dom.getEBF(ContDiv, 'input', 'size == 10 && knoten.name.match(/ship/)'); // Event onchange fuer Berechnung der Ladekapazitaet ueber Input, geht nicht ueber innerHTML
for (var i = 0; i < Anzahl.length; i++) ogs.addEvent(Anzahl[i],'change', ogs.calcLaderaum, true);
var Anzahl = ogs.dom.getEBF(ContDiv, 'a', 'href.match(/Ship/)'); // Event onclick fuer Berechnung der Ladekapazitaet ueber Link, geht nicht ueber innerHTML
for (var i = 0; i < Anzahl.length; i++) ogs.addEvent(Anzahl[i],'click', ogs.calcLaderaum, true);
// Ankunftszeit bei Rueckruf, original von xsign.dll
function RTime()
{
var rbutton = document.getElementsByName('order_return');
if(rbutton.length == 0) return;
var curdate = ogs.time.now();
for (var i = 0; i < rbutton.length; i++)
{
var senddate = ogs.time.einlesen(rbutton[i].parentNode.parentNode.parentNode.getElementsByTagName('th')[4].innerHTML);
var ankfdate = ogs.time.einlesen(rbutton[i].parentNode.parentNode.parentNode.getElementsByTagName('th')[6].innerHTML);
var curstamp = curdate.getTime();
var sendstamp = senddate.getTime();
var ankfstamp = ankfdate.getTime();
//jahreswechselsupport
if (sendstamp > ankfstamp)
{
ankfdate.setFullYear(ankfdate.getFullYear() + 1);
ankfstamp = ankfdate.getTime();
}
if (curstamp <= ankfstamp) // + 3000) //erst 3 sekunden nachher ruckzug entfernen.
{
var rdate = new Date(2 * curstamp - sendstamp);
var zus = '<br /><font color="' + ogs.textfarbe + '">';
zus += (rdate.getDate() != curdate.getDate()) ? rdate.getDate() + '.' + (rdate.getMonth() + 1) + '.' : ' ';
var rh = rdate.getHours();
var rm = rdate.getMinutes();
var rs = rdate.getSeconds();
if (rh < 10) { rh = '0' + rh; }
if (rm < 10) { rm = '0' + rm; }
if (rs < 10) { rs = '0' + rs; }
zus += '<br />' + rh + ':' + rm + ':' + rs + '</font>';
var rspan = document.getElementById('sp' + i);
if (!rspan)
{
rspan = document.createElement('span');
rspan.id = 'sp'+i;
rbutton[i].parentNode.appendChild(rspan);
}
rspan.innerHTML = zus;
}
else
{
var rspan = document.getElementById('sp' + i);
if (rspan) rspan.innerHTML = '';
}
}
}
if (ogs.load('ankft_zeit'))
{
RTime();
window.setInterval(RTime, 499);
}
}
if (((ogs.ogame.page == 'flotten2' && ogs.planetliste) || (ogs.ogame.page == 'flotten3')) && ogs.window.shortInfo)
{
if (ogs.load('flotte_schiffauswahl'))
{
var Schiffe = new Array();
Schiffe['namen'] = txt('ship_name', new Array('Kleiner Transporter', 'Gro' + sz + 'er Transporter', 'Leichter Jäger', 'Schwerer Jäger', 'Kreuzer', 'Schlachtschiff', 'Kolonieschiff', 'Recycler', 'Spionagesonde', 'Bomber', 'Solarsatellit', 'Zerstörer', 'Todesstern', 'Schlachtkreuzer'));
Schiffe['ids'] = new Array(202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215);
var Unterwegs = new Array('<tr><td class="c" colspan="2">'+txt('f_1','Schiffe')+'</td></tr>');
for (var i = 0; i < Schiffe['ids'].length; i++)
{
var ship = document.getElementsByName('ship'+Schiffe['ids'][i]);
if (ship.length > 0) Unterwegs.push('<tr><th>'+Schiffe['namen'][i]+'</th><th>'+ship[0].value+'</th></tr>');
}
var element = document.createElement('center');
element.innerHTML = '<table width="519">'+Unterwegs.join('')+'</table>';
ContDiv.appendChild(document.createElement('br'));
ContDiv.appendChild(element);
}
if (ogs.ogame.page == 'flotten3' && ogs.load('flotte_seite3_zeiten'))
{
var element = document.createElement('center');
element.innerHTML = '<table width="519"><tr><td class="c" colspan="2">'+txt('f_6','Zeiten')+'</td></tr><tr><th>'+txt('f_7','Dauer (eine Strecke)')+'</th><th id="duration">-</th></tr><tr><th>'+txt('f_3','Ankunft (Ziel)')+'</th><th id="ankunft_ziel">-</th></tr><tr><th>'+txt('f_4','Ankunft (Ursprung)')+'</th><th id="ankunft_ursprung">-</th></tr></table>';
ContDiv.appendChild(document.createElement('br'));
ContDiv.appendChild(element);
var seconds = ogs.window.duration();
var hours = Math.floor(seconds / 3600);
seconds -= hours * 3600;
var minutes = Math.floor(seconds / 60);
seconds -= minutes * 60;
if (minutes < 10) minutes = '0' + minutes;
if (seconds < 10) seconds = '0' + seconds;
document.getElementById('duration').innerHTML = hours + ':' + minutes + ':' + seconds + ' h';
function ogs_flotte3_akt() // Zeiten aktualisieren
{
var Flugzeit = parseInt(ogs.window.duration());
var AktZeit = ogs.time.now().getTime();
Ankunft = new Date(AktZeit + (Flugzeit * 1000)); // Ankunft: Aktuelle Uhrzeit+Flugzeit (*1000 weil es Millisekunden sind)
Rueck = new Date(AktZeit + (Flugzeit * 2000)); // Rueckkehr: Aktuelle Uhrzeit + 2*Flugzeit (*2000 weil es Millisekunden sind)
document.getElementById('ankunft_ziel').firstChild.nodeValue = ogs.time.toString(Ankunft); // Ankunfszeit formatieren und anzeigen
document.getElementById('ankunft_ursprung').firstChild.nodeValue = ogs.time.toString(Rueck); // Rueckkehrzeit formatieren und anzeigen
}
ogs_flotte3_akt();
window.setInterval(ogs_flotte3_akt, 200);
}
}
// In der Zielauswahl
if (ogs.ogame.page == 'flotten2' && ogs.planetliste)
{
//--------------------------
// Flottenmenue berarbeiten
//--------------------------
if (ogs.load('fltmenu_buttons'))
{
// Fuegt hinter dem ersten vorhandenen Button einen weiteren ein, der BtnFunk ausfuehrt
function NeuerButton(Titel, BtnFunk)
{
var Btn = ogs.dom.getEBF(ContDiv,'input','type.toLowerCase() == "submit"'); // alle Buttons (input-Tag mit type="submit") in einer Tabellentitelzelle, deren colspan>1 ist
if (!Btn) return;
Btn = Btn[Btn.length-1]; // den letzten gefundenen Button nehmen
var NeuBtn = document.createElement('input'); // Neuen Button erstellen
NeuBtn.type = 'button'; // Damit es auch ein Button wird
NeuBtn.value = Titel; // Beschriftung zuweisen
ogs.addEvent(NeuBtn,'click', BtnFunk, true); // Klick-Funktion zuweisen
Btn.parentNode.appendChild(NeuBtn); // neuen Button hinter den anderen setzen
}
// Schickt die Flotte zum Default-Plani
function ZumDefPlSenden()
{
ogs.window.setTarget(ogs.planetliste[0]['Def']['Gala'], ogs.planetliste[0]['Def']['Sys'], ogs.planetliste[0]['Def']['Pos'], ogs.planetliste[0]['Def']['Typ']); // Flottenziel setzen
ogs.window.shortInfo(); // Anzeige aktualisieren
if (InInt(document.getElementById('storage').innerHTML) <= 0) // Laderaum kontrollieren, falls nicht genug, nachfragen
if (!ogs.load('warnung'))
if (!confirm('Der Laderaum ist hierf' + ue + 'r zu klein. Trotzdem fortfahren?')) { return; } // falls der User es wnscht, abbrechen //WARNUNG
document.forms[0].submit(); // Formular absenden
}
// Schickt die Flotte zum aktuellen Mond, wenn ein Plani aktiv ist, und umgekehrt
function ZumAktPartnerSenden()
{
if (!ogs.planetliste[0]['Aktiv']['Partner']) return;
var Partner = ogs.planetliste[0]['Aktiv']['Partner'];
ogs.window.setTarget(Partner['Gala'], Partner['Sys'], Partner['Pos'], Partner['Typ']); // Flottenziel setzen
ogs.window.shortInfo(); // Anzeige aktualisieren
if (InInt(document.getElementById('storage').innerHTML) < 0) // Laderaum kontrollieren, falls nicht genug, nachfragen
if (!ogs.load('warnung'))
if (!confirm('Der Laderaum ist hierf' + ue + 'r zu klein. Trotzdem fortfahren?')) { return; } // falls der User es wnscht, abbrechen //WARNUNG
document.forms[0].submit(); // Formular absenden
}
function ZumPlaniButton(Plani, BtnFunk) // kleine Hilfsfunktion
{
NeuerButton(((Plani['Typ'] == ogs.planettype.planet) ? txt('f_p','zum Plani #*1*#',Plani['Name']) : txt('f_m','zum Mond #*1*#',Plani['Name'])), BtnFunk);
}
if (ogs.planetliste[0]['Def']['ID'] != ogs.planetliste[0]['Aktiv']['ID']) // wenn der aktuelle Plani nicht der default-Plani ist
ZumPlaniButton(ogs.planetliste[0]['Def'], ZumDefPlSenden); // neuen Button einfuegen
if (ogs.planetliste[0]['Aktiv']['Partner'] && ogs.planetliste[0]['Aktiv']['Partner']['ID'] != ogs.planetliste[0]['Def']['ID']) // wenn der aktuelle Plani nen Partner hat
ZumPlaniButton(ogs.planetliste[0]['Aktiv']['Partner'], ZumAktPartnerSenden);
}
if (ogs.load('ankft_zeit'))
{
// Berechne die Ankunftszeiten und setze sie in die Felder
function ogs_flotte2_akt()
{
var Flugzeit = parseInt(ogs.window.duration());
// Zeiten aktualisieren
var AktZeit = ogs.time.now().getTime(); // aktuelle Zeit
Ankunft = new Date(AktZeit + (Flugzeit * 1000)); // Ankunft: Aktuelle Uhrzeit+Flugzeit (*1000 weil es Millisekunden sind)
Rueck = new Date(AktZeit + (Flugzeit * 2000)); // Rueckkehr: Aktuelle Uhrzeit + 2*Flugzeit (*2000 weil es Millisekunden sind)
document.getElementById('ankunft_ziel').firstChild.nodeValue = ogs.time.toString(Ankunft); // Ankunfszeit formatieren und anzeigen
document.getElementById('ankunft_ursprung').firstChild.nodeValue = ogs.time.toString(Rueck); // Rueckkehrzeit formatieren und anzeigen
}
// Geschwindigkeitsauswahl anordnen
var geschw_ausw = document.getElementsByName('speed')[0];
geschw_ausw.parentNode.style.textAlign = 'left';
geschw_ausw.parentNode.style.textIndent = '10px';
// fuegt Tabellenzeile fuer die Anzeige der Ankunftszeiten ein und startet den Timer zum Berechnen
var TabZeile = document.getElementById('duration').parentNode.parentNode; // Zeile mit der Flugzeit
// Zeile fuer Zielankunft erstellen
var NeueZeile = document.createElement('tr'); // Neue Zeile
NeueZeile.appendChild(ogs.dom.newElement('th', txt('f_3','Ankunft (Ziel)'))); // Zelle in Zeile
var NeueZelle = ogs.dom.newElement('th', '<div id="ankunft_ziel">-</div>'); // 2. Zelle
NeueZelle.height = '20'; // Attribute zuweisen
NeueZeile.appendChild(NeueZelle); // Zelle in Zeile
TabZeile = ogs.dom.insertBehind(NeueZeile, TabZeile); // neue Zeile einfuegen
// Zeile fuer Ursprungsankunft erstellen (via DOM, innerHTML klappt nicht)
NeueZeile = document.createElement('tr'); // Neue Zeile
NeueZeile.appendChild(ogs.dom.newElement('th', txt('f_4','Ankunft (Ursprung)'))); // Zelle in Zeile
NeueZelle = ogs.dom.newElement('th', '<div id="ankunft_ursprung">-</div>'); // 2. Zelle
NeueZelle.height = '20'; // Attribute zuweisen
NeueZeile.appendChild(NeueZelle); // Zelle in Zeile
TabZeile = ogs.dom.insertBehind(NeueZeile, TabZeile); // neue Zeile einfuegen
// Warnung einfuegen
var element = document.createElement('center');
element.innerHTML = '<table width="519"><tr><th>'+txt('f_5','Bitte beachte, dass abhängig von der Geschwindigkeit deines Internetzugangs die oben angegebene Uhrzeit um einige Sekunden daneben liegen kann. Die angenommene Serverzeit in der Übersicht oder links über dem Menü kann zum Vergleichen herangezogen werden - sie dient als Grundlage für die hier angezeigte Uhrzeit.')+'</th></tr></table>';
ContDiv.appendChild(document.createElement('br'));
ContDiv.appendChild(element);
// Timer starten
ogs_flotte2_akt();
window.setInterval(ogs_flotte2_akt, 200);
}
if (ogs.load('flotte_seite2_tfwahl'))
{
var rec = document.getElementsByName('ship209');
if (rec.length > 0) document.getElementsByName('planettype')[0].value = 2; //tf
}
if (ogs.load('flotte_seite2_combobox'))
{
var speedselect = document.getElementsByName('speed');
if (speedselect.length > 0)
{
for (var i = 0; i < 10; i++)
{
var test = document.createElement('a');
test.href = 'javascript: document.getElementsByName("speed")[0].value = '+(1+i)+'; ogs.fleet2marker('+i+',0);';
test.innerHTML = (i*10+10) + ' ';
test.id = 'ogs_speed'+i;
if (i == 9) test.style.color = 'red';
speedselect[0].parentNode.insertBefore(test, speedselect[0]);
}
speedselect[0].style.display = 'none';
speedselect[0].parentNode.removeAttribute('style');
}
var planettypeselect = document.getElementsByName('planettype');
if (planettypeselect.length > 0)
{
for (var i = 0; i < 3; i++)
{
var test = document.createElement('a');
test.href = 'javascript: document.getElementsByName("planettype")[0].value = '+(1+i)+'; ogs.fleet2marker('+i+',1);';
test.innerHTML = planettypeselect[0].options[i].text + ' ';
test.id = 'ogs_ptype'+i;
if (planettypeselect[0].options[i].selected == true)
test.style.color = 'red';
planettypeselect[0].parentNode.insertBefore(test, planettypeselect[0]);
}
planettypeselect[0].style.display = 'none';
}
function ogs_fleet2marker(id, mode)
{
if (mode == 0)
{
for (var i = 0; i < 10; i++)
{
if (id != i)
document.getElementById('ogs_speed'+i).style.color = '';
else
document.getElementById('ogs_speed'+i).style.color = 'red';
}
}
else if (mode == 1)
{
for (var i = 0; i < 3; i++)
{
if (id != i)
document.getElementById('ogs_ptype'+i).style.color = '';
else
document.getElementById('ogs_ptype'+i).style.color = 'red';
}
}
ogs.window.shortInfo();
}
function setTarget(galaxy, solarsystem, planet, planettype)
{
document.getElementsByName('galaxy')[0].value = galaxy;
document.getElementsByName('system')[0].value = solarsystem;
document.getElementsByName('planet')[0].value = planet;
document.getElementsByName('planettype')[0].value = planettype;
ogs.fleet2marker(planettype - 1, 1);
}
ogs.window.setTarget = setTarget;
ogs.bind('fleet2marker',ogs_fleet2marker);
}
if (ogs.load('flotte_seite2_shortlinks'))
{
var tab = ogs.dom.getEBF(ContDiv,'table','width == 519');
var absatz = 0;
if (tab.length > 0)
{
var zeilen = tab[0].rows;
var spalten = null;
var nextspalte = null;
//suche shortlinks und loesche bestehende
for (var i = 0; i < zeilen.length; i++)
{
spalten = zeilen[i].cells;
if (spalten.length == 1)
{
absatz++;
if(absatz > 2) break;
}
else
{
if (absatz == 2)
{
tab[0].deleteRow(i);
i--;
}
}
}
if (absatz > 1 && i > 0)
{
var shortlinkid = i;
var code = '<table class="ogs_shortlinks" style="width: 100%;">';
var bezeichnung = txt('f_2',new Array('-','TF','Expo'));
var posmarker;
for (var i = 1; i < ogs.planetliste.length; i++)
{
if (ogs.planetliste[i]['Typ'] == ogs.planettype.planet)
{
if(ogs.planetliste[i]['Aktiv'] || (ogs.planetliste[i]['Partner'] && ogs.planetliste[i]['Partner']['Aktiv']))
posmarker = ' style="color: '+ogs.load('flotte_seite2_shortlinks_p')+';"';
else
posmarker = '';
//Planet
code += '<th><a href="javascript:setTarget(' + ogs.planetliste[i]['Gala'] + ',' + ogs.planetliste[i]['Sys'] + ',' + ogs.planetliste[i]['Pos'] + ',1); shortInfo()"';
if(ogs.planetliste[i]['Aktiv'])
code += ' style="color: '+ogs.load('flotte_seite2_shortlinks_a')+';"';
else
code += posmarker;
code += '>' + ogs.planetliste[i]['Name'] + ' ' + ogs.planetliste[i]['Koords'] + '</a></th>';
//Mond
if (ogs.planetliste[i]['Partner'])
{
code += '<th><a href="javascript:setTarget(' + ogs.planetliste[i]['Gala'] + ',' + ogs.planetliste[i]['Sys'] + ',' + ogs.planetliste[i]['Pos'] + ',3); shortInfo()"';
if(ogs.planetliste[i]['Partner']['Aktiv'])
code += ' style="color: '+ogs.load('flotte_seite2_shortlinks_a')+';"';
else
code += posmarker;
code += '>' + ogs.planetliste[i]['Partner']['Name'] + '</a></th>';
}
else
{
code += '<th>'+bezeichnung[0]+'</th>'
}
// TF
code += '<th><a'+posmarker+' href="javascript:setTarget(' + ogs.planetliste[i]['Gala'] + ',' + ogs.planetliste[i]['Sys'] + ',' + ogs.planetliste[i]['Pos'] + ',2); shortInfo()">'+bezeichnung[1]+'</a></th>';
// Expo
code += '<th><a'+posmarker+' href="javascript:setTarget(' + ogs.planetliste[i]['Gala'] + ',' + ogs.planetliste[i]['Sys'] + ',16,1); shortInfo()">'+bezeichnung[2]+'</a></th>';
code += '</tr>';
}
}
tab[0].insertRow(shortlinkid);
tab[0].rows[shortlinkid].insertCell(0);
tab[0].rows[shortlinkid].cells[0].colSpan = 2;
tab[0].rows[shortlinkid].cells[0].innerHTML = code + '</tr></table>';
}
}
}
}
// In der Auftragsauswahl
if (ogs.ogame.page == 'flotten3')
{
if (ogs.load('auto_auftrag'))
{
var vExpedition = document.getElementsByName('planet');
if (vExpedition.length > 0)
{
var vPlanniKoord = parseInt(vExpedition[0].value); //parseInt(vExpedition[0].innerHTML.split(':')[2]);
if (vPlanniKoord == 16)
{
var Auftr = ogs.dom.getEBF(ContDiv, 'input','type == "radio" && knoten.name == "order"');
Auftr[0].checked = 'checked';
}
else
{
// beteiligte Schiffe ermitteln
var HiddenData = ogs.dom.getEBF(ContDiv, 'input','type == "hidden" && knoten.name.match(/ship/)');
var Beteiligt = new Array(), Kampfschiff = false, Transporter = false;
for (var i = 0; i < HiddenData.length; i++) // ueber alle 'hidden'-Felder
{
var ID = HiddenData[i].name.substr(4, 3);
if (ID >= 200 && ID <= 299) // gefundene Schiffe
{
Beteiligt[ID] = true; // speichern
// Kampfschiffe sind alle ausser Transportern, Recyclern, Kolschiffen und Spiosonden (Solsats kann man nicht schicken)
if (ID != 202 && ID != 203 && ID != 209 && ID != 208 && ID != 210) Kampfschiff = true;
if (ID == 202 || ID == 203) Transporter = true;
}
}
// moegliche Auftraege finden
var Auftr = ogs.dom.getEBF(ContDiv, 'input','type == "radio" && knoten.name == "order"'); // Alle Tags fuer die Auftragsauswahl finden
var AuftrgBoxen = new Array(), BereitsMarkiert = false;
for (var i = 0; i < Auftr.length; i++) // Ueer alle Auftragsauswahl-Tags
{
AuftrgBoxen[Auftr[i].value] = Auftr[i]; // speichern
if (Auftr[i].checked) // falls diese Box vormakrkiert ist
{
BereitsMarkiert = true; // speichere eine Vormarkierung
break; // Ende der Schleife - es wird nichts markiert, weil schon was markiert ist
}
}
if (!BereitsMarkiert)
{
if (Kampfschiff && AuftrgBoxen[1])
{
if (AuftrgBoxen[2])
AuftrgBoxen[2].checked = 'checked'; // 2 = Verbandsangriff
else
AuftrgBoxen[1].checked = 'checked'; // 1 = Angreifen
}
else
{
if (Beteiligt[210] && AuftrgBoxen[6])
{
AuftrgBoxen[6].checked = 'checked'; // 210 = Spiosonde, 6 = Spionieren
}
else
{
if (Beteiligt[209] && AuftrgBoxen[8])
{
AuftrgBoxen[8].checked = 'checked'; // 209 = Recycler, 8 = Abbau
}
else
{
if (Beteiligt[208] && AuftrgBoxen[7])
{
AuftrgBoxen[7].checked = 'checked'; // 208 = Koloschiff, 7 = Kolonisieren
}
else
{
if (((Beteiligt[210] && !Kampfschiff && !Transporter) || ogs.load('stationieren_vorz')) && AuftrgBoxen[4])
{
AuftrgBoxen[4].checked = 'checked'; // 210 = Spiosonde alleine, 4= Stationieren
}
else
{
if (AuftrgBoxen[3])
{
AuftrgBoxen[3].checked = 'checked'; // alle anderen Faelle, 3 = Transport
}
}
}
}
}
}
}
}
}
}
// Alternative Beladungsreihenfolge D-K-M
if (ogs.load('fltmenu_buttons'))
{
var AltRessLaden = ogs.dom.getEBF(ContDiv,'a','href == "javascript:maxResources()"')[0].parentNode;
var AltRessLink = ' (M-K-D)</a><br> <br><a href="javascript: document.getElementsByName(\'resource1\')[0].value = \'0\'; document.getElementsByName(\'resource2\')[0].value = \'0\'; document.getElementsByName(\'resource3\')[0].value = \'0\';' + ((ogs.load('kein_deut')) ? '' : ' maxResource(\'3\');') + ' maxResource(\'2\'); maxResource(\'1\');">'+txt('f_res_all','Alle Rohstoffe (D-K-M)')+'</a>';
//Keine Ressourcen
AltRessLaden.innerHTML = '<a href="javascript: void(document.getElementsByName(\'resource1\')[0].value = \'0\'); void(document.getElementsByName(\'resource2\')[0].value = \'0\'); void(document.getElementsByName(\'resource3\')[0].value = \'0\');">'+txt('f_res_no','Keine Rohstoffe')+'</a><br> <br>' + AltRessLaden.innerHTML.replace(/<\/a>/i, AltRessLink);
var AltRessLaden = ogs.dom.getEBF(ContDiv,'a','href.match(/javascript:maxResource\\(\'[1-3]\'\\)/)');
for (var i = 0; i < 3; i++)
{
AltRessLaden[i].parentNode.innerHTML = '<a href="javascript: void(document.getElementsByName(\'resource'+(i+1)+'\')[0].value = \'0\'); ">min</a> ' + AltRessLaden[i].parentNode.innerHTML;
}
}
}
//----------------------
// Baumenues verbessern
//----------------------
if (ogs.ogame.page == 'buildings' || ogs.ogame.page == 'b_building')
{
var zeilen = ogs.dom.getEBF(ContDiv,'table','width == 530');
var spalten;
var zeilenbr = false;
if (zeilen.length > 0)
{
zeilen = zeilen[0].rows;
}
else
{
//nix machen kommt vor wenn man keinen skin verwendet ^^ da tabelle dann 468 px
}
if (zeilen.length > 0)
{
//einstellungen laden
ogs.load('building_nopics');
ogs.load('building_energie');
ogs.load('building_klein');
ogs.load('building_klein_pics_size');
ogs.load('building_bg');
ogs.load('building_bg_col1');
ogs.load('building_bg_col2');
ogs.load('transbuild');
ogs.load('colored_ress');
ogs.load('building_doppelzeilen');
ogs.load('endzeiten');
ogs.load('building_reichweite');
//varibalen fürs res färben
var vSucheRess = exp('b_res_1',new Array(/(Metall: )<b>([\.0-9]+)/,/(Kristall: )<b>([\.0-9]+)/,/(Deuterium: )<b>([\.0-9]+)/,/(Energie: )<b>([\.0-9]+)/));
var vColorRess = new Array(ogs.load('color_met'),ogs.load('color_kris'),ogs.load('color_deut'),ogs.load('color_eng'));
var forschung = new Array();
var forschunganzahl = 0;
var buildings = '';
//variable für kt gt auslesen
var ktgtRess = exp('b_res_2',new Array(/Metall:(.*?)<br>/,/Kristall:(.*?)<br>/,/Deuterium:(.*?)<br>/))
var ktgtName = txt('b_cargo',new Array('KTs','GTs'));
//variable fuer verkleinern
var buildsmall = exp('b_small',new Array(/<br>.+?<br>Ben/,'<br>Ben'));
for (var i = 0; i < zeilen.length; i++)
{
spalten = zeilen[i].getElementsByTagName('td');
if (spalten.length == 1)
{
spalten[0].colSpan += 1;
if (settingscur['building_nopics'])
{
spalten[0].colSpan = spalten[0].colSpan - 1;
}
if (settingscur['building_doppelzeilen'])
{
spalten[0].colSpan *= 2;
}
}
//handelt sich um einen bauauftrag am anfang der tabelle
if (spalten.length == 2)
{
//wenn bilder gelöscht werden sollen muss diese spalte verkleinert werden
if (settingscur['building_nopics'])
{
spalten[0].colSpan = spalten[0].colSpan - 1;
}
if (settingscur['building_doppelzeilen'])
{
spalten[0].colSpan += spalten[0].colSpan + spalten[1].colSpan;
}
}
//handelt sich um einen eintrag in der tabelle mit bild
if (spalten.length == 3)
{
if (ogs.ogame.page == 'b_building')
{
var ID = spalten[1].firstChild.href.match(/gid=([0-9]+)/)[1];
var stufen_wert = spalten[1].innerHTML.match(/<\/[aA]>([^<]+)<[bB][rR]/);
var Stufe = 0;
if (stufen_wert) // falls der Knoten kein Textknoten ist, ist das Gebaeude auf Stufe 0
{
var Stufe = InInt(stufen_wert[1]);
}
buildings += ID +'='+Stufe+':';
// Minen und Kraftwerke Energie anzeige
if ((ID <= 4 || ID == 12) && settingscur['building_energie'])
{
var Steigerung = ogs.getEnergie(ID, Stufe + 1) - ogs.getEnergie(ID, Stufe); // Steigerung des Verbrauchs/der Produktion berechnen
var vP;
Steigerung = ' [' + TausenderZahl(Steigerung,true) + ' ' + resOGS[3] + ']';
//färben?
vP = document.createElement('span');
//<!--(Stufe 0)--> fuer kompatibilitaet zur galatoolbar stufe 0 gebaude
if (settingscur['colored_ress'])
{
vP.innerHTML = '<!--GT: (Stufe 0)--><font style="color: '+vColorRess[3]+'">' + Steigerung + '</font>';
}
else
{
vP.innerHTML = '<!--GT: (Stufe 0)-->'+Steigerung;
}
spalten[1].insertBefore(vP, spalten[1].getElementsByTagName('br')[0]);
}
else if (ID == 42 && settingscur['building_reichweite']) //Sensor
{
if (Stufe > 0) // falls der Knoten kein Textknoten ist, ist das Gebaeude auf Stufe 0
{
var Reichweite = Math.pow(Stufe, 2) - 1;
var Sys = ogs.planetliste[0]['Aktiv']['Sys'];
spalten[1].innerHTML += 'Reichweite: ' + Reichweite + ' (' + Math.max(Sys - Reichweite, 1) + ' bis ' + Math.min(Sys + Reichweite,499) + ')<br />';
}
}
}
if (document.URL.match('Verteidigung'))
{
var ID = spalten[1].firstChild.href.match(/gid=([0-9]+)/)[1];
if (ID == 503 && settingscur['building_reichweite']) //IPrak
{
var TextKnot = spalten[1].childNodes[1];
if (TextKnot.nodeType == 3) // falls der Knoten kein Textknoten ist, ist das Gebaeude auf Stufe 0
{
var tech = ogs.array.split(ogs.load('forschung'),'|','&');
for (var ii = 0; ii < tech.length; ii++)
{
if (tech[ii][0] == 117)
{
tech = parseInt(tech[ii][1], 10);
break;
}
}
var Reichweite = 5 * tech - 1;
var Sys = ogs.planetliste[0]['Aktiv']['Sys'];
if (Reichweite > 0)
{
spalten[1].innerHTML += 'Reichweite: ' + Reichweite + ' (' + Math.max(Sys - Reichweite, 1) + ' bis ' + Math.min(Sys + Reichweite,499) + ')<br />';
}
}
}
}
//transporter text anzeigen?
if (settingscur['transbuild'])
{
var ress0 = 0; var ress_gt = 0; var ress_kt = 0;
var ress1 = ktgtRess[0].exec(spalten[1].innerHTML);
if (!ress1) ress1 = ktgtRess[1].exec(spalten[1].innerHTML);
if (!ress1) ress1 = ktgtRess[1].exec(spalten[1].innerHTML);
if (ress1)
{
ress1 = ress1[0].match(/>([\.0-9]+)</g);
for (var tt = 0; tt < ress1.length; tt++)
{
ress0 += parseInt(ress1[tt].replace(/<|>|\./g, ''), 10);
}
}
ress_gt = Math.ceil(ress0 / 25000);
ress_kt = Math.ceil(ress0 / 5000);
var posi = buildsmall[0].exec(spalten[1].innerHTML);
//<!--(Stufe 0)--> fuer kompatibilitaet zur galatoolbar stufe 0 gebaude
spalten[1].innerHTML = spalten[1].innerHTML.replace(posi, ' <!--GT: (Stufe 0)-->[<span style="color:' + ogs.textfarbe + ';">' + ress_gt + ' '+ktgtName[1]+'</span>|<span style="color:' + ogs.textfarbe + ';">' + ress_kt + ' '+ktgtName[0]+'</span>]' + posi);
}
//beschreibungstext entfernen
if (settingscur['building_klein'])
{
spalten[0].width = '1px'; //fix für zu bildfensterbreite
var pic = spalten[0].getElementsByTagName('img');
if (pic.length > 0)
{
pic[0].className = 'ogs_pic';
}
spalten[1].innerHTML = spalten[1].innerHTML.replace(buildsmall[0].exec(spalten[1].innerHTML),buildsmall[1]);
if (spalten[2].innerHTML.match('Die Schildkuppel kann nur 1 mal gebaut werden.'))
{
spalten[2].innerHTML = spalten[2].innerHTML.replace('Die Schildkuppel kann nur 1 mal gebaut werden.', '(max. 1)');
}
}
//res färben
if (settingscur['colored_ress'])
{
var vText = spalten[1].innerHTML;
for (var j = 0; j < vSucheRess.length; j++)
{
var vFinde = vSucheRess[j].exec(vText);
if (vFinde)
vText = vText.replace(vFinde[0],vFinde[0].split(' ')[0]+' <font color="'+vColorRess[j]+'">'+vFinde[2]+'</font>');
}
spalten[1].innerHTML = vText;
}
//foschung
if (document.URL.match('Forschung'))
{
//forschungsid suchen
var ID = zeilen[i].innerHTML.match(/gid=([0-9]+)/)[1];
//forschungslevel suchen
var Stufe = zeilen[i].innerHTML.match(/\([a-zA-Z]+ ([0-9]+)\)/);
if (Stufe != null) //es gibt eine Stufe
{
Stufe = parseInt(Stufe[1], 10);
}
else //wenn nicht dann stufe 0
{
Stufe = 0;
}
forschung.push(new Array(ID, Stufe));
forschunganzahl += Stufe;
}
if (settingscur['building_doppelzeilen'])
{
spalten[2].width = 70;
spalten[2].align = 'center';
}
//wenn bilder gelöscht werden sollen
if (settingscur['building_nopics'])
{
spalten[0].parentNode.removeChild(spalten[0]);
}
if (settingscur['building_doppelzeilen'])
{
if (zeilenbr == true)
{
zeilen[i-1].appendChild(spalten[0].cloneNode(true));
zeilen[i-1].appendChild(spalten[1].cloneNode(true));
if (!settingscur['building_nopics'])
zeilen[i-1].appendChild(spalten[2].cloneNode(true));
zeilen[i].parentNode.removeChild(zeilen[i]);
i--;
}
zeilenbr = !zeilenbr;
}
}
}
if (document.URL.match('Forschung'))
{
// fuer die ogame zeit funktion... in verbindung mit der doppelspalte das bxx element wiederfinden
if (document.getElementById('bxx') != null)
unsafeWindow.bxx = document.getElementById('bxx');
//nur wenn forschungen gefunden wurden.
if (forschung.length > 0)
ogs.save('forschung', ogs.array.join(forschung,'|','&'));
//anzahl forschungspunkte anzeigen
if (zeilen.length > 0 && forschunganzahl > 0)
{
zeilen[0].parentNode.insertRow(zeilen.length);
i = zeilen.length - 1;
zeilen[i].insertCell(0);
zeilen[i].cells[0].className = 'c';
zeilen[i].cells[0].style.textAlign = 'center';
zeilen[i].cells[0].innerHTML = txt('b_1','Forschungspunkte: #*1*#',forschunganzahl);
zeilen[i].cells[0].colSpan = (settingscur['building_nopics'] ? 2 : 3) * (settingscur['building_doppelzeilen'] ? 2 : 1);
}
}
if (ogs.ogame.page == 'b_building' && buildings.length > 0)
{
var allbuildings = ogs.array.split(ogs.load('buildings'),'|','&');
var planiNichtGefunden;
for (var i = 0; i < allbuildings.length; i++)
{
planiNichtGefunden = true;
for (var ii = 0; ii < ogs.planetliste.length; ii++)
{
if (allbuildings[i][0] == ogs.planetliste[ii]['ID'])
{
planiNichtGefunden = false;
break;
}
}
//nicht gefundene planeten loeschen und den aktuellen planeten loeschen um ihn nachher wieder einzutragen
if (ii >= ogs.planetliste.length || allbuildings[i][0] == ogs.planetliste[0]['Aktiv']['ID'])
{
allbuildings.splice(i,1);
i--;
}
}
allbuildings.push(new Array(ogs.planetliste[0]['Aktiv']['ID'], buildings));
ogs.save('buildings',ogs.array.join(allbuildings,'|','&'));
}
//endzeit anzeigen
if (ogs.ogame.page == 'buildings' && settingscur['endzeiten'])
{
var vRestdauert = ContDiv.getElementsByTagName('center');
if (vRestdauert.length > 0)
{
vRestdauert = vRestdauert[0].getElementsByTagName('form');
if (vRestdauert.length > 0)
{
vRestdauert = vRestdauert[0].getElementsByTagName('form');
}
}
if (vRestdauert.length > 0)
{
//hinter der zweiten form kommt wenn da der anzeige text für die restdauer
vRestdauert = vRestdauert[0].nextSibling;
var vDay = 0;
var vStd = 0;
var vMin = 0;
var vSek = 0;
var vX = '';
var vRestIHTML = vRestdauert.nodeValue;
vX = vRestIHTML.match(/([0-9]+) Tag /);
if (vX) { vDay = vX[1]; }
vX = vRestIHTML.match(/([0-9]+) Tage /);
if (vX) { vDay = vX[1]; }
vX = vRestIHTML.match(/([0-9]+) h /);
if (vX) { vStd = vX[1]; }
vX = vRestIHTML.match(/([0-9]+) m /);
if (vX) { vMin = vX[1]; }
vX = vRestIHTML.match(/([0-9]+) s/);
if (vX) { vSek = vX[1]; }
if (vDay || vStd || vMin || vSek)
{
var vMseks = 0;
vMseks += parseInt(vDay*86400);
vMseks += parseInt(vStd*3600);
vMseks += parseInt(vMin*60);
vMseks += parseInt(vSek);
var vFinishTime = new Date(ogs.time.now().getTime() + vMseks * 1000);
var vP = document.createElement('p');
vP.style.color = ogs.textfarbe;
vP.innerHTML = txt('g_done','Fertiggestellt am: ') + ogs.time.toString(vFinishTime);
vRestdauert.parentNode.insertBefore(vP, vRestdauert.nextSibling);
}
}
}
//endzeiten anzeigen
if (settingscur['endzeiten'])
{
var bxx = document.getElementById('bxx');;
if (bxx)
{
var buildtime = 0;
var timescript;
var bxx = bxx.parentNode.getElementsByTagName('script')[0];
if(document.URL.match('Forschung')) //bei forschung
{
timescript = bxx.text.match(/ss=([0-9]+)/);
}
else if(ogs.ogame.page == 'b_building')
{
if (bxx.text.indexOf('pp="') > -1) //bei buildings
{
timescript = bxx.text.match(/pp="([0-9]+)/);
}
else
{
timescript = bxx.text.match(/pp='([0-9]+)/);
}
}
if (timescript && timescript.length > 1)
{
buildtime = parseInt(timescript[1], 10);
}
var vP = document.createElement('b');
vP.innerHTML = '<br />' + ogs.time.stamp(new Date(ogs.time.now().getTime() + buildtime * 1000), true);
bxx.parentNode.appendChild(vP);
}
}
//färben was gewünscht ist
var CSSStr = '';
if (settingscur['building_klein'])
{
CSSStr += 'table tr th table tr td img, td.l img.ogs_pic { width: ' + settingscur['building_klein_pics_size'] + 'px; height: ' + settingscur['building_klein_pics_size'] + 'px; }';
}
if (settingscur['building_bg'])
{
CSSStr += 'table tr td table tr td.l { background-image: none; background-color: ' + settingscur['building_bg_col1'] + '; border: 1px ' + settingscur['building_bg_col2'] + ' solid; padding-left: 3px; padding-right: 3px; }';
CSSStr += 'body table tr td table tr td.k, body form table tr td table tr td.k, body table tr td table tr td.l + td.l + td.l { background-image: none; background-color: ' + settingscur['building_bg_col1'] + '; border: 1px ' + settingscur['building_bg_col2'] + ' solid; }';
}
if (CSSStr.length > 0) ogs.addStyle(CSSStr);
// Damit die Zeilenumbrueche neu gerendert werden und die Tabelle schicker aussieht
var InhaltsTab = zeilen[0].parentNode.parentNode; // der 'Vorfahr' einer dieser Zellen ist die grosse Tabelle (2mal parentNode, weil zuerst tbody kommt)
if (settingscur['building_doppelzeilen'])
{
InhaltsTab.removeAttribute('width');
}
else
{
InhaltsTab.style.width = TabBreite(650, 530);
}
// anzeige für das button in der letzten zeile fixen (veraltet)
//if (!document.URL.match('Forschung') && ogs.ogame.page == 'buildings')
// zeilen[zeilen.length - 1].innerHTML = zeilen[zeilen.length - 1].innerHTML;
}
}// Ende der Bauseiten-Erweiterungen
//-----------
// Techseite
//-----------
if (ogs.ogame.page == 'techtree')
{
var zeilen = ogs.dom.getEBF(ContDiv,'table','width == 470');
zeilen = zeilen[0].rows;
var spalten;
if (zeilen.length)
{
ogs.load('techtree_pics');
ogs.load('techtree_pics_size');
ogs.load('techtree_bg');
ogs.load('techtree_bg_col1');
ogs.load('techtree_bg_col2');
ogs.load('techtree_doppelzeilen');
//wenn bilder gewüscht wird dann grafikpath suchen
if (settingscur['techtree_pics'])
{
var skinpatharray = document.getElementsByTagName('link');
var skinpath = '';
for (var i = 0; i < skinpatharray.length; i++)
{
if (skinpatharray[i].href == 'css/formate.css' || skinpatharray[i].href == 'css/default.css') continue; //IE
if (skinpatharray[i].href.indexOf(ogs.ogame.server) == -1)
{
skinpath = skinpatharray[i].href;
skinpath = skinpath.substr(0, skinpath.lastIndexOf('formate.css'));
break;
}
if (skinpatharray[i].href.indexOf('/css/formate.css') == -1 && skinpatharray[i].href.indexOf(ogs.ogame.server) >= 0 && skinpath == '')
{
skinpath = skinpatharray[i].href;
skinpath = skinpath.substr(0, skinpath.lastIndexOf('formate.css'));
}
}
}
if (settingscur['techtree_pics'] || settingscur['techtree_bg'] || settingscur['techtree_doppelzeilen'])
{
var zeilenbr = false;
for (var i = 0; i < zeilen.length; i++)
{
spalten = zeilen[i].cells;
if (settingscur['techtree_bg'])
if (spalten[1].innerHTML.length == 1)
spalten[1].innerHTML = ' ';
if (settingscur['techtree_pics'])
{
if (spalten[0].className == 'l')
{
var ID = spalten[0].getElementsByTagName('a')[0].href.match(/gid=([0-9]+)/)[1];
var vP = spalten[0].cloneNode(false);
vP.innerHTML = '<img class="ogs_pic" src="' + skinpath + 'gebaeude/' + ID + '.gif">';
vP.width = '1px';
vP.className = 'l';
spalten[0].parentNode.insertBefore(vP, spalten[0]);
}
if (spalten[0].className == 'c')
{
spalten[0].colSpan = spalten[0].colSpan + 1;
}
}
if (settingscur['techtree_doppelzeilen'])
{
if (spalten[0].className == 'l')
{
if (zeilenbr == true)
{
zeilen[i-1].appendChild(spalten[0].cloneNode(true));
zeilen[i-1].appendChild(spalten[1].cloneNode(true));
if (settingscur['techtree_pics'])
zeilen[i-1].appendChild(spalten[2].cloneNode(true));
zeilen[i].parentNode.removeChild(zeilen[i]);
i--;
}
}
else if (spalten[0].className == 'c')
{
zeilenbr = true;
zeilen[i].appendChild(spalten[0].cloneNode(true));
zeilen[i].appendChild(spalten[1].cloneNode(true));
if (i > 0)
{
var z = document.createElement('tr');
z.style.height = '20px';
zeilen[i].parentNode.insertBefore(z,zeilen[i]);
i++;
}
}
zeilenbr = !zeilenbr;
}
}
}
//färben was gewünscht ist
var CSSStr = '';
if (settingscur['techtree_pics'])
{
CSSStr += 'body table tr td.l img.ogs_pic { width: ' + settingscur['techtree_pics_size'] + 'px; height: ' + settingscur['techtree_pics_size'] + 'px; }';
}
if (settingscur['techtree_bg'])
{
CSSStr += 'body table tr td.l, body table tr td.c { background-image: none; background-color: ' + settingscur['techtree_bg_col1'] + '; border: 1px ' + settingscur['techtree_bg_col2'] + ' solid; padding-left: 3px; padding-right: 3px; }';
}
if (CSSStr.length > 0)
ogs.addStyle(CSSStr);
var InhaltsTab = zeilen[0].parentNode.parentNode; // der 'Vorfahr' einer dieser Zellen ist die grosse Tabelle (2mal parentNode, weil zuerst tbody kommt)
if (settingscur['techtree_doppelzeilen'])
{
InhaltsTab.removeAttribute('width');
}
else
{
InhaltsTab.style.width = TabBreite(650, 530);
}
}
}
//--------------------
// techtree + gebinfo
//--------------------
// auf bauseiten anzeigen wenn building_info true und auf tech und forschungseite anzeigen wenn tech_info true
if ((ogs.ogame.page == 'buildings' && ogs.load('building_info')) || (ogs.ogame.page == 'b_building' && ogs.load('building_info')) || (((ogs.ogame.page == 'buildings' && document.URL.match('Forschung')) || ogs.ogame.page == 'techtree') && ogs.load('tech_info')))
{
var links = ogs.dom.getEBF(ContDiv,'a','href.match(/gid=[0-9]+/)');
var infos = new Array();
var id;
var code;
var i;
//techs laden
var data = ogs.array.split(ogs.load('forschung'),'|','&');
var techs = new Array();
techs[111] = 0; techs[109] = 0; techs[110] = 0; techs[115] = 0; techs[117] = 0; techs[118] = 0;
for (i = 0; i < data.length; i++)
{
techs[data[i][0]] = data[i][1];
}
//buildings laden
var buildings = ogs.array.split(ogs.load('buildings'),'|','&');
for (i = 0; i < buildings.length; i++)
{
if (buildings[i][0] == ogs.planetliste[0]['Aktiv']['ID'])
{
buildings = ogs.array.split(buildings[i][1],':','=');
for (i = 0; i < buildings.length; i++)
{
techs[buildings[i][0]] = buildings[i][1];
}
break;
}
}
//textdaten
infos[3] = txt('techinfo_3',new Array('Deuteriumsynthetisierer','','','','','','Fusionskraftwerk'));
infos[14] = txt('techinfo_14',new Array('Roboterfabrik','','','Raumschiffwerft','','','','','','','','Nanitenfabrik||(nur Planet)'));
infos[15] = txt('techinfo_15',new Array('Nanitenfabrik','','Terraformer'));
infos[21] = txt('techinfo_21',new Array('Raumschiffwerft','','Raketensilo||Leichter Jäger||Solarsatellit||Raketenwerfer||Kleine Schildkuppel||Abfangrakete||Interplanetarrakete','Kleiner Transporter||Leichtes Lasergeschütz','Schwerer Jäger||Spionagesonde','Großer Transporter||Kolonieschiff||Recycler||Schweres Lasergeschütz||Ionengeschütz','Kreuzer','Große Schildkuppel','Schlachtschiff','Bomber||Schlachtkreuzer||Plasmawerfer','Zerstörer','','','Todesstern'));
infos[31] = txt('techinfo_31',new Array('Forschungslabor','','Computertechnik||Energietechnik','Raumschiffpanzerung||Impulstriebwerk','Spionagetechnik','Waffentechnik||Ionentechnik','','Schildtechnik','Hyperraumtechnik','','','Intergalaktisches Forschungsnetzwerk','','Gravitonforschung'));
infos[41] = txt('techinfo_41',new Array('Mondbasis','+3 Mondfelder','Sensorphalanx||Sprungtor'));
infos[44] = txt('techinfo_44',new Array('Raketensilo','','','Abfangrakete','','Interplanetarrakete'));
infos[106] = txt('techinfo_106',new Array('Spionagetechnik','Bessere Spionage','','Anzahl Feindschiffe||Spionagesonde','','Zusammensetzung Feindschiffe||Expeditionstechnik','','','','Anzahl und Typ'));
infos[108] = txt('techinfo_108',new Array('Computertechnik','+1 Flotten','','','','','','','','Intergalaktisches Forschungsnetzwerk','','Nanitenfabrik'));
infos[109] = txt('techinfo_109',new Array('Waffentechnik','+10% Schaden','','','Gaußkanone'));
infos[110] = txt('techinfo_110',new Array('Schildtechnik','+10% Schilde','Gaußkanone','Recycler||Kleine Schildkuppel','','','Hyperraumtechnik','Große Schildkuppel'));
infos[111] = txt('techinfo_111',new Array('Raumschiffpanzerung','+10% Panzer','','Schwerer Jäger'));
infos[113] = txt('techinfo_113',new Array('Energietechnik','Produktion Fusionskraftwerk','Verbrennungstriebwerk||Impulstriebwerk||Leichtes Lasergeschütz','Lasertechnik','Fusionskraftwerk||Schildtechnik||Schweres Lasergeschütz','Ionentechnik','Hyperraumtechnik','Gaußkanone','','Plasmatechnik','','','','Terraformer'));
infos[114] = txt('techinfo_114',new Array('Hyperraumtechnik','','','','Hyperraumantrieb','','Zerstörer||Schlachtkreuzer','Todesstern','Sprungtor','Intergalaktisches Forschungsnetzwerk'));
infos[115] = txt('techinfo_115',new Array('Verbrennungstriebwerk','+10% Geschwindigkeit','Leichter Jäger','Kleiner Transporter','Spionagesonde','','','Großer Transporter||Recycler'));
infos[117] = txt('techinfo_117',new Array('Impulstriebwerk','+20% Geschwindigkeit||+5 Reichweite Interplanetarrakete','','Schwerer Jäger','Expeditionstechnik||Kolonieschiff','Kreuzer','Neuer Antrieb für: Kleiner Transporter','Bomber'));
infos[118] = txt('techinfo_118',new Array('Hyperraumantrieb','+30% Geschwindigkeit','','','','Schlachtschiff','Schlachtkreuzer','Zerstörer','Todesstern','Neuer Antrieb für: Bomber'));
infos[120] = txt('techinfo_120',new Array('Lasertechnik','','','','Leichtes Lasergeschütz','','Ionentechnik','Schweres Lasergeschütz','','','','Plasmatechnik','','Schlachtkreuzer'));
infos[121] = txt('techinfo_121',new Array('Ionentechnik','','','Kreuzer','','Ionengeschütz','Plasmatechnik'));
infos[122] = txt('techinfo_122',new Array('Plasmatechnik','','','','','','Bomber','','Plasmawerfer'));
infos[123] = txt('techinfo_123',new Array('Intergalaktisches Forschungsnetzwerk','','2 Foschungslabore','3 Foschungslabore','4 Foschungslabore','5 Foschungslabore','6 Foschungslabore','7 Foschungslabore','8 Foschungslabore','9 Foschungslabore'));
infos[124] = txt('techinfo_124',new Array('Expeditionstechnik','+1h Haltezeit','1 Expedition','','','2 Expeditionen','','','','','3 Expeditionen'));
infos[199] = txt('techinfo_199',new Array('Gravitonforschung','','Todesstern'));
// strukturpunkte, schilde, angriff, laderaum, triebwert1, speed1, treibstoff1, triebwert2, speed2, treibstoff2, stufe speed2
infos[202] = new Array(4000,10,5,5000,0,5000,10,1,10000,20,5);
infos[203] = new Array(12000,25,5,25000,0,7500,50);
infos[204] = new Array(4000,10,50,50,0,12500,20);
infos[205] = new Array(10000,25,150,100,1,10000,75);
infos[206] = new Array(27000,50,400,800,1,15000,300);
infos[207] = new Array(60000,200,1000,1500,2,10000,500);
infos[208] = new Array(30000,100,50,7500,1,2500,1000);
infos[209] = new Array(16000,10,1,20000,0,2000,300);
infos[210] = new Array(1000,0,0,5,0,100000000,1);
infos[211] = new Array(75000,500,1000,500,1,4000,1000,2,5000,1000,8);
infos[212] = new Array(2000,1,1,0,0,0,0);
infos[213] = new Array(110000,500,2000,2000,2,5000,1000);
infos[214] = new Array(9000000,50000,200000,1000000,2,100,1);
infos[215] = new Array(70000,400,700,750,2,10000,250);
infos[401] = new Array(2000,20,80);
infos[402] = new Array(2000,25,100);
infos[403] = new Array(8000,100,250);
infos[404] = new Array(35000,200,1100);
infos[405] = new Array(8000,500,150);
infos[406] = new Array(100000,300,3000);
infos[407] = new Array(20000,2000,1);
infos[408] = new Array(100000,10000,1);
infos[502] = new Array(8000,1,1);
infos[503] = new Array(15000,1,12000);
for (i = 0; i < links.length; i++)
{
id = links[i].href.match(/gid=([0-9]+)/)[1];
if (typeof infos[id] == 'undefined') continue;
code = '';
if (id >= 0 && id < 200)
{
var text = txt('techinfo_info_1', new Array('Stufe','Beschreibung'));
code += '<tr><td class=\'c\'><center>'+text[0]+'</center></td><td class=\'c\'>'+text[1]+'</td></tr>';
for (var ii = 2; ii < infos[id].length; ii++)
{
if (infos[id][ii] != '')
{
code += '<tr><th>'+(ii-1)+'</th><th style=\'text-align: left;'+((ii-1 <= techs[id])?' color: lime;':' color: red;') +'\'>'+infos[id][ii].replace(/\|\|/g,'<br />')+'</th></tr>';
}
}
if (infos[id][1] != '')
{
code += '<tr><th>∞</th><th style=\'text-align: left; color: red;\'>'+infos[id][1].replace(/\|\|/g,'<br />')+'</th></tr>';
}
}
else
{
var text = txt('techinfo_info_2', new Array('Basis','Aktuell'));
var text2 = txt('techinfo_info_3', new Array('Strukturpunkte','Schildstärke','Angriffswert','Ladekapazität','Geschwindigkeit','Treibstoffverbrauch'));
code += '<tr><td class=\'c\'></td><td class=\'c\'><center>'+text[0]+'</center></td><td class=\'c\'><center>'+text[1]+'</center></td></tr>';
var werte = new Array();
werte.push(infos[id][0], parseInt(infos[id][0]*(1 + techs[111]/10),10));
werte.push(infos[id][1], parseInt(infos[id][1]*(1 + techs[110]/10),10));
werte.push(infos[id][2], parseInt(infos[id][2]*(1 + techs[109]/10),10));
if(infos[id].length > 3) //bei schiffen
{
werte.push(infos[id][3], infos[id][3]);
var antrieb = new Array(techs[115],techs[117],techs[118]);
if(infos[id][10] > 0 && antrieb[infos[id][7]] >= infos[id][10])
{
werte.push(infos[id][8], parseInt(infos[id][8]*(1 + antrieb[infos[id][7]] / 10 * (1 + infos[id][7])),10));
werte.push(infos[id][9], infos[id][9]);
}
else
{
werte.push(infos[id][5], parseInt(infos[id][5]*(1 + antrieb[infos[id][4]] / 10 * (1 + infos[id][4])),10));
werte.push(infos[id][6], infos[id][6]);
}
}
for (var ii = 0; ii < werte.length / 2; ii++)
{
code += '<tr><th>'+text2[ii]+'</th><th style=\'text-align: right;\'>'+TausenderZahl(werte[ii*2])+'</th><th style=\'text-align: right;\'>'+TausenderZahl(werte[ii*2+1])+'</th></tr>';
}
}
ogs.addOverLib(links[i],'<table width=\'100%\'><tr><td><table width=\'100%\' style=\'white-space: nowrap;\'>'+code+'</table></td></tr></table>');
}
}
//-----------------------
// Uebersicht verbessern
//-----------------------
if (ogs.ogame.page == 'overview')
{
var tab = ogs.dom.getEBF(ContDiv,'table','width == 519');
if (tab.length > 0)
{
var row = tab[0].rows;
for (var i = row.length -1; i > -1; i--)
{
if (row[i].cells.length == 2)
{
var temp = row[i].cells[1].innerHTML.match(/([\-0-9]+)°C.* ([\-0-9]+)°C/);
if (temp)
{
temp = temp[2];
var temperatur = ogs.array.split(ogs.load('temperatur'),'|','&');
for (var i = 0; i < temperatur.length; i++)
{
for (var ii = 0; ii < ogs.planetliste.length; ii++)
{
if (temperatur[i][0] == ogs.planetliste[ii]['ID'])
{
break;
}
}
if (ii >= ogs.planetliste.length)
{
temperatur.splice(i,1);
}
else if (temperatur[i][0] == ogs.planetliste[0]['Aktiv']['ID'])
{
temperatur.splice(i,1);
}
}
temperatur.push(new Array(ogs.planetliste[0]['Aktiv']['ID'], temp));
ogs.save('temperatur',ogs.array.join(temperatur,'|','&'));
break;
}
}
}
}
if (ogs.load('flotten_faerben') || (ogs.load('flotten_zusatz') && ogs.load('skin_advance')))
{
ogs_FlottenFaerben();
}
if (ogs.load('ang_zeit') && !ogs.load('zeit_links'))
{
// aktualisiere die aktuelle Uhrzeit
function ZeitAktualisieren()
{
ZeitZelle.innerHTML = '<span style="color:' + ogs.textfarbe + ';">' + ogs.time.toString(ogs.time.now()) + '</span>';
window.setTimeout(ZeitAktualisieren, 999);
}
var ZeitZelle = ogs.dom.getEBF(document, 'th','colSpan == 3')[0];
ZeitAktualisieren();
}
if (ogs.load('overview_planetenliste') != 0)
{
// Versieht die Uebersicht mit weiteren Links
var Bilder = ogs.dom.getEBF(ContDiv, 'img', 'src.indexOf("/planeten/") >= 0'); // Alle Bilder in einem Link in einer Titelzelle finden
var uinfos = Array();
var PlaniID = null;
for (var i = 0; i < Bilder.length; i++) // und diese Bilder bearbeiten
{
if (Bilder[i].src.indexOf('/planeten/small/') +1)
{
//bei allen bildern ausser dem mond
if (!(Bilder[i].src.indexOf('/planeten/small/s_mond.jpg') + 1))
{
//plani id suchen
PlaniID = Bilder[i].parentNode.href.match(/cp=([0-9]+)/);
if (PlaniID.length == 0) continue;
PlaniID = 'P'+PlaniID[1];
uinfos[PlaniID] = new Array();
uinfos[PlaniID]['Bau'] = ogs.dom.getCEBF(Bilder[i].parentNode.parentNode,'center')[0].innerHTML.replace(/<.*>/,'').trim(); // + remove html tag
uinfos[PlaniID]['Bild+'] = Bilder[i].src.replace('/small/s_','');
uinfos[PlaniID]['Bild-'] = Bilder[i].src;
}
}
else
{
PlaniID = 'P'+ogs.planetliste[0]['Aktiv']['ID'];
uinfos[PlaniID] = new Array();
uinfos[PlaniID]['Bau'] = ogs.dom.getCEBF(Bilder[i].parentNode,'center')[0].innerHTML.split('<')[0].trim(); // + remove html tag
uinfos[PlaniID]['Bau'] = uinfos[PlaniID]['Bau'].replace(/\([0-9]*\)/,'');
uinfos[PlaniID]['Bild+'] = Bilder[i].src;
uinfos[PlaniID]['Bild-'] = Bilder[i].src.replace('/planeten/','/planeten/small/s_');
}
}
var tab = ogs.dom.getEBF(ContDiv,'table','width == 519');
if (tab.length > 0)
{
var row = tab[0].rows;
for (var i = 0; i < row.length; i++)
{
if (row[i].cells.length == 3)
{
break;
}
}
if (ogs.load('overview_planetenliste') == 1) // mini bilder liste
{
row = row[i].cells[2];
var code = '<center><table>';
for (var i = 1; i < ogs.planetliste.length; i++)
{
if (ogs.planetliste[i]['Typ'] == 1)
{
code += '<tr>';
code += '<th rowspan="2"><a href="/game/index.php?page=overview&session=' + ogs.ogame.sid + '&cp=' + ogs.planetliste[i]['ID'] + '"><img src="' + uinfos['P' + ogs.planetliste[i]['ID']]['Bild-'] + '" alt="" style="width: 30px; height: 30px;" /></a></th>';
if (ogs.planetliste[i]['Partner'])
code += '<th rowspan="2"><a href="/game/index.php?page=overview&session=' + ogs.ogame.sid + '&cp=' + ogs.planetliste[i]['Partner']['ID'] + '"><img src="' + uinfos['P' + ogs.planetliste[i]['ID']]['Bild-'].replace(/\/small\/s_.*\.jpg/,'/small/s_mond.jpg') + '" alt="" style="width: 30px; height: 30px;" /></a></th>';
else
code += '<th rowspan="2">-</th>'
code += '<th><a href="/game/index.php?page=overview&session=' + ogs.ogame.sid + '&cp=' + ogs.planetliste[i]['ID'] + '">' + ogs.planetliste[i]['Name'] + '</a></th>';
if (ogs.planetliste[i]['Partner'])
code += '<th><a href="/game/index.php?page=galaxy&galaxy=' + ogs.planetliste[i]['Gala'] + '&system=' + ogs.planetliste[i]['Sys'] + '&position=' + ogs.planetliste[i]['Pos'] + '&session=' + ogs.ogame.sid + '&cp=' + ogs.planetliste[i]['Partner']['ID'] + '">[' + ogs.planetliste[i]['Gala'] + ':' + ogs.planetliste[i]['Sys'] + ':' + ogs.planetliste[i]['Pos'] + ']</a></th>';
else
code += '<th><a href="/game/index.php?page=galaxy&galaxy=' + ogs.planetliste[i]['Gala'] + '&system=' + ogs.planetliste[i]['Sys'] + '&position=' + ogs.planetliste[i]['Pos'] + '&session=' + ogs.ogame.sid + '&cp=' + ogs.planetliste[i]['ID'] + '">[' + ogs.planetliste[i]['Gala'] + ':' + ogs.planetliste[i]['Sys'] + ':' + ogs.planetliste[i]['Pos'] + ']</a></th>';
code += '</tr><tr><th colspan="2"><a href="/game/index.php?page=b_building&session=' + ogs.ogame.sid + '&cp=' + ogs.planetliste[i]['ID'] + '" style="font-size: smaller;">' + uinfos['P' + ogs.planetliste[i]['ID']]['Bau'] + '</a></th>';
code += '</tr>';
}
}
row.innerHTML = code + '<table></center>';
}
else if (ogs.load('overview_planetenliste') == 2) // modus nur liste
{
row = row[i].cells[2];
var code = '<center><table>';
code += '<tr><td class="c">Pos</td><td class="c">Planet</td><td class="c">Bau</td><td class="c">Mond</td></tr>';
for (var i = 1; i < ogs.planetliste.length; i++)
{
if (ogs.planetliste[i]['Typ'] == 1)
{
code += '<tr>';
if (ogs.planetliste[i]['Partner'])
code += '<th><a href="/game/index.php?page=galaxy&galaxy=' + ogs.planetliste[i]['Gala'] + '&system=' + ogs.planetliste[i]['Sys'] + '&position=' + ogs.planetliste[i]['Pos'] + '&session=' + ogs.ogame.sid + '&cp=' + ogs.planetliste[i]['Partner']['ID'] + '">[' + ogs.planetliste[i]['Gala'] + ':' + ogs.planetliste[i]['Sys'] + ':' + ogs.planetliste[i]['Pos'] + ']</a></th>';
else
code += '<th><a href="/game/index.php?page=galaxy&galaxy=' + ogs.planetliste[i]['Gala'] + '&system=' + ogs.planetliste[i]['Sys'] + '&position=' + ogs.planetliste[i]['Pos'] + '&session=' + ogs.ogame.sid + '&cp=' + ogs.planetliste[i]['ID'] + '">[' + ogs.planetliste[i]['Gala'] + ':' + ogs.planetliste[i]['Sys'] + ':' + ogs.planetliste[i]['Pos'] + ']</a></th>';
code += '<th><a href="/game/index.php?page=overview&session=' + ogs.ogame.sid + '&cp=' + ogs.planetliste[i]['ID'] + '">' + ogs.planetliste[i]['Name'] + '</a></th>';
code += '<th><a href="/game/index.php?page=b_building&session=' + ogs.ogame.sid + '&cp=' + ogs.planetliste[i]['ID'] + '">' + uinfos['P' + ogs.planetliste[i]['ID']]['Bau'] + '</a></th>';
if (ogs.planetliste[i]['Partner'])
code += '<th><a href="/game/index.php?page=overview&session=' + ogs.ogame.sid + '&cp=' + ogs.planetliste[i]['Partner']['ID'] + '">' + ogs.planetliste[i]['Partner']['Name'] + '</a></th>';
else
code += '<th>-</th>'
code += '</tr>';
}
}
row.innerHTML = code + '<table></center>';
}
}
}
else //verbessert die ogame eigene Uebersicht
{
// Finde den Plani mit dieser ID
function FindePlaniMitID(ID)
{
for (var i = 1; i < ogs.planetliste.length; i++) // alle Planeten durchgehen
{
if (ogs.planetliste[i]['ID'] == ID) return ogs.planetliste[i]; // falls die ID stimmt, zurueckgeben
}
return 0; // nichts zurueckgeben
}
var Bilder = ogs.dom.getEBF(ContDiv, 'img', 'src.indexOf("/planeten/") >= 0'); // Alle Bilder in einem Link in einer Titelzelle finden
for (var i = 0; i < Bilder.length; i++) // und diese Bilder bearbeiten
{
if (Bilder[i].src.indexOf('/planeten/small/') +1)
{
var Knoten = Bilder[i].parentNode; // den Link selbst bearbeiten
var PlaniID = Knoten.href.match(/cp=([0-9]+)/); // PlaniID holen
if (PlaniID.length == 0) { continue; } // falls keine drin ist - raus
PlaniID = PlaniID[1];
if (!(Bilder[i].src.indexOf('/planeten/small/s_mond.jpg') + 1))
{
// Link ins Gebaeudemenue
var TextKn = ogs.dom.getCEBF(Knoten.parentNode,'center')[0]; // Das Center-Tag beinhaltet den Text
TextKn.insertBefore(ogs.dom.newElement('a', TextKn.firstChild.nodeValue.trim(), 'href', '/game/index.php?page=b_building&session=' + ogs.ogame.sid + '&cp=' + PlaniID), TextKn.firstChild); // Den Link vor dem Text einfuegen
TextKn.removeChild(TextKn.childNodes[1]); // den Text loeschen
}
var TextKn = Knoten.parentNode;
var Link = ogs.dom.newElement('span', TextKn.firstChild.nodeValue.trim());
// Default-Plani markieren
if (PlaniID == ogs.planetliste[0]['Def']['ID']) Link.style.color = '#87ceeb';
TextKn.insertBefore(Link, TextKn.firstChild); // Den Link vor dem Text einfuegen
TextKn.removeChild(TextKn.childNodes[1]); // den Text loeschen
// Mond-Link
var Plani = FindePlaniMitID(PlaniID);
var Partner = Plani['Partner']; // Das ist der Mond zum Plani, falls vorhanden
if (Plani && Plani['Partner'] && !Plani['Aktiv'] && !Partner['Aktiv']) // falls der Plani gefunden wurde und dieser Plani nen Mond hat und wir nicht auf diesem Mond sind, und auch nicht beim aktiven Plani
{
var MondLink = ogs.dom.newElement('a', Partner['Name'], 'href', '/game/index.php?page=overview&session=' + ogs.ogame.sid + '&cp=' + Partner['ID']); // Link erzeugen
if (Partner['ID'] == ogs.planetliste[0]['Def']['ID']) MondLink.style.color = '#87ceeb'; // Default-Mond markieren
var Text = ogs.dom.insertBehind(document.createTextNode(' ('), Link); // Klammer auf vor den Link, hinter den Planinamen
ogs.dom.insertBehind(MondLink, Text); // dahinter den Link
ogs.dom.insertBehind(document.createTextNode(')'), MondLink); // dahinter die Klammer zu
}
}
else
{
// Das grosse Planibild finden
var AktPlaniBau = ogs.dom.getCEBF(Bilder[i].parentNode,'center')[0];
AktPlaniBau.insertBefore(ogs.dom.newElement('a', AktPlaniBau.firstChild.nodeValue.trim(), 'href', '/game/index.php?page=b_building&session=' + ogs.ogame.sid + '&cp=' + ogs.planetliste[0]['Aktiv']['ID']), AktPlaniBau.firstChild); // Den Link vor dem Text einfuegen
AktPlaniBau.removeChild(AktPlaniBau.childNodes[1]); // den Text loeschen
}
}
}
function getElementsByClassName(clsName, clsElems, what)
{
var arr = new Array();
for (var i = 0; i < clsElems.length; i++)
{
if (clsElems[i].className == clsName)
{
if (clsElems[i].getAttribute('onmouseover').toString().indexOf(what) + 1)
{
arr.push(clsElems[i]);
}
}
}
return arr;
}
// Uebersicht ueber die bewegten Ressourcen
if (ogs.load('bewegteress') == true)
{
function RessEval(a, b)
{
var c = eval('/' + a + ': ([\.0-9]+)/');
return parseInt(b.match(c)[1].replace(/\./g, ''), 10);
}
function RessLoop(a, b, elems)
{
var s = getElementsByClassName(a, elems, resUni[0]);
var c = d = e = 0, t = '';
for (var i = 0; i < s.length; i++)
{
t = s[i].getAttribute('onmouseover').toString();
c += RessEval(resUni[0], t);
d += RessEval(resUni[1], t);
e += RessEval(resUni[2], t);
}
if (c != 0 || d != 0 || e != 0)
{
code += '<tr><th>' + b + '</th><th>' + TausenderZahl(c) + '</th><th>' + TausenderZahl(d) + '</th><th>' + TausenderZahl(e) + '</th></tr>';
}
return new Array(c, d, e);
}
if (ogs.load('colored_ress'))
var vColorRess = new Array(ogs.load('color_met'),ogs.load('color_kris'),ogs.load('color_deut'));
else
var vColorRess = new Array(ogs.textfarbe,ogs.textfarbe,ogs.textfarbe);
code = '<center><br /><table width="' + TabBreite(2000, 519) + '">';
code += '<tr><td class="c" colspan="4">'+txt('resmove_1','Übersicht der bewegten Ressourcen')+'</td></tr>';
code += '<tr><th><b>'+txt('resmove_2','Auftrag')+'</b></th><th><b>';
code += '<font color="'+vColorRess[0]+'">'+resOGS[0]+'</font></b></th><th><b>';
code += '<font color="'+vColorRess[1]+'">'+resOGS[1]+'</font></b></th><th><b>';
code += '<font color="'+vColorRess[2]+'">'+resOGS[2]+'</font></b></th></tr>';
var typ = txt('resmove_4',new Array('owntransport', 'Transport', 'owndeploy', 'Stationieren', 'owncolony', 'Kolonisieren', 'ownhold', 'Halten', 'ownharvest', 'Abbau', 'ownattack', 'Angreifen', 'ownfederation', 'Verbandsangriff'));
var mkd = new Array();
var elems = document.getElementsByTagName('a');
for (var i = 0; i < typ.length; i += 2)
{
mkd = mkd.concat(RessLoop(typ[i], typ[i + 1], elems));
}
var met = kris = deut = 0;
for (var i = 0; i < mkd.length; i += 3)
{
met += mkd[i];
kris += mkd[i + 1];
deut += mkd[i + 2];
}
code += '<tr><th><span style="color:' + ogs.textfarbe + ';">'+txt('resmove_3','Gesamt:')+'</span></th><th><span style="color:' + vColorRess[0] + ';">' + TausenderZahl(met) + '</span></th><th><span style="color:' + vColorRess[1] + ';">' + TausenderZahl(kris) + '</span></th><th><span style="color:' + vColorRess[2] + ';">' + TausenderZahl(deut) + '</span></th></tr>';
code += '</table></center>';
aa4 = document.createElement('div');
aa4.innerHTML = code;
ContDiv.appendChild(aa4);
}
// Handelsrechner
if (ogs.load('handelsrechner') == true)
{
var handelsrechner_lastupdate = '';
function handelsrechner()
{
var hertauschen, bek1, bek2, handel, mm = 0, nk, nk1, nk2, mm1 = 0, mm2 = 0;
var getmenge = document.getElementById('menge');
// abbruch wenn element über id nicht gefunden wurde
if (!getmenge) return;
var menge = parseInt(getmenge.value.replace(/\./g, ''), 10);
if (isNaN(menge)) menge = 0;
var kursmet = parseFloat(document.getElementById('kursmet').value.replace(/\,/g, '.'), 10);
var kurskris = parseFloat(document.getElementById('kurskris').value.replace(/\,/g, '.'), 10);
var kursdeut = parseFloat(document.getElementById('kursdeut').value.replace(/\,/g, '.'), 10);
var prozent1 = parseFloat(document.getElementById('prozent').value.replace(/\,/g, '.'), 10);
if (isNaN(kursmet)) kursmet = parseFloat(ogs.load('kursmet').replace(/\,/g, '.'), 10);
if (isNaN(kurskris)) kurskris = parseFloat(ogs.load('kurskris').replace(/\,/g, '.'), 10);
if (isNaN(kursdeut)) kursdeut = parseFloat(ogs.load('kursdeut').replace(/\,/g, '.'), 10);
if (isNaN(prozent1)) prozent1 = 0;
var prozent2 = 100 - prozent1;
var gt_du = 0, kt_du = 0, gt_er = 0, kt_er = 0, ress = 0;
if (document.getElementById('hertauschen1').checked)
{
hertauschen = resOGS[0];
bek1 = resOGS[1];
bek2 = resOGS[2];
if (document.getElementById('bekommen1').checked)
{
if (kursmet > kurskris) { nk = kursmet / kurskris; mm = menge / nk; }
if (kurskris > kursmet) { nk = kurskris / kursmet; mm = menge * nk; }
if (kursmet == kurskris) { mm = menge; }
}
else if (document.getElementById('bekommen2').checked)
{
if (kursmet > kursdeut) { nk = kursmet / kursdeut; mm = menge / nk; }
if (kursdeut > kursmet) { nk = kursdeut / kursmet; mm = menge * nk; }
if (kursmet == kursdeut) { mm = menge; }
}
else if (document.getElementById('bekommen3').checked)
{
if (kursmet > kurskris) { nk1 = kursmet / kurskris; mm1 = menge / 100 * prozent1 / nk1; }
if (kurskris > kursmet) { nk1 = kurskris / kursmet; mm1 = menge / 100 * prozent1 * nk1; }
if (kursmet == kurskris) { mm1 = menge / 100 * prozent1; }
if (kursmet > kursdeut) { nk2 = kursmet / kursdeut; mm2 = menge / 100 * prozent2 / nk2; }
if (kursdeut > kursmet) { nk2 = kursdeut / kursmet; mm2 = menge / 100 * prozent2 * nk2; }
if (kursmet == kursdeut) { mm2 = menge / 100 * prozent2; }
}
}
else if (document.getElementById('hertauschen2').checked)
{
hertauschen = resOGS[1];
bek1 = resOGS[0];
bek2 = resOGS[2];
if (document.getElementById('bekommen1').checked)
{
if (kurskris > kursmet) { nk = kurskris / kursmet; mm = menge / nk; }
if (kursmet > kurskris) { nk = kursmet / kurskris; mm = menge * nk; }
if (kurskris == kursmet) { mm = menge; }
}
else if (document.getElementById('bekommen2').checked)
{
if (kurskris > kursdeut) { nk = kurskris / kursdeut; mm = menge / nk; }
if (kursdeut > kurskris) { nk = kursdeut / kurskris; mm = menge * nk; }
if (kurskris == kursdeut) { mm = menge; }
}
else if (document.getElementById('bekommen3').checked)
{
if (kurskris > kursmet) { nk1 = kurskris / kursmet; mm1 = menge / 100 * prozent1 / nk1; }
if (kursmet > kurskris) { nk1 = kursmet / kurskris; mm1 = menge / 100 * prozent1 * nk1; }
if (kurskris == kursmet) { mm1 = menge / 100 * prozent1; }
if (kurskris > kursdeut) { nk2 = kurskris / kursdeut; mm2 = menge / 100 * prozent2 / nk2; }
if (kursdeut > kurskris) { nk2 = kursdeut / kurskris; mm2 = menge / 100 * prozent2 * nk2; }
if (kurskris == kursdeut) { mm2 = menge / 100 * prozent2; }
}
}
else if (document.getElementById('hertauschen3').checked)
{
hertauschen = resOGS[2];
bek1 = resOGS[0];
bek2 = resOGS[1];
if (document.getElementById('bekommen1').checked)
{
if (kursdeut > kursmet) { nk = kursdeut / kursmet; mm = menge / nk; }
if (kursmet > kursdeut) { nk = kursmet / kursdeut; mm = menge * nk; }
if (kursdeut == kursmet) { mm = menge; }
}
else if (document.getElementById('bekommen2').checked)
{
if (kursdeut > kurskris) { nk = kursdeut / kurskris; mm = menge / nk; }
if (kurskris > kursdeut) { nk = kurskris / kursdeut; mm = menge * nk; }
if (kursdeut == kurskris) { mm = menge; }
}
else if (document.getElementById('bekommen3').checked)
{
if (kursdeut > kursmet) { nk1 = kursdeut / kursmet; mm1 = menge / 100 * prozent1 / nk1; }
if (kursmet > kursdeut) { nk1 = kursmet / kursdeut; mm1 = menge / 100 * prozent1 * nk1; }
if (kursdeut == kursmet) { mm1 = menge / 100 * prozent1; }
if (kursdeut > kurskris) { nk2 = kursdeut / kurskris; mm2 = menge / 100 * prozent2 / nk2; }
if (kurskris > kursdeut) { nk2 = kurskris / kursdeut; mm2 = menge / 100 * prozent2 * nk2; }
if (kursdeut == kurskris) { mm2 = menge / 100 * prozent2; }
}
}
var handelsrechner_now = '';
if (document.getElementById('bekommen1').checked)
{
handel = txt('trade_10','#*1*# #*2*#',TausenderZahl(Math.floor(mm)),bek1);
ress = Math.floor(mm); handelsrechner_now += 1;
}
else if (document.getElementById('bekommen2').checked)
{
handel = txt('trade_10','#*1*# #*2*#',TausenderZahl(Math.floor(mm)),bek2);
ress = Math.floor(mm); handelsrechner_now += 2;
}
else if (document.getElementById('bekommen3').checked)
{
handel = txt('trade_11','#*1*# #*2*# und #*3*# #*4*#', TausenderZahl(Math.floor(mm1)), bek1,TausenderZahl(Math.floor(mm2)),bek2);
ress = Math.floor(mm1) + Math.floor(mm2); handelsrechner_now += 3;
}
kursmet = document.getElementById('kursmet').value;
kurskris = document.getElementById('kurskris').value;
kursdeut = document.getElementById('kursdeut').value;
if (document.getElementById('kursmet').value == '') kursmet = ogs.load('kursmet');
if (document.getElementById('kurskris').value == '') kurskris = ogs.load('kurskris');
if (document.getElementById('kursdeut').value == '') kursdeut = ogs.load('kursdeut');
handelsrechner_now += menge+hertauschen+kursmet+kurskris+kursdeut+ress;
if (handelsrechner_now != handelsrechner_lastupdate) // nur wenn sich was geaendert hat
{
handelsrechner_lastupdate = handelsrechner_now;
document.getElementById('handelstext').innerHTML = txt('trade_9','Ich hätte #*1*# #*2*# anzubieten und würde dafür gerne #*3*# haben (Kurs: #*4*#).',TausenderZahl(menge),hertauschen,handel,kursmet.replace(/\./g, ',') + ':' + kurskris.replace(/\./g, ',') + ':' + kursdeut.replace(/\./g, ','));;
document.getElementById('hertauschen0').innerHTML = hertauschen;
document.getElementById('bek1').innerHTML = bek1;
document.getElementById('bek2').innerHTML = bek2;
document.getElementById('bek').innerHTML = bek1;
document.getElementById('handel').innerHTML = handel;
gt_du = Math.ceil(menge / 25000);
kt_du = Math.ceil(menge / 5000);
gt_er = Math.ceil(ress / 25000);
kt_er = Math.ceil(ress / 5000);
document.getElementById('transen_du').innerHTML = '<span style="color:' + ogs.textfarbe + ';">' + txt('trade_12','#*1*# GTs',TausenderZahl(gt_du)) + '</span>'+txt('trade_14',' bzw. ')+'<span style="color:' + ogs.textfarbe + ';">' + txt('trade_13','#*1*# KTs',TausenderZahl(kt_du)) + '</span>';
document.getElementById('transen_er').innerHTML = '<span style="color:' + ogs.textfarbe + ';">' + txt('trade_12','#*1*# GTs',TausenderZahl(gt_er)) + '</span>'+txt('trade_14',' bzw. ')+'<span style="color:' + ogs.textfarbe + ';">' + txt('trade_13','#*1*# KTs',TausenderZahl(kt_er)) + '</span>';
}
}
ogs.addStyle('.ogs_trade {border-color:' + ogs.textfarbe + '; color:' + ogs.textfarbe + '; text-align:center; font-weight:bold; background-color:transparent;}', unsafeWindow);
code2 = '<center><br /><table width="' + TabBreite(2000, 519) + '">';
code2 += '<colgroup><col width="35%"><col width="20%"><col width="15%"><col width="15%"><col width="15%"></colgroup>';
code2 += '<tr><td class="c" colspan="5">'+txt('trade_1','Handelskurs: ')+'<input type="text" id="kursmet" value="' + ogs.load('kursmet') + '" size="4" class="ogs_trade"> : <input type="text" id="kurskris" value="' + ogs.load('kurskris') + '" size="4" class="ogs_trade"> : <input type="text" id="kursdeut" value="' + ogs.load('kursdeut') + '" size="4" class="ogs_trade"></th></tr>';
code2 += '<tr><th style="text-align:left;">'+txt('trade_2','Was möchtest du hertauschen?')+'</th><th><input type="text" id="menge" value="0" class="ogs_trade"></th><th style="text-align:left;"><nobr><input type="radio" name="hertauschen" id="hertauschen1" value="1">'+resOGS[0]+'</nobr></th><th style="text-align:left;"><nobr><input type="radio" name="hertauschen" id="hertauschen2" value="2">'+resOGS[1]+'</nobr></th><th style="text-align:left;"><nobr><input type="radio" name="hertauschen" id="hertauschen3" value="3" checked>'+resOGS[2]+'</nobr></th></tr>';
code2 += '<tr><th style="text-align:left;">'+txt('trade_3','Was möchtest du für dein #*1*#?','<span id="hertauschen0"></span>')+'</th><th style="text-align:left;"><nobr><input type="radio" name="bekommen" id="bekommen1" value="1"><span id="bek1">'+resOGS[0]+'</span></nobr></th><th style="text-align:left;"><nobr><input type="radio" name="bekommen" id="bekommen2" value="2"><span id="bek2">'+resOGS[1]+'</span></nobr></th><th style="text-align:left;" colspan="2"><nobr><input type="radio" name="bekommen" id="bekommen3" value="3" checked>'+txt('trade_4','Mix (#*1*#% davon #*2*#)','<input id="prozent" value="50" size="4" maxlength="3" class="ogs_trade">','<span id="bek">'+resOGS[0]+'</span>')+'</nobr></th></tr>';
code2 += '<tr><th colspan="5" style="text-align:left;"><span style="color:' + ogs.textfarbe + ';">'+txt('trade_5','Du würdest #*1*# bekommen.','<span id="handel"></span>')+'</span></th></tr>';
code2 += '<tr><th colspan="5" style="text-align:left;">'+txt('trade_6','Für den Transport wirst du min. #*1*# benötigen.','<span id="transen_du"></span>')+'</th></tr>';
code2 += '<tr><th colspan="5" style="text-align:left;">'+txt('trade_7','Für den Transport wird dein Handelspartner min. #*1*# benötigen.','<span id="transen_er"></span>')+'</th></tr>';
code2 += '<tr><td class="c" colspan="5">'+txt('trade_8','Angebots-Text')+'</td></tr>';
code2 += '<tr><th colspan="5" style="text-align:center; padding:10px;" id="handelstext"></th></tr>';
code2 += '</table></center><br>';
ContDiv.appendChild(ogs.dom.newElement('div', code2));
handelsrechner();
window.setInterval(handelsrechner, 500);
}
} // Ende Uebersichtsteil
// Zeiten in Tagen anzeigen
if (ogs.ogame.page == 'overview' || ogs.ogame.page == 'flotten2')
{
ogs.load('endzeiten');
var v = ogs.time.now();
var Zaehler = new Array();
var ts = new Array();
var ttime = new Array();
var verschiebung = parseInt(ogs.load('zeitverschiebung'), 10);
function AktZaehler()
{
var n = ogs.time.now();
var verschiebung = parseInt(ogs.load('zeitverschiebung'), 10);
for (var i = 0; i < Zaehler.length; i++)
{
if (!Zaehler[i]) continue;
var d = 0, h = 0, m = 0;
if (!ts[i])
{
ttime[i] = new Date(1000 * parseInt(Zaehler[i].getAttribute('star'),10));
ttime[i].setTime(ttime[i].getTime() + verschiebung * 60000);
ts[i] = (settingscur['endzeiten']) ? ('<br />' + ogs.time.stamp(ttime[i])) : '';
}
var s = Math.round((ttime[i] - n.getTime()) / 1000);
if (s <= 0)
{
Zaehler[i].innerHTML = '-' + ts[i];
continue;
}
// Tage, Stunden, Minuten, Sekunden ermitteln und formatieren
if (s > 59)
{
m = Math.floor(s / 60);
s %= 60;
}
if (m > 59)
{
h = Math.floor(m / 60);
m %= 60;
}
if (h > 23)
{
d = Math.floor(h / 24);
h %= 24;
}
if (s < 10) { s = '0' + s; }
if (m < 10) { m = '0' + m; }
if (h < 10) { h = '0' + h; }
var Text = ((d) ? d + 'T ' : '') + h + ':' + m + ':' + s + ts[i];
Zaehler[i].innerHTML = Text;
}
}
// vorhandene Funktion loeschen
ogs.window.t = ogs.window.t_building = function(){};
// Die Zaehler finden
Zaehler = ogs.dom.getEBF(document,'div','id.match(/bxx/)');
// Daten aus den OGame-Zaehlern fischen (dooferweise werden da 3 grundlegend verschiedene Methoden verwendet, und die muessen alle erkannt werden. Ekelhafte Programmiererei ist das...)
for (var i = 0; i < Zaehler.length; i++)
{
if (Zaehler[i].getAttribute('title')) // Uebersicht und Flottenmenue
{
//in übersicht den gebäuder counter richtig anzeigen.
if (Zaehler[i].getAttribute('id') == 'bxx')
{
Zaehler[i].setAttribute('star', Zaehler[i].getAttribute('title'));
}
}
}
AktZaehler();
window.setInterval(AktZaehler, 999);
}
//--------------------------
// Tagesproduktion anzeigen
//--------------------------
// im Ressmenue Tagesproduktion und x-Stunden/Tage-Produktion anzeigen
if (ogs.ogame.page == 'resources')
{
var suchesolar = ogs.dom.getEBF(ContDiv,'table','width == 550')[0].rows;
var erg1 = 0;
var erg2 = 0;
var Prod = Array(0,0,0);
var GesZeile = -1;
var ships = exp('ship_name',new Array('Kleiner Transporter', 'Gro' + sz + 'er Transporter', 'Leichter J' + ae + 'ger', 'Schwerer J' + ae + 'ger', 'Kreuzer', 'Schlachtschiff', 'Kolonieschiff', 'Recycler', 'Spionagesonde', 'Bomber', 'Solarsatellit', 'Zerst' + oe + 'rer', 'Todesstern', 'Schlachtkreuzer'));
for (var i = 0; i < suchesolar.length; i++)
{
var suchesolars = suchesolar[i].cells;
if (suchesolars.length > 0 && suchesolars[0].innerHTML.indexOf(ships[10]) + 1)
{
//zeile laden
erg1 = suchesolars[0].parentNode.getElementsByTagName('th')
//vorletzte spalten für gesamtenergie durch sola sats
erg2 = erg1[erg1.length - 2];
var arg1 = erg2.innerHTML.replace(/\./g, '');
arg1 = arg1.replace(/\s/g, '');
var satenergie = (arg1 != '0') ? arg1.match(/>([0-9]+)</)[1] : arg1;
//sola sat anzahl
var satanzahl = erg1[0].innerHTML.match(/[\.0-9]+/);
satanzahl = satanzahl[0].replace(/\./g, '');
//letzte spalte für % wert
erg2 = erg1[erg1.length - 1].getElementsByTagName('select')[0];
var prozent = parseInt(erg2.value);
var prosat = Math.floor(parseInt(satenergie) / parseInt(satanzahl));
erg1[0].innerHTML = erg1[0].innerHTML + '<br><span style="color:' + ogs.textfarbe + ';">'+txt('res_1','Energie pro Solarsatellit: #*1*# bei #*2*#%',prosat.toString(),prozent.toString()) + '</span>';
}
if (suchesolars[0] && suchesolars[0].innerHTML.indexOf(exp('res_1','Gesamt:')) > -1)
{
GesZeile = i;
break;
}
}
if (GesZeile != -1)
{
var ResZeile = suchesolar[GesZeile].getElementsByTagName('font');
var zelle;
var zeile;
//produktion einlesen auch energie
if (ResZeile.length >= 3)
{
for (var i = 0; i < 3; i++)
{
Prod[i] = InInt(ResZeile[i].firstChild.nodeValue); // Produktion dieses Rohstoffs speichern
}
}
function AktDynAnz()
{
var Anz = InInt(document.getElementById('dyn_anz').value);
if (isNaN(Anz)) return;
var Art = document.getElementById('dyn_art');
Art = InInt(Art.options[Art.selectedIndex].value);
var Multiplikator = Anz * Art;
for (var i = 0; i < 3; i++)
{
document.getElementById('dyn_ausg' + i).innerHTML = TausenderZahl(Prod[i] * Multiplikator);
}
}
function SetzeAuf(Wert)
{
var AuswahlBoxen = ogs.dom.getEBF(ContDiv,'select','name.indexOf("last") == 0');
for (var i = 0; i < AuswahlBoxen.length; i++)
{
var Name = AuswahlBoxen[i].name;
if (Name == 'last1' || Name == 'last2' || Name == 'last3' || Name == 'last4' || Name == 'last12' || Name == 'last212') AuswahlBoxen[i].selectedIndex = Wert;
}
document.getElementsByName('action')[0].click(); // Formular absenden (da action=Berechne sein muss geht das am einfachsten, indem man den Button drueckt - formular.submit() klappt nicht
}
// Leerzeile verlängern
ogs.dom.getEBF(ContDiv, 'th', 'height == 4 && knoten.colSpan == 6')[0].colSpan = 7;
// Zeile hinzufuegen
zeile = document.createElement('tr');
zeile.appendChild(document.createElement('th'));
zeile.appendChild(document.createElement('td'));
zeile.appendChild(document.createElement('td'));
zeile.appendChild(document.createElement('td'));
zeile.appendChild(document.createElement('td'));
suchesolar[0].parentNode.appendChild(zeile);
zeile.cells[0].innerHTML = txt('res_2','Produktion')+'<br/><input type="text" id="dyn_anz" value="30" size="5" maxlength="4"/> <select id="dyn_art"><option value="1">'+txt('res_3','Stunden')+'</option><option value="24" selected="selected">'+txt('res_4','Tagen')+'</option></select>';
zeile.cells[0].colSpan = 2;
zeile.cells[1].className = 'k';
zeile.cells[2].className = 'k';
zeile.cells[3].className = 'k';
zeile.cells[4].className = 'k';
zeile.cells[1].innerHTML = '<font id="dyn_ausg0" style="color: #00ff00;"></font>';
zeile.cells[2].innerHTML = '<font id="dyn_ausg1" style="color: #00ff00;"></font>';
zeile.cells[3].innerHTML = '<font id="dyn_ausg2" style="color: #00ff00;"></font>';
zeile.cells[4].innerHTML = '<font style="color: rgb(0, 255, 0)">-</font>';
// Alles auf 100%
zelle = document.createElement('td');
zelle.className = 'k';
zelle.innerHTML = '<input type="button" value="' + txt('res_5','Alles 100%') + '" style="width: 100%;"/>';
suchesolar[GesZeile].appendChild(zelle);
ogs.addEvent(zelle.getElementsByTagName('input')[0],'click', function(){SetzeAuf(0);}, true);
// Alles auf 0%
zelle = document.createElement('td');
zelle.className = 'k';
zelle.innerHTML = '<input type="button" value="' + txt('res_6','Alles 0%') + '" style="width: 100%;"/>';
suchesolar[GesZeile + 1].appendChild(zelle);
ogs.addEvent(zelle.getElementsByTagName('input')[0],'click', function(){SetzeAuf(10);}, true);
AktDynAnz();
window.setInterval(AktDynAnz, 200);
}
var Ress = HoleRessourcen(); // vorhandene Ressourcen bestimmen
var RessSumme = Ress[0] + Ress[1]; // Summe der Ressourcen bestimmen
var OhneDeut = ogs.load('kein_deut');
if (!OhneDeut) { RessSumme += Ress[2]; } // Deut nur einrechen falls es nicht
BenKT = Math.ceil(RessSumme / 5000); // vollen laderaum verwenden - schliesslich kommt der Treibstoff ja auch in den Laderaum
BenGT = Math.ceil(RessSumme / 25000);
ContDiv.appendChild(ogs.dom.newElement('center','<table width="550"><tr><th>'+txt('res_7','Für die Summe von #*1*# #*2*# auf diesem Planeten werden #*3*# oder #*4*# benötigt.','<span style="color:' + ogs.textfarbe + '; font-weight:bold;">' + TausenderZahl(RessSumme.toString()) + '</span>',((OhneDeut) ? txt('res_8','Metall und Kristall') : txt('res_9','Metall, Kristall und Deuterium')), '<span style="color:' + ogs.textfarbe + '; font-weight:bold;">' + TausenderZahl(BenGT.toString()) + ' '+ships[1]+'</span>','<span style="color:' + ogs.textfarbe + '; font-weight:bold;">' + TausenderZahl(BenKT.toString()) + ' '+ships[0]+'</span>') + '</th></tr></table>'));
}
//------------------------------------------------------------------------------
// Spionagebericht auswerten und Button erstellen zum Senden an Online-Speedsim
//------------------------------------------------------------------------------
if (ogs.ogame.page == 'messages')
{
function Merkliste(a, b, c, d)
{
var e = ogs.load('merkliste').split(/::/g);
var r = true;
for (var i = 0; i < e.length; i++)
{
var z = e[i].split(/:/g);
if (z[1] == b && z[2] == c && z[3] == d) // Wenn Eintrag bereits existiert, dann loesche, Vergleich ueber Koords, Planiname kann sich aendern
{
window.setTimeout(function(){ogs.save('merkliste', ogs.load('merkliste').replace(z[0] + ':' + z[1] + ':' + z[2] + ':' + z[3] + '::', ''));},0);
return false;
}
}
window.setTimeout(function(){ogs.save('merkliste', ogs.load('merkliste') + a + ':' + b + ':' + c + ':' + d + '::');},0);
return true;
}
function MerkColor(a, b)
{
var c = document.getElementsByName(a);
for (var i = 0; i < c.length; i++)
{
c[i].style.color = (b) ? 'green' : 'red';
c[i].parentNode.parentNode.style.border = (b) ? '2px solid green' : '0px solid transparent';
}
}
function spiostuff(thisthing)
{
var value = new Array();
var valuetemp = thisthing.innerHTML.replace(/<td>(.*?)<\/td>[^<]*?<td>([0-9]+)[^0-9<]*([0-9]*)[^0-9<]*([0-9]*)[^0-9<]*([0-9]*)<\/td>/ig,'|||$1|||$2$3$4$5|||').split('|||');
for (var i = 0; i < valuetemp.length-1; i=i+3)
{
value[valuetemp[i+1]] = parseInt(valuetemp[i+2],10);
}
var speedsim = 'http://websim.speedsim.net/index.php?lang='+txt('speedsim_lang','de')+'&referrer=ogs';
var dragosim = 'http://drago-sim.com/index.php?lang='+txt('dragosim_lang','german')+'&referrer=ogs';
//eigene techs
speedsim += '&tech_a0_0=' + battletech['Waffen'] + '&tech_a0_1=' + battletech['Schild'] + '&tech_a0_2=' + battletech['Panzer'];
dragosim += '&techs[0][0][w_t]=' + battletech['Waffen'] + '&techs[0][0][s_t]=' + battletech['Schild'] + '&techs[0][0][r_p]=' + battletech['Panzer'];
//gegner pos
var gegner = thisthing.innerHTML.match(/<td class="{0,1}c"{0,1} colspan="{0,1}4"{0,1}>(.*?)<a.*? onclick="{0,1}showGalaxy\(([0-9]+),([0-9]+),([0-9]+)\)/i);
if (gegner)
{
var enemy_nam = gegner[1].replace(exp('m_res','Rohstoffe auf '),'').trim();
var enemy_pos = new Array(gegner[2],gegner[3],gegner[4]);
speedsim += '&enemy_name=' + enemy_nam + '&enemy_pos=' + gegner[2]+':'+gegner[3]+':'+gegner[4];
dragosim += '&v_planet=' + enemy_nam + '&v_coords=' + gegner[2]+':'+gegner[3]+':'+gegner[4];
}
else return;
// Ressourcen
var met = value[resUni[0]+':'];
var kris = value[resUni[1]+':'];
var deut = value[resUni[2]+':'];
var ener = value[resUni[3]+':'];
speedsim += '&enemy_metal=' + met + '&enemy_crystal=' + kris + '&enemy_deut=' + deut;
dragosim += '&v_met=' + met + '&v_kris=' + kris + '&v_deut=' + deut;
// Techniken
for (var j = 0; j < Techniken.length; j++)
{
if (value[Techniken[j]])
{
speedsim += '&tech_d0_' + j + '=' + value[Techniken[j]];
dragosim += '&techs[1][0]['+TechnikenDrago[j]+']='+value[Techniken[j]];
}
}
// Schiffe und Verteidigung
for (var j = 0; j < SchiffeundVerteidigung.length; j++)
{
if (value[SchiffeundVerteidigung[j]])
{
speedsim += '&ship_d0_' + j + '_b=' + value[SchiffeundVerteidigung[j]];
dragosim += '&numunits[1][0]['+SchiffeundVerteidigungDrago[j]+']=' + value[SchiffeundVerteidigung[j]];
}
}
if (value[IPAIPRaketen[0]])
{
speedsim += '&abm_b='+value[IPAIPRaketen[0]];
dragosim += '&missiles_available_v='+value[IPAIPRaketen[0]];
}
// Praktische Beute
var ress0 = 0.5 * Math.max(met + kris + deut, Math.min(0.75 * (2 * met + kris + deut), 2 * met + deut));
var ress_gt = Math.ceil(ress0 / 25000);
var ress_kt = Math.ceil(ress0 / 5000);
// link erstellen
code = '<br>'+txt('spio_adv_1','Spionagebericht einfügen in: #*1*# bzw. #*2*#','<a target="_blank" href="' + ogs.getLink(speedsim) + '"><span style="color:' + ogs.textfarbe + ';"><b>SpeedSim Online</b></span></a>','<a target="_blank" href="' + ogs.getLink(dragosim) + '"><span style="color:' + ogs.textfarbe + ';"><b>DragoSim 2</b></span></a>');
code += '<br>'+txt('spio_adv_2','Mögliche Beute: #*1*# Metall, #*2*# Kristall, #*3*# Deuterium','<span style="color:' + vColorRess[0] + ';">' + TausenderZahl(Math.round(met / 2)) + '</span>','<span style="color:' + vColorRess[1] + ';">' + TausenderZahl(Math.round(kris / 2)) + '</span>','<span style="color:' + vColorRess[2] + ';">' + TausenderZahl(Math.round(deut / 2)) + '</span>');
code += '<br>'+txt('spio_adv_3','Benötigte Ladekapazität für Gesamtbeute: #*1*# Einheiten','<span style="color:' + ogs.textfarbe + ';">' + TausenderZahl(Math.round(ress0)) + '</span>');
code += '<br>'+txt('spio_adv_4','Benötigte Transporter beim Angriff: #*1*# GTs bzw. #*2*# KTs','<span style="color:' + ogs.textfarbe + ';">' + ress_gt + '</span>','<span style="color:' + ogs.textfarbe + ';">' + ress_kt + '</span>');
code += '<br> <br>';
code += '<a target="_self" href="#" onclick="javascript: return false;" name="ogs_merken_' + enemy_pos[0] + '_' + enemy_pos[1] + '_' + enemy_pos[2] + '"><b>'+txt('spio_adv_5','Merken')+'</b></a> / ';
var centers = ogs.dom.getCEBF(thisthing, 'center');
if (centers.length > 0)
{
centers[centers.length -1].innerHTML = code + centers[centers.length -1].innerHTML
}
// Angreifen
MerkColor('ogs_merken_' + enemy_pos[0] + '_' + enemy_pos[1] + '_' + enemy_pos[2], mlist.match(eval('/' + enemy_pos[0] + ':' + enemy_pos[1] + ':' + enemy_pos[2] + '::/g')));
koords.push(enemy_nam, enemy_pos[0], enemy_pos[1], enemy_pos[2]);
}
ogs.load('spio');
ogs.load('news_expo_aktiv');
ogs.load('news_expo_farbe');
ogs.load('news_pm_aktiv');
ogs.load('news_pm_farbe');
ogs.load('news_am_aktiv');
ogs.load('news_am_farbe');
if (ogs.load('news_color_res'))
var vColorRess = new Array(ogs.load('color_met'),ogs.load('color_kris'),ogs.load('color_deut'));
//eigene techs laden wenn benötigt
if (settingscur['spio'])
{
var tech = ogs.array.split(ogs.load('forschung'),'|','&');
var battletech = Array();
for (var ii = 0; ii < tech.length; ii++)
{
if (tech[ii][0] == 109)
battletech['Waffen'] = parseInt(tech[ii][1], 10);
else if (tech[ii][0] == 110)
battletech['Schild'] = parseInt(tech[ii][1], 10);
else if (tech[ii][0] == 111)
battletech['Panzer'] = parseInt(tech[ii][1], 10);
}
}
var flag = 0;
var koords = new Array();
var mlist = ogs.load('merkliste');
var IPAIPRaketen = exp('ip_name', new Array('Abfangrakete','Interplanetarrakete'));
var Techniken = exp('btechs_name',new Array('Waffentechnik', 'Schildtechnik', 'Raumschiffpanzerung'));
var Schiffe = exp('ship_name', new Array('Kleiner Transporter', 'Gro' + sz + 'er Transporter', 'Leichter J' + ae + 'ger', 'Schwerer J' + ae + 'ger', 'Kreuzer', 'Schlachtschiff', 'Kolonieschiff', 'Recycler', 'Spionagesonde', 'Bomber', 'Solarsatellit', 'Zerst' + oe + 'rer', 'Todesstern', 'Schlachtkreuzer'));
var Verteidigung = exp('def_name', new Array('Raketenwerfer', 'Leichtes Lasergesch' + ue + 'tz', 'Schweres Lasergesch' + ue + 'tz', 'Gau' + sz + 'kanone', 'Ionengesch' + ue + 'tz', 'Plasmawerfer', 'Kleine Schildkuppel', 'Gro' + sz + 'e Schildkuppel'));
var SchiffeundVerteidigung = Schiffe.concat(Verteidigung);
var TechnikenDrago = new Array('w_t','s_t','r_p');
var SchiffeundVerteidigungDrago = new Array('k_t','g_t','l_j','s_j','kr','sc','ko','re','sp','bo','so','z','t','sk','ra','l_l','s_l','g','i','p','k_s','g_s')
var a1 = '';
//new stuff
var tab = ogs.dom.getEBF(ContDiv,'table','width == 519');
if (tab.length > 0)
{
var zeilen = tab[0].rows;
var spalten = null;
var nextspalte = null;
var ressearcher = new Array(
eval('/([\.0-9]+) ('+resUni[0]+')/g'),
eval('/([\.0-9]+) ('+resUni[1]+')/g'),
eval('/([\.0-9]+) ('+resUni[2]+')/g'),
eval('/('+resUni[0]+':)([\.0-9]+) ('+resUni[1]+':)([\.0-9]+) ('+resUni[2]+':)([\.0-9]+)/g'));
for (var i = 0; i < zeilen.length; i++)
{
spalten = zeilen[i].cells;
if (spalten.length == 4) //daten
{
//spionagebericht
if (spalten[3].innerHTML.match(/class="{0,1}espionagereport"{0,1}/)) //.indexOf('class="espionagereport"') > -1)
{
if (!settingscur['spio']) continue;
nextspalte = zeilen[i+1].cells;
//spio bericht geöffnet
if (nextspalte.length == 2)
{
spiostuff(nextspalte[1]);
i++;
}
}
//pm
else if (spalten[3].innerHTML.indexOf('img/m.gif') > -1)
{
if (!settingscur['news_pm_aktiv']) continue;
nextspalte = zeilen[i+1].cells;
if (nextspalte.length == 2)
{
nextspalte[1].style.border = '2px solid ' + settingscur['news_pm_farbe'];
i++;
}
}
//ally pm
else if (spalten[3].innerHTML.indexOf('Rundmail deiner Allianz') > -1)
{
if (!settingscur['news_am_aktiv']) continue;
nextspalte = zeilen[i+1].cells;
if (nextspalte.length == 2)
{
nextspalte[1].style.border = '2px solid ' + settingscur['news_am_farbe'];
i++;
}
}
//expo
else if (spalten[3].innerHTML.indexOf('Expeditionsergebnis') > -1)
{
if (!settingscur['news_expo_aktiv']) continue;
nextspalte = zeilen[i+1].cells;
if (nextspalte.length == 2)
{
nextspalte[1].style.border = '2px solid ' + settingscur['news_expo_farbe'];
i++;
}
}
//kbs
else if (spalten[3].innerHTML.match(/class="{0,1}combatreport_/)) //.indexOf('class="espionagereport"') > -1)
{
//nothing
}
//sonstige nachrichten
else
{
if (!settingscur['news_color_res']) continue;
nextspalte = zeilen[i+1].cells;
if (nextspalte.length == 2)
{
nextspalte[1].innerHTML = nextspalte[1].innerHTML.replace(ressearcher[3],'$1 <span style="color:'+vColorRess[0]+'">$2</span> $3 <span style="color:'+vColorRess[1]+'">$4</span> $5 <span style="color:'+vColorRess[2]+'">$6</span>').replace(ressearcher[0],'<span style="color:'+vColorRess[0]+'">$1</span> $2').replace(ressearcher[1],'<span style="color:'+vColorRess[1]+'">$1</span> $2').replace(ressearcher[2],'<span style="color:'+vColorRess[2]+'">$1</span> $2');
i++;
}
}
}
}
}
// Merkliste
var MerkLinks = ogs.dom.getEBF(ContDiv, 'a', 'name.indexOf("ogs_merken_") == 0'); // Event onclick fuer Speicherfunktion der Koords geht nicht ueber innerHTML
for (var i = 0; i < MerkLinks.length; i++)
{
ogs.addEvent(MerkLinks[i],'click', eval('function() { var test = Merkliste(\'' + koords[i * 4] + '\', \'' + koords[i * 4 + 1] + '\', \'' + koords[i * 4 + 2] + '\', \'' + koords[i * 4 + 3] + '\'); MerkColor(\'ogs_merken_' + koords[i * 4 + 1] + '_' + koords[i * 4 + 2] + '_' + koords[i * 4 + 3] + '\', test); }'), true);
}
if (ogs.load('news_deletemessages'))
{
var delmsg_org = document.getElementsByName('deletemessages');
var delmsg_ogs = null;
if (delmsg_org.length > 0)
{
delmsg_org = delmsg_org[0].parentNode.parentNode;
delmsg_ogs = delmsg_org.cloneNode(true);
delmsg_org.getElementsByTagName('select')[0].setAttribute('id','deletemessages');
delmsg_org.getElementsByTagName('select')[0].setAttribute('onchange','document.getElementById("deletemessages_ogs").options[this.selectedIndex].selected="true"');
delmsg_ogs.getElementsByTagName('select')[0].setAttribute('name','deletemessages_ogs');
delmsg_ogs.getElementsByTagName('select')[0].setAttribute('id','deletemessages_ogs');
delmsg_ogs.getElementsByTagName('select')[0].setAttribute('onchange','document.getElementById("deletemessages").options[this.selectedIndex].selected="true"');
delmsg_org.getElementsByTagName('input')[0].setAttribute('id','deletemessages_button');
delmsg_ogs.getElementsByTagName('input')[0].setAttribute('id','deletemessages_button_ogs');
delmsg_ogs.getElementsByTagName('input')[0].setAttribute('onclick','document.getElementById("deletemessages_button").click()');
delmsg_org.parentNode.insertBefore(delmsg_ogs, delmsg_org.parentNode.firstChild);
}
}
}
//---------------------------
// Statistikseiten erweitern
//---------------------------
// In den Stats
if (ogs.ogame.page == 'statistics')
{
var was = new Array();
var wasvalue = new Array();
//nur weiter wenn stats da sind (in neuen unis sind sie am start deaktiviert)
if(document.getElementsByName('who').length > 0)
{
was.push(document.getElementsByName('who')[0]);
was.push(document.getElementsByName('type')[0]);
was.push(document.getElementsByName('start')[0]);
// ausgewählte einstellung suchen
for (var i = 0; i < was.length; i++)
{
wasvalue[i] = was[i].value;
}
if (ogs.load('galaxietool'))
{
if (wasvalue[0] != 'ally')
{
var tabneu = ogs.dom.getEBF(ContDiv, 'table', 'width == 525')[1];
}
else
{
var tabneu = ogs.dom.getEBF(ContDiv, 'table', 'width == 519')[0];
}
if (tabneu)
{
var taborg = tabneu.cloneNode(true);
taborg.style.display = 'none';
}
}
if (ogs.load('stats_plusminusbuttons'))
{
var btn;
btn = ogs.dom.newElement('input', '', 'type', 'button', 'value', '<');
ogs.addEvent(btn,'click',function () {if(document.getElementsByName("start")[0].selectedIndex <= 0) return; document.getElementsByName("start")[0].selectedIndex -= 1; document.getElementsByTagName("form")[0].submit();},true);
was[2].parentNode.insertBefore(document.createElement('br'), was[2].previousSibling);
was[2].parentNode.insertBefore(document.createElement('br'), was[2].previousSibling);
was[2].parentNode.insertBefore(btn, was[2]);
was[2].parentNode.insertBefore(document.createTextNode(' '), was[2]);
btn = ogs.dom.newElement('input', '', 'type', 'button', 'value', '>');
ogs.addEvent(btn,'click',function () {if(document.getElementsByName("start")[0].selectedIndex >= document.getElementsByName("start")[0].length - 1) return; document.getElementsByName("start")[0].selectedIndex += 1; document.getElementsByTagName("form")[0].submit();},true);
was[2].parentNode.insertBefore(btn, was[2].nextSibling);
was[2].parentNode.insertBefore(document.createTextNode(' '), was[2].nextSibling);
}
var an; var an2; var pn; var pn2;
if (ogs.load('gala_ally_faerben'))
{
ogs.load('gala_ally_sn_in_af');
var allyspielerfarben = ogs.array.split(ogs.load('gala_ally_spieler_farben'),'|','&');
for (var j = 0; j < allyspielerfarben.length; j++)
{
allyspielerfarben[j][0] = allyspielerfarben[j][0].split(',');
}
}
if (ogs.load('statlinks_use_stats'))
{
var statlinks = ogs_statlinks_load();
var LinkText;
}
if (settingscur['gala_ally_faerben'] || settingscur['statlinks_use_stats'])
{
var spaltemitallynamen = 3;
if (wasvalue[0] == 'ally')
spaltemitallynamen = 1;
}
var toppunkte = -1;
var pms;
if (wasvalue[0] != 'ally')
{
var zeilen = ogs.dom.getEBF(ContDiv, 'table', 'width == 525');
zeilen = zeilen[1].rows;
}
else
{
var zeilen = ogs.dom.getEBF(ContDiv, 'table', 'width == 519');
zeilen = zeilen[0].rows;
}
ogs.load('show_punkte_diff_top');
ogs.load('punkte_diff_fontsize');
if (ogs.load('show_punkte_diff'))
{
var eigenepos = 0;
var eigenepunkte = 0;
for (var i = 1; i < zeilen.length; i++)
{
spalten = zeilen[i].cells;
//link auf href="#" ist die eigene posi
if(ogs.dom.getEBF(spalten[1],'a','getAttribute("href") == "#"').length > 0)
{
eigenepos = parseInt(spalten[0].innerHTML.match(/\d+/));
eigenepunkte = parseInt(spalten[4].innerHTML.trim().replace(/\./g,''));
break;
}
}
}
for (var i = 1; i < zeilen.length; i++)
{
spalten = zeilen[i].cells;
var statpunkte = parseInt(spalten[4].innerHTML.replace(/\./g,''));
if (settingscur['show_punkte_diff_top'])
{
if (toppunkte != -1)
{
var statdiff = statpunkte - toppunkte;
if (statdiff != 0)
spalten[4].innerHTML = spalten[4].innerHTML + '<br><font style="font-size: '+ settingscur['punkte_diff_fontsize'] +'; color:' + ogs.textfarbe + ';">' + TausenderZahl(statdiff.toString(),true) + '</font>';
else
spalten[4].innerHTML = spalten[4].innerHTML + '<br><font style="font-size: '+ settingscur['punkte_diff_fontsize'] +'; color:' + ogs.textfarbe + ';">-</font>';
}
else
spalten[4].innerHTML = spalten[4].innerHTML + '<br><font style="font-size: '+ settingscur['punkte_diff_fontsize'] +'; color:' + ogs.textfarbe + ';">-</font>';
toppunkte = statpunkte;
}
if (settingscur['show_punkte_diff'] && eigenepos > 0)
{
var thispos = parseInt(spalten[0].innerHTML.match(/\d+/));
if (thispos != eigenepos)
{
var statdiff = statpunkte - eigenepunkte;
spalten[1].innerHTML = spalten[1].innerHTML + '<br><font style="font-size: '+ settingscur['punkte_diff_fontsize'] +'; color:' + ogs.textfarbe + ';">' + TausenderZahl(statdiff.toString(),true) + '</font>';
}
else
spalten[1].innerHTML = spalten[1].innerHTML + '<br><font style="font-size: '+ settingscur['punkte_diff_fontsize'] +'; color:' + ogs.textfarbe + ';">-</font>';
}
if (settingscur['gala_ally_faerben'] || settingscur['statlinks_use_stats'])
{
pn2 = spalten[1].getElementsByTagName('a');
if (wasvalue[0] != 'ally' && pn2.length > 0)
{
pn2 = pn2[0];
pn = pn2.innerHTML.trim();
}
else
pn = '';
an2 = spalten[spaltemitallynamen].getElementsByTagName('a');
if (an2.length > 0)
{
an2 = an2[0];
an = an2.innerHTML.trim();
}
else
{
an = ''; //eigene ally
}
}
if (settingscur['gala_ally_faerben'])
{
if (pn.length > 0 || an.length > 0)
{
for (var j = 0; j < allyspielerfarben.length; j++)
{
for (var j2 = 0; j2 < allyspielerfarben[j][0].length; j2++)
{
if (1 == allyspielerfarben[j][1])
{
if (an.length > 0 && an == allyspielerfarben[j][0][j2])
{
try {an2.style.color = allyspielerfarben[j][2];} catch(e){}
if (settingscur['gala_ally_sn_in_af'] && pn.length > 0)
try {pn2.style.color = allyspielerfarben[j][2];} catch(e){}
}
}
else
{
if (pn.length > 0 && pn == allyspielerfarben[j][0][j2])
try {pn2.style.color = allyspielerfarben[j][2];} catch(e){}
}
}
}
}
}
if (settingscur['statlinks_use_stats'])
{
if (pn.length > 0 && statlinks.pn.length > 0)
{
LinkText = '<tr><td class\'c\'>'+pn+'</td></tr><tr><th><table>';
var pnpos = pn2.href.match(/p1=([0-9]+)&p2=([0-9]+)&p3=([0-9]+)/);
if (pnpos) LinkText = '<tr><td class\'c\'><a href=\''+pn2.href+'\'>'+pn+' ['+pnpos[1]+':'+pnpos[2]+':'+pnpos[3]+']</a></td></tr><tr><th><table>';
for (var j = 0; j < statlinks.pn.length; j++)
LinkText += ogs_statlinks_creattooltipline(statlinks.pu[j], pn, statlinks.pn[j]);
ogs.addOverLib(pn2,'<table width=\'240\'>'+LinkText+'</table></th></tr></table>\\\", '+ogs.window.STICKY+', '+ogs.window.MOUSEOFF+', '+ogs.window.DELAY+', 500, '+ogs.window.CENTER+', '+ogs.window.OFFSETY+', -20,\\\"');
}
if (an.length > 0 && statlinks.an.length > 0)
{
LinkText = '<tr><td class\'c\'>'+an+'</td></tr><tr><th><table>';
for (var j = 0; j < statlinks.an.length; j++)
LinkText += ogs_statlinks_creattooltipline(statlinks.au[j], an, statlinks.an[j]);
ogs.addOverLib(an2,'<table width=\'240\'>'+LinkText+'</table></th></tr></table>\\\", '+ogs.window.STICKY+', '+ogs.window.MOUSEOFF+', '+ogs.window.DELAY+', 500, '+ogs.window.CENTER+', '+ogs.window.OFFSETY+', -20,\\\"');
}
}
}
if (ogs.load('galaxietool'))
{
if (tabneu)
{
tabneu.parentNode.insertBefore(taborg, tabneu);
}
}
}
}
//-----------------------------
// Die Imperiumansicht aendern
//-----------------------------
if (ogs.ogame.page == 'imperium' && ogs.load('imperium_pic_change'))
{
var Rows = ogs.dom.getEBF(ContDiv, 'table', 'width == 750');
Rows = Rows[0].rows;
var bildzeile = null;
if (Rows[1].cells[0].innerHTML == '')
bildzeile = Rows[1];
else
bildzeile = Rows[2];
Rows = ogs.dom.getEBF(bildzeile,'th','getAttribute("style")');
if (Rows)
{
for (var i = 0; i < Rows.length; i++)
{
if (Rows[i].style.padding)
{
Rows[i].style.padding = ogs.load('imperium_pic_abstand')+'px';
}
}
}
Rows = ogs.dom.getEBF(bildzeile,'div','getAttribute("style")');
if (Rows)
{
for (var i = 0; i < Rows.length; i++)
{
if (Rows[i].style.padding)
Rows[i].style.width = ogs.load('imperium_pic_x')+'px';
}
}
Rows = ogs.dom.getEBF(bildzeile,'img','src.match("/planeten/")');
if (Rows)
{
for (var i = 0; i < Rows.length; i++)
{
Rows[i].setAttribute('width',ogs.load('imperium_pic_x'));
Rows[i].setAttribute('height',ogs.load('imperium_pic_y'));
}
}
}
var produktion = new Array();
if (ogs.ogame.page == 'imperium' && ogs.load('imperium_calc_resis'))
{
ogs.load('imperium_kosten');
// Init Vars
var Schnitt = 0;
var ProdSumme = 0;
var Summe = 0;
var gebwerte = new Array();
gebwerte[1] = new Array(60, 15, 0, 1.5);
gebwerte[2] = new Array(48, 24, 0, 1.6);
gebwerte[3] = new Array(225, 75, 0, 1.5);
gebwerte[4] = new Array(75, 30, 0, 1.5);
gebwerte[12] = new Array(900, 360, 180, 1.8);
gebwerte[14] = new Array(400, 120, 200, 2);
gebwerte[15] = new Array(1000000, 500000, 100000, 2);
gebwerte[21] = new Array(400, 200, 100, 2);
gebwerte[22] = new Array(2000, 0, 0, 2);
gebwerte[23] = new Array(2000, 1000, 0, 2);
gebwerte[24] = new Array(2000, 2000, 0, 2);
gebwerte[31] = new Array(200, 400, 200, 2);
gebwerte[33] = new Array(0, 50000, 100000, 2);
gebwerte[34] = new Array(20000, 40000, 0, 2);
gebwerte[44] = new Array(20000, 20000, 1000, 2);
gebwerte[41] = new Array(20000, 40000, 20000, 2);
gebwerte[42] = new Array(20000, 40000, 20000, 2);
gebwerte[43] = new Array(2000000, 4000000, 2000000, 2);
var buildings = new Array();
var planiids = new Array();
var Rows = ogs.dom.getEBF(ContDiv, 'table', 'width == 750');
Rows = Rows[0].rows;
var impcode = '<b>Tagesproduktion</b>';
var improhstoffzeile = 0;
var impTDnr = 0;
var vColorRess = new Array(ogs.load('color_met'),ogs.load('color_kris'),ogs.load('color_deut'),ogs.load('color_eng'))
var planiEnergie = new Array();
var reszeilen = new Array();
var ress_wert;
//planet oder mond?
var impplanettype = document.location.toString().match(/planettype=([0-9])/);
if (impplanettype) impplanettype = parseInt(impplanettype[1])
else impplanettype = 1;
var impstart = false;
for (var z = 0; z < Rows.length; z++)
{
var Zellen = Rows[z].cells;
//summenspalte entfernen
var zellenlength = Zellen.length;
if (zellenlength > 2)
{
zellenlength--;
Rows[z].deleteCell(zellenlength);
}
else if (zellenlength == 1)
{
Rows[z].colSpan -= 1;
if (Zellen[0].tagName.match(/td/i))
{
switcher = Zellen[0].innerHTML.substring(0, 3);
impTDnr++;
}
}
if (zellenlength < 2) continue;
//gebaeude id lauslesen
var gid = Zellen[0].innerHTML.match(/gid=([0-9]+)/);
if (gid) gid = parseInt(gid[1]);
else gid = 0;
if (gid == 0) // Ress
{
if (impTDnr != 2) continue;
Summe = 0;
ProdSumme = 0;
if (improhstoffzeile == 0 || improhstoffzeile == 1 || improhstoffzeile == 2)
{
var rezeilenwerte = new Array();
for (var i = 1; i < zellenlength; i++)
{
var ress_neu = Zellen[i].innerHTML.match(/\s+[\.0-9]+\s+/g);
if (ress_neu)
ress_wert = parseInt(ress_neu[0].replace(/<|>|\./g, ''));
else
ress_wert = 0;
Summe += ress_wert;
rezeilenwerte.push(ress_wert);
if (ress_neu && ress_neu[1])
ProdSumme += parseInt(ress_neu[1].replace(/<|>|\./g, ''));
if (impplanettype == 1)
Zellen[i].innerHTML = Zellen[i].innerHTML.replace(/[^<]\//,'<br />');
else
Zellen[i].innerHTML = Zellen[i].innerHTML.replace(/>[\s]*\/[\s]*0/,'>');
}
if (impplanettype == 1)
Zellen[0].innerHTML = Zellen[0].innerHTML + '<br>Σ<span style="color:' + vColorRess[improhstoffzeile] + ';"> ' + TausenderZahl(Summe) + '</span><br />Σ<span style="color:' + vColorRess[improhstoffzeile] + ';"> ' + TausenderZahl(ProdSumme) + '</span>';
else
Zellen[0].innerHTML = Zellen[0].innerHTML + '<br>Σ<span style="color:' + vColorRess[improhstoffzeile] + ';"> ' + TausenderZahl(Summe) + '</span>';
if (improhstoffzeile == 0)
impcode += '<p>M: <span style="color:' + vColorRess[0] + ';">' + TausenderZahl(ProdSumme * 24) + '</span><br>';
else if (improhstoffzeile == 1)
impcode += 'K: <span style="color:' + vColorRess[1] + ';">' + TausenderZahl(ProdSumme * 24) + '</span><br>';
else if (improhstoffzeile == 2)
impcode += 'D: <span style="color:' + vColorRess[2] + ';">' + TausenderZahl(ProdSumme * 24) + '</span></p>';
produktion.push(ProdSumme);
reszeilen.push(Rows[z],rezeilenwerte);
}
else if (improhstoffzeile == 3)
{
for (var i = 1; i < zellenlength; i++)
{
var ress_neu = Zellen[i].innerHTML.match(/\s+[-\.0-9]+\s+/g);
if (ress_neu && ress_neu[0] && ress_neu[1])
{
planiEnergie.push(new Array(parseInt(ress_neu[0].replace(/<|>|\./g, '')),parseInt(ress_neu[1].replace(/<|>|\./g, ''))));
}
if (impplanettype == 1)
Zellen[i].innerHTML = Zellen[i].innerHTML.replace(/[\s]+\/[\s]+/,'<br />');
else
Zellen[i].innerHTML = '0';
}
}
improhstoffzeile++;
}
else if (gid < 100) // Gebaeude
{
Schnitt = 0;
for (var i = 1; i < zellenlength; i++)
{
var handler_neu = Zellen[i].innerHTML.match(/ [\.0-9]+ /g);
if (handler_neu)
{
var mine = parseInt(handler_neu[0].replace(/\./g, ''));
var nextmine = mine + 1;
Schnitt += mine;
if (!buildings[i-1]) buildings[i-1] = '';
buildings[i-1] += gid +'='+mine+':';
if (!planiids[i-1])
{
var pid = Zellen[i].innerHTML.match(/cp=([0-9]+)/);
if (pid) planiids[i-1] = parseInt(pid[1],10);
}
if (gid == 22 || gid == 23 || gid == 24) // speicher
{
ogs.addOverLib(reszeilen[(gid-22)*2].cells[i], '<table width=\'100%\'><tr><td><table width=\'100%\'><tr><th>Speicher:</th><th>'+Math.floor(reszeilen[(gid-22)*2+1][i-1] / (50 * Math.ceil(1 + Math.pow(1.6, mine)))) / 10 + '%</th></tr></table></td></tr></table>');
}
if (settingscur['imperium_kosten'])
{
var kosten = 0;
var energie = 0;
if (gebwerte[gid])
kosten = ogs.getKosten(gebwerte[gid][0],gebwerte[gid][1],gebwerte[gid][2],gebwerte[gid][3],nextmine);
if (gid <= 4 || gid == 12)
{
energie = ogs.getEnergie(gid, nextmine) - ogs.getEnergie(gid, (nextmine - 1));
var f_energie = planiEnergie[i-1][0] + energie;
}
else if (gid == 33)
{
energie = Math.floor(1000 * Math.pow(2, (nextmine - 1)), 0);
var f_energie = energie - planiEnergie[i-1][1];
}
if (energie != 0)
{
if (f_energie >= 0)
f_color = 'green';
else
f_color = 'red';
}
Zellen[i].innerHTML += ((kosten[0] > 0) ? '<br>M: <span style="color:' + ogs.textfarbe + ';">' + TausenderZahl(kosten[0].toString()) + '</span>' : '') + ((kosten[1] > 0) ? '<br>K: <span style="color:' + ogs.textfarbe + ';">' + TausenderZahl(kosten[1].toString()) + '</span>' : '') + ((kosten[2] > 0) ? '<br>D: <span style="color:' + ogs.textfarbe + ';">' + TausenderZahl(kosten[2].toString()) + '</span>' : '') + ((energie != 0) ? '<br>E: <span style="color:' +ogs.textfarbe + ';">' + TausenderZahl(energie.toString(),true) + '</span> (<span style="color:' + f_color + ';">' + TausenderZahl(f_energie.toString(),true) + '</span>)' : '');
}
}
}
Schnitt = Math.round((Schnitt / (i - 1)) * 100) / 100;
if (Zellen[0])
{
Zellen[0].innerHTML = Zellen[0].innerHTML + '<br />Ø<span style="color:' + ogs.textfarbe + ';"> ' + Schnitt + ' </span>';
}
}
else if (gid < 200) //Forschung
{
Schnitt = 0;
for (var i = 1; i < zellenlength; i++)
{
var handler = Zellen[i].innerHTML;
var handler_neu = handler.match(/>\s*[\.0-9]+\s*</g);
if (handler_neu)
{
Schnitt += parseInt(handler_neu[0].replace(/<|>|\./g, ''));
}
}
Schnitt = Math.round((Schnitt / (i - 1)) * 100) / 100;
if (Zellen[0])
{
Zellen[0].innerHTML = Zellen[0].innerHTML + '<br />Ø<span style="color:' + ogs.textfarbe + ';"> ' + Schnitt + ' </span>';
}
}
else //Schiffe Verteidigung
{
Summe = 0;
Schnitt = 0;
for (var i = 1; i < zellenlength; i++)
{
var handler = Zellen[i].innerHTML;
var handler_neu = handler.match(/>\s*[\.0-9]+\s*</g);
if (handler_neu)
{
h2 = parseInt(handler_neu[0].replace(/<|>|\./g, ''));
Schnitt += h2;
Summe += h2;
}
}
Schnitt = Math.round((Schnitt / (i - 1)) * 100) / 100;
if (Zellen[0])
{
Zellen[0].innerHTML = Zellen[0].innerHTML + '<br>Σ<span style="color:' + ogs.textfarbe + ';"> ' + TausenderZahl(Summe) + '</span> Ø<span style="color:' + ogs.textfarbe + ';"> ' + Schnitt + ' </span>';
}
}
}
if (impplanettype == 1)
{
var LeerFeld = Rows[1].cells;
if (LeerFeld[0].innerHTML == '')
{
LeerFeld[0].innerHTML = impcode;
}
else
{
var LeerFeld = Rows[2].cells;
LeerFeld[0].innerHTML = impcode;
}
}
if (buildings.length > 0)
{
var allbuildings = ogs.array.split(ogs.load('buildings'),'|','&');
for (var i = 0; i < planiids.length; i++)
{
if (!planiids[i] || !buildings[i]) continue;
//bereits vorhande planis loeschen um neue werte dann einzutragen
for (var ii = 0; ii < allbuildings.length; ii++)
{
if (allbuildings[ii][0] == planiids[i])
{
allbuildings.splice(ii,1);
ii--;
}
}
allbuildings.push(new Array(planiids[i], buildings[i]));
}
ogs.save('buildings',ogs.array.join(allbuildings,'|','&'));
}
} // Ende der Imperium-Erweiterungen
//---------------------------------------
// Memberliste bereits sortiert anzeigen
//---------------------------------------
if (ogs.ogame.page == 'allianzen')
{
if (!document.URL.match(/a=/) && !ContDiv.innerHTML.match(/a=1"/))
{
var ML_Link = ogs.dom.getEBF(ContDiv, 'table', 'width == 519');
if (ML_Link.length > 0)
{
ML_Link = ML_Link[0].rows;
if (ML_Link.length >= 4)
{
ML_Link = ML_Link[3].cells;
if (ML_Link.length >= 2)
{
ML_Link = ML_Link[1].getElementsByTagName('a');
if (ML_Link.length > 0)
{
ML_Link = ML_Link[0];
if (ML_Link.innerHTML.indexOf('Mitgliederliste') + 1 && ogs.load('ml_sort'))
{
var LinkNeu = ML_Link.href + '&sort1=' + ogs.load('ml_typ') + '&sort2=' + ogs.load('ml_art');
ML_Link.setAttribute('href', LinkNeu);
}
}
}
}
}
}
if((ogs.load('show_punkte_diff') || ogs.load('show_punkte_diff_top')) && document.URL.match(/\&a=4\&/))
{
ogs.load('punkte_diff_fontsize');
ogs.load('show_punkte_diff');
ogs.load('show_punkte_diff_top');
var eigenepunkte = -1;
var toppunkte = -1;
var zeilen = ogs.dom.getEBF(ContDiv,'table', 'width == 519');
zeilen = zeilen[0].rows;
if (settingscur['show_punkte_diff'])
{
for (var i = 2; i < zeilen.length; i++)
{
spalten = zeilen[i].getElementsByTagName('th');
//keine pm in spalte wenn man es selbst ist
if(spalten[2].getElementsByTagName('a').length == 0)
{
eigenepunkte = spalten[4].innerHTML.trim();
eigenepunkte = parseInt(eigenepunkte.replace(/\./g,''));
break;
}
}
}
for (var i = 2; i < zeilen.length; i++)
{
spalten = zeilen[i].getElementsByTagName('th');
var thispunkte = spalten[4].innerHTML.trim();
thispunkte = parseInt(thispunkte.replace(/\./g,''));
if (eigenepunkte > -1 && settingscur['show_punkte_diff'])
{
if (thispunkte != eigenepunkte)
{
var statdiff = thispunkte - eigenepunkte;
spalten[3].innerHTML = spalten[3].innerHTML + '<br><font style="font-size: '+ settingscur['punkte_diff_fontsize'] +'; color:' + ogs.textfarbe + ';">' + TausenderZahl(statdiff.toString(),true) + '</font>';
}
}
if (settingscur['show_punkte_diff_top'])
{
if (toppunkte > -1)
{
var statdiff = toppunkte - thispunkte;
spalten[4].innerHTML = spalten[4].innerHTML + '<br><font style="font-size: '+ settingscur['punkte_diff_fontsize'] +'; color:' + ogs.textfarbe + ';">' + TausenderZahl(statdiff.toString(),true) + '</font>';
}
toppunkte = thispunkte;
}
}
}
}
//------------------
// Die Gala aendern
//------------------
if (ogs.ogame.page == 'galaxy')
{
if (ogs.load('galaxietool'))
{
var tabneu = ogs.dom.getEBF(ContDiv, 'table', 'width == 569');
if(tabneu.length > 0)
{
var taborg = tabneu[0].cloneNode(true);
taborg.style.display = 'none';
}
}
var FoxGameVerkl = -1; // speichert, ob FoxGame die Gala verkleinert hat
if (ogs.load('tf_limit'))
{
ogs.load('color_met');
ogs.load('color_kris');
ogs.load('tf_color');
}
ogs.load('platz_anzeige');
ogs.load('allyplatz_anzeige');
if (ogs.load('statlinks_use_gala')) var statlinks = ogs_statlinks_load();
if (ogs.load('gala_iprak_aktiv'))
{
var ipziel = document.getElementsByName('pziel');
if (ipziel.length > 0)
{
ipziel = ipziel[0];
var value = ogs.load('gala_iprak_wert');
if (value >= 0 && ipziel.length > value)
ipziel.selectedIndex = value;
if (ogs.load('gala_iprak_max'))
{
var ipanzahl = document.getElementsByName('anz');
if (ipanzahl.length > 0)
{
ipziel = ipziel.parentNode.parentNode.cells[0];
ipanzahl[0].value = exp('g_rak',/Raketenanzahl \(([0-9]*) vorhanden\):/).exec(ipziel.innerHTML)[1];
}
}
}
}
if(ogs.load('gala_ally_faerben'))
{
ogs.load('gala_ally_sn_in_af');
var allyspielerfarben = ogs.array.split(ogs.load('gala_ally_spieler_farben'),'|','&');
for (var j = 0; j < allyspielerfarben.length; j++)
{
allyspielerfarben[j][0] = allyspielerfarben[j][0].split(',');
}
}
var Zeile = ogs.dom.getEBF(ContDiv, 'table', 'width == 569');
if (Zeile.length > 0)
{
Zeile = Zeile[0].rows;
var an; var pn;
var platzexp = exp('g_rank',new Array(/Platz ([.0-9]+)/,/Platz ([.0-9]+)/,/mit ([.0-9]+)/));
for (var i = 0; i < Zeile.length; i++)
{
var Spalte = Zeile[i].cells;
if (Spalte.length > 4)
{
// wenn es keine 8. Spalte mehr gibt war hier wohl FoxGame am Werk
if (FoxGameVerkl == -1)
{
if (Spalte.length < 8)
{
if (Spalte.length == 6) //foxgame und shortcuts off
{
FoxGameVerkl = 1;
}
else
{
if (Spalte[Spalte.length-1].innerHTML.match('Allianz')) // nur shortcuts off
FoxGameVerkl = 0;
else //foxgame
FoxGameVerkl = 1;
}
}
else
{
FoxGameVerkl = 0;
}
}
if (settingscur['tf_limit'] >= 0)
{
var PlaniName = Spalte[2-FoxGameVerkl];
var TFInhalt = Spalte[4-FoxGameVerkl];
var aHref = TFInhalt.getElementsByTagName('a');
if (aHref.length > 0)
{
aHref = aHref[0];
var TFM = InInt(exp('g_tf_met',/Metall:<\/th><th>([.0-9]+)/).exec(aHref.getAttribute('onmouseover').toString())[1]);
var TFK = InInt(exp('g_tf_kri',/Kristall:<\/th><th>([.0-9]+)/).exec(aHref.getAttribute('onmouseover').toString())[1]);
if (TFM + TFK >= ogs.load('tf_limit'))
{
PlaniName.appendChild(document.createElement('br'));
PlaniName.appendChild(ogs.dom.newElement('span', '(M: <font color="'+settingscur['color_met']+'">' + TausenderZahl(TFM) + '</font>, K: <font color="'+settingscur['color_kris']+'">' + TausenderZahl(TFK) + '</font>)', 'style', 'color:' + ogs.textfarbe + ';'));
//tf umranden
aHref = aHref.getElementsByTagName('img');
if (aHref)
{
aHref[0].style.border = '3px';
aHref[0].style.borderColor = settingscur['tf_color'];
aHref[0].style.borderStyle = 'solid';
}
}
}
}
if (settingscur['platz_anzeige'])
{
var PlayerName = Spalte[5-FoxGameVerkl];
var aHref = PlayerName.getElementsByTagName('a')[0];
if (aHref)
{
if (!PlayerName.getElementsByTagName('span')[0].innerHTML.length) { continue; } // oGame v0.77 fix (iI) Geisterspieler
var Platz = platzexp[0].exec(aHref.getAttribute('onmouseover').toString());
if (Platz)
Platz = TausenderZahl(parseInt(Platz[1], 10));
else
Platz = '???';
PlayerName.appendChild(document.createElement('br'));
PlayerName.appendChild(ogs.dom.newElement('span', '#' + Platz + ' ', 'style', 'color:' + ogs.textfarbe + ';'));
}
}
if (settingscur['allyplatz_anzeige'])
{
var AllyName = Spalte[6-FoxGameVerkl];
var aHref = AllyName.getElementsByTagName('a')[0];
if (aHref)
{
var AlPlatz = platzexp[1].exec(aHref.getAttribute('onmouseover').toString());
if (AlPlatz)
AlPlatz = TausenderZahl(parseInt(AlPlatz[1], 10));
else
AlPlatz = '???';
var AnzMtgl = platzexp[2].exec(aHref.getAttribute('onmouseover').toString());
if (AnzMtgl)
AnzMtgl = TausenderZahl(parseInt(AnzMtgl[1], 10));
else
AnzMtgl = '???';
AllyName.appendChild(document.createElement('br'));
AllyName.appendChild(ogs.dom.newElement('span', '#' + AlPlatz + ' / ' + AnzMtgl + '', 'style', 'color:' + ogs.textfarbe + ';'));
}
}
if (settingscur['gala_ally_faerben'])
{
var PlayerName = Spalte[5-FoxGameVerkl].getElementsByTagName('a');
var AllyName = Spalte[6-FoxGameVerkl].getElementsByTagName('a');
if (PlayerName.length > 0)
{
PlayerName = PlayerName[0].getElementsByTagName('span')[0];
pn = PlayerName.innerHTML.trim();
}
else
pn = '';
if (AllyName.length > 0)
{
AllyName = AllyName[0];
an = AllyName.innerHTML.replace(/<.*?>/g,'').trim();
}
else
an = '';
if (pn.length > 0 || an.length > 0)
{
for (var j = 0; j < allyspielerfarben.length; j++)
{
for (var j2 = 0; j2 < allyspielerfarben[j][0].length; j2++)
{
if (1 == allyspielerfarben[j][1])
{
if (an.length > 0 && an == allyspielerfarben[j][0][j2])
{
try {AllyName.style.color = allyspielerfarben[j][2];} catch(e){}
AllyName.innerHTML = an;
if (settingscur['gala_ally_sn_in_af'] && pn.length > 0)
try {PlayerName.style.color = allyspielerfarben[j][2];} catch(e){}
}
}
else
{
if (pn.length > 0 && pn == allyspielerfarben[j][0][j2])
try {PlayerName.style.color = allyspielerfarben[j][2];} catch(e){}
}
}
}
}
}
if (settingscur['statlinks_use_gala'])
{
var Link = null;
var LinkText = null;
function ogs_addOverLibTest(obj,code)
{
obj.removeAttribute('onmouseout');
obj.removeAttribute('onmouseover');
ogs.addEvent(obj,'mouseout',ogs.window.nd,true);
ogs.addEvent(obj,'mouseover',eval('new Function(\'\',\"ogs.window.'+code.replace(/\n/g,'').replace(/.*overlib\(\'/,'overlib(\\\"').replace(/\', .*/,'\\\", '+ogs.window.STICKY+', '+ogs.window.MOUSEOFF+', '+ogs.window.DELAY+', 750, '+ogs.window.CENTER+', '+ogs.window.OFFSETY+', -40);')+'\")'),true);
}
//spieler
Link = Spalte[5-FoxGameVerkl].getElementsByTagName('a');
if (Link.length > 0 && statlinks.pn.length > 0)
{
Link = Link[0];
LinkText = '';
for (var j = 0; j < statlinks.pn.length; j++)
LinkText += ogs_statlinks_creattooltipline(statlinks.pu[j], Link.getElementsByTagName('span')[0].innerHTML.trim(),statlinks.pn[j]);
ogs_addOverLibTest(Link,Link.getAttribute('onmouseover').toString().replace('</table></th>','</table></th></tr><tr><th><table>' + LinkText + '</table></th></tr>'));
}
//ally
Link = Spalte[6-FoxGameVerkl].getElementsByTagName('a');
if (Link.length > 0 && statlinks.an.length > 0)
{
Link = Link[0];
LinkText = '';
for (var j = 0; j < statlinks.an.length; j++)
LinkText += ogs_statlinks_creattooltipline(statlinks.au[j], Link.innerHTML.replace(/<.*?>/g,'').trim(),statlinks.an[j]);
ogs_addOverLibTest(Link,Link.getAttribute('onmouseover').toString().replace('</table></th>','</table></th></tr><tr><th><table>' + LinkText + '</table></th></tr>'));
}
}
}
}
}
if (ogs.load('galaxietool'))
{
if (tabneu.length > 0)
{
tabneu[0].parentNode.insertBefore(taborg, tabneu[0]);
//loeschen der benötigten ids für info anzeige
var deleteme = null;
deleteme = document.getElementById('fleetstatusrow');
if (deleteme) deleteme.parentNode.removeChild(deleteme);
deleteme = document.getElementById('probes');
if (deleteme) deleteme.parentNode.removeChild(deleteme);
deleteme = document.getElementById('recyclers');
if (deleteme) deleteme.parentNode.removeChild(deleteme);
deleteme = document.getElementById('slots');
if (deleteme) deleteme.parentNode.removeChild(deleteme);
}
}
}
//-----------
// Farmliste
//-----------
if (ogs.load('farmliste_aktiv'))
{
//hauptfunction
function farmlistemain()
{
var gala = 0;
var uklad = 0;
function getCoords(coordstring)
{
var adres = coordstring.split(':');
if (adres.length == 3)
{
adres[0] = parseInt(adres[0]);
adres[1] = parseInt(adres[1]);
adres[2] = parseInt(adres[2]);
if (adres[0] < 1 || adres[0] > 9 ) return null;
if (adres[1] < 1 || adres[1] > 499 ) return null;
if (adres[2] < 1 || adres[2] > 16 ) return null; //expos erlauben
return adres;
}
return null;
}
function getPlaniType(planistring)
{
var planitype = parseInt(planistring);
if (planitype == 1) return 'Planet';
if (planitype == 2) return 'TF';
if (planitype == 3) return 'Mond';
return '';
}
function addCoords(event) {
var coords = '';
var desc = '';
var typ = '';
if (gala) {
var planet = this.innerHTML;
coords = gala + ':' + uklad + ':' + planet;
}
else
coords = prompt('Bitte Koords eintragen X:XXX:XX');
if (coords == null) return;
if ((desc = prompt('Bezeichnung eintragen.')) == null) return;
if ((typ = prompt('Typ , 1 - Planet, 2 -TF, 3 - Mond','1')) == null) return;
coords = coords.replace(/[\^\|]/g,'');
desc = desc.replace(/[\^\|]/g,'');
typ = typ.replace(/[^0-9]/g,'');
ogs.save('farmliste_liste', ogs.load('farmliste_liste')+'^'+coords+'|'+desc+'|'+typ);
if (ogs.neueseite.user == 'farmliste') showFarmliste();
return false;
}
function jumpmap(e) {
var adres = e.target.firstChild.nodeValue;
adres = getCoords(adres);
if (adres != null)
{
document.location.href='index.php?page=galaxy&galaxy='+adres[0]+'&system='+adres[1]+'&planet='+adres[2]+'&session=' + ogs.ogame.sid;
}
return false;
}
function delcoord(event) {
var adresyNowe = '';
var nr = event.target.getAttribute('nr');
var str = ogs.load('farmliste_liste');
var adresy = str.split( '^' );
for (var i in adresy)
if (adresy[i]!='' && i != nr)
adresyNowe = adresyNowe + '^' + adresy[i];
ogs.save('farmliste_liste', adresyNowe);
showFarmliste();
return false;
}
function moveCoord(event) {
var nr = event.target.firstChild.nodeValue;
var CoordsTab = loadCoords();
if ((poz = prompt ('Neue Position:')) && (poz>0) && (poz<CoordsTab.length))
{
CoordsTabNew = new Array;
var ii = 1;
for (var i in CoordsTab) if (i > 0) {
if (ii==poz) CoordsTabNew[ii++] = CoordsTab[nr];
if (i!=nr) CoordsTabNew[ii++] = CoordsTab[i];
if (ii==poz) CoordsTabNew[ii++] = CoordsTab[nr];
}
saveCoords(CoordsTabNew);
showFarmliste();
}
}
function loadCoords() {
var CoordsTab = new Array;
var str = ogs.load('farmliste_liste');
var adresy = str.split( '^' );
for (var i in adresy)
if (adresy[i]!='')
CoordsTab[i] = adresy[i].split('|');
return CoordsTab;
}
function saveCoords(CoordsTab) {
var str = '';
for (var i in CoordsTab) if (i > 0)
if (typeof(CoordsTab[i]) != 'undefined')
str = str + '^' + CoordsTab[i][0] + '|' + CoordsTab[i][1] + '|' + CoordsTab[i][2];
ogs.save('farmliste_liste', str);
}
function editCoord(event) {
CoordsTab = loadCoords();
var nr = event.target.parentNode.parentNode.firstChild.firstChild.firstChild.nodeValue;
if (coords = prompt('Bitte Koords eintragen X:XXX:XX', CoordsTab[nr][0]))
if (desc = prompt('Bezeichnung eintragen', CoordsTab[nr][1]))
if (typ = prompt('Typ , 1 - Planet, 2 -TF, 3 - Mond', (CoordsTab[nr][2] != 'undefined') ? CoordsTab[nr][2] : '1')){
coords = coords.replace(/[\^\|]/g,'');
desc = desc.replace(/[\^\|]/g,'');
typ = typ.replace(/[^0-9]/g,'');
CoordsTab[nr][0] = coords;
CoordsTab[nr][1] = desc;
CoordsTab[nr][2] = typ;
saveCoords(CoordsTab);
showFarmliste();
}
return false;
}
function hideFarmliste()
{
//nur starten wenn man erlaubnis hat die seite zu ändern.
if (ogs.neueseite.user != 'farmliste')
return;
//löschen des nodes
ogs.neueseite.neu.parentNode.removeChild(ogs.neueseite.neu);
//wiederanzeigen des orginals
ogs.neueseite.orginal.style.display = 'block';
//seite freigeben
ogs.neueseite.user = '';
delete ogs.neueseite.orginal;
delete ogs.neueseite.neu;
}
function showFarmliste()
{
//wenn seite leer ist dann werte setzten
if (ogs.neueseite.user == '')
{
ogs.neueseite.user = 'farmliste';
ogs.neueseite.orginal = document.getElementById('content');
ogs.neueseite.neu = ogs.neueseite.orginal.parentNode.insertBefore(ogs.neueseite.orginal.cloneNode(false), ogs.neueseite.orginal);
ogs.neueseite.orginal.style.display = 'none';
}
//nur starten wenn man erlaubnis hat die seite zu ändern.
if (ogs.neueseite.user != 'farmliste')
return;
//leer machen bevor sie wieder aufgefüllt wird
while (ogs.neueseite.neu.firstChild)
ogs.neueseite.neu.removeChild(ogs.neueseite.neu.firstChild);
var centertab = document.createElement('center');
var tab = centertab.appendChild(document.createElement('TABLE'));
tab.style.padding = 30;
tab = tab.appendChild(document.createElement('TBODY'));
var tr = tab.appendChild(document.createElement('TR'));
var td = tr.appendChild(document.createElement('TD'));
td.className = 'c';
td.colSpan = 5;
td.appendChild(document.createTextNode('Deine persoenliche Koordinaten-Liste'));
tr = tab.appendChild(document.createElement('TR'));
td = tr.appendChild(document.createElement('TH'));
td.appendChild(document.createTextNode('NR'));
td = tr.appendChild(document.createElement('TH'));
td.appendChild(document.createTextNode('Pos'));
td = tr.appendChild(document.createElement('TH'));
td.appendChild(document.createTextNode('Type'));
td = tr.appendChild(document.createElement('TH'));
td.appendChild(document.createTextNode('Name / Edit'));
td = tr.appendChild(document.createElement('TH'));
td.appendChild(document.createTextNode('L\u00F6schen'));
var str = ogs.load('farmliste_liste');
var array1 = str.split( '^' );
var len = array1.length;
var a;
var th;
for(var i = 0; i < len; i++)
{
var x = array1[i];
if(x != '')
{
var arr = x.split( '|' );
if( arr[0] != null && typeof(arr[1])!='undefined')
{
tr = tab.appendChild(document.createElement('TR'));
th = tr.appendChild(document.createElement('TH'));
a = document.createElement('A');
a.href = '#';
ogs.addEvent(a,'click', moveCoord, false);
a.appendChild(document.createTextNode(i));
th.appendChild(a);
th = tr.appendChild(document.createElement('TH'));
a = document.createElement('A');
a.href = '#';
ogs.addEvent(a,'click', jumpmap, false);
a.appendChild(document.createTextNode(arr[0]));
if (getCoords(arr[0]) == null)
{
a.style.color = '#ff0000';
}
th.appendChild(a);
th = tr.appendChild(document.createElement('TH'));
var ptext = getPlaniType(arr[2]);
th.appendChild(document.createTextNode((ptext != '') ? ptext : arr[2]));
if (ptext == '')
{
th.style.color = '#ff0000';
}
th = tr.appendChild(document.createElement('TH'));
a = document.createElement('A');
a.href = '#';
ogs.addEvent(a,'click', editCoord, false);
a.appendChild(document.createTextNode(arr[1]));
th.appendChild(a);
th = tr.appendChild(document.createElement('TH'));
a = document.createElement('A');
a.href = '#';
a.setAttribute('nr',i);
ogs.addEvent(a,'click', delcoord, false);
a.appendChild(document.createTextNode('<Entf>'));
th.appendChild(a);
}
}
}
tr = tab.appendChild(document.createElement('TR'));
td = tr.appendChild(document.createElement('TH'));
td.colSpan = 4;
td = tr.appendChild(document.createElement('TH'));
a = document.createElement('A');
a.href = '#';
ogs.addEvent(a,'click', hideFarmliste, false);
a.appendChild(document.createTextNode('OK'));
td.appendChild(a);
ogs.neueseite.neu.appendChild(centertab);
}
function start1()
{
var x;
var y;
var z;
var vMenu = LeftDiv.getElementsByTagName('table')[0].getElementsByTagName('tbody')[0];
//wenn menü nicht gefunden dann abbruch...
if (vMenu.length == 0) return;
x = document.createElement('TR');
y = document.createElement('TD');
y.innerHTML = ' ';//<div align="center"><font color="#ffffff"><br /></font></div>';
x.appendChild(y);
vMenu.appendChild(x);
x = document.createElement('TR');
y = document.createElement('TD');
y.innerHTML = '<div align="center"><font color="#ffffff"></font></div>';
x.appendChild(y);
z = document.createElement('A');
z.setAttribute('href','#');
z.innerHTML= txt('farm_new','Neue Koords');
ogs.addEvent(z,'click',addCoords,false);
y.getElementsByTagName('font')[0].appendChild(z);
vMenu.appendChild(x);
x = document.createElement('TR');
y = document.createElement('TD');
y.innerHTML = '<div align="center"><font color="#ffffff"></font></div>';
x.appendChild(y);
z = document.createElement('A');
z.setAttribute('href','#');
z.innerHTML= txt('farm_all','Alle Koords');
ogs.addEvent(z,'click',showFarmliste,false);
y.getElementsByTagName('font')[0].appendChild(z);
vMenu.appendChild(x);
}
function start2()
{
//nur flottenseite
if(ogs.ogame.page == 'flotten2')
{
var x = document.getElementById('content').getElementsByTagName( 'table' );
var y = x[0];
}
else if(ogs.ogame.page == 'galaxy')
{
var curgalaxy = document.getElementsByName('galaxy');
if (curgalaxy.length < 1) return;
//curgalaxy = curgalaxy[0].value;
var x = document.getElementById('content').getElementsByTagName( 'table' );
var y = x[3];
y = y.appendChild(document.createElement('tr'));
y = y.appendChild(document.createElement('th'));
y.colSpan = 8;
y = y.appendChild(document.createElement('table'));
y.style.width = '100%'
}
else
return;
var z = y.getElementsByTagName( 'tr' );
var a = document.createElement( 'TR' );
var b = document.createElement( 'TD' );
b.innerHTML = 'Koordinaten-Liste';
b.colSpan = 2;
b.className = 'c';
a.appendChild( b );
y.appendChild( a );
var str = ogs.load('farmliste_liste');
var array1 = str.split('^');
var len = array1.length;
var v = document.createElement( 'TR' );
var i = 0;
for(var ii = 0; ii < len; ii++)
{
x = array1[ii];
if( x != '' )
{
var arr = x.split( '|' );
var arrC = getCoords(arr[0]);
//test auf richtige angabe
if(arrC != null && getPlaniType(arr[2]) != '')
{
i++;
//nächste zeile erstellen
if( ( i - 1 ) % 2 == 0 )
{
v = document.createElement( 'TR' );
}
o = document.createElement( 'TH' );
var link = document.createElement( 'A' );
var linktext = arr[1]+' '+arr[0];
if (arr[2] == 2)
linktext += ' (TF)';
else if (arr[2] == 3)
linktext += ' (Mond)';
if(ogs.ogame.page == 'flotten2')
link.href = 'javascript:setTarget('+arrC[0]+','+arrC[1]+','+arrC[2]+','+arr[2]+'); shortInfo();';
else
link.href = 'javascript:showGalaxy('+arrC[0]+','+arrC[1]+','+arrC[2]+');';
link.appendChild(document.createTextNode(linktext));
o.appendChild( link );
v.appendChild( o );
//nächste zeile anhängen
if( ( i - 1 ) % 2 == 0 )
{
y.appendChild( v );
}
}
}
}
}
//in gala ansicht links zum erstellen einer farm hinzufügen
if(ogs.ogame.page == 'galaxy')
{
var tgala = document.getElementsByName('galaxy')
if (tgala.length > 0)
{
gala = tgala[0].value;
uklad = document.getElementsByName('system')[0].value;
var tagi = document.getElementById('content').getElementsByTagName('a');
for (var i in tagi)
{
if (tagi[i].getAttribute && tagi[i].getAttribute('tabindex'))
{
ogs.addEvent(tagi[i],'click',addCoords,true);
}
}
}
}
//starten
start1();
start2();
}
//starten
farmlistemain();
}
//------------------------
// allgemeine Korrekturen
//------------------------
// title-Tags bearbeiten
if (ogs.ogame.page == 'overview' || ogs.ogame.page == 'flotten1')
{
if (ogs.load('skin_advance') && (ogs.load('schiffs_geschw') || ogs.load('flotten_zusatz')))
{
ogs.load('schiffs_geschw');
ogs.load('flotten_zusatz');
var Links = ContDiv.getElementsByTagName('a');
for (var i = 0; i < Links.length; i++)
{
if (!Links[i].title || Links[i].title.search(/^[0-9]+$/) + 1) { continue; } // bei nur aus Zahlen bestehenden Titeln nichts tun (das sind die Counter)
if (ogs.ogame.page == 'overview' && settingscur['flotten_zusatz'])
{
Links[i].title = Links[i].title.replace(/([0-9])([A-Z])/g, '$1, $2');
}
if (ogs.ogame.page == 'flotten1' && settingscur['schiffs_geschw'] && (Links[i].title.indexOf('Geschwindigkeit: ') + 1 || Links[i].title.indexOf('Speed: ') + 1))
{
Links[i].setAttribute('class', 'geschw_anzeige');
}
}
}
}
//----------------
// IGM-Messagemodus erweitern
//----------------
if (ogs.ogame.page == 'writemessages' && ogs.load('igm_signatur_bool'))
{
var text = ContDiv.getElementsByTagName('textarea');
if (text.length >= 1)
{
ogs.setTextArea(text[0], (ogs.load('igm_signatur')).replace(/\\n/g,'\n'));
}
}
//----------------
// Skin erweitern
//----------------
if (ogs.load('skin_advance')) {
var CSSStr = '#content table { empty-cells:show; }';
switch(ogs.ogame.page) // Idee von Badhard
{
case 'flotten1':
// Tabellen breiter machen
CSSStr += 'table[width="519"] { width:' + TabBreite(800, 519) + 'px; }';
// erforderliche GT/KT anzeigen + Schiffsgeschwindigkeiten anzeigen
if (ogs.load('schiffs_geschw'))
{
CSSStr += 'a[title]:after { content:" ("attr(title)")"; color:' + ogs.textfarbe + '; }';
CSSStr += 'a.geschw_anzeige:after { content:" ("attr(title)")"; color:#009999; }';
}
break;
case 'messages':
// Tabellen breiter machen
CSSStr += 'table[width="519"] { width:' + TabBreite(800, 519) + 'px; }';
// Spioberichte zentrieren
var Tabs = ogs.dom.getEBF(document, 'table', 'width == 400');
for (var i = 0; i < Tabs.length; i++)
{
Tabs[i].align = 'center';
}
break;
case 'options':
// Tabellen breiter machen
CSSStr += 'table[width="519"] { width:' + TabBreite(650, 519) + 'px; }';
break;
case 'resources':
// Tabellen breiter machen
CSSStr += 'table[width="500"] { width:' + TabBreite(550, 500) + 'px; }';
break;
case 'galaxy':
// Tabellen breiter machen
CSSStr += 'table[width="569"] { width:' + TabBreite(700, 569) + 'px; }';
break;
case 'overview':
// Tabellen breiter machen
CSSStr += 'table[width="519"] { width:' + TabBreite(2000, 519) + 'px; }';
// Planibilder zentrieren
var Tabs = ogs.dom.getEBF(ContDiv, 'table', 'className == "s" && knoten.align == "top"');
if (Tabs.length) { Tabs[0].align = 'center'; }
break;
case 'b_building' || 'buildings':
// fehlende Ress umfaerben
if (ogs.load('fehlress_als_text'))
{
CSSStr += 'a[title]:after {content:" ("attr(title)")"; color:' + ogs.textfarbe + '; }';
}
break;
}
document.getElementById('menu').firstChild.nextSibling.style.fontSize = '0pt';
ogs.addStyle(CSSStr);
}
// info seite der gebaeude (sprungtor zeitpunkt von wider bereit)
if (ogs.ogame.page == 'infos' && ogs.load('endzeiten'))
{
var gid = document.URL.match(/gid=([0-9]+)/);
if (gid.length > 1)
{
gid = parseInt(gid[1]);
if (gid == 43) //sprungtor
{
var el = ogs.dom.getCEBF(ContDiv, 'center');
if (el.length > 0)
{
el = ogs.dom.getCEBF(el[0], 'center');
if (el.length > 0)
{
el = el[0];
var min = el.innerHTML.match(/ ([0-9]+)min /);
if (min) min = parseInt(min[1]);
else min = 0;
var sec = el.innerHTML.match(/ ([0-9]+)sec /);
if (sec) sec = parseInt(sec[1]);
else sec = 0;
if (min > 0 || sec > 0)
{
el.innerHTML += '<br />' + ogs.time.stamp(new Date(ogs.time.now().getTime() + min * 60000 + sec * 1000));
}
}
}
}
}
}
//-----------------------------
// Einstellungsmenue erweitern
//-----------------------------
// In den Einstellungen
if (ogs.ogame.page == 'options' & document.URL.indexOf('_plus=oui') == -1)
{
var ContDivCtr = ContDiv.getElementsByTagName('center')[0];
ContDivCtr.appendChild(document.createElement('br'));
ContDivCtr.appendChild(document.createElement('br'));
ContDivCtr.appendChild(document.createElement('br'));
ContDivCtr.appendChild(document.createElement('br'));
ContDivCtr.appendChild(document.createElement('br'));
var NeuTab = ogs.dom.newElement('div', '');
code = '<table width="519"><tr><td class="c">'+txt('options_1','OGame-Skript: Setup')+'</td></tr><tr><td class="c">'+txt('options_2','OGame-Skript: Lizenz')+'</td></tr><tr><th style="text-align: justify;">';
code += txt('options_3','OGame-Skript v#*1*#, ein Greasemonkey-Userscript, das OGame um einige, nützliche Funktionen erweitert.<br /><br />Copyright (C) 2006-2007 Windows-zerstoerer, ab März 2007 Eleria & Co (siehe #*2*#), ab Juli 2007 hakaz & User-Gruppe des OGame-Forums (siehe unter Team auf #*3*#)',ogs.version(),'<a href="http://board.ogame.de/thread.php?threadid=435082" target="_blank">http://board.ogame.de/thread.php?threadid=435082</a>','<a href="' + ogs.getLink(ogs.homepage) + '" target="_blank">'+ogs.homepage+'</a>')+'<br /><br />';
code += txt('options_4','Dieses Programm ist freie Software. Du kannst es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, gemäß Version 2 der Lizenz.')+'<br /><br />';
code += txt('options_5','Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, dass es dir von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Details findest du in der GNU General Public License.')+'<br /><br />';
code += txt('options_6','Für weitere Details, schau dir die volle GPL im Internet an:<br />#*1*# (Englisch)<br />#*2*# (Deutsch)<br /><br />Oder schreibe an die Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA.','<a href="' + ogs.getLink('http://www.gnu.org/licenses/gpl.html') + '" target="_blank">http://www.gnu.org/licenses/gpl.html</a>','<a href="' + ogs.getLink('http://www.gnu.de/gpl-ger.html') + '" target="_blank">http://www.gnu.de/gpl-ger.html</a>') + '</th></tr></table>';
NeuTab.innerHTML = code;
var NeuZeile = NeuTab.getElementsByTagName('table')[0].insertRow(1);
var NeuZelle = ogs.dom.newElement('th', '');
var NeuBtn = ogs.dom.newElement('input', '', 'type', 'button', 'value', txt('options','Zu den Einstellungen'));
ogs.addEvent(NeuBtn,'click', ogs_setup_start, true);
NeuZelle.appendChild(NeuBtn);
NeuZeile.appendChild(NeuZelle);
ContDivCtr.appendChild(NeuTab);
}
//-------------------------
// ich weiß wo du warst ;)
//-------------------------
if (ogs.ogame.page == 'flottenversand')
{
var table = document.getElementById('content').getElementsByTagName('table');
var endpos = null;;
var startpos = null;
if (table.length > 0)
{
table = table[0];
if (table.rows[0].innerHTML.match(/class="{0,1}success"{0,1}/)) // nur updaten wenn angriff auch raus ging
{
for (i = 1; i < table.rows.length; i++)
{
endpos = table.rows[i].innerHTML.match(/\[([0-9]{1,2}:[0-9]{1,3}:[0-9]{1,2})\]/);
if (endpos && startpos)
break;
else
startpos = endpos;
endpos = null;
}
}
}
if (endpos && startpos)
{
//speichern wenn start und end pos gefunden wurde und mit temp ubereinstimmen
var temp = ogs.load('flotte_flugpos_temp');
if (temp.length > 0 && temp.indexOf(endpos[1]+':') == 0)
ogs.save('flotte_flugpos',temp);
else
ogs.save('flotte_flugpos','');
}
else
ogs.save('flotte_flugpos','');
//temp pos loeschen
ogs.save('flotte_flugpos_temp','');
}
if (ogs.ogame.page == 'flotten3')
{
//auswahl temp speichern um nachher zu entscheiden ob mond / plani / tf
ogs.save('flotte_flugpos_temp', document.getElementsByName('galaxy')[0].value.trim() + ':' + document.getElementsByName('system')[0].value.trim() + ':' + document.getElementsByName('planet')[0].value.trim() + ':' + document.getElementsByName('planettype')[0].value.trim());
}
if (ogs.load('flotte_flugpos_enable'))
{
if (ogs.ogame.page == 'flotten2')
{
var pos = ogs.load('flotte_flugpos').split(':');
if (pos.length == 4)
{
var tab = ogs.dom.getEBF(ContDiv,'table','width == 519');
if (tab.length > 0)
{
var text = new Array('','Planet','TF','Mond');
tab[0].insertRow(3);
tab[0].rows[3].appendChild(document.createElement('th'));
tab[0].rows[3].appendChild(document.createElement('th'));
tab[0].rows[3].cells[0].innerHTML = txt('f_last_target','Letztes Ziel');
tab[0].rows[3].cells[1].innerHTML = '<a href="javascript:setTarget('+pos[0]+','+pos[1]+','+pos[2]+','+pos[3]+'); shortInfo()">'+text[parseInt(pos[3])]+' ['+pos[0]+':'+pos[1]+':'+pos[2]+']</a>';
}
}
}
}
//loadtime hinzufügen
var loadtimetext = txt('laufzeit','Laufzeit: #*1*# ms',((new Date()).getTime() - ogs.start.time.getTime()));
ogs.addOverLib(document.getElementById('ogs_version'),'<table><tr><td>'+loadtimetext+'</td></tr></table>');
ogs.addOverLib(document.getElementById('ogs_loading'),'<table><tr><td>'+loadtimetext+'</td></tr></table>');
}
function ogs_addOverLib(obj,code)
{
ogs.addEvent(obj,'mouseout',ogs.window.nd,true);
ogs.addEvent(obj,'mouseover',eval('new Function(\'\',\"ogs.window.overlib(\\\"'+code+'\\\");\")'),true);
}
/****************************************
* Funktionsabsatz - OGS Setup Funktionen
****************************************/
function ogs_setup_start()
{
//wenn seite leer ist dann werte setzten
if (ogs.neueseite.user == '')
{
ogs.neueseite.user = 'ogs_setup';
ogs.neueseite.orginal = document.getElementById('content');
ogs.neueseite.neu = ogs.neueseite.orginal.parentNode.insertBefore(ogs.neueseite.orginal.cloneNode(false), ogs.neueseite.orginal);
ogs.neueseite.orginal.style.display = 'none';
}
else //die seite ist bereits offen oder eine andere! => exit
{
return;
}
var ogs_setup_save_text = new Array;
var ogs_setup_save_textarea = new Array;
var ogs_setup_save_zahl = new Array;
var ogs_setup_save_zahl_min = new Array;
var ogs_setup_save_zahl_max = new Array;
var ogs_setup_save_yesno = new Array;
var ogs_setup_save_color = new Array;
var ogs_setup_save_option = new Array;
var ogs_setup_save_listen = new Array;
var ogs_setup_open = null;
var hidestring = '';
function ogs_setup_save()
{
//spezial save stuff
var ogssavelanguage = document.getElementById('ogs_language');
ogs.lang.cur = ogssavelanguage.options[ogssavelanguage.selectedIndex].value;
ogs.array.dropElement(ogs.lang.all, ogs.ogame.serversprache, 0);
ogs.lang.all.push(new Array(ogs.ogame.serversprache, ogs.lang.cur));
ogs.save('ogs_language', ogs.array.join(ogs.lang.all,'|','&'));
//ja nein
for (var i = 0; i < ogs_setup_save_yesno.length; i++)
{
ogs.save(ogs_setup_save_yesno[i], document.getElementById('' + ogs_setup_save_yesno[i]).checked);
}
//farben
for (var i = 0; i < ogs_setup_save_color.length; i++)
{
ogs.save(ogs_setup_save_color[i], (document.getElementById(ogs_setup_save_color[i]).value.toLowerCase() != 'transparent') ? ColorChk(document.getElementById(ogs_setup_save_color[i]).value) : 'transparent');
}
//text
for (var i = 0; i < ogs_setup_save_text.length; i++)
{
var text = document.getElementById(ogs_setup_save_text[i]).value;
if (text.length < 1) text = ''; //IE FIX
ogs.save(ogs_setup_save_text[i], text);
}
//textarea
for (var i = 0; i < ogs_setup_save_textarea.length; i++)
{
var text = ogs.getTextArea(document.getElementById(ogs_setup_save_textarea[i]));
text = text.replace(/\n/g,'\\n'); //sicherstellen das keine zeilenumbrueche enthalten sind
ogs.save(ogs_setup_save_textarea[i], text);
}
//zahlen
for (var i = 0; i < ogs_setup_save_zahl.length; i++)
{
var x = parseInt(document.getElementByID(ogs_setup_save_zahl[i]).value);
if (ogs_setup_save_zahl_min[i] != 0 || ogs_setup_save_zahl_max[i] != 0)
{
if (x < ogs_setup_save_zahl_min[i])
x = ogs_setup_save_zahl_min[i];
if (x > ogs_setup_save_zahl_max[i])
x = ogs_setup_save_zahl_max[i];
}
ogs.save(ogs_setup_save_zahl[i],x);
}
//option
for (var i = 0; i < ogs_setup_save_option.length; i++)
{
var thisoption = document.getElementById(ogs_setup_save_option[i]);
ogs.save(ogs_setup_save_option[i], thisoption.options[thisoption.selectedIndex].value);
}
//listen
for (var i = 0; i < ogs_setup_save_listen.length; i++)
{
eval(ogs_setup_save_listen[i]+'(0,0,5);');
}
// Speichern fertig
window.alert(txt('setup_savetext','Einstellungen wurden erfolgreich gespeichert! Bitte beachte, dass die Einstellungen nur f'+ue+'r den aktuellen Account und den aktuellen Computer gelten und erst mit dem n'+ae+'chsten Seitenaufruf angezeigt werden.'));
ogs_setup_close();
}
//functionen liste
function ogs_reiter(id) // Dynamische Menues nach Code Badhard
{
//ein/ausblenden
var kartei = document.getElementById('r' + id);
if (kartei.style.display == 'none')
{
if (ogs_setup_open != null)
ogs_setup_open.style.display = 'none';
if (ogs.browser == 'ff')
{
kartei.style.display = 'table-row-group';
}
else
{
kartei.style.display = 'block';
}
ogs_setup_open = kartei;
}
else
{
kartei.style.display = 'none';
ogs_setup_open = null;
}
}
function ogs_block(id, main)
{
var ids = id.split(' ');
for (var i = 0; i < ids.length; i++)
{
var row = document.getElementById(ids[i]);
var haupt = document.getElementById(main);
var hauptTR = document.getElementById(main+'1').style.display;
if(!haupt.checked)
{
row.style.display = 'none';
if (!hauptTR)
{
var inputs = row.getElementsByTagName('input');
if (inputs.length && inputs[0].type=='checkbox')
{
inputs[0].click();
inputs[0].click();
}
}
}
else
{
if (ogs.browser == 'ff')
{
row.style.display = 'table-row';
}
else
{
row.style.display = 'block';
}
var inputs = row.getElementsByTagName('input');
if (inputs.length && inputs[0].type=='checkbox')
{
inputs[0].click();
inputs[0].click();
}
}
}
}
//functions zugänglich machen
ogs.bound.reiter = ogs_reiter;
ogs.bound.block = ogs_block;
function createCheck(id, header, content)
{
//zum speichern eintragen
ogs_setup_save_yesno.push(id);
if (createCheck.arguments.length > 3)
{
if(!ogs.load(id))
hidestring += createCheck.arguments[3] + ' ';
}
coder += '<tr id="'+id+'1"';
if (hidestring.indexOf(id+'1')+1)
coder += ' style="display: none;"';
coder += '><th style="color: '+ogs.load('skriptcolor')+'">' + txt('sn_'+id,header)+'</th><th>' + txt('si_'+id,content) + '</th><th><input type="checkbox" id="' + id + '"';
if (createCheck.arguments.length > 3)
{
coder += 'onclick="ogs.block(\u0027'+createCheck.arguments[3]+'\u0027,\u0027'+id+'\u0027)"';
}
if (ogs.load(id))
{
coder += ' checked';
}
coder += '></th></tr>';
}
function createEdit(id, header, content, size, maxlength, minv, maxv)
{
//zum speichern eintragen
if (typeof settingsdef[id] == 'int')
{
ogs_setup_save_zahl.push(id);
ogs_setup_save_zahl_min.push(parseInt(minv, 10));
ogs_setup_save_zahl_max.push(parseInt(maxv, 10));
}
else
{
ogs_setup_save_text.push(id);
}
coder += '<tr id="'+id+'1"';
if (hidestring.indexOf(id)+1)
coder += ' style="display: none;"';
coder += '><th style="color: '+ogs.load('skriptcolor')+';">' + txt('sn_'+id,header)+'</th><th>' + txt('si_'+id,content) + '</th><th>';
coder += '<input type="text" id="' + id + '" size="' + ((size) ? size : 10) + '" '
if(maxlength) coder += 'maxlength="' + maxlength + '" '
coder += 'value="' + ogs.load(id) + '"></th></tr>';
}
function createTextArea(id, header, content, cols, rows)
{
//zum speichern eintragen
ogs_setup_save_textarea.push(id);
coder += '<tr id="'+id+'1"';
if (hidestring.indexOf(id)+1)
coder += ' style="display: none;"';
coder += '><th style="color: '+ogs.load('skriptcolor')+';">' + txt('sn_'+id,header)+'</th><th>' + txt('si_'+id,content) + '</th><th>';
coder += '<textarea id="' + id + '" cols="'+cols+'" rows="'+rows+'"></textarea></th></tr>';
}
function createColTxt(id,header,content,transparent)
{
//zum speichern eintragen
ogs_setup_save_color.push(id);
//wenn text vorhanden ist absatz hinzufügen
if (content != '') content += '<br />';
coder += '<tr id="'+id+'1"';
if (hidestring.indexOf(id)+1)
coder += ' style="display: none;"';
coder += '><th style="color: '+ogs.load('skriptcolor')+'">' + txt('sn_'+id,header)+'</th><th>' + txt('si_'+id,content) + AddColorSel(id,transparent) + '</th><th>';
coder += '<input type="text" id="' + id + '" size="10" value="' + ogs.load(id) + '"></th></tr>';
}
// Farbpruefung ob gueltiger Wert
function ColorChk(colnam)
{
// Farbumwandlung Hex->RGB mit Korrekturberechnung
function ColorConv(colhex, lum, hlt)
{
if (colhex.match(/#[0-9A-Fa-f]/))
{
var c = new Array(3);
lum = (lum) ? 1 : .66;
hlt = (hlt == 1) ? 192 : ((hlt == 2) ? 128 : 0);
for (var i = 0; i < 3; i++)
{
c[i] = colhex.substr((i * 2 + 1), 2);
c[i] = (c[i]) ? c[i] : 0;
c[i] = parseInt(c[i], 16) + hlt;
c[i] = parseInt(((parseInt(c[i] / 255)) ? 255 : c[i]) * lum);
}
colhex = 'rgb(' + c[0] + ', ' + c[1] + ', ' + c[2] + ')';
}
else
{
colhex = 0;
}
return colhex;
}
if (!(ColorConv(colnam)))
{
var colids = new Array ('aqua', 'black', 'blue', 'fuchsia', 'gray', 'green', 'lime', 'maroon', 'navy', 'olive', 'purple', 'red', 'silver', 'teal', 'white', 'yellow', 'orange', 'midnightblue', 'indigo', 'crimson', 'deepskyblue');
var colval = new Array ('00FFFF', '000000', '0000FF', 'FF00FF', '808080', '008000', '00FF00', '800000', '000080', '808000', '800080', 'FF0000', 'C0C0C0', '008080', 'FFFFFF', 'FFFF00', 'FFA500', '191970', '4B0082' ,'DC143C' ,'00BFFF');
var colchk = '';
for (var i = 0; i < colids.length; i++)
{
colchk += (colnam.toLowerCase() == colids[i]) ? colval[i] : '';
}
colnam = (colchk.length) ? '#' + colchk : '#7F7F7F';
}
return colnam.substr(0, 7).toUpperCase();
}
// Dropdownmenue fuer Farbwahl in Einstellungen
function AddColorSel(colnam, transparent)
{
var colids = new Array ('aqua', 'black', 'blue', 'fuchsia', 'gray', 'green', 'lime', 'maroon', 'navy', 'olive', 'purple', 'red', 'silver', 'teal', 'white', 'yellow', 'orange', 'midnightblue', 'indigo', 'crimson', 'deepskyblue');
var defcol = settingsdef[colnam];
var curcol = ogs.load(colnam);
var colchk = '(z.b. red, white, #FFCC00, ...)<br /><select style="color:' + ((curcol != 'transparent') ? curcol : '#3F3F3F') + ';" id="' + colnam + 'col" ';
colchk += 'onchange="javascript: document.getElementById(\'' + colnam + '\').value = document.getElementById(\'' + colnam + 'col\').value; document.getElementById(\'' + colnam + 'col\').style.color = (document.getElementById(\'' + colnam + 'col\').value != \'transparent\') ? document.getElementById(\'' + colnam + 'col\').value : \'#3F3F3F\';">';
colchk += '<option style="color:' + ((curcol != 'transparent') ? curcol : '#3F3F3F') + ';" value="' + curcol + '">Farbe</option>';
for (var i = 0; i < colids.length; i++)
{
colchk += '<option style="color:' + colids[i] + '; background-color:#3F3F3F;" value ="' + colids[i] + '">' + colids[i] + '</option>';
}
if (transparent)
{
colchk += '<option style="color:#3F3F3F; background-color:#7F7F7F;" value ="transparent">transparent</option>';
}
colchk += '<option style="color:' + defcol + ';" value ="' + defcol + '">Default</option>';
return colchk + '</select>';
}
function createOption(id, header, content, list, selectedindex, dontsaveme)
{
//zum speichern eintragen
if (dontsaveme != true)
ogs_setup_save_option.push(id);
coder += '<tr id="'+id+'1"';
if (hidestring.indexOf(id)+1)
coder += ' style="display: none;"';
coder += '><th style="color: '+ogs.load('skriptcolor')+'">' + txt('sn_'+id,header)+'</th><th>' + txt('si_'+id,content) + '</th><th>';
coder += '<select id="'+id+'">';
for (var i = 0; i < list.length; i += 2)
{
coder += '<option value="' + list[i] + '"';
if (i / 2 == parseInt(selectedindex, 10))
{
coder += ' selected';
}
coder += '>';
coder += list[i+1] + '</option>';
}
coder += '</select></th></tr>';
}
function createHeader(id,header, body)
{
HID++;
var code = '';
codel += '<tr><th><center><a href="#" onclick="ogs.reiter(' + HID + ')">' + txt('sh_'+id,header) + '</a></center></th></tr>';
coder += '<tbody id="r' + HID + '" style="display: none;">';
coder += '<tr><th colspan="3"><b><u>' + txt('sh_'+id,header) + '</u></b><br /><br />' + txt('sp_'+id,body) + '</th></tr>';
}
function createHeaderCloser()
{
coder += '</tbody>';
}
function createList(id, bindit, liste, listheader, functionname, nodel)
{
var retstr = ''
if (bindit == false)
{
retstr = '<tr id="'+id+'1"';
if (hidestring.indexOf(id)+1)
retstr += ' style="display: none;"';
retstr += '>';
//zum speichern eintragen
ogs_setup_save_listen.push(functionname);
}
retstr += '<th colspan="3"><center><table><tr>';
for (var i = 0; i < listheader.length; i++)
{
retstr += '<th align="center" style="color: '+ogs.load('skriptcolor')+';">'+listheader[i]+'</th>';
}
if (nodel != true)
retstr += '<th align="center" style="color: '+ogs.load('skriptcolor')+';">'+txt('sl_del_t','Löschen')+'</th>';
retstr += '</tr>';
for (var i = 0; i < liste.length; i++)
{
retstr += '<tr>';
var ueberschrift = false;
for (var j = 0; j < liste[i].length; j++)
{
if (liste[i].length < listheader.length)
{
if (nodel != true)
{
retstr += '<th colspan="' + (listheader.length + 1) + '"><font style="font-size: larger;">' + eval(functionname+'('+ j + ',' + i + ',6);') + '</font></th>';
}
else
{
retstr += '<th align="left" colspan="' + (listheader.length) + '"><font style="font-size: larger;">' + eval(functionname+'('+ j + ',' + i + ',6);') + '</font></th>';
}
ueberschrift = true;
break; // aus schleife raus
}
else
{
retstr += '<th align="center" onclick="' + functionname + '(' + j + ',' + i + ',1);"><a href="javascript: return true;">' + eval(functionname+'('+ j + ',' + i + ',0);') + '</a></th>';
}
}
if (nodel != true && ueberschrift == false)
retstr += '<th align="center" onclick="' + functionname + '(' + j + ',' + i + ',4);"><a href="#">'+txt('sl_del','<Entf>')+'</a></th>';
retstr += '</tr>';
}
if (nodel != true)
{
retstr += '<tr><th colspan="' + listheader.length + '" /><th align="center">';
retstr += '<a href="#" onclick="' + functionname + '(0,0,3)">'+txt('sl_new','<Neu>')+'</a></th></tr>';
}
retstr += '</table></center></th>';
if (bindit == false)
{
retstr += '</tr>';
coder += retstr;
}
else
{
//IETODO
document.getElementById(id+'1').innerHTML = retstr;
}
}
function ogs_menu_link_liste(id,val,mode)
{
/* mode:
0 = anzeigen
1 = editieren
2 = wert zuweisen
3 = neu
4 = löschen
5 = speichern
6 = kopfzeile
*/
var text;
if (mode == 0) //anzeigefunktionen
{
return ogs_menulinkliste[val][id];
}
if (mode == 1) //edit funktionen
{
text = txt('sld_m',new Array('Wert eingeben:'));
var w1 = prompt(text[0], ogs_menulinkliste[val][id]);
w1 = w1.replace(/&/g,'%26');
w1 = w1.replace(/|/g,'');
if (w1 != null)
ogs_menulinkliste[val][id] = w1;
createList('menu_link_liste',true, ogs_menulinkliste, txt('sli_m',new Array('Name','URL')),'ogs.menu_link_liste');
return;
}
if (mode == 2) return;
if (mode == 3) //neues element
{
text = txt('sln_m', new Array('Ogame','http://www.ogame.de/'));
var w1 = text[0];
var w2 = text[1];
ogs_menulinkliste.push(new Array(w1,w2));
createList('menu_link_liste',true, ogs_menulinkliste, txt('sli_m',new Array('Name','URL')),'ogs.menu_link_liste');
return;
}
if (mode == 4) //löschen
{
ogs_menulinkliste.splice(val,1);
createList('menu_link_liste',true, ogs_menulinkliste, txt('sli_m',new Array('Name','URL')),'ogs.menu_link_liste');
return;
}
if (mode == 5) //speicherfunktion
{
window.setTimeout(function(){ogs.save('menu_link_liste',ogs.array.join(ogs_menulinkliste,'|','&'))},0);
return;
}
if (mode == 6) return ''; //kopfzeile
}
function ogs_ally_farblist(id,val,mode,wert)
{
/* mode:
0 = anzeigen
1 = editieren
2 = wert zuweisen
3 = neu
4 = löschen
5 = speichern
6 = kopfzeile
*/
var text;
if (mode == 0) // anzeigen
{
if(id == 0) return ogs_allyfarbliste[val][id].replace(/,/g,'<br />');
if(id == 1)
{
text = txt('sld_ac_1',new Array('Spieler','Allianz'));
if (ogs_allyfarbliste[val][id] == 1) return text[1];
return text[0];
}
return '<font color="'+ogs_allyfarbliste[val][id]+'">'+ogs_allyfarbliste[val][id]+'</font>'+ creatFarbSelecterOverLibCreator('ogs.ally_farblist',val,id);
}
if (mode == 1) // editieren
{
if (id == 0)
{
text = txt('sld_ac_0',new Array('Wert eingeben:\nz.B. "Spieler1,Spieler2,Spieler3"'));
var w1 = prompt(text[0], ogs_allyfarbliste[val][id]);
w1 = w1.replace(/&/g,'');
w1 = w1.replace(/\|/g,'');
if (w1 != null) ogs_allyfarbliste[val][id] = w1;
}
else if (id == 1)
{
if (ogs_allyfarbliste[val][1] == 1)
ogs_allyfarbliste[val][1] = 0;
else
ogs_allyfarbliste[val][1] = 1;
}
else if (id == 2)
{
text = txt('sld_ac_2',new Array('Farbwert eingeben:\nz.B. "#ff0000" oder "red"'));
var w1 = prompt(text[0], ogs_allyfarbliste[val][id]);
w1 = w1.replace(/&/g,'');
w1 = w1.replace(/\|/g,'');
if (w1 != null) ogs_allyfarbliste[val][id] = w1;
}
createList('gala_ally_spieler_farben',true, ogs_allyfarbliste, txt('sli_ac',new Array('Name','Ally/Spieler','Farbe')),'ogs.ally_farblist');
return;
}
if (mode == 2) // wert zuweisen
{
ogs_allyfarbliste[val][id] = wert;
createList('gala_ally_spieler_farben',true, ogs_allyfarbliste, txt('sli_ac',new Array('Name','Ally/Spieler','Farbe')),'ogs.ally_farblist');
return;
}
if (mode == 3) // neu
{
text = txt('sln_ac', new Array('Neu'));
var w1 = text[0];
var w2 = 1;
var w3 = '#ff0000';
ogs_allyfarbliste.push(new Array(w1,w2,w3));
createList('gala_ally_spieler_farben',true, ogs_allyfarbliste, txt('sli_ac',new Array('Name','Ally/Spieler','Farbe')),'ogs.ally_farblist');
return;
}
if (mode == 4) //löschen
{
ogs_allyfarbliste.splice(val,1);
createList('gala_ally_spieler_farben',true, ogs_allyfarbliste, txt('sli_ac',new Array('Name','Ally/Spieler','Farbe')),'ogs.ally_farblist');
return;
}
if (mode == 5) //speichernfunktion
{
window.setTimeout(function(){ogs.save('gala_ally_spieler_farben',ogs.array.join(ogs_allyfarbliste,'|','&'))},0);
return;
}
if (mode == 6) return ''; //kopfzeile
}
function ogs_flottenfarbenfunc(id,val,mode,wert)
{
/* mode:
0 = anzeigen
1 = editieren
2 = wert zuweisen
3 = neu
4 = löschen
5 = speichern
6 = kopfzeile
*/
var text;
if (mode == 0) // anzeigen
{
if(id == 0)
{
text = txt('sld_fc_0',new Array('Eigen','Fremd'));
if (ogs_flottenfarben[val][id].indexOf('own') == 0) return text[0];
return text[1];
}
if(id == 1)
{
text = txt('sld_fc_1',new Array('Hin','Rück','Halt'));
if (ogs_flottenfarben[val][id] == 0) return text[0];
if (ogs_flottenfarben[val][id] == 1) return text[1];
return text[2];
}
if(id == 2 || id == 7)
return '<font color="'+ogs_flottenfarben[val][id]+'">'+ogs_flottenfarben[val][id]+'</font>'+ creatFarbSelecterOverLibCreator('ogs.flottenfarbenfunc',val,id);
if (id == 3)
{
text = txt('sld_fc_3',new Array('normal','italic'));
if (ogs_flottenfarben[val][3] == 0) return '<font style="font-style: normal;">'+text[0]+'</font>';
return '<font style="font-style: italic;">'+text[1]+'</font>';
}
if (id == 4)
{
text = txt('sld_fc_4',new Array('normal','groß','klein'));
if (ogs_flottenfarben[val][4] == 0) return '<font style="text-transform: none;">'+text[0]+'</font>';
if (ogs_flottenfarben[val][4] == 1) return '<font style="text-transform: uppercase;">'+text[1]+'</font>';
return '<font style="text-transform: lowercase;">'+text[2]+'</font>';
}
if (id == 5)
{
text = txt('sld_fc_5',new Array('normal','unter','über','durch','blinken'));
if (ogs_flottenfarben[val][5] == 0) return '<font style="text-decoration: none;">'+text[0]+'</font>';
if (ogs_flottenfarben[val][5] == 1) return '<font style="text-decoration: underline;">'+text[1]+'</font>';
if (ogs_flottenfarben[val][5] == 2) return '<font style="text-decoration: overline;">'+text[2]+'</font>';
if (ogs_flottenfarben[val][5] == 3) return '<font style="text-decoration: line-through;">'+text[3]+'</font>';
return '<font style="text-decoration: blink;">'+text[4]+'</font>';
}
if (id == 6)
{
text = txt('sld_fc_6',new Array('0','+','-'));
if (ogs_flottenfarben[val][6] == 0)
return text[0];
if (ogs_flottenfarben[val][6] == 1)
return text[1];
return text[2];
}
}
if (mode == 1) // editieren
{
if (id == 0 || id == 1)
{
//nix
}
else if (id == 2 || id == 7)
{
text = txt('sld_fc_2',new Array('Wert eingeben:'));
var w1 = prompt(text[0], ogs_flottenfarben[val][id]);
if (w1 == null) return;
w1 = w1.replace(/&/g,'');
w1 = w1.replace(/\|/g,'');
ogs_flottenfarben[val][id] = w1;
}
else if (id == 3)
{
ogs_flottenfarben[val][3]++;
if (ogs_flottenfarben[val][3] > 1) ogs_flottenfarben[val][3] = 0;
}
else if (id == 4)
{
ogs_flottenfarben[val][4]++;
if (ogs_flottenfarben[val][4] > 2) ogs_flottenfarben[val][4] = 0;
}
else if (id == 5)
{
ogs_flottenfarben[val][5]++;
if (ogs_flottenfarben[val][5] > 4) ogs_flottenfarben[val][5] = 0;
}
else if (id == 6)
{
ogs_flottenfarben[val][6]++;
if (ogs_flottenfarben[val][6] > 2) ogs_flottenfarben[val][6] = 0;
}
var te = document.getElementById('test_flotten_farben1').getElementsByTagName('table');
te = te[0].getElementsByTagName('tr');
te[val+1].getElementsByTagName('th')[id].innerHTML = '<a href="javascript: return true;">' + ogs.flottenfarbenfunc(id,val,0) + '</a>';
return;
}
if (mode == 2) // wert zuweisen
{
ogs_flottenfarben[val][id] = wert;
var te = document.getElementById('test_flotten_farben1').getElementsByTagName('table');
te = te[0].getElementsByTagName('tr');
te[val+1].getElementsByTagName('th')[id].innerHTML = '<a href="javascript: return true;">' + ogs.flottenfarbenfunc(id,val,0) + '</a>';
return;
}
if (mode == 3) return; //neu
if (mode == 4) return; //löschen
if (mode == 5) //speichernfunktion
{
window.setTimeout(function(){ogs.save('uebersicht_flotten_farben',ogs.array.join(ogs_flottenfarben,'|','&'))},0);
return;
}
if (mode == 6) //kopfzeile
{
return txt('slh_fc',new Array('Spionage','Transport + Expeditionen','Tf Abbau','Stationieren','Halten','Angriff','Verbandsangriff','Mondzerst\u00F6ren','IP Raketen','Kolonisieren','Phalanx'))[ogs_flottenfarben[val][id]];
}
}
ogs.bind('menu_link_liste',ogs_menu_link_liste);
ogs.bind('ally_farblist',ogs_ally_farblist);
ogs.bind('flottenfarbenfunc',ogs_flottenfarbenfunc);
ogs.bind('creatFarbSelecterOverLib',creatFarbSelecterOverLib);
function creatFarbSelecterOverLibCreator(func, val, id)
{
var ret = '<a href="#" onmouseout="return nd();"';
ret += ' onmouseover="eval("overlib( eval(\\\'ogs.creatFarbSelecterOverLib(\\"' + func + '\\",' + val + ',' + id + ')\\\') , STICKY, MOUSEOFF, DELAY, 500, CENTER, OFFSETY, -40)")">*</a>';
return ret;
}
function creatFarbSelecterOverLib(func, val, id)
{
var ret = '<center><table><colgroup>';
for (var i = 0; i < 8; i++)
ret += '<col width=\'20\'>';
ret += '</colgroup>';
var tfarb = Array('00','55','aa','ff');
for (var i1 = 0; i1 < 4; i1++)
{
for (var i2 = 0; i2 < 4; i2++)
{
if (i2 == 0 || i2 == 2)
ret += '<tr>';
for (var i3 = 0; i3 < 4; i3++)
{
ret += '<td onclick=\'' + func + '(' + id + ',' + val + ',2,' + '"#'+ tfarb[i1] + tfarb[i2] + tfarb[i3] +'"); nd();\' style=\'background-color: #' + tfarb[i1] + tfarb[i2] + tfarb[i3] + '; background-image: none;\'> </td>';
}
if (i2 == 1 || i2 == 3)
ret += '</tr>';
}
}
ret += '</table></center>';
return ret;
}
function ogs_updatesuche()
{
function versiontext(nr)
{
return (Math.floor(nr / 10000)) + '.' + (Math.floor(nr / 100) % 100) + ' - Rev #' + (nr % 100);
}
function getversioninfo(v, nv, tlang, dtext)
{
if (v >= nv)
return txt(tlang,dtext,'<span style="color: green;">'+txt('setup_update_5','Kein Update vorhanden')+'</span>') + '<br />';
else
return txt(tlang,dtext,'<a href="' + ogs.getLink(ogs.homepage) + '" target="_blank" style="text-decoration: blink; color: red;">'+txt('setup_update_6','Update: #*1*#',versiontext(nv)) + '</a>') + '<br />';
}
var version = ogs.load('version');
GM_xmlhttpRequest({
method: 'GET',
url: 'http://www.ogame-skript.com/data/update.php?version=' + version + '&lang=' + ogs.ogame.serversprache,
onload: function(responseDetails)
{
var code = '<br />'+txt('setup_update_1','Die Updatesuche ergab:')+'<br /><br />';
if (responseDetails.status == 200)
{
var version_gm = responseDetails.responseText.match(/\<div id=\"version_gm\"\>(\d*)\<\/div\>/)[1];
var version_xp = responseDetails.responseText.match(/\<div id=\"version_xp\"\>(\d*)\<\/div\>/)[1];
var version_ie = responseDetails.responseText.match(/\<div id=\"version_ie\"\>(\d*)\<\/div\>/)[1];
code += getversioninfo(version,version_gm,'setup_update_2','GM Version: #*1*#');
code += getversioninfo(version,version_xp,'setup_update_3','XPI Version: #*1*#');
code += getversioninfo(version,version_ie,'setup_update_4','IE Version: #*1*#');
}
else
{
code += '<span style="color: red;">'+txt('setup_update_7','Es konnten keine Versionsinfos abgerufen werden.')+'</span>';
}
document.getElementById('ogs_update_result').innerHTML = code;
}
});
}
ogs.bound.updatesuche = function()
{
window.setTimeout(ogs_updatesuche, 0);
};
var HID = 0;
var code = '';
var codel = '';
var coder = '';
// Loginscreen
coder += '<tbody id="r0" style="display: none;">';
coder += '<tr><th colspan="3"><b><u>'+txt('setup_wellcome_1','Willkommen im OGS Setup')+'</u></b>';
coder += '<br /><br />'+txt('setup_wellcome_2','Hier hast du die Möglichkeit alle Einstellungen am OGS vorzunehmen. Wähle dazu einfach einen der Menüpunkte aus und passe dann das OGS deinen Wünschen an. Um diese Änderungen dauerhaft zu speichern kann es mit unter vonnöten sein (nach dem Betätigen der "Speichern"-Schaltfläche) den Webbrowser neuzustarten.');
coder += '<br /><br />'+txt('setup_wellcome_3','Zurzeit ist Version: "#*1*#" installiert.',ogs.version());
coder += '<br /><br /></tr><tr><th colspan="3"><br /><a href="javascript:ogs.updatesuche();">'+txt('setup_wellcome_4','Update suchen')+'</a><br /><div id="ogs_update_result"></div><br />';
coder += '</th></tr>';
createHeaderCloser();
// Allgemein Config
createHeader('all','Allgemein', 'Auf dieser Seite kannst du allgemeine Einstellungen für das OGS vornehmen.');
var list = new Array;
var selected = 0;
list.push('de'); list.push('Deutsch');
for(lng in ogs.lang.data)
{
list.push(ogs.lang.data[lng]['id']);
list.push(ogs.lang.data[lng]['name']);
if (ogs.lang.cur == ogs.lang.data[lng]['id'])
{
selected = 1+parseInt(lng,10);
}
}
createOption('ogs_language','Sprache','',list,selected,true);
createEdit('uni_speed','Speed','Geschwindigkeit des Universums',3,3,1,5);
createColTxt('skriptcolor','Skriptfarbe','Textfarbe für die eingefügten Skripterweiterungen');
createEdit('max_tab_breite','Tabellenbreite','Maximale Breite der Tabellen in Pixeln (zwischen 520 und 2.000)',5,4,520,2000);
createCheck('head_fix','Kopfzeile-Fix','Fixiert die Kopfzeile so das sie immer Sichtbar bleibt');
createCheck('res_timer','Res Timer','Zeigt die Res in der Kopfzeile in Echtzeit an');
createCheck('endzeiten','Endzeiten','Endzeiten anzeigen (Bauende, Flottenankunft, etc.)');
createColTxt('color_met','Metall','Textfarbe für Metall');
createColTxt('color_kris','Kristall','Textfarbe für Kristall');
createColTxt('color_deut','Deuterium','Textfarbe für Deuterium');
createColTxt('color_eng','Energie','Textfarbe für Energie');
createEdit('zeitverschiebung','Zeitverschiebung','Zeitverschiebung in Minuten die durch z.B. andere Zeitzonen nötig wird.',5,5);
createCheck('zeitverschiebung_auto','Auto Zeitverschiebung','Automatisch erkennen wenn die Zeitverschiebung nicht richtig eingestellt ist.');
createCheck('galaxietool','Galaxietool<br />Support','Diese Option erstellt ein unsichtbares Duplikat der Statistik und Galaxieansicht für das Galaxietool (aktiviert diese Option nur wenn ihr Probleme mit dem Galaxietool habt, andere Skripte ausser dem OGS werden dann mit unter aber nichtmehr angezeigt, da sie nur auf die unsichtbaren Tabellen wirken und damit ebenfalls zu Problemen mit dem Galaxietool füren können).');
createCheck('hintergrundbild_use', 'Hintergrundbild ändern?','<u>Achtung:</u> Die Webseite von der ihr das Hintergrundbild benutzt kann eure Session ID auslesen.','hintergrundbild_url1');
createEdit('hintergrundbild_url','URL','"none" oder die Zeile leer lassen löscht das aktuelle Hintergrundbild, alle anderen Angaben werden als URL zu einen Bild interpretiert.',15);
createHeaderCloser();
// übersicht Config
createHeader('over','Übersicht', 'Mit diesen Optionen kannst du das Aussehen der Übersichsseite bearbeiten.');
createCheck('zeit_links','Zeit links','Angenommene Serverzeit über dem linken Menü anzeigen');
createCheck('ang_zeit','RT Uhr','Angenommene Serverzeit in der Übersicht anzeigen (automatisch unterdrückt, wenn Serverzeit über dem linken Menü angezeigt wird)');
createCheck('bewegteress','bewegte Ressourcen','Übersicht der bewegten Ressourcen anzeigen');
createCheck('handelsrechner','Handelsrechner','Handelsrechner anzeigen','kursmet1 kurskris1 kursdeut1');
createEdit('kursmet','','Metall',3,3);
createEdit('kurskris','','Kristall',3,3);
createEdit('kursdeut','','Deuterium',3,3);
var list = new Array;
list.push('0'); list.push('Ogame Standard');
list.push('1'); list.push('Liste + Bild');
list.push('2'); list.push('Nur Liste');
createOption('overview_planetenliste','Planetenliste','Verändert die Liste mit den Planetenbilder.',list,ogs.load('overview_planetenliste'));
createHeaderCloser();
// Imperiumseite Config
createHeader('imp','Imperium', 'Mit diesen Optionen kannst du das Aussehen der Imperiumsseite bearbeiten.');
createCheck('imperium_calc_resis','Imperiumsinfo','Zusatztexte und Informationen in der Imperiumsübersicht anzeigen','imperium_kosten1');
createCheck('imperium_kosten','Kosten Anzeigen','Zeigt die Kosten für die nächste Gebäudestufe an.');
createCheck('imperium_pic_change','Bilder bearbeiten','Ändert die Größe der Bilder.','imperium_pic_abstand1 imperium_pic_x1 imperium_pic_y1');
createEdit('imperium_pic_abstand','Abstand','Abstand zum Zellenrand (20 = Grundeinstellung)',3,3,0,30);
createEdit('imperium_pic_x','Bildbreite','(75 = Grundeinstellung)',3,3,0,200);
createEdit('imperium_pic_y','Bildhöhe','(71 = Grundeinstellung)',3,3,0,200);
createHeaderCloser();
// Bauseiten Config
createHeader('build','Bauseiten', 'Mit diesen Optionen kannst du das Aussehen der Bauseiten (Gebäude, Schiffswerft, Forschung und Verteidigung) bearbeiten.');
createCheck('building_info','Infos','Zusätzliche Informationen per Tooltip auf den Bauseiten.');
createCheck('transbuild','Benötigte Transporter','Minimalanzahl an Transportern für die zum Bau benötigten Ressourcen anzeigen');
createCheck('building_energie','Energieverbrauch','Zusätzlicher Energieverbrauch bei Minen und die zusätzliche Produktion bei Kraftwerken anzeigen.');
createCheck('colored_ress','eingefärbte Ressourcen','Die benötigten Ressourcen für die Konstruktionen werden eingefärbt');
createCheck('building_klein','kleine Bauseiten','Bauseiten verkleinern','building_klein_pics_size1');
createEdit('building_klein_pics_size','Bildergröße','Größe der verkleinerten Bilder auf den Bauseiten in Pixel (z.b. 60, 120, ...)',4,3);
createCheck('building_bg','gefärbte Bauseiten','Bauseiten umfärben','building_bg_col11 building_bg_col21');
createColTxt('building_bg_col1','Zellenfarbe','Hintergrundfarbe für die Tabellen',true);
createColTxt('building_bg_col2','Rahmenfarbe','Rahmenfarbe für die Tabellen',true);
createCheck('building_nopics','Bilder löschen','Löscht die Bilder.');
createCheck('building_doppelzeilen','Doppelzeile','Zeigt in jeder Zeile nicht nur Element an sondern zwei (z.B. Metall- und Kristallmine in einer Zeile)');
createCheck('building_reichweite','Reichweite','Zeigt die Reichweite von der Sensorphalanx und den Interplanetarraketen auf den Gebäudeseiten an.');
createHeaderCloser();
// Flottenseite Config
createHeader('fleet','Flotte', 'Mit diesen Optionen kannst du das Aussehen der Flottenseiten bearbeiten.');
createCheck('fltmenu_buttons','Flottenbuttons','Weitere Schaltflächen (zum Default Planeten / Partner und Optionen beim Ressourcen einladen) im Flottenmenü anzeigen', 'warnung1');
createCheck('warnung','Warnungen','Warnungen ausschalten');
createCheck('ankft_zeit','Ankunftszeit','Weitere Zeitinformationen (Rückkehrzeit bei Abbruch, Ankunftszeit der Flotte in der Zielauswahl) anzeigen');
createCheck('auto_auftrag','Auto-Auftrag','Automatisch einen sinnvollen Auftrag beim Flottenverschicken auswählen','stationieren_vorz1');
createCheck('stationieren_vorz','Station vorziehen','Bei der Auftragsauswahl im Flottenmenü den Auftrag Stationieren dem Transportieren vorziehen');
ogs.load('def_plani');
var list = new Array;
var selected = 0;
for (var i = 1; i < ogs.planetliste.length; i++) // Ueber alle Planeten
{
list.push(ogs.planetliste[i]['ID']);
if (ogs.planetliste[i]['ID'] == ((settingscur['def_plani'] > 0) ? settingscur['def_plani'] : ogs.ogame.hpid))
{
selected = i-1;
}
if (ogs.planetliste[i]['Typ'] == ogs.planettype.mond)
list.push(' - ' + ogs.planetliste[i]['Name']);
else
list.push(ogs.planetliste[i]['Name']);
}
//nur anzeigen wenn planiliste existiert (also in gala ansicht nicht anzeigen)
if (ogs.planetliste != 0) createOption('def_plani','Default-Planet','Default-Plani (für den Button im Flottenmenü und die Übersicht)',list,selected);
createCheck('kein_deut','Kein Deut','Bei Buttons im Flottenmenü Deuterium <i>nicht</i> beachten');
createCheck('flotte_seite2_combobox','Comboboxen','Tauscht die Comboboxen zur Auswahl der Geschwindigtkeit und Planet / Mond / TF gegen Buttons aus');
createCheck('flotte_seite1_upsidedown','Upside Down','Die verschickbare Flotte erscheint oben');
createCheck('flotte_seite2_tfwahl','Rec => TF','Wenn Recycler in Flotte verhanden, TF als Ziel vorauswählen.');
createCheck('flotte_schiffauswahl','Schiffauswahl','Zeigt die ausgewählten Schiffe auf der zweiten und dritten Flottenseite an.');
createCheck('flotte_seite3_zeiten','Zeiten','Zeigt Flugdauer, Ankunft am Ziel / Ursprung auf der 3 Flottenseite an.');
createCheck('flotte_seite2_shortlinks','Shortlinks','Shortlinks der zweiten Flottenseite überarbeiten und sortieren.','flotte_seite2_shortlinks_a1 flotte_seite2_shortlinks_p1');
createColTxt('flotte_seite2_shortlinks_a','Aktive Farbe','Farbe für den aktiven Planten / Mond');
createColTxt('flotte_seite2_shortlinks_p','Passive Farbe','Farbe für die Zeile des aktiven Planten / Mond');
createCheck('flotte_flugpos_enable','Flugpos','Ermittelt die letzte angeflogene Position und bietet sie auf Flottenseite 2 als Auswahl an.');
createHeaderCloser();
// Techseite Config
createHeader('tech','Technik', 'Mit diesen Optionen kannst du das Aussehen der Technikseite bearbeiten.');
createCheck('tech_info','Infos','Zusätzliche Informationen per Tooltip was die jeweilige Forschungsstufe ermöglicht zu bauen.');
createCheck('techtree_pics','Bilder hinzufügen','Bilder hinzufügen','techtree_pics_size1');
createEdit('techtree_pics_size','Bildergröße','Größe der Bilder auf den Technikseite in Pixel (z.b. 60, 120, ...)',4,3);
createCheck('techtree_bg','gefärbte Technikseite','Technikseite umfärben','techtree_bg_col11 techtree_bg_col21');
createColTxt('techtree_bg_col1','Zellenfarbe','Hintergrundfarbe für die Technikseitentabelle',true);
createColTxt('techtree_bg_col2','Rahmenfarbe','Rahmenfarbe für die Technikseitentabelle',true);
createCheck('techtree_doppelzeilen','Doppelzeile','Zeigt in jeder Zeile nicht nur Element an sondern zwei (z.B. Metall- und Kristallmine in einer Zeile)');
createHeaderCloser();
// Galaxie Config
createHeader('gala','Galaxie', 'Mit diesen Optionen kannst du das Aussehen der Galaxieansicht bearbeiten.');
createEdit('tf_limit','TF-Limit','TF-Limit (Diese Größe muss ein TF mindestens haben damit es als Text angezeigt wird. -1 deaktiviert die Ausgabe als Text vollständig)');
createColTxt('tf_color','TF-Farbe','Farbe für den Rahmen um die TFs',true);
createCheck('platz_anzeige','Spielerplatzierungen','Platzierung der Spieler direkt in der Galaxie-Ansicht anzeigen');
createCheck('allyplatz_anzeige','Allyplatzierungen','Platzierung der Ally direkt in der Galaxie-Ansicht anzeigen');
createCheck('gala_iprak_aktiv','IPR Auswahl','Automatische Auswahl für Interplanetarraketen','gala_iprak_wert1 gala_iprak_max1');
var list = new Array;
var listtext = txt('sx_ip_target',new Array('Alle','Raketenwerfer', 'Leichtes Lasergesch' + ue + 'tz', 'Schweres Lasergesch' + ue + 'tz', 'Gau' + sz + 'kanone', 'Ionengesch' + ue + 'tz', 'Plasmawerfer', 'Kleine Schildkuppel', 'Gro' + sz + 'e Schildkuppel'));
for (var i = 0; i < 9; i++)
{
list.push(i.toString()); list.push(listtext[i]);
}
createOption('gala_iprak_wert','','Raketenziel',list,ogs.load('gala_iprak_wert'));
createCheck('gala_iprak_max','','Raketenanzahl auf Maximalwert einstellen.');
createHeaderCloser();
// Nachrichten Config
createHeader('news','Nachrichten', 'Mit diesen Optionen kannst du das Aussehen der Nachrichtenseite bearbeiten.');
createCheck('spio','Spioberichte erweitern','Spionageberichte mit Infotext und Link zu Kampfsims erweitern');
createCheck('news_expo_aktiv','Expo','Farblich umranden','news_expo_farbe1');
createColTxt('news_expo_farbe','Farbe','',true);
createCheck('news_pm_aktiv','Nachrichten','Farblich umranden','news_pm_farbe1');
createColTxt('news_pm_farbe','Farbe','',true);
createCheck('news_am_aktiv','Allynachrichten','Farblich umranden','news_am_farbe1');
createColTxt('news_am_farbe','Farbe','',true);
createCheck('news_color_res','Resourcenfärben','Färbt die Resourcen ein');
createCheck('news_deletemessages','Löschfunktion','Fügt eine weitere Löschfunktion für Nachrichten am Anfang der Liste hinzu.');
createCheck('igm_signatur_bool','Signatur','In eigenen Nachrichten eine Signatur anhängen','igm_signatur1');
createTextArea('igm_signatur','','Signatur',30,5);
createHeaderCloser();
// Statistik Config
createHeader('stats','Statistik & Allianz', 'Mit diesen Optionen kannst du das Aussehen der Statistik- und Allianzseite bearbeiten.');
createCheck('show_punkte_diff','Punktedifferenz','Differenz immer zum eigenen Punktestand (Punktedifferenz wird nur auf den Statistikseiten angezeigt auf den man selbst vertreten ist.)');
createCheck('show_punkte_diff_top','Punktedifferenz','Differenz immer zum vorhergehenden Platz.');
createEdit('punkte_diff_fontsize','Schriftgröße','Schriftgröße für die Punktedifferenz');
createCheck('stats_plusminusbuttons','Navibuttons','Fügt ein vor und zurück Button in die Statistikseite ein.');
createHeaderCloser();
//allyseinfärben
createHeader('acolor','Allianz & Spielerfarben', 'Mit diesen Optionen kannst du bestimmen ob und in welchen Farben Allianzen und Spieler in der Galaxieansicht und in den Statistiken gefärbt werden sollen.');
createCheck ('gala_ally_faerben','Aktivieren','Färbt Spieler und oder Allianzen in der Galaxie-Ansicht und den Statistiken.','gala_ally_spieler_farben1 gala_ally_sn_in_af1');
createCheck ('gala_ally_sn_in_af','Spielerfarbe','Färbt den Spielernamen in der Farbe der Allianz');
var ogs_allyfarbliste = ogs.array.split(ogs.load('gala_ally_spieler_farben'),'|','&');
createList('gala_ally_spieler_farben',false, ogs_allyfarbliste, txt('sli_ac',new Array('Name','Ally/Spieler','Farbe')),'ogs.ally_farblist');
createHeaderCloser();
// Skinerweiterung
createHeader('skin','Skin Erweiterung', 'Mit diesen Optionen kannst du Skin Erweiterung ein und ausschalten.');
createCheck('skin_advance', 'Skin-Erweiterung', 'Es werden zusätzliche CSS-Funktionen dem Skin hinzugefügt','flotten_zusatz1 fehlress_als_text1 schiffs_geschw1');
createCheck('flotten_zusatz','Flotteninhalte','Flotten in der Übersicht mit Ladung/Zusammensetzung anzeigen');
createCheck('fehlress_als_text','Fehlende Ressourcen','Fehlende Ressourcen (bei Gebäuden usw.) als Text anzeigen (nur bei Commander möglich)');
createCheck('schiffs_geschw','Schiffsinfos','Zusatzinformationen (Schiffsgeschwindigkeiten, etc.) im Flottenmenü anzeigen bzw. umfärben');
createHeaderCloser();
// Farmliste
createHeader('farm','Farmliste', 'Mit diesen Optionen kannst du die Farmliste bearbeiten.');
createCheck('farmliste_aktiv','Farmliste','Farmliste aktivieren');
createHeaderCloser();
// Planetenliste einstellen
createHeader('plani','Planetenliste', 'Mit diesen Optionen kannst du die Planetenliste bearbeiten und festlegen wie diese aussehen soll.');
createCheck('plani_verbessern','Planetenliste Verbessern','Die Planetenliste verbessern (Diese Option wird deaktiviert wenn "Combobox" aktiviert ist)','plani_shortname1 plani_mondklammern1 plani_linkplanetmond1 plani_mondextra1 plani_hpmarker1 plani_pnm1');
createCheck('plani_shortname','Kurze Planetennamen','Die Planeten- und Mondnamen nicht in der Planetenliste anzeigen (nur die Koords und <i>(M)</i> für Monde)');
createCheck('plani_pnm','Mond zu Planet','Hängt den Mond hinter den dazugehörigen Planeten.');
createCheck('plani_mondextra','Monde seperat','Monde in der Planetenauswahl getrennt von den Planeten darunter anzeigen');
createCheck('plani_mondklammern','Mondklammern','Entfernt das "(Mond)" beim Mondnamen in der Planetenliste');
createCheck('plani_linkplanetmond','Link zum P/M','Fügt einen Link zum dazugehörigen Planeten / Mond hinzu');
createCheck('plani_hpmarker','HP Markieren','Hebt den Heimatplaneten in der Liste hervor');
createCheck('plani_hptotop','HP oben','Den HP an den Anfang der Planiliste stellen');
createCheck('plani_next','<< Planet >>','Fügt Links zum nächsten und vorherigen Planeten hinzu, sofern es diese gibt','plani_next_modus1 plani_next_liste1 plani_next_tt1 plani_next_nomsg1');
var list = new Array;
list.push('0'); list.push('Nur Links');
list.push('1'); list.push('Nur Tastatur');
list.push('2'); list.push('Links + Tastatur');
createOption('plani_next_modus','','Modus: Wie soll die Liste gesteuert werden?<br />Tastatur reagiert erst 0,2 Sekunde nach Seitenaufruf (Spamschutz) und 5 Sekunden nach letzter Eingabe (Nachrichten schreiben)',list,ogs.load('plani_next_modus'));
var list = new Array;
list.push('0'); list.push('alle Planeten alle Monde');
list.push('1'); list.push('Planet Mond Planet Mond');
list.push('2'); list.push('nur Monde / Planeten');
createOption('plani_next_liste','','Liste: In welcher Reihenfolge soll die Liste der Planeten durchschaltbar sein?',list,ogs.load('plani_next_liste'));
createCheck('plani_next_tt','','Tooltips anzeigen?');
createCheck('plani_next_nomsg','','Auf den Seiten der eigenen Allianz und beim schreiben von Nachrichten die Tastatur deaktivieren.');
createCheck('plani_combobox','Combobox','Ersetzt die Combobox zur Planiauswahl.','plani_combobox_type1 plani_combobox_val1 plani_combobox_tooltip1');
var list = new Array;
list.push('0'); list.push('Fester Text');
list.push('1'); list.push('Galaxie');
list.push('2'); list.push('1 Zeichen');
list.push('3'); list.push('2 Zeichen');
list.push('4'); list.push('3 Zeichen');
list.push('5'); list.push('4 Zeichen');
createOption('plani_combobox_type','','Modus',list,ogs.load('plani_combobox_type'));
createEdit('plani_combobox_val','','Bei "Fester Text" ist das der Text der angezeigt wird, sonst die Angabe an welcher Position im Planetennamen die Zeichen stehen die angezeigt werden sollen.',3,3);
createCheck('plani_combobox_tooltip','Tooltips','Tooltips anzeigen?')
createHeaderCloser();
// Menu
createHeader('menu','Menü', 'Mit diesen Optionen kannst du das links Menü bearbeiten. Alle zusätzlichen Links erscheinen unterhalb des Impressums.');
var list = new Array;
list.push('0'); list.push('Normal');
list.push('1'); list.push('Fixiert');
list.push('2'); list.push('Scrollen');
createOption('menu_mode','Menü Modus','Bestimmt wie das Linke Menü angezeigt werden soll.',list,ogs.load('menu_mode'));
createEdit('menu_link_pos','Einfügeposition','Vor welcher Stelle des Menüs sollen die Links eingefügt werden? -1 bedeutet ganz am Ende.');
createCheck('pranger', 'Pranger', 'Link zum Pranger im linken Menü anzeigen');
createCheck('menu_link_enable','Menülinkliste','Einschalten?','menu_link_liste1');
var ogs_menulinkliste = ogs.array.split(ogs.load('menu_link_liste'),'|','&');
createList('menu_link_liste',false, ogs_menulinkliste, new Array('Name','URL'),'ogs.menu_link_liste');
createHeaderCloser();
// Allymitgliederliste
createHeader('ally','Allianzmitglieder', 'Mit diesen Optionen kannst du die Allianzliste bearbeiten.');
createCheck('ml_sort','Member-Sortierung','Memberlisten-Link um Default-Sortierung ergänzen','ml_typ1 ml_art1');
ogs.load('ml_typ');
var list = new Array;
var selected = 0;
var MLTyp = txt('mltyp',new Array('Koord', 'Name', 'Status', 'Punkte', 'Beitritt', 'Online'));
for (var i = 0; i < MLTyp.length; i++)
{
list.push(i);
if (i == settingscur['ml_typ'])
{
selected = i;
}
list.push(MLTyp[i]);
}
createOption('ml_typ','','Default-Sortierung der Memberliste (nach Typ)',list,selected);
ogs.load('ml_art');
var list = new Array;
var selected = 0;
var MLArt = txt('mlart',new Array('absteigend', 'aufsteigend'));
for (var i = 0; i < MLArt.length; i++)
{
list.push(i);
if (i == settingscur['ml_art'])
{
selected = i;
}
list.push(MLArt[i]);
}
createOption('ml_art','','Default-Sortierung der Memberliste (Reihenfolge)',list,selected);
createHeaderCloser();
createHeader('fcolor','Flottenfarben', 'Mit dieser Option kannst du die Farben für Flotten einstellen.<br /><br />Style 1, Style 2 und Style 3 ändern das Erscheinungsbild der Schrift, was durch den angezeigten Wert dargestellt wird. Size macht die Schrift größer oder kleiner. Die Farbe des Textes wird durch die *Farbe* und die *Link*-Farbe angegeben, wobei die *Link*-Farbe nur für die Elemente mit Tooltip und die Koordinaten verwendet wird.');
createCheck('flotten_faerben','Flotten färben','Flotten in der Übersicht umfärben','test_flotten_farben1');
var ogs_flottenfarben = ogs.load('uebersicht_flotten_farben');
if (ogs_flottenfarben.trim() == '')
ogs_flottenfarben = ogs.array.split(settingsdef['uebersicht_flotten_farben'],'|','&');
else
{
ogs_flottenfarben = ogs.array.split(ogs_flottenfarben,'|','&');
//default settings mit aktuellen ueberschreiben => keine probs mehr bei aenderungen
var org = ogs.array.split(settingsdef['uebersicht_flotten_farben'],'|','&');
for (var i = 0; i < org.length; i++)
{
if (org[i].length > 1)
{
var curid = -1;
for (var ii = 0; ii < ogs_flottenfarben.length; ii++)
{
if(org[i][0] == ogs_flottenfarben[ii][0] && org[i][1] == ogs_flottenfarben[ii][1])
{
curid = ii;
break;
}
}
if (curid != -1)
{
for (var ii = 2; ii < org[i].length; ii++)
{
org[i][ii] = ogs_flottenfarben[curid][ii];
}
}
}
}
ogs_flottenfarben = org;
}
createList('test_flotten_farben',false, ogs_flottenfarben, txt('sli_fc',new Array('Art','Typ','Farbe','Style 1','Style 2','Style 3','Size','Link')),'ogs.flottenfarbenfunc',true);
createHeaderCloser();
//Statistiklinks
createHeader('statlinks','Statistiklinks', 'Mit dieser Option kannst du Links zu Spielerstatistiken ändern.<br /><br />*UNI* = Nummer des Universiums<br />*NAME* = Names des Spielers / der Allianz');
createCheck('statlinks_use_stats','Statistikseite','aktivieren?');
createCheck('statlinks_use_gala','Galaxieseite','aktivieren?');
//createCheck('statlinks_use_spio','Spionageberichte','aktivieren?');
createEdit('statlinks_pn1','Spielerlink 1','Name',50);
createEdit('statlinks_pu1','','Url',50);
createEdit('statlinks_pn2','Spielerlink 2','Name',50);
createEdit('statlinks_pu2','','Url',50);
createEdit('statlinks_pn3','Spielerlink 3','Name',50);
createEdit('statlinks_pu3','','Url',50);
createEdit('statlinks_pn4','Spielerlink 4','Name',50);
createEdit('statlinks_pu4','','Url',50);
createEdit('statlinks_pn5','Spielerlink 5','Name',50);
createEdit('statlinks_pu5','','Url',50);
createEdit('statlinks_an1','Allianzlink 1','Name',50);
createEdit('statlinks_au1','','Url',50);
createEdit('statlinks_an2','Allianzlink 2','Name',50);
createEdit('statlinks_au2','','Url',50);
createEdit('statlinks_an3','Allianzlink 3','Name',50);
createEdit('statlinks_au3','','Url',50);
createEdit('statlinks_an4','Allianzlink 4','Name',50);
createEdit('statlinks_au4','','Url',50);
createEdit('statlinks_an5','Allianzlink 5','Name',50);
createEdit('statlinks_au5','','Url',50);
createHeaderCloser();
//Globale einstellungen
createHeader('login','Loginoptionen', 'Mit dieser Option kannst du Logineinstellungen ändern.');
createCheck('selectuniverse','Uniauswahl','Aktiviert die Uniauswahl.');
createCheck('fokusonlogin','Fokus Loginbutton','Aktiviert den Fokus auf das Loginfeld.');
createHeaderCloser();
//Im+Export
createHeader('import','Im & Export', 'Mit dieser Option kannst du deine Einstellungen im/exportieren.<br /><br />Bitte beachte das grade vorgenommene Änderungen an den Einstellungen nicht mit exportiert werden bzw. beim Import verfallen.');
var erg = new Array();
for (var settings in settingsdef)
{
//einlesen
erg.push(settings + ':=' + ogs.load(settings));
}
erg = erg.join('\n');
erg = erg.replace(/&/g, '&');
coder += '<tr><th style="color: '+ogs.load('skriptcolor')+';">'+txt('sx_export','Export')+'</th><th colspan="2">';
coder += '<textarea cols="'+10+'" rows="'+10+'">'+erg+'</textarea></th></tr>';
coder += '<tr><th style="color: '+ogs.load('skriptcolor')+';">'+txt('sx_import','Import')+'</th><th colspan="2">';
coder += '<textarea id="ogs_importtextbox" cols="'+10+'" rows="'+10+'"></textarea><br /><a id="ogs_setup_import_btn" href="#">'+txt('sx_import_btn','Einstellungen importieren')+'</a></th></tr>';
coder += '<tr><th style="color: '+ogs.load('skriptcolor')+';">'+txt('sx_default','Default')+'</th><th colspan="2">';
coder += '<a id="ogs_setup_default_btn" href="#">'+txt('sx_default_btn','Zurücksetzen auf Defaultwerte')+'</a></th></tr>';
createHeaderCloser();
//Haupttabelle
code += '<center><table cellpadding="3">';
code += '<tr><th style="text-align: center">'+txt('setup_head','OGS Setup')+'</th><th style="text-align: right;">';
//Sprache
code += '<div style="float: left;">';
code += '<a href="javascript:document.getElementById(\'ogs_language\').selectedIndex=0; alert(\'Sprache: Deutsch\');ogs.setup_flag();"><img src="http://nwlng.gameforge.de/out/ogame/de/de.gif" alt="Deutsch"></a>';
for(lng in ogs.lang.data)
{
code += ' <a href="javascript:document.getElementById(\'ogs_language\').selectedIndex='+(1 + parseInt(lng,10))+';alert(\''+ogs.lang.data[lng]['info']+'\');ogs.setup_flag();"><img src="http://nwlng.gameforge.de/out/ogame/de/'+ogs.lang.data[lng]['icon']+'.gif" alt="'+ogs.lang.data[lng]['name']+'"></a>';
}
code += '</div>';
ogs.bound.save = ogs.save;
ogs.bind('setup_flag',ogs_setup_flag);
ogs.bind('setup_save',ogs_setup_save);
code += '<div>';
code += '<a href="javascript:ogs.reiter(0);" id="ogs_setup_startpage">?</a> <a href="#" id="ogs_setup_exit">X</a></div></th></tr>';
code += '<tr><th style="vertical-align: top;">';
code += '<table style="width: 150px">' + codel + '</table></th><td style="vertical-align: top;">';
code += '<table style="width: 600px"><colgroup><col width="2*"><col width="5*"><col width="2*"></colgroup>' + coder + '</table></td></tr>';
code += '<tr><th> </th><th style="text-align: right"><a href="#" id="ogs_setup_exit_save">'+txt('setup_save','Speichern')+'</a></th></tr></table></center>';
ogs.neueseite.neu.innerHTML = code;
//textareas zuweisten
for (var i = 0; i < ogs_setup_save_textarea.length; i++)
{
ogs.setTextArea(document.getElementById(ogs_setup_save_textarea[i]),((ogs.load(ogs_setup_save_textarea[i])).replace(/\\n/g,'\n')));
}
//show info
ogs_reiter(0);
ogs.addEvent(document.getElementById('ogs_setup_exit'),'click',ogs_setup_close,false);
ogs.addEvent(document.getElementById('ogs_setup_exit_save'),'click',ogs_setup_save,false);
ogs.addEvent(document.getElementById('ogs_setup_import_btn'),'click',ogs_setup_import,false);
ogs.addEvent(document.getElementById('ogs_setup_default_btn'),'click',ogs_setup_default,false);
}
function ogs_setup_flag()
{
window.setTimeout(function()
{
ogs.setup_save();
ogs.lang.skript = -1;
if (typeof unsafeWindow.ogs_lang != 'undefined')
{
for(lng in ogs.lang.data)
{
if (ogs.lang.cur == ogs.lang.data[lng]['id'])
{
ogs.lang.skript = ogs.lang.data[lng]['skript'];
}
}
}
ogs_setup_start();
},0);
}
function ogs_setup_import()
{
if (!confirm(txt('sx_import_msg','Wollen Sie die Einstellungen wirklich importieren?'))) return;
var text = ogs.getTextArea(document.getElementById('ogs_importtextbox'));
text = text.split('\n');
for(var i = 0; i < text.length; i++)
{
if (text[i].indexOf(':=') > 0)
{
var thistext = text[i].split(':=');
if (typeof settingsdef[thistext[0]] != 'undefined')
{
if (typeof settingsdef[thistext[0]] == 'boolean')
{
if (thistext[1].indexOf('true') > -1) //so laeufts auch im ie
ogs.save(thistext[0],true);
else
ogs.save(thistext[0],false);
}
else
{
ogs.save(thistext[0],thistext[1]);
}
}
}
}
ogs_setup_close();
}
function ogs_setup_default()
{
if (!confirm(txt('sx_default_msg','Wollen Sie die Default-Einstellungen wirklich laden?'))) return;
for (var settings in settingsdef)
{
ogs.save(settings, settingsdef[settings]);
}
ogs_setup_close();
}
function ogs_setup_close()
{
//nur starten wenn man erlaubnis hat die seite zu ändern.
if (ogs.neueseite.user != 'ogs_setup')
return;
//löschen des nodes
ogs.neueseite.neu.parentNode.removeChild(ogs.neueseite.neu);
//wiederanzeigen des orginals
ogs.neueseite.orginal.style.display = 'block';
//seite freigeben
ogs.neueseite.user = '';
delete ogs.neueseite.orginal;
delete ogs.neueseite.neu;
}
/**************
* Skript Start
**************/
function startup()
{
/*
Eine Plani-Liste hat folgendes Format:
Das Element 0 enthaelt die ID des HPs
Alle weiteren Elemente sind die Planeten und Monde des Spielers, aufgelistet in der Reihenfolge der Planiliste
Jeder Planet hat folgende Eigenschaften:
Name: Sein Name
Gala, Sys, Pos: Seine Position (Gala:Sys:Pos)
Koords: Die Position als Text
ID: Seine ID
URL: Die Url, die aufgerufen wird, um zu ihm zu wechseln
Aktiv: Gibt an ob der Plani der aktivierte ist
Partner: Nummer des Partner Planeten / Mondes
Typ: mond oder plani
HP: hp ja oder nein
*/
function HolePlaniListe()
{
//default
var defaultPlanet = parseInt(ogs.load('def_plani'),10);
//Hilfsarray zum bestimmen der Partner
var partnersuche = new Array(); // :p
//Daten suchen
var namen = document.getElementsByTagName('select');
if (!namen.length) return 0; // falls keine Planiliste gefunden wurde, abbruch
namen = namen[0].options;
//Array zur Speicherung der Planeten
var liste = new Array();
//Hilfswerte fer spaetere Verarbeitung
liste[0] = new Array();
liste[0]['HPID'] = 0; //ID des HPs
liste[0]['HP'] = null; //pointer auf das HP Planet
liste[0]['Aktiv'] = null; //pointer auf den aktiven Planeten
liste[0]['Def'] = null; //pointer auf den default Planeten
for (var i = 0; i < namen.length; i++) // Ueber alle Planeten des Spielers
{
//Daten extrahieren
if (namen[i].value.indexOf('/game/') < 0 ) return 0; // falls dies kein Teil des Planinamens ist, Abbruch
var Daten = namen[i].firstChild.nodeValue.match(/([a-zA-Z0-9 \.\-\_\(\)]+)[\s]+\[([0-9]{1,2}):([0-9]{1,3}):([0-9]{1,2})\]/); // Name und Koords rausfinden, sie stehen im angezeigten Text
var ID = namen[i].value.match(/cp=([0-9]+)/); // Plani-ID rausfinden
if (!ID || !Daten) continue;
//Daten speichern
var planet = new Array();
planet['Name'] = Daten[1];
planet['Gala'] = parseInt(Daten[2], 10);
planet['Sys'] = parseInt(Daten[3], 10);
planet['Pos'] = parseInt(Daten[4], 10);
planet['Koords'] = planet['Gala'] + ':' + planet['Sys'] + ':' + planet['Pos'];
planet['ID'] = parseInt(ID[1], 10);
planet['URL'] = namen[i].value;
planet['Aktiv'] = (namen[i].selected == true);
planet['HP'] = false;
//partnersuche
if (partnersuche[planet['Koords']])
{
var partner = partnersuche[planet['Koords']];
//die nummer des partners eintragen
planet['Partner'] = partner;
partner['Partner'] = planet;
if (partner['ID'] > planet['ID'])
{
planet['Typ'] = ogs.planettype.planet;
partner['Typ'] = ogs.planettype.mond;
}
else
{
planet['Typ'] = ogs.planettype.mond;
partner['Typ'] = ogs.planettype.planet;
}
}
else
{
planet['Partner'] = null;
planet['Typ'] = ogs.planettype.planet;
partnersuche[planet['Koords']] = planet;
}
//aktiven planeten eintragen
if (planet['Aktiv']) liste[0]['Aktiv'] = planet;
//die kleinste ID ermitteln
if (liste[0]['HPID'] == 0 || liste[0]['HPID'] > planet['ID'])
{
liste[0]['HPID'] = planet['ID'];
liste[0]['HP'] = planet;
}
//default Planet
if (defaultPlanet > 0 && planet['ID'] == defaultPlanet)
{
liste[0]['Def'] = planet;
}
//Planet in Liste hinzufuegen
liste[liste.length] = planet;
}
if (liste[0]['HPID'] != 0)
{
//HP auf true setzten beim HP
liste[0]['HP']['HP'] = true;
//wenn kein default plani dann hp als default
if (!liste[0]['Def']) liste[0]['Def'] = liste[0]['HP'];
return liste; //Liste zurueckgeben
}
else
{
return 0;
}
}
ogs.start.versuche++;
if (!ogs.ogame.hpid) // HP-ID versuchen zu laden
{
ogs.ogame.hpid = parseInt(ogs.load(ogs.ogame.server + '_HP_ID'),10); // ID des HPs laden, falls vorhanden
}
// Planiliste laden
ogs.planetliste = HolePlaniListe();
if (ogs.planetliste && ogs.ogame.hpid != ogs.planetliste[0]['HPID'])
{
ogs.ogame.hpid = ogs.planetliste[0]['HPID'];
ogs.save(ogs.ogame.server + '_HP_ID', ogs.ogame.hpid); // speichere die HP-ID
}
//Bei extra Seiten deren Code aufrufen
if (ogs.ogame.page == 'phalanx')
{
if (ogs.ogame.hpid > 0)
{
ogs_phalanx();
return;
}
}
else if (ogs.ogame.page == 'notizen')
{
ogs_notizen();
return;
}
else if(ogs.ogame.page == 'pranger')
{
ogs_pranger();
return;
}
else //normale startfunktion
{
// Hinweis in der Navi
var OGameVersion = document.getElementsByTagName('nobr')[0]; // Absatz mit der OGame-Version finden
if (ogs.ogame.hpid && OGameVersion && !(ogs.ogame.page == 'b_building' && document.URL.match(/bau=/))) // Check auf fehlende ogs.ogame.hpid und leere Zwischenladeseiten durch OGame
{
//-------------------
// Ausschaltfunktion
//-------------------
function turnoff()
{
var vCheck = !ogs.load('skript_online');
ogs.save('skript_online', vCheck);
if (vCheck)
{
document.getElementById('ogs_loading').innerHTML = 'ON';
document.getElementById('ogs_loading').style.color = 'green';
alert('Skript aktiviert');
}
else
{
document.getElementById('ogs_loading').innerHTML = 'OFF';
document.getElementById('ogs_loading').style.color = 'red';
alert('Skript deaktiviert');
}
location.reload();
}
OGameVersion.innerHTML = OGameVersion.innerHTML.replace(exp('uni','Universum'),txt('uni_s','Uni')) +'<br /><a href="' + ogs.getLink(ogs.homepage) + '" target="_blank">OGame-Skript</a><br /><a href="#" onclick="ogs_setup_start()" id="ogs_version">' + ogs.version() + ': </a><a style="color: yellow" id="ogs_loading" href="#" onclick="turnoff()">ERROR</a><br />'; // in der Navi einen Hinweis setzen
unsafeWindow.ogs_setup_start = function()
{
window.setTimeout(ogs_setup_start, 0);
};
unsafeWindow.turnoff = function()
{
window.setTimeout(turnoff, 0);
};
// wenn eingeschalten dann ausführen
if (ogs.load('skript_online'))
{
ogameskript();
// on angezeigt
document.getElementById('ogs_loading').innerHTML = 'ON';
document.getElementById('ogs_loading').style.color = 'green';
}
else
{
// off anzeigen
document.getElementById('ogs_loading').innerHTML = 'OFF';
document.getElementById('ogs_loading').style.color = 'red';
}
return;
}
}
if (ogs.start.versuche <= ogs.start.versuche_max)
{
// falls es keine HP-ID gibt und noch nicht genuegend Versuche gemacht wurden, nochmal versuchen
window.setTimeout(startup, ogs.start.versuche_warte);
}
}
//this one is for strings which have to match gamestrings
function exp(id, text)
{
var ret;
var i;
if (ogs.lang.ogame != -1 && typeof ogs.lang.ogame[id] != 'undefined')
{
ret = ogs.lang.ogame[id];
if (typeof text == typeof ret) //typengleichheit texten
{
if (typeof text == 'object') //bei array
{
if (text.length != ret.length) ret = text; //das ganze array replacen
/*
for (i = ret.length; i < text.length; i++) //length testen fehlende eintraege mit default ersetzen
{
ret[i] = text[i];
}
*/
}
}
else
{
ret = text;
}
}
else
{
ret = text;
}
if (exp.arguments.length > 2)
{
for (var i = 2; i < exp.arguments.length; i++)
{
ret = ret.replace('#*'+(i-1)+'*#', exp.arguments[i]);
}
}
return ret;
}
//this one is for strings for ogs only
function txt(id, text)
{
var ret;
var i;
if (ogs.lang.skript != -1 && typeof ogs.lang.skript[id] != 'undefined')
{
ret = ogs.lang.skript[id];
if (typeof text == typeof ret) //typengleichheit texten
{
if (typeof text == 'object') //bei array
{
if (text.length != ret.length) ret = text; //das ganze array replacen
/*
for (i = ret.length; i < text.length; i++) //length testen fehlende eintraege mit default ersetzen
{
ret[i] = text[i];
}
*/
}
}
else
{
ret = text;
}
}
else
{
ret = text;
}
if (txt.arguments.length > 2)
{
for (i = 2; i < txt.arguments.length; i++)
{
ret = ret.replace('#*'+(i-1)+'*#', txt.arguments[i]);
}
}
return ret;
}
/*
fuer IE support:
kein xpath mehr => ogs.dom.getCEBF + ogs.dom.getEBF
addEventListener => ogs.addEvent
*/
/*************************************************/
/* Auf diese Functionen nur ueber ogs. zugreifen */
/*************************************************/
//version des ogs formatieren
function ogs_version()
{
var nr = parseInt(ogs.load('version'),10);
return (Math.floor(nr / 10000)) + '.' + (Math.floor(nr / 100) % 100) + ' - Rev #' + (nr % 100);
}
// Laedt eine Einstellung des aktuellen Accounts bzw globale
function ogs_load(name)
{
if (typeof settingsdef[name] == 'undefined')
{
if (typeof settingsglobaldef[name] == 'undefined')
{
//sollte nicht auftreten da jede einstellung auch ein default wert haben sollte
//diese if schleife kann nachherkomplett gelöscht werden
if(name.indexOf('_HP_ID') == -1 && name.indexOf('universe_') == -1) // nur abbrechen wenn es sich nicht um die hp id handelt
{
ogs.debug('Defaultwert f'+ue+'r ' + name + ' nicht gesetzt');
return '';
}
}
//wenn noch nicht geladen dann laden
if (typeof settingsglobalcur[name] == 'undefined')
{
settingsglobalcur[name] = GM_getValue('global_' + name, settingsglobaldef[name]);
}
if (typeof settingsglobaldef[name] == 'boolean' && typeof settingsglobalcur[name] != 'boolean')
if (settingsglobalcur[name] == '-1')
settingsglobalcur[name] = true;
else
settingsglobalcur[name] = false;
return settingsglobalcur[name];
}
//wenn unbekannt ist um welchen acc es hier geht
if (!ogs.ogame.hpid)
{
return settingsdef[name];
}
//wenn noch nicht geladen dann laden
if (typeof settingscur[name] == 'undefined')
{
settingscur[name] = GM_getValue(ogs.ogame.server + '_' + ogs.ogame.hpid + '_' + name, settingsdef[name]);
if (typeof settingsdef[name] == 'boolean' && typeof settingscur[name] != 'boolean')
if (settingscur[name] == '-1')
settingscur[name] = true;
else
settingscur[name] = false;
}
return settingscur[name];
}
// Speichert eine Einstellung des aktuellen Accounts bzw globale einstellungen
function ogs_save(name, wert)
{
if (typeof settingsdef[name] == 'undefined')
{
GM_setValue('global_' + name, wert);
settingsglobalcur[name] = wert;
}
else
{
if (!ogs.ogame.hpid) { return; }
GM_setValue(ogs.ogame.server + '_' + ogs.ogame.hpid + '_' + name, wert);
settingscur[name] = wert;
}
}
function ogs_split(str, split1, split2)
{
var temp1 = str.split(split1);
var temp2 = new Array;
for (var i = 0; i < temp1.length; i++)
{
if (temp1[i] != '')
{
temp2.push(temp1[i].split(split2));
}
}
return temp2;
}
function ogs_join(arr, join1, join2)
{
var join = '';
for (var i = 0; i < arr.length; i++)
{
join += arr[i].join(join2) + join1;
}
return join;
}
function ogs_getLink(url)
{
url = url.replace(/ /g,'%2520'); // leerzeichen ersetzen
url = url.replace(/&/g,'%26'); // & ersetzten
//url = url.replace(/\?/g,'%3F'); // ? ersetzten
//url = url.replace(/=/g,'%3D'); // = ersetzten
//url = url.replace(/\//g,'%2F'); // / ersetzten
//url = url.replace(/:/g,'%3A'); // : ersetzten
//url = url.replace(/\[/g,'%5B'); // [ ersetzten
//url = url.replace(/\]/g,'%5D'); // ] ersetzten
//url = url.replace(/`/g,'%60'); // ` ersetzten
return '/game/redir.php?url=' + url; //encodeURI()
}
//set und get function fuer textareas
function ogs_setTextArea(ta,val)
{
if (ogs.browser == 'ff')
{
ta.value = val;
}
else
{
ta.innerHTML = val;
}
}
function ogs_getTextArea(ta)
{
if (ogs.browser == 'ff')
{
return ta.value;
}
else
{
return ta.innerHTML;
}
}
// fuegt einen object eine function hinzu
function ogs_addEvent(obj, type, func, cap)
{
if (obj.addEventListener)
{
obj.addEventListener(type, func, cap);
}
else if (obj.attachEvent)
{
obj.attachEvent('on'+type, func);
}
}
// Berechnet den Stromverbrauch/Stromproduktion des Gebaeudes ID (1=Met, 2=Kris, 3=Deut, 4=Soli, 12=Fusi) auf der angegeben Stufe
function ogs_getEnergie(ID, Stufe)
{
if (typeof EnergieBuffer[ID] != 'undefined' && typeof EnergieBuffer[ID][Stufe] != 'undefined')
return EnergieBuffer[ID][Stufe];
if (typeof EnergieBuffer[ID] == 'undefined')
EnergieBuffer[ID] = new Array();
if (ID == 12)
{
var tech = ogs.array.split(ogs.load('forschung'),'|','&');
var techstufe = 0;
for (var i = 0; i < tech.length; i++)
{
if (tech[i][0] == 113)
{
techstufe = tech[i][1];
break;
}
}
EnergieBuffer[ID][Stufe] = Math.floor(30 * Stufe * (Math.pow(1.05 + 0.01 * techstufe, Stufe)));
}
else
{
var Faktor = (ID == 1 || ID == 2) ? 10 : ((ID == 3 || ID == 4) ? 20 : 0);
if (ID <= 3) // Minen
Faktor *= -1;
EnergieBuffer[ID][Stufe] = Math.floor(Faktor * Stufe * Math.pow(1.1, Stufe)); // Energieverbrauchs-Formel
}
return EnergieBuffer[ID][Stufe];
}
// Berechnet die Baukosten eines Gebaeudes der angegeben Stufe auf Basis der Grundkosten und des Exponentialfaktors
function ogs_getKosten(GSMet, GSKris, GSDeut, Faktor, Stufe)
{
//return Stufe;
var Baukosten = new Array(Math.floor(GSMet * Math.pow(Faktor, (Stufe - 1)), 0), Math.floor(GSKris * Math.pow(Faktor, (Stufe - 1)), 0), Math.floor(GSDeut * Math.pow(Faktor, (Stufe - 1)), 0)); // Kosten-Formel
return Baukosten;
}
// Hilfe bei Debugmeldungen
function ogs_debug(meldung)
{
alert('Debug-Meldung:\n' + meldung);
}
//sucht in einen Array das Element dessen nameid den wert name besitzt und gibt den wert von valid zurueck,
//wenn nix gefunden wird gibt es def zurueck
function ogs_array_getElement(arr, name, def, nameid, valid)
{
for (var i = 0; i < arr.length; i++)
{
if (arr[i][nameid] == name)
{
return arr[i][valid];
}
}
return def;
}
//entfernt das element dessen nameid den wert name besitzt (entfernt nur ein element nicht mehrere)
function ogs_array_dropElement(arr, name, nameid)
{
for (var i = 0; i < arr.length; i++)
{
if (arr[i][nameid] == name)
{
arr.splice(i,1);
return;
}
}
}
// erstellt ein neues Tag
function ogs_dom_NeuesElement(Tag, Inhalt)
{
var Neu = document.createElement(Tag); // erste Zelle (Titel)
if (Inhalt.indexOf('<') + 1 || Inhalt.indexOf('&') + 1) // falls Tags oder &;-Umschreibungen im Text sind
{
Neu.innerHTML = Inhalt; // Text als HTML-Code
}
else
{
if (Inhalt.length > 0) // ansonsten, und falls es ueberhaupt einen Text gibt
{
Neu.appendChild(document.createTextNode(Inhalt)); // Text als Attribut
}
}
if (ogs.dom.newElement.arguments.length > 2) // weitere Argumente der Funktion
{
for (var i = 2; i < ogs.dom.newElement.arguments.length - 1; i += 2) // alle diese Argumente
{
if (!ogs.dom.newElement.arguments[i + 1].length) { continue; }
Neu.setAttribute(ogs.dom.newElement.arguments[i], ogs.dom.newElement.arguments[i + 1]); // dem Tag zuweisen
}
}
return Neu; // zurueckgeben
}
// fuege des neue Element hinter dem anderen ein
function ogs_dom_EinfuegenHinter(Neu, Hinter)
{
Hinter.parentNode.insertBefore(Neu, Hinter.nextSibling); // Element einfuegen
return Neu; // Element zurueckgeben
}
// Loesche dieses Element
function ogs_dom_Loesche(element)
{
element.parentNode.removeChild(element); // Da nur Kindelemente geloescht werden koennen, wird vom Elternknoten her geloescht
}
//durchsucht die childnodes nach dem jeweiligen tagname
function ogs_dom_getCEBF(element, name)
{
var Erg = new Array();
//if (typeof func == 'string')
//{
name = name.toLowerCase();
for (var i = 0; i < element.childNodes.length; i++)
{
if (element.childNodes[i].nodeName.toLowerCase() == name)
{
Erg.push(element.childNodes[i]);
}
}
/*
}
else if (typeof name == 'function')
{
for (var i = 0; i < element.childNodes.length; i++)
{
if (name(element.childNodes[i]))
{
Erg.push(element.childNodes[i]);
}
}
}
*/
return Erg;
}
function ogs_dom_getEBF(element, name, att)
{
var Erg = new Array;
var data = element.getElementsByTagName(name);
var func = new Function('knoten','return (knoten.' + att + ');');
for (var i = 0; i < data.length; i++)
{
if (func(data[i]))
{
Erg.push(data[i]);
}
}
return Erg;
}
/******************/
/* ZEIT functions */
/******************/
// formatiere die uebergebene Zeit als Langdatum
function ogs_ZeitFormatieren(zeit)
{
// Eine Zahl zweistellig darstellen
function zweistellig(zahl)
{
if (zahl < 10)
return '0'+zahl;
else
return String(zahl);
}
return ogs.time.wochentage[zeit.getDay()] + ' ' + zeit.getDate() + ' ' + ogs.time.monate[zeit.getMonth()] + ' ' + zeit.getHours() + ':' + zweistellig(zeit.getMinutes()) + ':' + zweistellig(zeit.getSeconds()); // Ausgabestring formatieren
}
// Aktuelle Serverzeit bestimmen
function ogs_getTime()
{
if (!isNaN(ogs.zeitdifferenz))
{
return new Date(new Date().getTime() - ogs.zeitdifferenz);
}
else
{
return new Date();
}
}
// Zeitstring auslesen und als Zahl formatiert zurueckgeben
function ogs_LeseZeit(str)
{
var Monate = new Array();
Monate['Jan'] = 0; Monate['Feb'] = 1; Monate['Mar'] = 2; Monate['Apr'] = 3; Monate['May'] = 4; Monate['Jun'] = 5; Monate['Jul'] = 6; Monate['Aug'] = 7; Monate['Sep'] = 8; Monate['Oct'] = 9; Monate['Nov'] = 10; Monate['Dec'] = 11;
var ZeitStr = str.match(/[a-zA-Z]{3} ([a-zA-Z]{3}) ([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})/);
var zeit = new Date();
zeit = new Date(((zeit.getYear() < 1900) ? zeit.getYear() + 1900 : zeit.getYear()), Monate[ZeitStr[1]], ZeitStr[2], ZeitStr[3], ZeitStr[4], ZeitStr[5]);
return zeit;
}
// zeitpunkt relativ zu jetzt angeben
function ogs_time_stamp(time, zweizeilig)
{
var zus = '<font color="' + ogs.textfarbe + '">';
var now = ogs.time.now();
var ats = time;
var aday = ats.getDate();
zus += (aday != now.getDate()) ? aday + '.' + (ats.getMonth() + 1) + ((zweizeilig == true) ? '.<br />' : ' '): '';
var ah = ats.getHours();
var am = ats.getMinutes();
var as = ats.getSeconds();
if (ah < 10) { ah = '0' + ah }
if (am < 10) { am = '0' + am }
if (as < 10) { as = '0' + as }
zus += '' + ah + ':' + am + ':' + as + '</font>';
return zus;
}
function ogs_aTimeDuration(s)
{
var d = Math.floor(s / 86400);
s -= d * 86400;
var h = Math.floor(s / 3600);
s -= h * 3600;
var m = Math.floor(s / 60);
s -= m * 60;
if (h < 10) { h = '0' + h }
if (m < 10) { m = '0' + m }
if (s < 10) { s = '0' + s }
var erg = h + ':' + m + ':' + s + ' h';
if (d>0) erg = d + 't ' + erg;
return erg;
}
/************************/
/* Kopfzeile bearbeiten */
/************************/
function ogs_kopfzeile()
{
var HeadDiv = document.getElementById('header_top');
if (!HeadDiv) return;
//--------------------
// Kopfzeile fixieren
//--------------------
if (ogs.load('head_fix'))
{
if (ogs.browser == 'ff')
{
HeadDiv.style.position = 'fixed';
HeadDiv.style.overflow = 'visible';
HeadDiv.style.zIndex = 10;
}
else
{
}
}
//----------------------------------------
// Planiliste und Planiauswahl bearbeiten
//----------------------------------------
// HP nach oben sortieren wenn gewuenscht
if (ogs.load('plani_hptotop')) sortiereHPToTop();
// das Dropdown-Menue zur Planiauswahl
var headselect = HeadDiv.getElementsByTagName('select');
var headselectfound = false;
if (headselect.length > 0)
{
headselect = headselect[0];
headselectfound = true;
}
ogs.load('plani_combobox');
ogs.load('plani_verbessern');
if (headselectfound && (ogs.load('plani_next') || (settingscur['plani_verbessern'] && ogs.load('plani_linkplanetmond'))))
{
headselect.parentNode.style.textAlign = 'center'; // Text zentrieren
headselect.parentNode.style.whiteSpace = 'nowrap'; // kein Zeilenumbruch
// bei Planeten mit Mond und bei Monden kommt oben noch was darauf (nur wenn combobox deaktiv)
if (!settingscur['plani_combobox'] && settingscur['plani_verbessern'] && ogs.load('plani_linkplanetmond') && ogs.planetliste[0]['Aktiv']['Partner'])
{
var Partner = ogs.planetliste[0]['Aktiv']['Partner'];
headselect.parentNode.insertBefore(ogs.dom.newElement('a', (ogs.planetliste[0]['Aktiv']['Typ'] == ogs.planettype.mond) ? (txt('plani_p','P: #*1*#',Partner['Name'])) : (txt('plani_m','M: #*1*#',Partner['Name'])), 'href', Partner['URL'], 'id', 'MondPlani'), headselect); // Link vor der Dropwdown-Liste einfgen
headselect.parentNode.insertBefore(document.createElement('br'), headselect); // Zeilenumbruch vor der Dropwdown-Liste einfgen
}
}
//combox deaktiviert das hier
if (!settingscur['plani_combobox'] && settingscur['plani_verbessern'] && headselectfound)
{
// Monde zu Planeten ziehen
if (ogs.load('plani_pnm')) sortierePListe();
var i;
ogs.load('plani_shortname');
ogs.load('plani_mondklammern');
ogs.load('plani_mondextra');
ogs.load('plani_hpmarker');
// alle Eintraege der PlanetenSelectBox entfernen
while (headselect.childNodes.length > 0)
{
headselect.removeChild(headselect.childNodes[0]);
}
// generie text fuer die planeten und monde
var planetenText = new Array();
// Ueber alle Planeten
for (i = 1; i < ogs.planetliste.length; i++)
{
//Text erstellen
if (settingscur['plani_shortname']) // nur die Koords als Text
{
planetenText[i] = ogs.planetliste[i]['Koords'] + ((ogs.planetliste[i]['Typ'] == ogs.planettype.mond) ? ' (M)' : '');
}
else // der Text besteht aus Name und Koords
{
planetenText[i] = ogs.planetliste[i]['Name'];
if (settingscur['plani_mondklammern'] && ogs.planetliste[i]['Typ'] == ogs.planettype.mond)
{
planetenText[i] = planetenText[i].replace(/ \([A-Za-z]+\)/,'');
}
planetenText[i] = planetenText[i] + ' [' + ogs.planetliste[i]['Koords'] + ']';
}
if (!settingscur['plani_mondextra'] && ogs.planetliste[i]['Typ'] == ogs.planettype.mond) planetenText[i] = ' - ' + planetenText[i]
// nur eintragen wenn jetzt schon moeglich sonst nur planeten und monde spaeter
if (settingscur['plani_mondextra'] && ogs.planetliste[i]['Typ'] != ogs.planettype.planet) continue;
var Eintrag = ogs.dom.newElement('option', planetenText[i], 'value', ogs.planetliste[i]['URL']); // Eintrag erzeugen
if (ogs.planetliste[i]['Aktiv']) Eintrag.setAttribute('selected', 'selected'); // falls es der aktive Plani ist, markieren
if (ogs.planetliste[i]['HP'] && settingscur['plani_hpmarker']) Eintrag.style.fontWeight = 'bold'; // den HP fett machen
headselect.appendChild(Eintrag); // Eintrag einfuegen
}
if (settingscur['plani_mondextra'])
{
// Trenner
function auswahl(el) // neue Auswahlfunktion, kompatibel mit dem Trenner
{
var url = el.options[el.selectedIndex].value;
if (url.length) { location.href = el.options[el.selectedIndex].value; }
}
// vorhandenen Funktion ueberschreiben
unsafeWindow.haha = auswahl;
var HabTrenner = false;
// Monde einfuegen
for (var i = 1; i < ogs.planetliste.length; i++) // Ueber alle Planeten
{
if (ogs.planetliste[i]['Typ'] != ogs.planettype.mond) continue;
if (!HabTrenner)
{
headselect.appendChild(ogs.dom.newElement('option', ' ', 'value', ''));
HabTrenner = true;
}
var Eintrag = ogs.dom.newElement('option', planetenText[i], 'value', ogs.planetliste[i]['URL']);
if (ogs.planetliste[i]['Aktiv']) Eintrag.setAttribute('selected', 'selected'); // falls es der aktive Mond ist, markieren
headselect.appendChild(Eintrag); // Eintrag einfuegen
}
}
}
if (headselectfound && ogs.load('plani_next'))
{
ogs.load('plani_next_modus'); // nur links, nur tasta, beides
ogs.load('plani_next_liste');
ogs.load('plani_next_tt');
var navliste = new Array();
var navliste_p = new Array();
var navcurpos = 0;
for (i = 0; i < ogs.planetliste.length; i++)
{
if (settingscur['plani_next_liste'] == 0) // alle planis geflogt von alle monde
{
if (ogs.planetliste[i]['Typ'] == ogs.planettype.planet)
{
navliste[navliste.length] = ogs.planetliste[i];
if (ogs.planetliste[i]['Aktiv']) navcurpos = navliste.length - 1;
if (ogs.planetliste[i]['Partner'])
{
navliste_p[navliste_p.length] = ogs.planetliste[i]['Partner'];
if (ogs.planetliste[i]['Partner']['Aktiv']) navcurpos = -1 * navliste_p.length;;
}
}
}
else if (settingscur['plani_next_liste'] == 1) // plani mond plani mond...
{
if (ogs.planetliste[i]['Typ'] == ogs.planettype.planet)
{
navliste[navliste.length] = ogs.planetliste[i];
if (ogs.planetliste[i]['Aktiv']) navcurpos = navliste.length - 1;
if (ogs.planetliste[i]['Partner'])
{
navliste[navliste.length] = ogs.planetliste[i]['Partner'];
if (ogs.planetliste[i]['Partner']['Aktiv']) navcurpos = navliste.length - 1;
}
}
}
else // nur planis bzw nur monde
{
if (ogs.planetliste[i]['Typ'] == ogs.planetliste[0]['Aktiv']['Typ'])
{
navliste[navliste.length] = ogs.planetliste[i];
if (ogs.planetliste[i]['Aktiv']) navcurpos = navliste.length - 1;
}
}
}
if (navcurpos < 0) navcurpos = navcurpos * -1 + navliste.length -1;
navliste = navliste.concat(navliste_p);
var nav_vor = navcurpos + 1; if (nav_vor >= navliste.length) nav_vor = 0;
var nav_zur = navcurpos - 1; if (nav_zur < 0 ) nav_zur = navliste.length - 1;
var nav_ele
if (settingscur['plani_next_modus'] == 0 || settingscur['plani_next_modus'] == 2) //nur liste oder beides
{
if (nav_zur != navcurpos)
{
nav_ele = ogs.dom.newElement('a', '<<'+ ((settingscur['plani_combobox']) ? ' ' : ''), 'href', navliste[nav_zur]['URL'], 'id', 'VorhURL');
if (settingscur['plani_next_tt']) ogs.addOverLib(nav_ele, '<table width=\'100%\'><tr><td><table width=\'100%\'>'+navliste[nav_zur]['Koords'] + ' ' + navliste[nav_zur]['Name']+'</table></td></tr></table>');
headselect.parentNode.insertBefore(nav_ele, headselect); // Link vor der Dropwdown-Liste einfuegen
}
if (nav_vor != navcurpos)
{
nav_ele = ogs.dom.newElement('a', ((settingscur['plani_combobox']) ? ' ' : '') + '>>', 'href', navliste[nav_vor]['URL'], 'id', 'NachURL');
if (settingscur['plani_next_tt']) ogs.addOverLib(nav_ele, '<table width=\'100%\'><tr><td><table width=\'100%\'>'+navliste[nav_vor]['Koords'] + ' ' + navliste[nav_vor]['Name']+'</table></td></tr></table>');
ogs.dom.insertBehind(nav_ele, headselect); // Link nach der Dropdown-Liste einfgen
}
}
if (settingscur['plani_next_modus'] == 1 || settingscur['plani_next_modus'] == 2) //nur tasta oder beides
{
var keyboardevent_urls = new Array();
if (nav_zur != navcurpos)
keyboardevent_urls.push(navliste[nav_zur]['URL']);
else
keyboardevent_urls.push(null);
if (nav_vor != navcurpos)
keyboardevent_urls.push(navliste[nav_vor]['URL']);
else
keyboardevent_urls.push(null);
if (navliste[navcurpos]['Partner'])
keyboardevent_urls.push(navliste[navcurpos]['Partner']['URL']);
else
keyboardevent_urls.push(null);
var keyboardevent_lastkeypress = (new Date()).getTime() - 4800; // spamschutz
function keyboardevent(e)
{
if (!e) if (event) e = event; else return;
var i = -1;
if(e.keyCode == 37) i = 0;
else if(e.keyCode == 39) i = 1;
else if(e.keyCode == 38) i = 2;
else if(e.keyCode == 40) i = 2;
else keyboardevent_lastkeypress = (new Date()).getTime();
if (i >= 0 && keyboardevent_urls[i] != null && keyboardevent_lastkeypress + 5000 <= (new Date()).getTime())
{
keyboardevent_lastkeypress = (new Date()).getTime();
document.location = keyboardevent_urls[i];
}
}
//nur wenn auf msg seiten gewuenscht wird
if (!ogs.load('plani_next_nomsg') || (ogs.ogame.page != 'allianzen' && ogs.ogame.page != 'writemessages'))
unsafeWindow.onkeydown = keyboardevent;
}
}
//planiliste umgestallten
if (settingscur['plani_combobox'] && headselectfound)
{
headselect.style.display = 'none';
ogs.load('plani_hpmarker');
ogs.load('plani_combobox_type');
ogs.load('plani_combobox_val');
ogs.load('plani_combobox_tooltip');
var code = '<table class="ogs_planetenliste"><tr>';
var line1 = '';
var line2 = '</tr><tr>';
var text = '';
var textlen = 2;
if (settingscur['plani_combobox_type'] >= 2)
{
textlen = settingscur['plani_combobox_type'] -1;
}
for (var i = 1; i < ogs.planetliste.length; i++)
{
if (ogs.planetliste[i]['Typ'] == 1)
{
line1 += '<td><a href="#" ';
if (settingscur['plani_combobox_tooltip'] == true)
line1 += 'onmouseover="return overlib(\'<table width=\\\'100%\\\'><tr><td><center>' + ogs.planetliste[i]['Name'] + '<br />' + ogs.planetliste[i]['Koords'] + '</center></td></tr></table>\');" onmouseout="return nd();" ';
line1 += 'onclick="location=\'' + ogs.planetliste[i]['URL'] + '\'">';
if (settingscur['plani_combobox_type'] == 0)
{
text = settingscur['plani_combobox_val'];
}
else if (settingscur['plani_combobox_type'] == 1)
{
text = ogs.planetliste[i]['Gala']+'';
}
else
{
text = ogs.planetliste[i]['Name'].substr(parseInt(settingscur['plani_combobox_val'],10),textlen)
}
if (text.trim().length == 0)
{
text = 'P'
}
if(ogs.planetliste[i]['Aktiv'])
line1 += '<font color="red">' + text + '<font></a></td>';
else
line1 += text + '</a></td>';
if (ogs.planetliste[i]['Partner'])
{
line2 += '<td><a href="#" ';
if (settingscur['plani_combobox_tooltip'] == true)
line2 += 'onmouseover="return overlib(\'<table width=\\\'100%\\\'><tr><td><center>' + ogs.planetliste[i]['Partner']['Name'] + '<br />' + ogs.planetliste[i]['Partner']['Koords'] + '</center></td></tr></table>\');" onmouseout="return nd();" ';
line2 += 'onclick="location=\'' + ogs.planetliste[i]['Partner']['URL'] + '\'">';
if(ogs.planetliste[i]['Partner']['Aktiv'])
line2 += '<font color="red">M<font></a></td>';
else
line2 += 'M</a></td>';
}
else
{
line2 += '<td></td>'
}
}
}
code += line1 + line2 + '</tr></table>';
headselect.parentNode.appendChild(ogs.dom.newElement('div',code));
}
// Die sortierte die Monde zu den Planeten
function sortierePListe()
{
var Planis = new Array();
Planis[0] = ogs.planetliste[0]; //Infos aus dem ersten Element uebernehmen
// Hilfsfunktion zum Hinzufuegen eines Planetens samt Mond
function addPlani(Plani)
{
if (Plani['Typ'] != ogs.planettype.planet) return;
Planis[Planis.length] = Plani;
if (Plani['Partner']) Planis[Planis.length] = Plani['Partner'];
}
//Rest hintenweg
for (var i = 1; i < ogs.planetliste.length; i++)
{
addPlani(ogs.planetliste[i]);
}
ogs.planetliste = Planis;
}
// Die sortierte den HP planeten an den anfang
function sortiereHPToTop()
{
var Planis = new Array();
Planis[0] = ogs.planetliste[0]; //Infos aus dem ersten Element uebernehmen
//HP hinzufuegen
Planis[Planis.length] = ogs.planetliste[0]['HP'];
//Rest hintenweg
for (var i = 1; i < ogs.planetliste.length; i++)
{
if (!ogs.planetliste[i]['HP']) Planis[Planis.length] = ogs.planetliste[i];
}
ogs.planetliste = Planis;
}
//-----------
// res timer
//-----------
if (ogs.load('res_timer'))
{
//Array mit Berechnungsdaten
var resUpdate = new Array();
resUpdate['UniSpeed'] = Math.max(1,parseInt(ogs.load('uni_speed'),10));
//geologe einrechnen
if (HeadDiv.innerHTML.match('img/geologe_ikon.gif') != null) resUpdate['UniSpeed'] *= 1.1;
resUpdate['OnStart'] = new Array();
resUpdate['Element'] = new Array();
resUpdate['ElementInfo'] = new Array();
resUpdate['Stufe'] = new Array(0,0,0);
resUpdate['StartTime'] = (new Date).getTime();
resUpdate['GrundPro'] = new Array(20,10,0);
resUpdate['Faktor'] = new Array(30,20,10);
resUpdate['Speicher'] = new Array(0,0,0);
resUpdate['Farbe'] = new Array(ogs.load('color_met'),ogs.load('color_kris'),ogs.load('color_deut'))
resUpdate['Temp'] = 0;
resUpdate['ProdFaktor'] = 1;
resUpdate['OverLib'] = new Array(false,false,false);
var temperatur = ogs.array.split(ogs.load('temperatur'),'|','&');
for (var i = 0; i < temperatur.length; i++)
{
if (temperatur[i][0] == ogs.planetliste[0]['Aktiv']['ID'])
{
resUpdate['Temp'] = temperatur[i][1];
break;
}
}
var runupdate = false;
var resZellen = document.getElementById('resources').rows[2].cells;;
for (var i = 0; i < 3; i++)
{
resUpdate['OnStart'][i] = InInt(resZellen[i].innerHTML);
resUpdate['Element'][i] = resZellen[i];
resUpdate['ElementInfo'][i] = document.getElementById('resources').rows[0].cells[i].getElementsByTagName('img')[0];
}
var prod = resZellen[4].innerHTML.replace(/<[^<]*>/g,'').split('/');
prod[0] = InInt(prod[0],10);
prod[1] = InInt(prod[1],10);
if (prod[0] < 0)
resUpdate['ProdFaktor'] = Math.round(100*prod[1]/(prod[1]-prod[0])) / 100;
else if (prod[1] == 0)
resUpdate['ProdFaktor'] = 0;
else
resUpdate['ProdFaktor'] = 1.00;
var buildings = ogs.array.split(ogs.load('buildings'),'|','&');
for (var i = 0; i < buildings.length; i++)
{
if (buildings[i][0] == ogs.planetliste[0]['Aktiv']['ID'])
{
buildings = ogs.array.split(buildings[i][1],':','=');
for (var i = 0; i < buildings.length; i++)
{
if (0 < buildings[i][0] && buildings[i][0] < 4)
{
resUpdate['Stufe'][buildings[i][0]-1] = buildings[i][1];
runupdate = true;
}
if (21 < buildings[i][0] && buildings[i][0] < 25)
{
resUpdate['Speicher'][buildings[i][0]-22] = buildings[i][1];
}
}
break;
}
}
function updateRes()
{
var t = (new Date).getTime();
for (var i = 0; i < 3; i++)
{
var resprod = Math.floor(resUpdate['ProdFaktor'] * resUpdate['UniSpeed'] * Math.floor(resUpdate['GrundPro'][i] + resUpdate['Faktor'][i] * resUpdate['Stufe'][i] * Math.pow(1.1, resUpdate['Stufe'][i])));
if (i == 2) resprod = Math.floor(resprod * (-0.002 * resUpdate['Temp'] + 1.28));
var resneu = resprod * (t-resUpdate['StartTime']) / 3600000;
resneu = Math.floor(resneu) + resUpdate['OnStart'][i]
var speicher = 50000 * Math.ceil(1 + Math.pow(1.6,resUpdate['Speicher'][i]));
resneu = Math.max(resUpdate['OnStart'][i],Math.min(speicher,resneu));
if (speicher <= resneu)
resUpdate['Farbe'][i] = '#ff0000';
resUpdate['Element'][i].innerHTML = '<font color="'+resUpdate['Farbe'][i]+'">'+TausenderZahl(resneu)+'</font>';
if (!resUpdate['OverLib'][i])
{
resUpdate['OverLib'][i] = true;
ogs.addOverLib(resUpdate['ElementInfo'][i],'<table width=\'100%\'><tr><td><table width=\'100%\'><tr><th>Speicher</th><th style=\'text-align: right;\'><span style=\'color: '+resUpdate['Farbe'][i]+';\' id=\'ogs_res_now_'+i+'\'>'+TausenderZahl(resneu)+'</span></th></tr><tr><th>Max</th><th style=\'text-align: right;\'>'+TausenderZahl(speicher)+'</th></tr><tr><th>Res / h</th><th style=\'text-align: right;\'>'+TausenderZahl(resprod)+'</th></tr><tr><th>Voll in</th><th style=\'text-align: right;\'><span id=\'ogs_res_time_'+i+'\'>'+ogs.time.duration(Math.max(0, (resprod == 0) ? 0 : Math.floor((speicher - resUpdate['OnStart'][i]) / resprod * 3600 - (t-resUpdate['StartTime']) / 1000)))+'</span></th></tr></table></td></tr></table>');
}
var el = document.getElementById('ogs_res_time_'+i);
if (el) el.innerHTML = ogs.time.duration(Math.max(0,(resprod == 0) ? 0 : Math.floor((speicher - resUpdate['OnStart'][i]) / resprod * 3600 - (t-resUpdate['StartTime']) / 1000)));
el = document.getElementById('ogs_res_now_'+i);
if (el) el.innerHTML = TausenderZahl(resneu);
}
}
updateRes();
//nur wenn es produktion gibt sprich minen
if (runupdate) window.setInterval(updateRes, 333);
}
}
