Back to list
0000 | /* OGAME TRANSFERT
0001 |
0002 | Creation (MM/JJ/AAAA): 12/10/2007
0003 | Gillou
0004 | http://www.vbc3.com/script/ogametransfert.user.js
0005 | http://userscripts.org/scripts/show/23500
0006 |
0007 | Script under Creative Commons licence (http://creativecommons.org/licenses/by-nc-nd/2.0/fr/deed.en)
0008 |
0009 | Supported Ogame domain :
0010 | - fr
0011 | - org
0012 | - it : Thanks to Fiox for the translation
0013 | */
0014 |
0015 |
0016 |
0017 |
0018 | // ==UserScript==
0019 | // @name           OGame Transfert
0020 | // @namespace      V0.8 Compatible Ogame V0.81
0021 | // @description    Management of tranfers, Empire view, Global resources view
0022 | // @include        http://uni*.ogame.*
0023 | // ==/UserScript==
0024 |
0025 |
0026 |
0027 |
0028 |
0029 | /* PARAMETRES DE MISE A JOUR (A NE PAS MODIFIER!!!)
0030 |  -------------------------------------------------- */
0031 |
0032 | var C_ScriptName = 'OgameTransfert';                                    // Nom du script
0033 | var C_ScriptVersion = '0.8 beta';                                       // Version du script pour les mises a jour majeures
0034 | var C_ScriptBuild = '016';                                              // Sous-version du script pour les mises a jour mineures
0035 | var C_ScriptDate = '09/30/2008';                                        // Date de la publication (MM/JJ/AAAA)
0036 |
0037 | var Counter = new Date();
0038 | CounterStart = Counter.getTime();
0039 |
0040 | /* DECLARATIONS GLOBALES
0041 |    -------------------------------------------------- */
0042 |
0043 | // Prototypes : Informations sur une planete
0044 | function P_Planet() {
0045 |   this.Id = '';
0046 |   this.Name = '';
0047 |   this.Session = '';
0048 |   this.Type = '';
0049 |   this.Url = '';
0050 |   
0051 |   this.Galaxy = '';
0052 |   this.System = '';
0053 |   this.Planet = '';
0054 |   
0055 |   this.UsedSpace = 0;
0056 |   this.TotalSpace = 0;
0057 |   this.Diameter = 0;
0058 |   this.MinTemperature = 0;
0059 |   this.MaxTemperature = 0;
0060 |   this.ImageUrl = '';
0061 |   this.Update = '';
0062 | }
0063 |
0064 | // Prototypes : Ressources
0065 | function P_Resources() {
0066 |   this.Metal = '';
0067 |   this.Crystal = '';
0068 |   this.Deuterium = '';
0069 |   this.FreeEnergy = '';
0070 |   this.TotalEnergy = '';
0071 |   this.MetalOver = false;
0072 |   this.CrystalOver = false;
0073 |   this.DeuteriumOver = false;
0074 |   this.EnergyOver = false;
0075 |   this.Update = '';
0076 | }
0077 |
0078 | // Prototypes : Pourcentage d'utilisation des batiments (page ressources)
0079 | function P_Pourcent() {
0080 |   this.rate = '';
0081 |   this.Metal = '';
0082 |   this.Crystal = '';
0083 |   this.Deuterium = '';
0084 |   this.Solar = '';
0085 |   this.Fusion = '';
0086 |   this.Ship212 = '';
0087 |   this.Update = '';
0088 | }
0089 |
0090 | // Prototypes : Production horaire (page ressources)
0091 | function P_Production() {
0092 |   this.Metal = 0;
0093 |   this.Crystal = 0;
0094 |   this.Deuterium = 0;
0095 |   this.MetalMax = 0;
0096 |   this.CrystalMax = 0;
0097 |   this.DeuteriumMax = 0;
0098 |   this.Update = '';
0099 | }
0100 |
0101 | // Prototypes : Construction (batiment,recherche,flotte,defense)
0102 | function P_Construction(Id,Metal,Crystal,Deuterium,Energy,PlanetType,Group0,Element0,Level0,Group1,Element1,Level1,Group2,Element2,Level2,Group3,Element3,Level3) {
0103 |   this.Id = Id;
0104 |   this.Name = null;
0105 |   
0106 |   // Cout
0107 |   this.Metal = Metal;
0108 |   this.Crystal = Crystal;
0109 |   this.Deuterium = Deuterium;
0110 |   this.Energy = Energy;
0111 |   
0112 |   // Pre-requis de construction
0113 |   this.PlanetType = PlanetType;
0114 |   this.Group0 = Group0;
0115 |   this.Element0 = Element0;
0116 |   this.Level0 = Level0;
0117 |   this.Group1 = Group1;
0118 |   this.Element1 = Element1;
0119 |   this.Level1 = Level1;
0120 |   this.Group2 = Group2;
0121 |   this.Element2 = Element2;
0122 |   this.Level2 = Level2;
0123 |   this.Group3 = Group3;
0124 |   this.Element3 = Element3;
0125 |   this.Level3 = Level3;
0126 | }
0127 |
0128 | // Prototypes : Description de la construction
0129 | function P_ConstructionDescription() {
0130 |   this.Level = '';
0131 |   this.UC = 0;
0132 | }
0133 |
0134 | // Prototypes : Description de la recherche
0135 | function P_ResearchDescription() {
0136 |   this.Level = '';
0137 |   this.UC = 0;
0138 |   this.Update = '';
0139 | }
0140 |
0141 | // Prototypes : Liste de construction des vaisseaux et defenses
0142 | function P_FleetsDefensesUC() {
0143 |   this.List = '';
0144 |   this.Update = 0;
0145 | }
0146 |
0147 | // Prototypes : Transfert
0148 | function P_Transfer() {
0149 |   this.Checked = false;
0150 |   this.OriginePlanet = 0;
0151 |   this.OrigineSystem = 0;
0152 |   this.OrigineGalaxy = 0;
0153 |   this.Metal = 0;
0154 |   this.Crystal = 0;
0155 |   this.Deuterium = 0;
0156 |   this.Speed = 0;
0157 |   this.TransportShip = 0;
0158 |   this.Recycler = 0;
0159 |   this.State = 0;
0160 | }
0161 |
0162 | // Prototypes : Ressources en temps reel
0163 | function P_RealTimeResources() {
0164 |   this.Metal = 0;
0165 |   this.Crystal = 0;
0166 |   this.Deuterium = 0;
0167 | }
0168 |
0169 | // Prototypes : Ressources en temps reel
0170 | function P_PlanetName() {
0171 |   this.Name = '';
0172 |   this.Id = '';
0173 | }
0174 |
0175 | // Prototypes : Overlib
0176 | function P_OverLib() {
0177 |   this.Text = '';
0178 |   this.Link = '';
0179 | }
0180 |
0181 | // Type de planete;
0182 | var C_Planet = 0;
0183 | var C_Moon = 1;
0184 | var C_All = 2;
0185 |
0186 | // Constantes des constructions
0187 | const C_Buildings = 0;
0188 | const C_Research = 1;
0189 | const C_Fleets = 2;
0190 | const C_Defenses = 3;
0191 |
0192 | var i,j,k // Variables d'incrementation
0193 |
0194 | // Separateur pour le parsage des donnees memorisees via GreaseMonkey
0195 | var Separator = new RegExp("[|]+", "g");
0196 | var KeySeparator = new RegExp("[=]+", "g");
0197 |
0198 | // Mise en memoire des variables memorisees via GreaseMonkey
0199 | var Get = new String();
0200 |
0201 | // Tableau des comptes
0202 | var A_Account = new Array();
0203 |
0204 | // Tableau des informations memorisees via GreaseMonkey
0205 | var A_Planet = new Array();
0206 | var A_PlanetName = new Array();
0207 | var A_PlanetOrder = new Array();
0208 | var A_PlanetOrderIndex = new Array();
0209 | var PlanetOrderIndex = 0;
0210 | var A_Resources = new Array();
0211 | var A_Pourcent = new Array();
0212 | var A_Production = new Array();
0213 | var A_Buildings = new Array();
0214 | var A_BuildingsUpdate = new Array();
0215 | var A_Research = new Array();
0216 | var ResearchUpdate = '-'; // Variable de mise a jour des recherches
0217 | var A_Fleets = new Array();
0218 | var A_FleetsUpdate = new Array();
0219 | var A_Defenses = new Array();
0220 | var A_DefensesUpdate = new Array();
0221 | var A_FleetsDefensesUC = new Array();
0222 | var A_Transfer = new Array();
0223 |
0224 | // Tableau des ressources en temps reel
0225 | var A_RealTimeResources = new Array();
0226 |
0227 | // Tableau des actions a realiser
0228 | var A_Actions = new Array();
0229 | var NotRun = false; // Pas de report du lancement de l'action
0230 |
0231 | // Tableau des parametres d'affichage des colonnes du tableau de ressources
0232 | var A_ShowHideColomn = new Array();
0233 |
0234 | // Tableau pour le transfert des ressources
0235 | var A_TransferMetal = new Array();
0236 | var A_TransferCrystal = new Array();
0237 | var A_TransferDeuterium = new Array();
0238 |
0239 | // Code pour input numerique afin d'empecher la saisi de texte
0240 | var NoStringInput = 'onkeypress="if((event.keyCode < 48 && event.keyCode != 39 && event.keyCode != 37 && event.keyCode != 46 && event.keyCode != 8) || event.keyCode > 57) event.returnValue = false; if((event.which < 48 && event.which != 46 && event.which != 8 && event.which != 37 && event.which != 39) || event.which > 57) return false;"'; 
0241 |
0242 | // Variable d'activation de la description avancee des erreurs
0243 | var Debug = true; // Initialisation de la valeur, cette valeur est reparametree lors du chargement des parametres generaux
0244 | const DebugAdvanced = false;
0245 |
0246 | // Serveur (clipboard, image php, update)
0247 | const C_Server = 'http://www.vbc3.com/script/';
0248 |
0249 | // Constante contenant le code en base 64 des images (Prog de conversion : http://lggillou.vbc3.com/download.php?Programme=14)
0250 | const C_ImgNext = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAQCAIAAAEMoeOjAAAABnRSTlMA/wAAAP+JwC+QAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAACXRFWHRDb21tZW50AACJKo0GAAABlUlEQVR4nGOwanT6z/AfiBjUS+UUG+X8zpgxQAXibzoUvvZkUCiVCDhqDRQIvWoOEgbqUClWArKa36eA+BDVCHMgyuC6GIBmAA0Fmg40D2gBA0Qb3BSQed577SGaIRLIXJD1eTc8g64YuZ40hpiLzAXprnodnPXQU7FYGKIbmQuSNqnQRzYcmcugEa0I5wARMpfBYbORSLIAnI/MZQg+bxZwzky+SATCR+YylN7xS7rh4HJZS7pGFMhH5jJUffDLeOIaf9rJ7gjIFchchraPsbmPPaOOQsMRmcuQfsot4XAA3C3IXAaHfmtkPyBzQd63mGkgmSeKrAI5NHDJgnS67jHyP20ZvN9RqoAfUycuWVCEZd51TbhhF3bN1PuCnv9JG9kKEbg0HllQCqx9GlT8wCfzrkf0NbuAS8aOZ7Vcjpup1IISCh5ZkGsbP0ZVvg7Kf+qWfM8q5oa9/z4b1RIZuGtxyYJ0lt73rXkXWv4yJuqYt3auApo/ccmCdBaejknZH6SRo4gZgHhkQTp5wvmwRglEJy5ZADfU09qGYTEfAAAAAElFTkSuQmCC';
0251 | const C_ImgPrevious = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAQCAIAAAEMoeOjAAAABnRSTlMA/wAAAP+JwC+QAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAACXRFWHRDb21tZW50AACJKo0GAAABl0lEQVR4nGP4z/DfqtEJSDKo1Cqpl8oVP/ABsv+DBKKv2Tme1QLxoo55QxTVvAsF8aUK+CF8/9OWUNUQBBRlgCiD62IAmgE0FGg60DygBQwQbXBTEPpT9gdBTEXmgpXvs0m+Z1X5GiqNzAVJy1aIeF/QS7hhp1AqgcZFGC6ZJ4psOISLkOYJ50P2B5ALldPIUSw8HQOXgHBBctq5CuUvY0rv+0Ik4FwG1RKZmBv2+U/dGj9GASWQuQwux80CLhln3vWofRoElEPmgj160ibsmmnmXVeImXAu1C3B+x1d9xjB3QLhIvxgMdMA2Q9ALkrcQJBJhb5DvzVyUGCVRdGpUqyUcDig+X1K+ik3TJ1oslCdisXCUUedsh565j72rHod3PYxFlknVlkGxUY5uyP6fmfM4k87xd90yHjiWvjas+qDHzDVgPTglgXZKV0j6nrS2OWyVtAVo6QbDnk3PEvv+EFSBB5ZhD/li0QCjloHnDMLvWoefN4MrhOXLHrYiiQLeO+1d9hshDVskWWxxAooZUUr4ooVuCwAp/3T2vUu6jIAAAAASUVORK5CYII=';
0252 | const C_ImgPlay = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAQCAIAAAE42CK/AAAABnRSTlMA/wAAAP+JwC+QAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAACXRFWHRDb21tZW50AACJKo0GAAABPElEQVR4nGP4z/AfiEDQ7og+mJHxxBVEB5wzg0okHA4A0RrRilDFwefN5ItEQKyqD37xp51ArPRTbgijHDYbiSQLQPhQodI7fkk3HFwua0nXiEKF2j7G5j72jDrqhKSx3xquCyRg1eiEzvfea4/gK5RKhF41DzhqjeDn3fAMumLketIYxFcvlSt87Rl/08HvjJlioxxIf9Xr4KyHnorFwlDzmt+nqBQrIcw3qdBHcThQyGKmgWSeKLJD0FW47jHyP20ZvN9RqoAfiwqgszLvuibcsAu7Zup9Qc//pI1shQiKCqBDa58GFT/wybzrEX3NLuCSseNZLZfjZiq1SghbGj9GVb4Oyn/qlnzPKuaGvf8+G9USGRR3lN73rXkXWv4yJuqYt3auAhaXFp6OSdkfpJGjiNMvPOF8WL0KRAC2SRnFpr5kKQAAAABJRU5ErkJggg==';
0253 | const C_ImgStop = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAABnRSTlMA/wAAAP+JwC+QAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAACXRFWHRDb21tZW50AACJKo0GAAABRklEQVR4nGWSvUpDQRCF9x18AVMLFkoaEQ2BgBdDlBQW/hCwi6AQgo2QIo2VrQ/ho4iNiIQrGNDCysaIffINZxiXG5jl7p49M3PO3E3zNK8NVxLr4rOwj52uyuJ2dmanw5fN3lvDr/iMZ8f3vwPnEaSn/ef187LRn7ZGX93EbvjRZmcFSNDu4e/Ocg4etwlqwjotdwmvfDSpA9GJKpFkF5yv3zuC6A1q7ekq6OanQwDRwITLTSVMY3SO5lReu1xNQruvG+qvslYquCHJL6Q1R1FlF8sowrbGzRQOZALUL8gSKhPyYXLlQ6Jz6b2nJl1ieoT7y9miSnywURbizLcSIPH3gnoy2Yl/EIrdNiunymx/uleh4trHwcp4Ld4UPN7G4LvIqRqTJ4TKSlXmAy9m9z8+jbZChZdTmSlhCUyKYEcsvxPhCjEXtRRx4iRN7Q8AAAAASUVORK5CYII=';
0254 | const C_ImgUp = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAIAAAHDTwvzAAAABnRSTlMA/wAAAP+JwC+QAAAACXBIWXMAAAsSAAALEgHS3X78AAAACXRFWHRDb21tZW50AACJKo0GAAABLUlEQVR4nGP4z/BfsVGOwarRSb1UjgHIAyIGhVIJoACIF3DUOv6mg0qxElQKqgAIg64YZT30BDGBSiEaoHogyPWksd8ZM8ViYYQW7732oVfN8254Fr72rHod3Pw+xaRCH6FDpVYJ3RIgkq0QcTyr5b/PBkVCqoDf+4Je9DW75HtWUce8oRKSeaL+py0TbtgVP/CpfB1U8y40ZX8Q1IkQVwI9CWGjOxeOpGtEXY6b2R3RVy2RwZRF0SBfJOJ/0sblslbAJeP4004xN+yjjjpp5ypg0SCSLBC83zHgnFnYNdOkGw6Zdz0ynrjmP3XLfexZ/jIm4XCARo4iVINGtKLFTAOHzUaue4yCz5tl3nUtveNX+zSo6oNf48eoto+xpfd900+5FZ6Ocei35gnnAwAz1tn2SifjEgAAAABJRU5ErkJggg==';
0255 | const C_ImgDown = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAJCAIAAAHDTwvzAAAABnRSTlMA/wAAAP+JwC+QAAAACXBIWXMAAAsSAAALEgHS3X78AAAACXRFWHRDb21tZW50AACJKo0GAAABL0lEQVR4nGOwanRSL5Vj+M/wX6VWiQHIUyiVAPH+M4Bh1DHv6Gt2UgX8ICmILJAEySTfs/K+oAdVBkcgmLI/qOZdaOXroOIHPgk37PxPW0rmiSJU+e+zcTyrJVshAtUBMRjiDqDxEBtAlphU6De/T6l6HVz42jPvhmfoVXPvvfZQO1SKlbIeesbfdAi6YhRw1BphORApFgv7nTFzPWmM4iqoXKMcinN5wvkc+q0LT8ekn3Irve/b9jG28WNU1Qe/2qdBpXf8Mu+6Bp83c91j5LDZyGKmgUa0ItQkjRzFhMMB5S9jch975j91y3jimnnXI+mGQ9g104BzZsH7HUWSBdCtBiLtXIWoo04xN+zjTzsFXDJ2uazlf9JGvkgEPQTRkGqJjN0RfZfjZtI1opiyAH9n2abU/F0QAAAAAElFTkSuQmCC';
0256 | const C_ImgLeft = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAIAAAHJlJL6AAAABnRSTlMA/wAAAP+JwC+QAAAACXBIWXMAAAsSAAALEgHS3X78AAAACXRFWHRDb21tZW50AACJKo0GAAAAbUlEQVR4nGP4z/CfwarRiUGlVkmhVIIBxHU8qwWi/ffZqJfKgViyFSIgJUCWdq4Cg2qJTMwNewaX42YBl4zBCk/agCggUiwWjjrqBNKl2Chnd0Tf74xZ/GknqLnSNaKuJ41dLmtB+RAkXwQyGwA7gjOamDgP9wAAAABJRU5ErkJggg==';
0257 | const C_ImgRight = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAIAAAHJlJL6AAAABnRSTlMA/wAAAP+JwC+QAAAACXBIWXMAAAsSAAALEgHS3X78AAAACXRFWHRDb21tZW50AACJKo0GAAAAbElEQVR4nGOwanRi+A+ECqUSio1yYKbfGTMQ1/WkMYinXiqnWCwMYskXiYAol8ta0jWiDPGnneyO6DNEHXUCCQKN8T9pI1sBUgE1LuCSseNZLZfjZiq1SiBTYm7Y+++zUS2RgarXzlWAKAYiANa6M5quy1RnAAAAAElFTkSuQmCC';
0258 |
0259 | // Retour a la ligne
0260 | const C_CRLF = String.fromCharCode(13)+String.fromCharCode(10);
0261 |
0262 |
0263 |
0264 |
0265 |
0266 | /* TEXTE DES LANGUES
0267 |    -------------------------------------------------- */
0268 |
0269 | // Detection de la langue
0270 | var Host = window.location.host;
0271 | var Language, OgameExtension = '';
0272 | var A_OgameExtension = Host.split('.');
0273 | var SupportedExtension = true;
0274 | j = 0;
0275 | for (i=0; i<A_OgameExtension.length;i++) {
0276 |   if (A_OgameExtension[i] == 'ogame') {
0277 |     j = i+1;
0278 |   }
0279 |   else if (j > 0) {
0280 |     OgameExtension += '.'+A_OgameExtension[i];
0281 |   }
0282 | }
0283 | if (OgameExtension == '.org') {
0284 |   Language = 0;
0285 | }
0286 | else if (OgameExtension == '.fr') {
0287 |   Language = 1;
0288 | }
0289 | else if (OgameExtension == '.it') {
0290 |   Language = 2;
0291 | }
0292 | else if (OgameExtension == '.lt') {
0293 |   Language = 3;
0294 | }
0295 | else if (OgameExtension == '.com.es') {
0296 |   Language = 5;
0297 | }
0298 | else if (OgameExtension == '.com.tr') {
0299 |   Language = 4;
0300 | }
0301 | else {
0302 |   Language = 0;
0303 |   SupportedExtension = false;
0304 | }
0305 |
0306 | // Modif proxy
0307 | if (Host == "") {
0308 |   Language = 1;
0309 |   SupportedExtension = true;
0310 | }
0311 |
0312 | // Texte
0313 | // For accented character, use octal code to replace it, use this link (http://www.vbc3.com/script/diacritics.html)
0314 | var A_Language = new Array();
0315 | if (Language == 5) { // ESPAŅOL
0316 |   // Insert your translation here
0317 |   // For accented character, use octal code to replace it, use this link (http://www.vbc3.com/script/diacritics.html)
0318 |   i = 0;
0319 |   A_Language[i] = 'Planeta'; i++;
0320 |   A_Language[i] = 'Luna'; i++;
0321 |   A_Language[i] = 'Metal'; var C_Metal=i; i++;
0322 |   A_Language[i] = 'Cristal'; var C_Crystal=i; i++;
0323 |   A_Language[i] = 'Deuterio'; var C_Deuterium=i; i++;
0324 |   A_Language[i] = 'Energia'; var C_Energy=i; i++;
0325 |   A_Language[i] = 'Materia Oscura'; var C_DarkMatter=i; i++;
0326 |   A_Language[i] = 'Empire'; var C_Empire=i; i++;
0327 |   A_Language[i] = 'Di\341metro'; var C_Diameter=i; i++;
0328 |   A_Language[i] = 'Temperatura'; var C_Temperature=i; i++;
0329 |   A_Language[i] = 'Suma'; var C_Total=i; i++;
0330 |   A_Language[i] = 'Recursos'; var C_Resources=i; i++;
0331 |   A_Language[i] = 'Actualizar'; var C_Update=i; i++;
0332 |   A_Language[i] = 'Si'; var C_Yes=i; i++;
0333 |   A_Language[i] = 'No'; var C_No=i; i++;
0334 |   A_Language[i] = 'Mostrar'; var C_Show=i; i++;
0335 |   A_Language[i] = 'Ocultar'; var C_Hide=i; i++;
0336 |   // Required text for analysis, include spaces, must be exact
0337 |   A_Language[i] = 'Producci\363n de recursos en'; var C_ResourcesTableHeader=i; i++; // Beginning of the first row from the resources table (resources page) 
0338 |   A_Language[i] = 'Requisitos'; var C_Require=i; i++; // First word of the right cell in tree technology table 
0339 |   A_Language[i] = 'Factor de producci\363n:'; var C_ProductionRate=i; i++; // Text before production rate number in resources page
0340 |   // ValidateBuilding
0341 |   A_Language[i] = 'Insuficientes n\372mero de campos libres'; var C_NotEnoughFreeField=i; i++;
0342 |   A_Language[i] = 'La Base lunar no se esta construyendo'; var C_LunarBaseNotBuilt=i; i++;
0343 |   A_Language[i] = 'No disponible en planta'; var C_NotOnPlanet=i; i++;
0344 |   A_Language[i] = 'No disponible en la luna'; var C_NotOnMoon=i; i++;
0345 |   // AddLink
0346 |   A_Language[i] = 'Key words :\n\nSome part can be replaced keywords.\n\n'+
0347 |   '[session] To get the id of the current session\n'+
0348 |   '[host] To get the domain of the ogame universe\n'+
0349 |   '[Planet name] To get the id of one of your planets\n\n'+
0350 |   'Ex: Creation of a link to the \'overview\' page of the planet named \253Homeworld\273 :\n'+
0351 |   'http://[host]/game/index.php?page=overview&session=[session]&cp=[Homeworld]\n\n'+
0352 |   'Become (for universe 10) :\n'+
0353 |   'http://uni10.ogame.org/game/index.php?page=overview&session=2943046dc47f&cp=34317957'; var C_KeyWordsInformations=i; i++;
0354 |   // SaveParameter
0355 |   A_Language[i] = 'Hay un error en el valor de la transparencia.\nEl valor debe de ser entre 1 and 100'; var C_TransparencyError=i; i++;
0356 |   A_Language[i] = 'El valor de la fila no es correcta.\nEl valor debe de ser entre 1 y '; var C_EmpireRowError=i; i++;
0357 |   A_Language[i] = 'El nombre del enlace hacia el menu imperio debe contener al menos un caracter'; var C_EmpireTxtError=i; i++;
0358 |   A_Language[i] = 'El tama\361o de los iconos de la Vista Empire debe de ser superior a 1 pixel.'; var C_EmpireSizeIconError=i; i++;
0359 |   A_Language[i] = 'El enlace '; var C_LinkPositionError1=i; i++;
0360 |   A_Language[i] = 'No se puede guardar.\nVerique el nombre, enlace y el n\372mero de fila.\nEl vinculo de la fila debe de ser entre 1 y '; var C_LinkPositionError2=i; i++;
0361 |   A_Language[i] = 'Informaci\363n ha sido grabada. \nLa pagina no se actualizara.'; var C_SaveParameterError=i; i++;
0362 |   // ShowHideTable
0363 |   A_Language[i] = 'Ocultar Informaci\363n'; var C_RollUp=i; i++;
0364 |   A_Language[i] = 'Mostrar Informaci\363n'; var C_Unfold=i; i++;
0365 |   // Options : General parameters
0366 |   A_Language[i] = 'Parametros Generales'; var C_MainOption=i; i++;
0367 |   A_Language[i] = 'Mostrar los miles con k'; var C_ShowInKilo=i; i++;
0368 |   A_Language[i] = 'Show seconds for the upper update at 24h'; var C_ShowSecondForUpperUpdateTimeInDay=i; i++;
0369 |   A_Language[i] = 'Borrar enlace \'Casino de los Oficiales\''; var C_DeleteOfficerLink=i; i++;
0370 |   A_Language[i] = 'Borrar enlace \'Mercader\''; var C_DeleteTraderLink=i; i++;
0371 |   A_Language[i] = 'Posici\363n'; var C_Coordinates=i; i++;
0372 |   A_Language[i] = 'Nombre'; var C_Name=i; i++;
0373 |   A_Language[i] = 'Estatus'; var C_Status=i; i++;
0374 |   A_Language[i] = 'Puntos'; var C_Points=i; i++;
0375 |   A_Language[i] = 'Membership'; var C_MemberShip=i; i++;
0376 |   A_Language[i] = 'Enlinea'; var C_Online=i; i++;
0377 |   A_Language[i] = 'Ordenar lista de Miembros de la Alianza'; var C_SortMember=i; i++;
0378 |   A_Language[i] = 'Ascendente'; var C_Increasing=i; i++;
0379 |   A_Language[i] = 'Descendente'; var C_Lessening=i; i++;
0380 |   A_Language[i] = 'Orden de la lista de Miembros de la Alianza'; var C_SortOrder=i;i++;
0381 |   A_Language[i] = 'Agregar Ayuda a todos los enlaces'; var C_AddToolTip=i; i++;
0382 |   A_Language[i] = 'Mostrar un mensaje que le pide que actualice la pagina de recursos en caso de modificaci\363n de un nuevo edificio que fue construido'; var C_ShowRequestToUpdateResourcesPage=i; i++;
0383 |   A_Language[i] = 'Mostrar un enlace a todas las paginas de actualizaci\363n automatica.'; var C_ShowAutoUpdate=i; i++;
0384 |   A_Language[i] = 'Utilizar un tiempo al azar para actualizar las paginas de forma automatica (entre 2 y 10s)'; var C_UseRandomUpdateTime=i; i++;
0385 |   A_Language[i] = 'Mostrar cuadro en la parte inferior para actualizar el Ogame Transfer'; var C_AddImageVersion=i; i++;
0386 |   A_Language[i] = 'Mostrar los mensajes de error (depuraci\363n)'; var C_Debug=i; i++;
0387 |   // Options : Display options
0388 |   A_Language[i] = 'Opciones de Visualizaci\363n'; var C_ScreenOption=i; i++;
0389 |   A_Language[i] = 'Mostrar la lista desplegable de los planetas'; var C_ShowHeaderPlanetList=i; i++;
0390 |   A_Language[i] = 'Mostrar la tabla de los recursos por defecto'; var C_ShowHeaderResourcesList=i; i++;
0391 |   A_Language[i] = 'A\361ade el total de recursos a la tabla de los recursos por defecto'; var C_AddResourcesTotal=i; i++;
0392 |   A_Language[i] = 'Activar la posibilidad de cambiar la posici\363n del encabezado (la lista desplegable de los planetas)'; var C_ChangeHeaderPosition=i; i++;
0393 |   A_Language[i] = 'Posici\363n de la cabecera (en el css)'; var C_HeaderPosition=i; i++;
0394 |   A_Language[i] = 'To be sure that your position is taken in consideration, you can add \253!important\273 after the position.'; var C_PositionInformations=i; i++;
0395 |   A_Language[i] = 'Activar la posibilidad de cambiar la posici\363n del encabezado.'; var C_ChangeContentPosition=i; i++;
0396 |   A_Language[i] = 'Posici\363n de la cabecera (en css)'; var C_ContentPosition=i; i++;
0397 |   A_Language[i] = 'Agregar codigo CSS en todas las paginas'; var C_AddCssCode=i; i++;
0398 |   A_Language[i] = 'Borrar codigo CSS'; var C_RemoveCssCode=i; i++;
0399 |   A_Language[i] = 'Agregar codigo JavaScript en todas la paginas'; var C_AddJSCode=i; i++;
0400 |   A_Language[i] = 'Borrar codigo JavaScript code'; var C_RemoveJSCode=i; i++;
0401 |   A_Language[i] = 'Escribe tu codigo aqui'; var C_WriteCode=i; i++;
0402 |   // Options : Resources table
0403 |   A_Language[i] = 'Tabla de Recursos'; var C_ResourcesTableOption=i; i++;
0404 |   A_Language[i] = 'Mostrar los recursos de la tabla'; var C_ShowHeaderResourcesTable=i; i++;
0405 |   A_Language[i] = 'Mostrar el nombre del Planeta'; var C_ShowPlanetName=i; i++;
0406 |   A_Language[i] = 'Mostrar las cordenas del Planeta'; var C_ShowCoordinates=i; i++;
0407 |   A_Language[i] = 'A\361adir la columna total de los recursos'; var C_ShowTotal=i; i++;
0408 |   A_Language[i] = 'Mostrar columna de la materia oscura'; var C_ShowDarkMatter=i; i++;
0409 |   A_Language[i] = 'Mostrar el tiempo transcurrido desde la ultima actualizaci\363n'; var C_ShowTimeUpdate=i; i++;
0410 |   A_Language[i] = 'Mostrar unicamente los recursos de sesion activa'; var C_ShowResourcesOnlyActiveSession=i; i++
0411 |   A_Language[i] = 'Calcular los recursos en tiempo real'; var C_RealTimeResources=i; i++;
0412 |   A_Language[i] = 'Intervalo de tiempo entre cada calculo'; var C_RealTimeResourcesDelay=i; i++;
0413 |   A_Language[i] = 'Estilo del encabezado del actual planeta (en css)'; var C_HeaderSelectedPlanetStyle=i; i++;
0414 |   A_Language[i] = 'Transparencia de las celdas de los recursos (1 a 100)'; var C_Transparency=i; i++;
0415 |   A_Language[i] = 'Color correspondiente al tiempo transcurrido (en segundos) (el color se utilizara cuando sobrepase los segundos, si es inferior s\363lo llena el tiempo)'; var C_UpdateTimeColor=i; i++;
0416 |   A_Language[i] = 'Y rojo, si el tiempo de actualizaci\363n es superior.'; var C_UpdateTimeRed=i; i++;
0417 |   A_Language[i] = 'Ordenar Planetas'; var C_PlanetOrder=i; i++;
0418 |   A_Language[i] = 'Elige un planeta y utilizar las flechas para cambiar su posici\363n'; var C_PlanetOrderDescription=i; i++;
0419 |   // Options : Empire
0420 |   A_Language[i] = 'Mostrar el enlace Empire'; var C_ShowEmpire=i; i++;
0421 |   A_Language[i] = 'Nombre del enlace Empire'; var C_EmpireLinkName=i; i++;
0422 |   A_Language[i] = 'N\372mero de fila en el menu de ogame (Posici\363n)'; var C_EmpireMenuRow=i; i++;
0423 |   A_Language[i] = 'Tama\361o en pixeles de los planetas en miniatura'; var C_EmpireIconSize=i; i++;
0424 |   A_Language[i] = 'Ocultar la tabla de recursos por defecto'; var C_HideDefaultResourcesTable=i; i++;
0425 |   A_Language[i] = 'Fuerza la pantalla de la tabla de los recursos generados.'; var C_ForceDisplayHeaderResourcesTableWithEmpire=i; i++;
0426 |   // Options : Transfer
0427 |   A_Language[i] = 'Transportar'; var C_Transfer=i; i++;
0428 |   A_Language[i] = 'Utilizar Resultado de los recursos del calculo en tiempo real'; var C_UseRealTimeResources=i; i++;
0429 |   A_Language[i] = 'Fuerza de la pantalla de los recursos calculados en tiempo real (importante el uso de la CPU)'; var C_ForceResourcesTransferTableUpdate=i; i++;
0430 |   A_Language[i] = 'Mostrar un formulario si la transferencia est\341 en progreso'; var C_ShowTransferTableIfActiveTransfer=i; i++;
0431 |   A_Language[i] = 'Velocidad promedio de las naves'; var C_TransferRatioSpeed=i; i++;
0432 |   // Options : Additional links
0433 |   A_Language[i] = 'Enlace'; var C_LinkOption=i; i++;
0434 |   A_Language[i] = 'Nombre del enlace'; var C_LinkName=i; i++;
0435 |   A_Language[i] = 'Direcci\363n del enlace'; var C_LinkUrl=i; i++;
0436 |   A_Language[i] = 'El n\372mero de fila en el men\372'; var C_LinkPosition=i; i++;
0437 |   A_Language[i] = 'Abre el enlace en una nueva ventana'; var C_LinkNewWindow=i; i++;
0438 |   A_Language[i] = 'Texto a mostrar cuando se pase el mouse arriba del enlace'; var C_LinkTitle=i; i++;
0439 |   A_Language[i] = 'Agregar Enlace'; var C_AddLink=i; i++;
0440 |   A_Language[i] = 'Enlace n\260'; var C_LinkNumber=i; i++;
0441 |   A_Language[i] = 'Borrar'; var C_Delete=i; i++;
0442 |   // Options
0443 |   A_Language[i] = 'Guardar Cambios'; var C_Save=i; i++;
0444 |   A_Language[i] = 'Panel de Control'; var C_ControlPanel=i; i++;
0445 |   // Automatic update
0446 |   A_Language[i] = 'Empezar Actualizar'; var C_StartUpdate=i; i++;
0447 |   A_Language[i] = 'Detener Actualizar'; var C_StopUpdate=i; i++;
0448 |   A_Language[i] = 'Detener actualizar automaticamente'; var C_UpdateStopInformations=i; i++;
0449 |   A_Language[i] = 'Actualiza todas las paginas en Automatico'; var C_UpdateInformations=i; i++;
0450 |   // Resources table
0451 |   A_Language[i] = 'Siguiente planeta'; var C_NextPlanet=i; i++;
0452 |   A_Language[i] = 'Anterior planeta'; var C_PreviousPlanet=i; i++;
0453 |   A_Language[i] = 'Actualiza la pagina actual en todos los planetas'; var C_UpdatePages=i; i++;
0454 |   // Empire
0455 |   A_Language[i] = 'Tipo'; var C_Type=i; i++;
0456 |   A_Language[i] = 'N\372mero de Campos'; var C_FieldNumber=i; i++;
0457 |   A_Language[i] = '/'; var C_To=i; i++;
0458 |   A_Language[i] = 'Aplicar'; var C_Apply=i; i++;
0459 |   A_Language[i] = 'Imagen no grabada'; var C_ImageNotSaved=i; i++;
0460 |   A_Language[i] = 'Informaci\363n Principal'; var C_MainInformations=i; i++;
0461 |   A_Language[i] = 'Producci\363n por Hora'; var C_HourProduction=i; i++;
0462 |   A_Language[i] = 'Producci\363n por D\355a'; var C_DayProduction=i; i++;
0463 |   A_Language[i] = 'Edificios'; var C_BuildingsTxt=i; i++;
0464 |   A_Language[i] = 'Defensas'; var C_DefensesTxt=i; i++;
0465 |   A_Language[i] = 'Investigaci\363n'; var C_ResearchTxt=i; i++;
0466 |   A_Language[i] = 'Flota'; var C_FleetsTxt=i; i++;
0467 |   A_Language[i] = 'Lista'; var C_List=i; i++;
0468 |   A_Language[i] = 'Naves y defensas bajo construci\363n'; var C_FleetsDefensesUC=i; i++;
0469 |   A_Language[i] = 'Ir a Edificios'; var C_ToBuildings=i; i++;
0470 |   A_Language[i] = 'Ir a Investigaciones'; var C_ToResearch=i; i++;
0471 |   A_Language[i] = 'Ir a Defensas'; var C_ToDefenses=i; i++;
0472 |   A_Language[i] = 'Ir a Hangar'; var C_ToFleets=i; i++;
0473 |   A_Language[i] = 'Energia proporcionada por los satelites solares.'; var C_Ship212Production=i; i++;
0474 |   A_Language[i] = 'N\372mero de satelites solar necesarios'; var C_Ship212NecessaryNumber=i; i++;
0475 |   A_Language[i] = 'Construcci\363n disponible'; var C_ConstructionAvailable=i; i++;
0476 |   A_Language[i] = 'Con recursos del planeta'; var C_WithPlanetResources=i; i++;
0477 |   A_Language[i] = 'Con recursos de todos los planetas'; var C_WithAllPlanetsResources=i; i++;
0478 |   A_Language[i] = 'Hay otra construcci\363n en progreso en este planeta'; var C_OtherBuildingsInConstruction=i; i++;
0479 |   A_Language[i] = 'Hay Otra investigaci\363n en desarrollo en el planeta'; var C_OtherResearchInDevelopment=i; i++;
0480 |   A_Language[i] = 'Costo total de los edificios'; var C_TotalBuildingsCost=i; i++;
0481 |   A_Language[i] = 'Nivel de Costo'; var C_LevelCost1=i; i++;
0482 |   A_Language[i] = ' requiere'; var C_LevelCost2=i; i++;
0483 |   A_Language[i] = 'Cancelar edificio'; var C_StopBuildings=i; i++;
0484 |   A_Language[i] = 'Cancelar investigaci\363n'; var C_StopResearch=i; i++;
0485 |   A_Language[i] = 'Empezar Construcci\363n'; var C_LaunchBuildings=i; i++;
0486 |   A_Language[i] = 'Empezar Investigaci\363n'; var C_LaunchResearch=i; i++;
0487 |   A_Language[i] = 'Build defense'; var C_BuildDefenses=i; i++;
0488 |   A_Language[i] = 'Build ship'; var C_BuildFleets=i; i++;
0489 |   A_Language[i] = 'Tiempo para su Producci\363n'; var C_BuildingTime=i; i++;
0490 |   // Empire : Export
0491 |   A_Language[i] = 'Exportar'; var C_Export=i; i++;
0492 |   A_Language[i] = 'Generador de opciones'; var C_GeneratorOptions=i; i++;
0493 |   A_Language[i] = 'Centrado'; var C_Center=i; i++;
0494 |   A_Language[i] = 'Texto en color'; var C_TextColored=i; i++;
0495 |   A_Language[i] = 'No especial caracter'; var C_NoSpecialCharacter=i; i++;
0496 |   A_Language[i] = 'Tabla'; var C_LayoutInTable=i; i++;
0497 |   A_Language[i] = 'Centrar texto en la tabla'; var C_CenteredTextInTable=i; i++;
0498 |   A_Language[i] = 'Cambiar el tama\361o del texto en la tabla'; var C_ResizeTextInTable=i; i++;
0499 |   A_Language[i] = 'Generar'; var C_Generate=i; i++;
0500 |   A_Language[i] = 'Caracteres'; var C_Characters=i; i++;
0501 |   // Transfer
0502 |   A_Language[i] = 'Transportar Recursos'; var C_TransferResources=i; i++;
0503 |   A_Language[i] = 'Hay algunos recursos que pueden transportarse.'; var C_NoResources=i; i++;
0504 |   A_Language[i] = 'La Transferencia es impossibile. Usted no tiene suficiente de Naves en el planeta.'; var C_NotEnoughShip1=i; i++;
0505 |   A_Language[i] = 'Usted debe revisar todas las paginas para actualizar el n\372mero de flotas.'; var C_NotEnoughShip2=i; i++;
0506 |   A_Language[i] = 'Destino'; var C_Destination=i; i++;
0507 |   A_Language[i] = 'Para enviar'; var C_ToTransfer=i; i++;
0508 |   A_Language[i] = 'Invertir seleci\363n'; var C_InvertSelection=i; i++;
0509 |   A_Language[i] = 'Enviado'; var C_Transfered=i; i++;
0510 |   A_Language[i] = 'Velocidad'; var C_Speed=i; i++;
0511 |   A_Language[i] = 'Reciclador'; var C_NeededRecycler=i; i++;
0512 |   A_Language[i] = 'Estatus de transferencia'; var C_TransferState=i; i++;
0513 |   A_Language[i] = 'Nave Grande'; var C_LargeCargoShip=i; i++; // Abbreviation of Large Cargo Ship
0514 |   A_Language[i] = 'Nave Peque\361a'; var C_SmallCargoShip=i; i++; // Abbreviation of Small Cargo Ship
0515 |   A_Language[i] = 'No se puede transportar recursos hacia el planeta destino.'; var C_NoTransferFromDestinationPlanet=i; i++;
0516 |   A_Language[i] = 'No hay Recicladores.'; var C_NoRecycler=i; i++;
0517 |   A_Language[i] = 'No hay Nave Grande de carga.'; var C_NotEnoughLargeCargoShip=i; i++;
0518 |   A_Language[i] = 'No hay Nave Peque\361a de carga.'; var C_NotEnoughSmallCargoShip=i; i++;
0519 |   A_Language[i] = 'Resources had already sent from this planet.'; var C_AlreadyTransfered=i; i++;
0520 |   A_Language[i] = 'This planet hadn\'t been selected for the transfer.'; var C_PlanetNotSelected=i; i++;
0521 |   A_Language[i] = 'No transfer in progress.'; var C_NoTransfer=i; i++;
0522 |   A_Language[i] = 'Seleciona Colonia'; var C_ColonyToBeUsed=i; i++;
0523 |   A_Language[i] = 'Otro Destino'; var C_OtherDestination=i; i++;
0524 |   A_Language[i] = 'Llena los recursos a Transportar'; var C_NeededResources=i; i++;
0525 |   A_Language[i] = 'Restan'; var C_Rest=i; i++;
0526 |   A_Language[i] = 'Metal para enviar'; var C_MetalToBeSent=i; i++;
0527 |   A_Language[i] = 'Cristal para enviar'; var C_CrystalToBeSent=i; i++;
0528 |   A_Language[i] = 'Deuterio para enviar'; var C_DeuteriumToBeSent=i; i++;
0529 |   A_Language[i] = 'Tiempo de Vuelo'; var C_FlightTime=i; i++;
0530 |   A_Language[i] = 'Velocidad'; var C_SendingSpeed=i; i++;
0531 |   A_Language[i] = 'Consumo de combustible'; var C_DeuteriumConsumption=i; i++;
0532 |   A_Language[i] = 'Nave Grande o Peque\361a para ser enviada'; var C_TransportShipNumber=i; i++;
0533 |   A_Language[i] = 'Opciones de c\341lculo'; var C_TransferCalcOption=i; i++;
0534 |   A_Language[i] = 'Modo de c\341culo'; var C_CalcMode=i; i++;
0535 |   A_Language[i] = 'Transportar recursos de los planetas con el m\341ximo de recursos'; var C_SameRest=i; i++;
0536 |   A_Language[i] = 'Transportar la misma cantidad de cada planeta'; var C_SameQuantity=i; i++;
0537 |   A_Language[i] = 'Utilizar todos los recursos en el planeta de destino'; var C_UseTotalResourcesDestinationPlanet=i; i++;
0538 |   A_Language[i] = 'El tiempo de vuelo lo m\341s cercano posible'; var C_SameTime=i; i++;
0539 |   A_Language[i] = 'Lo m\341s rapido posible'; var C_Fastest=i; i++;
0540 |   A_Language[i] = 'Fecha de llegada'; var C_ArrivalDate=i; i++;
0541 |   A_Language[i] = 'A\361o'; var C_Year=i; i++;
0542 |   A_Language[i] = 'Mes'; var C_Month=i; i++;
0543 |   A_Language[i] = 'D\355a'; var C_Day=i; i++;
0544 |   A_Language[i] = 'Hora'; var C_Hour=i; i++;
0545 |   A_Language[i] = 'Minuto'; var C_Minute=i; i++;
0546 |   A_Language[i] = 'D\355a(s)'; var C_Days=i; i++;
0547 |   A_Language[i] = 'Hora(s)'; var C_Hours=i; i++;
0548 |   A_Language[i] = 'Minuto(s)'; var C_Minutes=i; i++;
0549 |   A_Language[i] = 'd'; var C_DayAbbreviation=i; i++;
0550 |   A_Language[i] = 'h'; var C_HourAbbreviation=i; i++;
0551 |   A_Language[i] = 'm'; var C_MinuteAbbreviation=i; i++;
0552 |   A_Language[i] = 's'; var C_SecondAbbreviation=i; i++;
0553 |   A_Language[i] = 'A\361adir un reciclador si es necesario para ajustar el tiempo de vuelo'; var C_AddRecycler=i; i++;
0554 |   A_Language[i] = 'Cargo'; var C_TransportShip=i; i++;
0555 |   A_Language[i] = 'Enviar'; var C_SaveTransfer=i; i++;
0556 |   A_Language[i] = 'Cancelar Env\355o'; var C_CancelTransfer=i; i++;
0557 |   A_Language[i] = 'Llena Naves de cargos'; var C_FillShip=i; i++;
0558 |   A_Language[i] = 'Planets unsaved had been found. You should revisit them.'; var C_UnsavedPlanets=i; i++;
0559 |   A_Language[i] = 'Llena posici\363n y velocidad'; var C_FillCoordinatesAndSpeed=i; i++;
0560 |   A_Language[i] = 'Llena recursos'; var C_FillResources=i; i++;
0561 |   // Other
0562 |   A_Language[i] = 'Tiempo de Ejecuci\363n:'; var C_RunTime=i; i++;
0563 |   A_Language[i] = 'A buildings which modify production factor had been found.\n\nDo you want to update the resources page now?'; var C_ResourcesBuildingsUC=i; i++;
0564 |   // Welcome message
0565 |   A_Language[i] = 'Bienvenido a la nueva version de \253'+C_ScriptName+'\273 (version: '+C_ScriptVersion+', build: '+C_ScriptBuild+')\nItalian traducion : by Fiox\nThanks to all beta tester.\n\n'+
0566 |   'For this version, most of the code were rewritten, it is thus advised to launch an automatic updating of pages from your account following this message.\n\n'+
0567 |   'Just after your click on OK, the script will load the tree technology page to get the name of each construction.\n\n'+
0568 |   'To see the changes about this version, go to the section named \253DESCRIPTION DES MISES A JOUR\273 in the script (Only in french).'; var C_NewVersion=i; i++;
0569 |   A_Language[i] = 'Welcome to the new version of \253'+C_ScriptName+'\273 (version: '+C_ScriptVersion+', build: '+C_ScriptBuild+')\nItalian translation : by Fiox\nThanks to all beta tester.\n\n'+
0570 |   'To see the changes about this version, go to the section named \253DESCRIPTION DES MISES A JOUR\273 in the script (Only in french).'; var C_NewBuild=i; i++;
0571 | }
0572 |
0573 |
0574 | /* RECUPERATION DES DONNEES PRINCIPALES D'OGAME
0575 |    -------------------------------------------------- */
0576 |
0577 | var Divs = document.getElementsByTagName('div');
0578 | for (i = 0; i < Divs.length; i++) {
0579 |   if (Divs[i].id == 'header_top') {
0580 |     var HeaderDiv = Divs[i];
0581 |   }
0582 |   else if (Divs[i].id == 'menu') {
0583 |     var MenuDiv = Divs[i];
0584 |   }
0585 |   else if (Divs[i].id == 'content') {
0586 |     var ContentDiv = Divs[i];
0587 |   }
0588 | }
0589 |
0590 | // Recuperation de l'adresse du skin
0591 | var SkinUrl = '';
0592 | var OgameCss = document.getElementsByTagName('link');
0593 | if (OgameCss) {
0594 |   for (i = 0; i < OgameCss.length; i++) {
0595 |     if (OgameCss[i].href.match('css/') == null) {
0596 |       SkinUrl = OgameCss[i].href.substr(0, OgameCss[i].href.lastIndexOf('/', OgameCss[i].href.length-1)+1);
0597 |     }
0598 |   }
0599 | }
0600 |
0601 | // Adresse de base de la page
0602 | var BaseUrl = document.URL.match(/([^\?]+)/);
0603 | BaseUrl = (BaseUrl?BaseUrl[1]:'');
0604 |
0605 | // Page ogame en cours
0606 | var OgamePage = document.URL.match(/page=([^\&]+)/);
0607 | OgamePage = (OgamePage?OgamePage[1]:'');
0608 | var OgameMode = document.URL.match(/mode=([^\&]+)/);
0609 | OgameMode = (OgameMode?OgameMode[1]:'');
0610 |
0611 | // Presence de l'entete
0612 | var OgameHeader = true;
0613 | if (document.URL.match(/no_header=([^\&]+)/)) {
0614 |   OgameHeader = ((document.URL.match(/no_header=([^\&]+)/)[1] == '1') ? false : true);
0615 | }
0616 |
0617 | var PlanetSelect = 0, PlanetSelectedIndex, Session = '';
0618 | if ((OgameHeader == true) && (HeaderDiv)) {
0619 |   PlanetSelect = HeaderDiv.getElementsByTagName('select');
0620 |   PlanetSelect = PlanetSelect[0].options;
0621 |   Session = PlanetSelect[0].value.match(/session=([^\&]+)/)[1]; // Identifiant de la session
0622 |
0623 |   // Recuperation du nom, de l'identifiant et du lien de chaque planete et de la planete active
0624 |   for (i = 0; i < PlanetSelect.length; i++) {
0625 |     A_Planet[i] = new P_Planet();
0626 |     var Temp = PlanetSelect[i].firstChild.nodeValue.match(/([a-zA-Z0-9 \.\-\_\(\)]+)          \[([0-9]{1,2}):([0-9]{1,3}):([0-9]{1,2})\]/);
0627 |     A_Planet[i].Id = PlanetSelect[i].value.match(/cp=([0-9]+)/)[1];
0628 |     A_Planet[i].Name = Temp[1];
0629 |     A_Planet[i].Galaxy = Temp[2];
0630 |     A_Planet[i].System = Temp[3];
0631 |     A_Planet[i].Planet = Temp[4];
0632 |     A_Planet[i].Url = PlanetSelect[i].value;
0633 |     if (PlanetSelect[i].selected == true) {
0634 |       PlanetSelectedIndex = i;
0635 |       A_Planet[i].Session = Session;
0636 |     }
0637 |   }
0638 | }
0639 | else if (MenuDiv) { // Si la page n'a pas d'entete
0640 |   // Recuperation de l'adresse du lien  'Ressources'
0641 |   var SearchRow = 0;
0642 |   var Table = MenuDiv.getElementsByTagName('table')[0];
0643 |   for (i = 0; i < Table.rows.length; i++) {
0644 |     var Cell = Table.rows[i].cells[0];
0645 |     var Page = Cell.innerHTML.match(/page=([^\&]+)/);
0646 |     if (Page) {
0647 |       if (Page[1] == 'suche') {
0648 |         SearchRow = i;
0649 |         break;
0650 |       }
0651 |     }
0652 |   }
0653 |   if (Table.rows[SearchRow].cells[0].innerHTML.match(/\<a/g)) {
0654 |     var Href = Table.rows[SearchRow].cells[0].getElementsByTagName('a')[0].href;
0655 |     if (Href.match(/session=([a-zA-Z0-9]+)/)) {
0656 |       Session = Href.match(/session=([a-zA-Z0-9]+)/)[1];
0657 |     }
0658 |   }
0659 | }
0660 |
0661 |
0662 |
0663 |
0664 |
0665 | /* CHARGEMENT DES IDENTIFIANTS ET COUTS DE CONSTRUCTION ET DES NOMS DES CONSTRUCTIONS
0666 |    -------------------------------------------------- */
0667 |
0668 | // Declaration des identifiants des differentes constructions (batiment, defense, technologie, flotte)
0669 | var A_Construction = new Array();
0670 | // Batiment
0671 | A_Construction[C_Buildings] = new Array(18);
0672 | A_Construction[C_Buildings][0] = new P_Construction(1,0,0,0,0,C_Planet);
0673 | A_Construction[C_Buildings][1] = new P_Construction(2,0,0,0,0,C_Planet);
0674 | A_Construction[C_Buildings][2] = new P_Construction(3,0,0,0,0,C_Planet);
0675 | A_Construction[C_Buildings][3] = new P_Construction(4,0,0,0,0,C_Planet);
0676 | A_Construction[C_Buildings][4] = new P_Construction(12,0,0,0,0,C_Planet,C_Buildings,2,5,C_Research,5,3);
0677 | A_Construction[C_Buildings][5] = new P_Construction(14,400,120,200,0,C_All);
0678 | A_Construction[C_Buildings][6] = new P_Construction(15,1000000,500000,100000,0,C_Planet,C_Buildings,5,10,C_Research,1,10);
0679 | A_Construction[C_Buildings][7] = new P_Construction(21,400,200,100,0,C_All,C_Buildings,5,2);
0680 | A_Construction[C_Buildings][8] = new P_Construction(22,2000,0,0,0,C_All);
0681 | A_Construction[C_Buildings][9] = new P_Construction(23,2000,1000,0,0,C_All);
0682 | A_Construction[C_Buildings][10] = new P_Construction(24,2000,2000,0,0,C_All);
0683 | A_Construction[C_Buildings][11] = new P_Construction(31,200,400,200,0,C_Planet);
0684 | A_Construction[C_Buildings][12] = new P_Construction(33,0,50000,100000,1000,C_Planet,C_Buildings,6,1,C_Research,5,12);
0685 | A_Construction[C_Buildings][13] = new P_Construction(34,20000,40000,0,0,C_Planet);
0686 | A_Construction[C_Buildings][14] = new P_Construction(44,20000,20000,1000,0,C_Planet);
0687 | A_Construction[C_Buildings][15] = new P_Construction(41,20000,40000,20000,0,C_Moon);
0688 | A_Construction[C_Buildings][16] = new P_Construction(42,20000,40000,20000,0,C_Moon);
0689 | A_Construction[C_Buildings][17] = new P_Construction(43,2000000,4000000,2000000,0,C_Moon,C_Research,6,7);
0690 | // Technologie
0691 | A_Construction[C_Research] = new Array(16);
0692 | A_Construction[C_Research][0] = new P_Construction(106,200,1000,200,0,C_Planet,C_Buildings,11,3);
0693 | A_Construction[C_Research][1] = new P_Construction(108,0,400,600,0,C_Planet,C_Buildings,11,1);
0694 | A_Construction[C_Research][2] = new P_Construction(109,800,200,0,0,C_Planet,C_Buildings,11,4);
0695 | A_Construction[C_Research][3] = new P_Construction(110,200,600,0,0,C_Planet,C_Buildings,11,6,C_Research,5,3);
0696 | A_Construction[C_Research][4] = new P_Construction(111,1000,0,0,0,C_Planet,C_Buildings,11,2);
0697 | A_Construction[C_Research][5] = new P_Construction(113,0,800,400,0,C_Planet,C_Buildings,11,1);
0698 | A_Construction[C_Research][6] = new P_Construction(114,0,4000,2000,0,C_Planet,C_Buildings,11,7,C_Research,3,5,C_Research,5,5);
0699 | A_Construction[C_Research][7] = new P_Construction(115,400,0,600,0,C_Planet,C_Buildings,11,1,C_Research,5,1);
0700 | A_Construction[C_Research][8] = new P_Construction(117,2000,4000,600,0,C_Planet,C_Buildings,11,2,C_Research,5,1);
0701 | A_Construction[C_Research][9] = new P_Construction(118,10000,20000,6000,0,C_Planet,C_Buildings,11,7,C_Research,6,3);
0702 | A_Construction[C_Research][10] = new P_Construction(120,200,100,0,0,C_Planet,C_Buildings,11,1,C_Research,5,2);
0703 | A_Construction[C_Research][11] = new P_Construction(121,1000,300,100,0,C_Planet,C_Buildings,11,4,C_Research,10,5,C_Research,5,4);
0704 | A_Construction[C_Research][12] = new P_Construction(122,2000,4000,1000,0,C_Planet,C_Buildings,11,4,C_Research,10,10,C_Research,5,8,C_Research,11,5);
0705 | A_Construction[C_Research][13] = new P_Construction(123,240000,400000,160000,0,C_Planet,C_Buildings,11,10,C_Research,1,8,C_Research,6,8);
0706 | A_Construction[C_Research][14] = new P_Construction(124,4000,8000,4000,0,C_Planet,C_Buildings,11,3,C_Research,0,4,C_Research,8,3);
0707 | A_Construction[C_Research][15] = new P_Construction(199,0,0,0,300000,C_Planet,C_Buildings,11,12);
0708 | // Flotte
0709 | A_Construction[C_Fleets] = new Array(14);
0710 | A_Construction[C_Fleets][0] = new P_Construction(202,2000,2000,0,0,C_All,C_Buildings,7,2,C_Research,7,2);
0711 | A_Construction[C_Fleets][1] = new P_Construction(203,6000,6000,0,0,C_All,C_Buildings,7,4,C_Research,7,6);
0712 | A_Construction[C_Fleets][2] = new P_Construction(204,3000,1000,0,0,C_All,C_Buildings,7,1,C_Research,7,1);
0713 | A_Construction[C_Fleets][3] = new P_Construction(205,6000,4000,0,0,C_All,C_Buildings,7,3,C_Research,8,2,C_Research,4,2);
0714 | A_Construction[C_Fleets][4] = new P_Construction(206,20000,7000,2000,0,C_All,C_Buildings,7,5,C_Research,8,4,C_Research,11,2);
0715 | A_Construction[C_Fleets][5] = new P_Construction(207,45000,15000,0,0,C_All,C_Buildings,7,7,C_Research,9,4);
0716 | A_Construction[C_Fleets][6] = new P_Construction(208,10000,20000,10000,0,C_All,C_Buildings,7,4,C_Research,8,3);
0717 | A_Construction[C_Fleets][7] = new P_Construction(209,10000,6000,2000,0,C_All,C_Buildings,7,4,C_Research,7,6,C_Research,3,2);
0718 | A_Construction[C_Fleets][8] = new P_Construction(210,0,1000,0,0,C_All,C_Buildings,7,3,C_Research,7,3,C_Research,0,2);
0719 | A_Construction[C_Fleets][9] = new P_Construction(211,50000,25000,15000,0,C_All,C_Buildings,7,8,C_Research,8,6,C_Research,12,5);
0720 | A_Construction[C_Fleets][10] = new P_Construction(212,0,2000,500,0,C_All,C_Buildings,7,1);
0721 | A_Construction[C_Fleets][11] = new P_Construction(213,60000,50000,15000,0,C_All,C_Buildings,7,9,C_Research,9,6,C_Research,6,5);
0722 | A_Construction[C_Fleets][12] = new P_Construction(214,5000000,4000000,1000000,0,C_All,C_Buildings,7,12,C_Research,9,7,C_Research,6,6,C_Research,15,1);
0723 | A_Construction[C_Fleets][13] = new P_Construction(215,30000,40000,15000,0,C_All,C_Buildings,7,8,C_Research,9,5,C_Research,6,5,C_Research,10,12);
0724 | // Defense
0725 | A_Construction[C_Defenses] = new Array(10);
0726 | A_Construction[C_Defenses][0] = new P_Construction(401,2000,0,0,0,C_All,C_Buildings,7,1);
0727 | A_Construction[C_Defenses][1] = new P_Construction(402,1500,500,0,0,C_All,C_Buildings,7,2,C_Research,5,1,C_Research,10,3);
0728 | A_Construction[C_Defenses][2] = new P_Construction(403,6000,2000,0,0,C_All,C_Buildings,7,4,C_Research,5,3,C_Research,10,6);
0729 | A_Construction[C_Defenses][3] = new P_Construction(404,20000,15000,2000,0,C_All,C_Buildings,7,6,C_Research,5,6,C_Research,2,3,C_Research,3,1);
0730 | A_Construction[C_Defenses][4] = new P_Construction(405,2000,6000,0,0,C_All,C_Buildings,7,4,C_Research,11,4);
0731 | A_Construction[C_Defenses][5] = new P_Construction(406,50000,50000,30000,0,C_All,C_Buildings,7,8,C_Research,12,7);
0732 | A_Construction[C_Defenses][6] = new P_Construction(407,10000,10000,0,0,C_All,C_Buildings,7,1,C_Research,3,2);
0733 | A_Construction[C_Defenses][7] = new P_Construction(408,50000,50000,0,0,C_All,C_Buildings,7,6,C_Research,3,6);
0734 | A_Construction[C_Defenses][8] = new P_Construction(502,8000,0,2000,0,C_All,C_Buildings,7,1,C_Buildings,14,2);
0735 | A_Construction[C_Defenses][9] = new P_Construction(503,12500,2500,10000,0,C_All,C_Buildings,7,1,C_Buildings,14,4);
0736 |
0737 |
0738 |
0739 |
0740 |
0741 | /* CHARGEMENT DES INFORMATIONS MEMORISEES VIA GREASEMONKEY
0742 |    -------------------------------------------------- */
0743 |
0744 | try {
0745 |
0746 |   // Recherche de l'identifiant du compte
0747 |   Get = GM_getValue('OT_Account', '');
0748 |   var Account = 0, AccountNb = 0;
0749 |   var AccountFound = false;
0750 |   var A_AccountTmp = new Array();
0751 |   if (Get.length > 0) {
0752 |     var A_AccountTmp = Get.split(Separator);
0753 |     var A_AccountTmp2 = new Array();
0754 |     for (i = 0; i < A_AccountTmp.length; i++) {
0755 |       A_AccountTmp2 = A_AccountTmp[i].split(/\;/g);
0756 |       if (parseInt(A_AccountTmp2[0]) > 0) {
0757 |         A_Account[AccountNb] = new Array(A_AccountTmp2.length);
0758 |         for (j = 0; j < A_AccountTmp2.length; j++) {
0759 |           A_Account[AccountNb][j] = A_AccountTmp2[j];
0760 |           if (AccountFound == false) {
0761 |             if (OgamePage != 'galaxy') {
0762 |               for (k = 0; k < PlanetSelect.length; k++) {
0763 |                 if (A_Planet[k].Id == A_Account[AccountNb][j]) {
0764 |                   AccountFound = true;
0765 |                   Account = AccountNb;
0766 |                   break;
0767 |                 }
0768 |               }
0769 |             }
0770 |           }
0771 |         }
0772 |         AccountNb++;
0773 |       }
0774 |     }
0775 |   }
0776 |   if (AccountFound == false) {
0777 |     if (A_Account.length > 0) {
0778 |       Account = A_Account.length;
0779 |     }
0780 |     A_Account[Account] = new Array(PlanetSelect.length);
0781 |     for (i = 0; i < PlanetSelect.length; i++) {
0782 |       A_Account[Account][i] = A_Planet[i].Id;
0783 |     }
0784 |   }
0785 |   SaveAccount();
0786 |   
0787 |   // Informations de la version
0788 |   Get = GM_getValue('OT_'+Account+'_Version', '');
0789 |   var ScriptVersion = GetValue(Get, 'Version', '');
0790 |   var ScriptBuild = GetValue(Get, 'Build', '');
0791 |   
0792 |   // Parametres generaux
0793 |   Get = GM_getValue('OT_'+Account+'_MainOption', '');
0794 |   var ShowInKilo = GetValue(Get, 'ShowInKilo', false);
0795 |   var ShowSecondForUpperUpdateTimeInDay = GetValue(Get, 'ShowSecondForUpperUpdateTimeInDay', false);
0796 |   var DeleteOfficerLink = GetValue(Get, 'DeleteOfficerLink', true);
0797 |   var DeleteTraderLink = GetValue(Get, 'DeleteTraderLink', true);
0798 |   var SortMember = GetValue(Get, 'SortMember', 3); // 0:Coordonnees, 1:Nom, 2:Statut, 3:Points, 4:Adhesion, 5:En ligne
0799 |   var SortOrder = GetValue(Get, 'SortOrder', 1); // 0:Croissant, 1:Decroissant
0800 |   var AddToolTip = GetValue(Get, 'AddToolTip', true);
0801 |   var ShowRequestToUpdateResourcesPage = GetValue(Get, 'ShowRequestToUpdateResourcesPage', false);
0802 |   var ShowAutoUpdate = GetValue(Get, 'ShowAutoUpdate', true);
0803 |   var UseRandomUpdateTime = GetValue(Get, 'UseRandomUpdateTime', true);
0804 |   var AddImageVersion = GetValue(Get, 'AddImageVersion', false);
0805 |   Debug = GetValue(Get, 'Debug', false);
0806 |   
0807 |   // Parametres d'affichage
0808 |   Get = GM_getValue('OT_'+Account+'_ScreenOption', '');
0809 |   var ShowHeaderPlanetList = GetValue(Get, 'ShowHeaderPlanetList', false); 
0810 |   var ShowHeaderResourcesList = GetValue(Get, 'ShowHeaderResourcesList', false); 
0811 |   var AddResourcesTotal = GetValue(Get, 'AddResourcesTotal', false); 
0812 |   var ChangeHeaderPosition = GetValue(Get, 'ChangeHeaderPosition', false); 
0813 |   var HeaderPosition = GetValue(Get, 'HeaderPosition', 'left: 15% !important; top: 120px !important;'); 
0814 |   var ChangeContentPosition = GetValue(Get, 'ChangeContentPosition', false); 
0815 |   var ContentPosition = GetValue(Get, 'ContentPosition', 'left: 100px !important;'); 
0816 |   var AddCssCode = GetValue(Get, 'AddCssCode', false); 
0817 |   var CssCode = GM_getValue('OT_'+Account+'_CssCode', '/* '+A_Language[C_WriteCode]+' */'); 
0818 |   var AddJSCode = GetValue(Get, 'AddJSCode', false); 
0819 |   var JSCode = GM_getValue('OT_'+Account+'_JSCode', '/* '+A_Language[C_WriteCode]+' */');
0820 |   
0821 |   // Tableau des ressources
0822 |   Get = GM_getValue('OT_'+Account+'_ResourcesTableOption', '');
0823 |   var ShowHeaderResourcesTable = GetValue(Get, 'ShowHeaderResourcesTable', true);
0824 |   var ShowPlanetName =  GetValue(Get, 'ShowPlanetName', true);
0825 |   var ShowCoordinates =  GetValue(Get, 'ShowCoordinates', false);
0826 |   var ShowTotal = GetValue(Get, 'ShowTotal', true);
0827 |   var ShowDarkMatter = GetValue(Get, 'ShowDarkMatter', true);
0828 |   var ShowTimeUpdate = GetValue(Get, 'ShowTimeUpdate', true);
0829 |   var ShowResourcesOnlyActiveSession = GetValue(Get, 'ShowResourcesOnlyActiveSession', false);
0830 |   var RealTimeResources = GetValue(Get, 'RealTimeResources', true);
0831 |   var RealTimeResourcesDelay = GetValue(Get, 'RealTimeResourcesDelay', 5);
0832 |   RealTimeResourcesDelay = ((RealTimeResourcesDelay < 1) ? 1 : RealTimeResourcesDelay);
0833 |   var HeaderSelectedPlanetStyle = GetValue(Get, 'HeaderSelectedPlanetStyle', 'background-color: #005500; background-image: none;');
0834 |   var Transparency = GetValue(Get, 'Transparency', 80);
0835 |   var A_UpdateTimeColor = new Array();
0836 |   for (i = 0; i < 10; i++) {
0837 |     A_UpdateTimeColor[i] = GetValue(Get, 'UpdateTimeColor'+i, Math.ceil((i+1)*54340+Math.pow(2580,(1+(1+i)/10))));
0838 |   }
0839 |   var PlanetOrder = GetValue(Get, 'PlanetOrder', false);
0840 |   Get = GM_getValue('OT_'+Account+'_PlanetOrder', '');
0841 |   if ((Get != '') && (parseInt(GetField(Get,0,Separator)) < 18)) {
0842 |     Get = '';
0843 |   }
0844 |   if (Get != '') {
0845 |     A_PlanetOrder = Get.split(Separator);
0846 |     var Found = false;
0847 |     for (j = 0; j < A_PlanetOrder.length; j++) {
0848 |       for (i = 0; i < PlanetSelect.length; i++) {
0849 |         if (A_PlanetOrder[j] == A_Planet[i].Id) {
0850 |           A_PlanetOrderIndex[PlanetOrderIndex] = i;
0851 |           PlanetOrderIndex++;
0852 |         }
0853 |       }
0854 |     }
0855 |     if (A_PlanetOrderIndex.length < PlanetSelect.length) {
0856 |       for (i = 0; i < PlanetSelect.length; i++) {
0857 |         Found = false;
0858 |         for (j = 0; j < A_PlanetOrder.length; j++) {
0859 |           if (A_PlanetOrder[j] == A_Planet[i].Id) {
0860 |             Found = true;
0861 |           }
0862 |         }
0863 |         if (Found == false) {
0864 |           A_PlanetOrderIndex[PlanetOrderIndex] = i;
0865 |           PlanetOrderIndex++;
0866 |           A_PlanetOrder[A_PlanetOrder.length] = A_Planet[i].Id;
0867 |         }
0868 |       }
0869 |     }
0870 |   }
0871 |   else {
0872 |     for (i = 0; i < PlanetSelect.length; i++) {
0873 |       A_PlanetOrderIndex[i] = i;
0874 |       A_PlanetOrder[i] = A_Planet[i].Id;
0875 |     }
0876 |   }
0877 |   // Reorganisation de l'ordre des planetes
0878 |   if (PlanetOrder == true) {
0879 |     var A_Permut = new Array();
0880 |     for (i = 0; i < PlanetSelect.length; i++) {
0881 |       A_Permut[i] = new P_Planet();
0882 |       A_Permut[i].Id = A_Planet[A_PlanetOrderIndex[i]].Id;
0883 |       A_Permut[i].Name = A_Planet[A_PlanetOrderIndex[i]].Name;
0884 |       A_Permut[i].Planet = A_Planet[A_PlanetOrderIndex[i]].Planet;
0885 |       A_Permut[i].System = A_Planet[A_PlanetOrderIndex[i]].System;
0886 |       A_Permut[i].Galaxy = A_Planet[A_PlanetOrderIndex[i]].Galaxy;
0887 |       A_Permut[i].Url = A_Planet[A_PlanetOrderIndex[i]].Url;
0888 |       A_Permut[i].Session = A_Planet[A_PlanetOrderIndex[i]].Session;
0889 |     }
0890 |     for (i = 0; i < PlanetSelect.length; i++) {
0891 |       A_Planet[i].Id = A_Permut[i].Id;
0892 |       A_Planet[i].Name = A_Permut[i].Name;
0893 |       A_Planet[i].Planet = A_Permut[i].Planet;
0894 |       A_Planet[i].System = A_Permut[i].System;
0895 |       A_Planet[i].Galaxy = A_Permut[i].Galaxy;
0896 |       A_Planet[i].Url = A_Permut[i].Url;
0897 |       A_Planet[i].Session = A_Permut[i].Session;
0898 |     }
0899 |     for (i = 0; i < PlanetSelect.length; i++) {
0900 |       if (PlanetSelectedIndex == A_PlanetOrderIndex[i]) {
0901 |         PlanetSelectedIndex = i;
0902 |         break;
0903 |       }
0904 |     }
0905 |   }
0906 |   else {
0907 |     for (i = 0; i < PlanetSelect.length; i++) {
0908 |       A_PlanetOrderIndex[i] = i;
0909 |       A_PlanetOrder[i] = A_Planet[i].Id;
0910 |     }
0911 |   }
0912 |   
0913 |   // Empire
0914 |   Get = GM_getValue('OT_'+Account+'_EmpireOption', '');
0915 |   var ShowEmpire = GetValue(Get, 'ShowEmpire', true);
0916 |   var EmpireMenuRow = GetValue(Get, 'EmpireMenuRow', 2);
0917 |   var EmpireLinkName = GetValue(Get, 'EmpireLinkName', A_Language[C_Empire]+' (OT)');
0918 |   var EmpireIconSize = GetValue(Get, 'EmpireIconSize', 88);
0919 |   var UseRealTimeResourcesEmpire = GetValue(Get, 'UseRealTimeResourcesEmpire', true);
0920 |   var HideDefaultResourcesTable = GetValue(Get, 'HideDefaultResourcesTable', true);
0921 |   var ForceDisplayHeaderResourcesTableWithEmpire = GetValue(Get, 'ForceDisplayHeaderResourcesTableWithEmpire', false);
0922 |   
0923 |   // Transfert
0924 |   Get = GM_getValue('OT_'+Account+'_TransferOption', '');
0925 |   var UseRealTimeResources = GetValue(Get, 'UseRealTimeResources', true);
0926 |   var ForceResourcesTransferTableUpdate = GetValue(Get, 'ForceResourcesTransferTableUpdate', false);
0927 |   var ShowTransferTableIfActiveTransfer = GetValue(Get, 'ShowTransferTableIfActiveTransfer', false);
0928 |   var TransferRatioSpeed = GetValue(Get, 'TransferRatioSpeed', 1);
0929 |   
0930 |   // Ajout de lien au menu
0931 |   Get = GM_getValue('OT_'+Account+'_LinkOption', '');
0932 |   var NbLink = GetValue(Get, 'NbLink', 0);
0933 |   var LinkNameArray = new Array();
0934 |   var LinkUrlArray = new Array();
0935 |   var LinkPositionArray = new Array();
0936 |   var LinkNewWindowArray = new Array();
0937 |   var LinkTitleArray = new Array();
0938 |   for (i = 0; i < NbLink; i++) {
0939 |     LinkNameArray[i] = GetValue(Get, 'LinkName'+i, '');
0940 |     LinkUrlArray[i] = GetValue(Get, 'LinkUrl'+i, '');
0941 |     LinkPositionArray[i] = GetValue(Get, 'LinkPosition'+i, 0);
0942 |     LinkNewWindowArray[i] = GetValue(Get, 'LinkNewWindow'+i, false);
0943 |     LinkTitleArray[i] = GetValue(Get, 'LinkTitle'+i, '');
0944 |     CreateLink(LinkUrlArray[i], LinkNameArray[i], LinkPositionArray[i], LinkNewWindowArray[i], LinkTitleArray[i]); 
0945 |   }
0946 |   
0947 |   // Options de transfert
0948 |   Get = GM_getValue('OT_'+Account+'_TransferCalcOption', '');
0949 |   var CalcMode = GetValue(Get, 'CalcMode', 0);
0950 |   var UseTotalResourcesDestinationPlanet = GetValue(Get, 'UseTotalResourcesDestinationPlanet', false);
0951 |   var SameTime = GetValue(Get, 'SameTime', true);
0952 |   var TimeToGo = GetValue(Get, 'TimeToGo', 0);
0953 |   var AddRecycler = GetValue(Get, 'AddRecycler', true);
0954 |   var ShipType = GetValue(Get, 'ShipType', 1);
0955 |   
0956 |   // Affichage de la page empire
0957 |   var OgameEmpire = GM_getValue('OT_OgameEmpire', false);
0958 | }
0959 | catch(err) {
0960 |   ShowError(err, 'Load account id and update parameter');
0961 | }
0962 |
0963 | if ((OgameHeader == true) && (HeaderDiv)) {
0964 |   
0965 |   try {
0966 |     
0967 |     // Parametres de mise a jour automatique
0968 |     Get = GM_getValue('OT_'+Account+'_Refresh', '');
0969 |     var RefreshPlanetRest = GetValue(Get, 'RefreshPlanetRest', 0);
0970 |     var AutoUpdateRest = GetValue(Get, 'AutoUpdateRest', 0);
0971 |     
0972 |     // Transfert
0973 |     Get = GM_getValue('OT_'+Account+'_Transfer', '');
0974 |     var TransferShow = GetValue(Get, 'Show', false);
0975 |     var TransferMetal = GetValue(Get, 'Metal', 0);
0976 |     var TransferCrystal = GetValue(Get, 'Crystal', 0);
0977 |     var TransferDeuterium = GetValue(Get, 'Deuterium', 0);
0978 |     var TransferState = GetValue(Get, 'State', false);
0979 |     var TransferShipType = GetValue(Get, 'ShipType', C_LargeCargoShip);
0980 |     var TransferDestinationPlanet = GetValue(Get, 'DestinationPlanet', 0);
0981 |     var TransferDestinationSystem = GetValue(Get, 'DestinationSystem', 0);
0982 |     var TransferDestinationGalaxy = GetValue(Get, 'DestinationGalaxy', 0);
0983 |     var TransferDestinationType = GetValue(Get, 'DestinationType', A_Language[C_Planet]);
0984 |     
0985 |     // Variable de verification du transfert
0986 |     var TransferStateCheck = true;
0987 |     
0988 |     // Nom des constructions
0989 |     var A_Get = new Array();
0990 |     var A_GetName = new Array();
0991 |     Get = GM_getValue('OT_'+Account+'_ConstructionName', '');
0992 |     A_Get = Get.split(Separator);
0993 |     if (A_Get.length > 0) {
0994 |       for (i=0; i<A_Get.length; i++) {
0995 |         A_GetName = A_Get[i].split(/\;/g);
0996 |         if (A_GetName.length == 3) {
0997 |           A_Construction[A_GetName[0]][A_GetName[1]].Name = (A_GetName[2] == 'null' ? null : A_GetName[2]);
0998 |         }
0999 |       }
1000 |     }
1001 |     
1002 |     // Liste d'action
1003 |     Get = GM_getValue('OT_'+Account+'_Actions', '');
1004 |     if (Get.length > 0) {
1005 |       A_Get = String(Get).split(Separator);
1006 |       for (i=0; i<A_Get.length; i++) {
1007 |         A_Actions[i] = A_Get[i];
1008 |       }
1009 |     }
1010 |     
1011 |     // Etat d'affichage des colonnes du tableaux de ressources
1012 |     Get = GM_getValue('OT_'+Account+'_ShowHideColumn', '');
1013 |     if (Get.length > 0) {
1014 |       A_ShowHideColomn = Get.split(Separator);
1015 |     }
1016 |     else {
1017 |       for (i = 0; i < (PlanetSelect.length+2); i++) {
1018 |         A_ShowHideColomn[i] = '';
1019 |       }
1020 |     }
1021 |     
1022 |     // Recherche
1023 |     if (((OgamePage == 'buildings') && (OgameMode == 'Forschung')) || (OgameEmpire == true) || (OgamePage == 'flotten1')) {
1024 |       
1025 |       Get = GM_getValue('OT_'+Account+'_Research', '');
1026 |       for (j = 0; j < 16; j++) {
1027 |         A_Research[j] = new P_ResearchDescription();
1028 |         A_Research[j].Level = GetValue(Get, A_Construction[C_Research][j].Id, '-');
1029 |         A_Research[j].UC = GetValue(Get, A_Construction[C_Research][j].Id+'UC', '-');
1030 |         ResearchUpdate = GetValue(Get, 'Update', CounterStart);
1031 |       }
1032 |     }
1033 |     
1034 |     // Chargement des donnees sur les planetes dans les tableaux precedement crees
1035 |     for (i = 0; i < PlanetSelect.length; i++) {
1036 |       
1037 |       // Informations generales
1038 |       Get = GM_getValue('OT_'+A_Planet[i].Id+'_Planet', '');
1039 |       if (i != PlanetSelectedIndex) {
1040 |         A_Planet[i].Session = GetValue(Get, 'Session', '');
1041 |       }
1042 |       A_Planet[i].Type = GetValue(Get, 'Type', C_Planet);
1043 |       A_Planet[i].UsedSpace = GetValue(Get, 'UsedSpace', 0);
1044 |       A_Planet[i].TotalSpace = GetValue(Get, 'TotalSpace', 0);
1045 |       A_Planet[i].Diameter = GetValue(Get, 'Diameter', 0);
1046 |       A_Planet[i].MaxTemperature = GetValue(Get, 'MaxTemperature', 0);
1047 |       A_Planet[i].MinTemperature = GetValue(Get, 'MinTemperature', 0);
1048 |       A_Planet[i].Update = GetValue(Get, 'Update', CounterStart);
1049 |       A_Planet[i].ImageUrl = GetValue(Get, 'ImageUrl', '');
1050 |       A_Planet[i].Update = GetValue(Get, 'Update', CounterStart);
1051 |       
1052 |       // Ressources de la planete
1053 |       Get = GM_getValue('OT_'+A_Planet[i].Id+'_Resources', '');
1054 |       A_Resources[i] = new P_Resources();
1055 |       if ((A_Planet[i].Session == Session) || (ShowResourcesOnlyActiveSession == false)) {
1056 |         A_Resources[i].Metal = GetValue(Get, 'Metal', '-');
1057 |         A_Resources[i].Crystal = GetValue(Get, 'Crystal', '-');
1058 |         A_Resources[i].Deuterium = GetValue(Get, 'Deuterium', '-');
1059 |         A_Resources[i].FreeEnergy = GetValue(Get, 'FreeEnergy', '-');
1060 |         A_Resources[i].TotalEnergy = GetValue(Get, 'TotalEnergy', '-');
1061 |       }
1062 |       else {
1063 |         A_Resources[i].Metal = undefined;
1064 |         A_Resources[i].Crystal = undefined;
1065 |         A_Resources[i].Deuterium = undefined;
1066 |         A_Resources[i].FreeEnergy = undefined;
1067 |         A_Resources[i].TotalEnergy = undefined;
1068 |       }
1069 |       A_Resources[i].MetalOver = GetValue(Get, 'MetalOver', false);
1070 |       A_Resources[i].CrystalOver = GetValue(Get, 'CrystalOver', false);
1071 |       A_Resources[i].DeuteriumOver = GetValue(Get, 'DeuteriumOver', false);
1072 |       A_Resources[i].EnergyOver = GetValue(Get, 'EnergyOver', false);
1073 |       A_Resources[i].Update = ((i == PlanetSelectedIndex) ? CounterStart: GetValue(Get, 'Update', CounterStart));
1074 |       
1075 |       // Production horaire de metal, cristal et deuterium
1076 |       Get = GM_getValue('OT_'+A_Planet[i].Id+'_Production', '');
1077 |       A_Production[i] = new P_Production();
1078 |       A_Production[i].Metal = GetValue(Get, 'Metal', 0);
1079 |       A_Production[i].Crystal = GetValue(Get, 'Crystal', 0);
1080 |       A_Production[i].Deuterium = GetValue(Get, 'Deuterium', 0);
1081 |       A_Production[i].MetalMax = GetValue(Get, 'MetalMax', 0);
1082 |       A_Production[i].CrystalMax = GetValue(Get, 'CrystalMax', 0);
1083 |       A_Production[i].DeuteriumMax = GetValue(Get, 'DeuteriumMax', 0);
1084 |       A_Production[i].Update = GetValue(Get, 'Update', CounterStart);
1085 |       
1086 |       // Batiment
1087 |       if ((OgamePage == 'b_building') || (OgameEmpire == true) || (AutoUpdateRest > 0)) {
1088 |         Get = GM_getValue('OT_'+A_Planet[i].Id+'_Buildings', '');
1089 |         A_Buildings[i] = new Array(18);
1090 |         for (j = 0; j < 18; j++) {
1091 |           A_Buildings[i][j] = new P_ConstructionDescription();
1092 |           A_Buildings[i][j].Level = GetValue(Get, A_Construction[C_Buildings][j].Id, '-');
1093 |           A_Buildings[i][j].UC = GetValue(Get, A_Construction[C_Buildings][j].Id+'UC', '-');
1094 |         }
1095 |         A_BuildingsUpdate[i] = GetValue(Get, 'Update', '');
1096 |       }
1097 |       
1098 |       // Ressources
1099 |       if ((OgamePage == 'resources') || (OgameEmpire == true)) {
1100 |         // Taux d'utilisation (mine de metal, cristal, deuterium, centrale solaire, fusion, satellite) 
1101 |         Get = GM_getValue('OT_'+A_Planet[i].Id+'_Pourcent', '');
1102 |         A_Pourcent[i] = new P_Pourcent();
1103 |         A_Pourcent[i].Rate = GetValue(Get, 'Rate', '-');
1104 |         A_Pourcent[i].Metal = GetValue(Get, 'Metal', '-');
1105 |         A_Pourcent[i].Crystal = GetValue(Get, 'Crystal', '-');
1106 |         A_Pourcent[i].Deuterium = GetValue(Get, 'Deuterium', '-');
1107 |         A_Pourcent[i].Solar = GetValue(Get, 'Solar', '-');
1108 |         A_Pourcent[i].Fusion = GetValue(Get, 'Fusion', '-');
1109 |         A_Pourcent[i].Ship212 = GetValue(Get, 'Ship212', '-');
1110 |         A_Pourcent[i].Update = GetValue(Get, 'Update', CounterStart);
1111 |         
1112 |       }
1113 |       
1114 |       // Defense
1115 |       if (((OgamePage == 'buildings') && (OgameMode == 'Verteidigung')) || (OgameEmpire == true)) {
1116 |         
1117 |         // Defense
1118 |         Get = GM_getValue('OT_'+A_Planet[i].Id+'_Defenses', '');
1119 |         A_Defenses[i] = new Array(10);
1120 |         for (j = 0; j < 10; j++) {
1121 |           A_Defenses[i][j] = GetValue(Get, A_Construction[C_Defenses][j].Id, '-');
1122 |         }
1123 |         A_DefensesUpdate[i] = GetValue(Get, 'Update', '');
1124 |         
1125 |         // Defense et flotte en cours de construction
1126 |         Get = GM_getValue('OT_'+A_Planet[i].Id+'_FleetsDefensesUC', '');
1127 |         A_FleetsDefensesUC[i] = new P_FleetsDefensesUC();
1128 |         A_FleetsDefensesUC[i].List = GetValue(Get, 'List', '');
1129 |         A_FleetsDefensesUC[i].Update = GetValue(Get, 'Update', '');
1130 |       }
1131 |       
1132 |       // Chantier spatial
1133 |       if (((OgamePage == 'buildings') && (OgameMode == 'Flotte')) || (OgameEmpire == true)) {
1134 |         
1135 |         // Defense et flotte en cours de construction
1136 |         Get = GM_getValue('OT_'+A_Planet[i].Id+'_FleetsDefensesUC', '');
1137 |         A_FleetsDefensesUC[i] = new P_FleetsDefensesUC();
1138 |         A_FleetsDefensesUC[i].List = GetValue(Get, 'List', '');
1139 |         A_FleetsDefensesUC[i].Update = GetValue(Get, 'Update', '');
1140 |       }
1141 |       
1142 |       if ((OgamePage == 'flotten1') || (OgamePage == 'flotten2') || (OgamePage == 'flotten3') || (OgamePage == 'flottenversand') || (OgameEmpire == true)) {
1143 |         
1144 |         // Flotte
1145 |         Get = GM_getValue('OT_'+A_Planet[i].Id+'_Fleets', '');
1146 |         A_Fleets[i] = new Array(14);
1147 |         for (j = 0; j < 14; j++) {
1148 |           A_Fleets[i][j] = GetValue(Get, A_Construction[C_Fleets][j].Id, '-');
1149 |         }
1150 |         A_FleetsUpdate[i] = GetValue(Get, 'Update', '');
1151 |         
1152 |         if (OgameEmpire == false) {
1153 |           // Transfert
1154 |           Get = GM_getValue('OT_'+A_Planet[i].Id+'_Transfer', '');
1155 |           A_Transfer[i] = new P_Transfer();
1156 |           A_Transfer[i].Checked = GetValue(Get, 'Checked', false);
1157 |           A_Transfer[i].OriginePlanet = GetValue(Get, 'OriginePlanet', 0);
1158 |           A_Transfer[i].OrigineSystem = GetValue(Get, 'OrigineSystem', 0);
1159 |           A_Transfer[i].OrigineGalaxy = GetValue(Get, 'OrigineGalaxy', 0);
1160 |           A_Transfer[i].Metal = GetValue(Get, 'Metal', 0);
1161 |           A_Transfer[i].Crystal = GetValue(Get, 'Crystal', 0);
1162 |           A_Transfer[i].Deuterium = GetValue(Get, 'Deuterium', 0);
1163 |           A_Transfer[i].Speed = GetValue(Get, 'Speed', 0);
1164 |           A_Transfer[i].TransportShip = GetValue(Get, 'TransportShip', 0);
1165 |           A_Transfer[i].Recycler = GetValue(Get, 'Recycler', 0);
1166 |           A_Transfer[i].State = GetValue(Get, 'State', 0);
1167 |           if (A_Transfer[i].Checked == true) {
1168 |             if (A_Transfer[i].State > 0) {
1169 |               TransferStateCheck = false;
1170 |             }
1171 |           }
1172 |         }
1173 |       }
1174 |     }
1175 |     if ((TransferStateCheck == true) && (OgamePage == 'flotten1') && (OgameEmpire == false)) {
1176 |       TransferState = false;
1177 |       SaveTransfer();
1178 |     }
1179 |   }
1180 |   catch(err) {
1181 |     ShowError(err, 'Load informations');
1182 |   }
1183 | }
1184 | else if (OgamePage == 'galaxy') {
1185 |   Get = GM_getValue('OT_'+Account+'_PlanetName', '');
1186 |   var A_Get = new Array();
1187 |   A_Get = Get.split(Separator);
1188 |   for (i = 0; i < A_Get.length-1; i++) {
1189 |     A_PlanetName[i] = new P_PlanetName();
1190 |     A_PlanetName[i].Name = GetField(A_Get[i], 0, KeySeparator);
1191 |     A_PlanetName[i].Id = GetField(A_Get[i], 1, KeySeparator); 
1192 |   }
1193 |   var PlanetNameSession = GetValue(Get, 'Session', '');
1194 | }
1195 |
1196 |
1197 |
1198 |
1199 |
1200 | /* GESTION DES LIENS DU MENU
1201 |    -------------------------------------------------- */
1202 |
1203 | function GM__setValue(Name, Value) {
1204 |   window.setTimeout(GM_setValue, 0, Name, Value);
1205 |   return true;
1206 | }
1207 | unsafeWindow.GM__setValue = GM__setValue;
1208 |
1209 | try {
1210 |   // Recuperation de la position des liens 'recherche', 'Defenses', 'Officier' et 'Marchand'
1211 |   if (MenuDiv) {
1212 |     var Table = MenuDiv.getElementsByTagName('table')[0];
1213 |     var SearchRow;
1214 |     var n=0;
1215 |     for (i = 0; i < Table.rows.length; i++) {
1216 |       var Cell = Table.rows[i].cells[0];
1217 |       var Page = Cell.innerHTML.match(/page=([^\&]+)/);
1218 |       if (Page) {
1219 |         if (Page[1] == 'suche') {
1220 |           // Creation du lien empire
1221 |           if (ShowEmpire == true) {
1222 |             // Argument ajoute pour savoir si on veut voir le menu empire
1223 |             if ((PlanetSelectedIndex != undefined) && (OgamePage != 'resources')) {
1224 |               CreateLink('', EmpireLinkName, EmpireMenuRow, false, A_Language[C_Empire]+' ('+C_ScriptName+')', 'javascript:if(GM__setValue(\'OT_OgameEmpire\',true)==true){window.location.replace(\''+A_Planet[PlanetSelectedIndex].Url+'\')};');
1225 |             }
1226 |             else {
1227 |               CreateLink('', EmpireLinkName, EmpireMenuRow, false, A_Language[C_Empire]+' ('+C_ScriptName+')', 'javascript:if(GM__setValue(\'OT_OgameEmpire\',true)==true){window.location.replace(\''+Cell.getElementsByTagName('a')[0].href+'\')};');
1228 |             }
1229 |             SearchRow = i;
1230 |             i++;
1231 |           }
1232 |           n++;
1233 |         }
1234 |         else if (Page[1] == 'buildings') {
1235 |           var Mode = Cell.innerHTML.match(/mode=([^\"]+)/); //"
1236 |           if (Mode) {
1237 |             if (Mode[1] == 'Verteidigung') {
1238 |               // Creation du lien de mise a jour automatique
1239 |               if (ShowAutoUpdate == true) {
1240 |                 if (AutoUpdateRest > 0) {
1241 |                   CreateLink('', A_Language[C_StopUpdate], (i+1), false, A_Language[C_UpdateStopInformations], 'javascript:StopUpdate();');
1242 |                 }
1243 |                 else {
1244 |                   CreateLink('', A_Language[C_StartUpdate], (i+1), false, A_Language[C_UpdateInformations]+' ('+C_ScriptName+')', 'javascript:AutoUpdate();');
1245 |                 }
1246 |                 i++;
1247 |               }
1248 |               n++;
1249 |             }
1250 |           }
1251 |         }
1252 |         else if (Page[1] == 'micropayment') {
1253 |           // Suppression des liens Officiers
1254 |           if (DeleteOfficerLink == true) { RemoveOfficer(i); i--; }
1255 |           n++;
1256 |         }
1257 |         else if (Page[1] == 'trader') {
1258 |           // Suppression des liens Officiers et Marchand
1259 |           if (DeleteTraderLink == true) { RemoveTrader(i); i--; }
1260 |           n++;
1261 |         }
1262 |         else if (Page[1] == 'resources') {
1263 |           var ResourcesLink = Cell.getElementsByTagName('a')[0].href;
1264 |           n++;
1265 |         }
1266 |       }
1267 |       if (n == 5) break;
1268 |     }
1269 |   }
1270 | }
1271 | catch(err) {
1272 |   ShowError(err, 'Create empire and auto update link and delete officer and trader link');
1273 | }
1274 |
1275 | function CreateLink(Link, Text, Row, NewWindow, ToolTip, Javascript) { // Ajoute un lien dans le menu
1276 |   try {
1277 |     // Verification de mots cles
1278 |     if (Link.match(/\[host\]/g)) { // Domaine
1279 |       Link = Link.replace(/\[host\]/g, Host);
1280 |     }
1281 |     if (Link.match(/\[session\]/g)) { // Session
1282 |       Link = Link.replace(/\[session\]/g, Session);
1283 |     }
1284 |     if (Link.match(/\[([a-zA-Z0-9\-\_ ]+)\]/g)) { // ID Planete
1285 |       var PlanetName = Link.match(/\[([a-zA-Z0-9\-\_ ]+)\]/g);
1286 |       PlanetName = String(PlanetName).replace(/\[/g,'').replace(/\]/g,'');
1287 |       if (OgamePage == 'galaxy') {
1288 |         var NotFind = true;
1289 |         if (PlanetNameSession == Session) {
1290 |           for (k = 0; k < A_PlanetName.length; k++) {
1291 |             if (A_PlanetName[k].Name == PlanetName) {
1292 |               var NotFind = false;
1293 |               Link = Link.replace(/\[([a-zA-Z0-9\-\_ ]+)\]/g, A_PlanetName[k].Id);
1294 |               break;
1295 |             }
1296 |           }
1297 |         }
1298 |       }
1299 |       else {
1300 |         var NotFind = true;
1301 |         for (k = 0; k < PlanetSelect.length; k++) {
1302 |           if (A_Planet[k].Name == PlanetName){
1303 |             NotFind = false;
1304 |             Link = Link.replace(/\[([a-zA-Z0-9\-\_ ]+)\]/g, A_Planet[k].Id);
1305 |             break;
1306 |           }
1307 |         }
1308 |       }
1309 |       if (NotFind == true) {
1310 |         Link = Link.replace(/\[([a-zA-Z0-9\-\_ ]+)\]/g, '');
1311 |       }
1312 |     }
1313 |     if (MenuDiv) {
1314 |       var tbody = MenuDiv.getElementsByTagName('table')[0];
1315 |       var cell = document.createElement('td');
1316 |       var hyperlink = document.createElement('a');
1317 |       if (Link != '') hyperlink.setAttribute('href',Link);
1318 |       if (AddToolTip == true) {
1319 |         if ((ToolTip != undefined) && (ToolTip != '')) { hyperlink.setAttribute('title',ToolTip); }
1320 |         else { hyperlink.setAttribute('title',Link); }
1321 |       }
1322 |       if (NewWindow == true) hyperlink.setAttribute('target','_blank');
1323 |       if ((Javascript != undefined) && (Javascript != '')) {
1324 |         hyperlink.setAttribute('onclick',Javascript);
1325 |         hyperlink.setAttribute('style','cursor:pointer');
1326 |       }
1327 |       var hyperlinkText = document.createTextNode(Text);
1328 |       hyperlink.appendChild(hyperlinkText);
1329 |       var font = document.createElement('font');
1330 |       font.setAttribute('color','#ffffff');
1331 |       font.appendChild(hyperlink);
1332 |       var div = document.createElement('div');
1333 |       div.setAttribute('align','center');
1334 |       div.appendChild(font);
1335 |       cell.appendChild(div);
1336 |       if (Row) {
1337 |         tbody.insertRow(Row);
1338 |         tbody.rows[Row].appendChild(cell);
1339 |       }
1340 |     }
1341 |   }
1342 |   catch(err) {
1343 |     ShowError(err, 'CreateLink('+Link+', '+Text+', '+Row+', '+NewWindow+', '+ToolTip+', '+Javascript+')');
1344 |   }
1345 | }
1346 |
1347 | function RemoveOfficer(OfficerRow) { // Enleve les liens officiers
1348 |   try {
1349 |     if((OgameHeader == true) && (HeaderDiv)) {
1350 |       var SelectTable = HeaderDiv.getElementsByTagName('select');
1351 |       if (SelectTable[4]) {
1352 |         SelectTable[4].deleteRow(0); // Icones officier
1353 |       }
1354 |     }
1355 |     if ((MenuDiv) && (OfficerRow > 0)) {
1356 |       MenuDiv.getElementsByTagName('table')[0].deleteRow(OfficerRow);
1357 |     }
1358 |     GM_addStyle('div#combox_container, table.header td[width="35"] { display:none; }');
1359 |   }
1360 |   catch(err) {
1361 |     ShowError(err, 'RemoveOfficer()');
1362 |   }
1363 | }
1364 |
1365 | function RemoveTrader(TraderRow) { // Enleve le lien marchand
1366 |   try {
1367 |     if ((MenuDiv) && (TraderRow > 0)) {
1368 |       MenuDiv.getElementsByTagName('table')[0].deleteRow(TraderRow);
1369 |     }
1370 |   }
1371 |   catch(err) {
1372 |     ShowError(err, 'RemoveTrader()');
1373 |   }
1374 | }
1375 |
1376 |
1377 |
1378 |
1379 |
1380 | /* FONCTIONS GENERALES
1381 |    -------------------------------------------------- */
1382 |
1383 | function FormatNb(number) { // Ajoute des points tous les 3 chiffres pour une meilleure lecture
1384 |   try {
1385 |     var nNbr = String(number); 
1386 |     var sRes = '';
1387 |     if (nNbr.charAt(0) == '-') {
1388 |       var Sign = '-';
1389 |       var nNb = nNbr.substring(1, nNbr.length);
1390 |     }
1391 |     else {
1392 |       var Sign = '';
1393 |       var nNb = nNbr;
1394 |     }
1395 |     if (ShowInKilo == false) { // Affiche le resultat en kilo
1396 |       for (var j, i = nNb.length - 1, j = 0; i >= 0; i--, j++)
1397 |       sRes = nNb.charAt(i) + ((j > 0) && (j % 3 == 0)? '.': '') + sRes;
1398 |       return Sign+sRes;
1399 |     }
1400 |     else {
1401 |       if (nNb.length > 3) {
1402 |         for (var j, i = nNb.length - 4, j = 0; i >= 0; i--, j++)
1403 |         sRes = nNb.charAt(i) + ((j > 0) && (j % 3 == 0)? '.': '') + sRes;
1404 |         return Sign+sRes+'k';
1405 |       }
1406 |       else {
1407 |         return Sign+nNb;
1408 |       }
1409 |     }
1410 |   }
1411 |   catch(err) {
1412 |     ShowError(err, 'FormatNb()');
1413 |   }
1414 | }
1415 |
1416 | function SortNumber(a,b) { // Pour specifier que le tri est numerique et pas alphabetique
1417 |   return a-b;
1418 | }
1419 |
1420 | function RSet(string, length, character) { // Ajoute X caractere a gauche pour avoir la longueur voulu
1421 |   try {
1422 |     string = new String(string); // Pour etre que c'est bien un string
1423 |     if (string.length >= length) {
1424 |       return string;
1425 |     }
1426 |     else if (character.length == 1) {
1427 |       for (var i = 0; i < (length-string.length+1); i++) {
1428 |         string = character+string;
1429 |       }
1430 |       return string;
1431 |     }
1432 |   }
1433 |   catch(err) {
1434 |     ShowError(err, 'RSet()');
1435 |   }
1436 | }
1437 |
1438 | function GetField(String, Index, SeparatorKey) {
1439 |   if (String.length > 0) {
1440 |     var A_Get = new Array();
1441 |     A_Get = String.split(SeparatorKey);
1442 |     if (A_Get.length > Index) {
1443 |       return A_Get[Index];
1444 |     }
1445 |   }
1446 |   return '';
1447 | }
1448 |
1449 | function FormatTime(time, ReturnArrivalDate) { // Mis en forme une duree en millisecondes
1450 |   try {
1451 |     if ((ReturnArrivalDate == undefined) || (ReturnArrivalDate == false)) {
1452 |       var day = 0;
1453 |       var hour = 0;
1454 |       var min = 0;
1455 |       var sec = 0;
1456 |       
1457 |       day = Math.floor(time/86400000);
1458 |       hour = Math.floor((time-(day*86400000))/3600000);
1459 |       min = Math.floor((time-(day*86400000)-(hour*3600000))/60000);
1460 |       sec = Math.floor((time-(day*86400000)-(hour*3600000)-(min*60000))/1000);
1461 |       
1462 |       if (time >  86399999) { // >= 1 jour  
1463 |         if (ShowSecondForUpperUpdateTimeInDay == true) {
1464 |           return day+A_Language[C_DayAbbreviation]+','+hour+A_Language[C_HourAbbreviation]+':'+RSet(min, 2, '0')+A_Language[C_MinuteAbbreviation]+':'+RSet(sec, 2, '0')+A_Language[C_SecondAbbreviation];
1465 |         }
1466 |         else {
1467 |           return day+A_Language[C_DayAbbreviation]+','+hour+A_Language[C_HourAbbreviation]+':'+RSet(min, 2, '0')+A_Language[C_MinuteAbbreviation];
1468 |         }
1469 |       }
1470 |       else if (time > 3599999) { // >= 1 heure
1471 |         return hour+A_Language[C_HourAbbreviation]+':'+RSet(min, 2, '0')+A_Language[C_MinuteAbbreviation]+':'+RSet(sec, 2, '0')+A_Language[C_SecondAbbreviation];
1472 |       }
1473 |       else if (time > 59999) { // >= 1 minute
1474 |         return min+A_Language[C_MinuteAbbreviation]+':'+RSet(sec, 2, '0')+A_Language[C_SecondAbbreviation];
1475 |       }
1476 |       else if (time > 999) { // >= 1 seconde
1477 |         return sec+A_Language[C_SecondAbbreviation];
1478 |       }
1479 |       else if (time >= 0) { // < 1 seconde
1480 |         return '0'+A_Language[C_SecondAbbreviation];
1481 |       }
1482 |       else {
1483 |         return '';
1484 |       }
1485 |     }
1486 |     else {
1487 |       if (time > 0) {
1488 |         var date = new Date();
1489 |         date.setTime(date.getTime()+time);
1490 |         return String(date.getHours())+':'+RSet(String(date.getMinutes()),2,'0')+' '+String(date.getDate())+'/'+RSet(String(date.getMonth()+1),2,'0')+'/'+RSet(String(date.getYear()).substr(1,2),2,'0');
1491 |       }
1492 |       else if (time == 0) {
1493 |         return '0'+A_Language[C_SecondAbbreviation];
1494 |       }
1495 |       else {
1496 |         return '';
1497 |       }
1498 |     }
1499 |   }
1500 |   catch(err) {
1501 |     ShowError(err, 'FormatTime()');
1502 |   }
1503 | }
1504 |
1505 | function CreateClipboard() {
1506 |   if(!window.clipboardData) {
1507 |     window.clipboardData = {
1508 |       setData : function(mode,content) {
1509 |         var clipboard = document.body;
1510 |         var flashclipboard = clipboard.flashclipboard;
1511 |         if(flashclipboard == null){
1512 |           flashclipboard = document.createElement("div");
1513 |           clipboard.flashclipboard = flashclipboard;
1514 |           clipboard.appendChild(flashclipboard);
1515 |         }
1516 |         flashclipboard.innerHTML = '<embed src="'+C_Server+'clipboard.swf" FlashVars="clipboard='+encodeURIComponent(content)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
1517 |       }
1518 |     }
1519 |   }
1520 | }
1521 | unsafeWindow.CreateClipboard = CreateClipboard;
1522 |
1523 | function SetClipboard(Text) {
1524 |   if (!document.getElementsByTagName('embed').length) {
1525 |     CreateClipboard();
1526 |   }
1527 |   if (window.clipboardData)
1528 |   window.clipboardData.setData('text',Text);
1529 | }
1530 | unsafeWindow.SetClipboard = SetClipboard;
1531 |
1532 |
1533 |
1534 |
1535 |
1536 | /* FONCTIONS ET DECLARATIONS GENERALES DU SCRIPT
1537 |    ---------------------------------------------------*/
1538 | function ShowError(Err, Block) {
1539 |    if (Debug == false) {
1540 |     var Error = 'Script : \''+C_ScriptName+'\',Version : '+C_ScriptVersion+' '+C_ScriptBuild+'\n\n'; 
1541 |     Error += 'Block: ' + Block + '\n\n';
1542 |     Error += 'Name: ' + Err.name + '\n';
1543 |     Error += 'Description: ' + Err.message + '\n';
1544 |     Error += 'Line number: ' + Err.lineNumber + '\n\n';
1545 |     if (DebugAdvanced == true) {
1546 |       Error += 'File name:\n' + Err.fileName + '\n\n';
1547 |       Error += 'Constructor:\n' + Err.constructor + '\n\n';
1548 |       Error += 'Stack:\n' + (Err.stack||'') + '\n\n';
1549 |      }
1550 |     Error += 'Click OK para continuar.\n';
1551 |     alert(Error);
1552 |   }
1553 |   return true;
1554 | }
1555 |
1556 | function SaveAccount() {
1557 |   var Value = '';
1558 |   for (i = 0; i < A_Account.length; i++) {
1559 |     for (j = 0; j < A_Account[i].length; j++) {
1560 |       Value += A_Account[i][j]+';';
1561 |     }
1562 |     Value = Value.substr(0,Value.length-1)+'|';
1563 |   }
1564 |   GM_setValue('OT_Account', Value.substr(0,Value.length-1));
1565 | }
1566 |
1567 | function ScriptShowHide(Id, TitleId, Title) {
1568 |   var DivId = document.getElementById(Id);
1569 |   var SpanTitleId = document.getElementById(TitleId);
1570 |   if (DivId.style.display == 'none') {
1571 |     DivId.style.display = '';
1572 |     SpanTitleId.innerHTML = Title+'&nbsp;&nbsp;&nbsp;<img src="'+C_ImgUp+'" alt="'+A_Language[C_RollUp]+'" '+((AddToolTip == true)?'title="'+A_Language[C_RollUp]+'"':'')+'>';
1573 |   }
1574 |   else {
1575 |     DivId.style.display = 'none';
1576 |     SpanTitleId.innerHTML = Title+'&nbsp;&nbsp;&nbsp;<img src="'+C_ImgDown+'" alt="'+A_Language[C_Unfold]+'" '+((AddToolTip == true)?'title="'+A_Language[C_Unfold]+'"':'')+'>';
1577 |   }
1578 | }
1579 | unsafeWindow.ScriptShowHide = ScriptShowHide;
1580 |
1581 | function GMsetValue(Name, Value) {
1582 |   window.setTimeout(GM_setValue, 0, Name, Value);
1583 | }
1584 | unsafeWindow.GMsetValue = GMsetValue;
1585 |
1586 | function GMsetRefreshValue(RPR,AUR) {
1587 |   GMsetValue('OT_'+Account+'_Refresh', 'RefreshPlanetRest='+RPR+'|AutoUpdateRest='+AUR);
1588 | }
1589 | unsafeWindow.GMsetRefreshValue = GMsetRefreshValue;
1590 |
1591 | function GetValue(GMValue, Key, DefaultValue) {
1592 |   try {
1593 |     var Value = '';
1594 |     if (GMValue.length > 0) {
1595 |       var A_GetGM = GMValue.split(Separator);
1596 |       if (A_GetGM.length > 0) {
1597 |         for (var k = 0; k < A_GetGM.length; k++) {
1598 |           var A_GetGMKey = A_GetGM[k].split(KeySeparator);
1599 |           if (A_GetGMKey[0] == Key) {
1600 |             Value = '';
1601 |             if (A_GetGMKey.length > 2) {
1602 |               for (var l = 1; l < A_GetGMKey.length; l++) {
1603 |                 Value += A_GetGMKey[l]+'=';
1604 |               }
1605 |               Value = Value.substr(0, Value.length-1);
1606 |             }
1607 |             else {
1608 |               Value = A_GetGMKey[1];
1609 |             }
1610 |             if ((Value == 'true') || (Value == 'false')) {
1611 |               return eval(Value);
1612 |             }
1613 |             else if (Value) {
1614 |               return Value;
1615 |             }
1616 |           }
1617 |         }
1618 |       }
1619 |     }
1620 |     return DefaultValue;
1621 |   }
1622 |   catch(err) {
1623 |     ShowError(err, 'GetValue()');
1624 |   }
1625 | }
1626 |
1627 | function PlanetTimeUpdate(PlanetIndex, TimeInMillisecond, Color) { // Renvoie la class en fonction du temps depuis la derniere mise a jour
1628 |   try {
1629 |     if (A_Planet[PlanetIndex].Session == Session) {
1630 |       var TimeUpdate = A_Resources[PlanetIndex].Update;
1631 |       var GTime = new Date();
1632 |       var CurrentTime = GTime.getTime();
1633 |       if (TimeInMillisecond == false) {
1634 |         if ((CurrentTime-TimeUpdate) < A_UpdateTimeColor[0]) {
1635 |           return ((Color)?'#00FF00':'Time0');
1636 |         }
1637 |         else if ((CurrentTime-TimeUpdate) < A_UpdateTimeColor[1]) {
1638 |           return ((Color)?'#33FF00':'Time1');
1639 |         }
1640 |         else if ((CurrentTime-TimeUpdate) < A_UpdateTimeColor[2]) {
1641 |           return ((Color)?'#66FF00':'Time2');
1642 |         }
1643 |         else if ((CurrentTime-TimeUpdate) < A_UpdateTimeColor[3]) {
1644 |           return ((Color)?'#99FF00':'Time3');
1645 |         }
1646 |         else if ((CurrentTime-TimeUpdate) < A_UpdateTimeColor[4]) {
1647 |           return ((Color)?'#CCFF00':'Time4');
1648 |         }
1649 |         else if ((CurrentTime-TimeUpdate) < A_UpdateTimeColor[5]) {
1650 |           return ((Color)?'#FFFF00':'Time5');
1651 |         }
1652 |         else if ((CurrentTime-TimeUpdate) < A_UpdateTimeColor[6]) {
1653 |           return ((Color)?'#FFCC00':'Time6');
1654 |         }
1655 |         else if ((CurrentTime-TimeUpdate) < A_UpdateTimeColor[7]) {
1656 |           return ((Color)?'#FF9900':'Time7');
1657 |         }
1658 |         else if ((CurrentTime-TimeUpdate) < A_UpdateTimeColor[8]) {
1659 |           return ((Color)?'#FF6600':'Time8');
1660 |         }
1661 |         else if ((CurrentTime-TimeUpdate) < A_UpdateTimeColor[9]) {
1662 |           return ((Color)?'#FF3300':'Time9');
1663 |         }
1664 |         else {
1665 |           return ((Color)?'#FF0000':'Time10');
1666 |         }
1667 |       }
1668 |       else {
1669 |         return CurrentTime-TimeUpdate;
1670 |       }
1671 |     }
1672 |     if (TimeInMillisecond == false) {
1673 |       return ((Color)?'#00FFFF':'TimeOut');
1674 |     }
1675 |     else {
1676 |       return -1;
1677 |     }
1678 |   }
1679 |   catch(err) {
1680 |     ShowError(err, 'PlanetTimeUpdate('+PlanetIndex+', '+TimeInMillisecond+', '+Color+')');
1681 |   }
1682 | }
1683 |
1684 | function ResourcesOver(PlanetIndex, Resource) { // Renvoie la class en fonction de l'etat des reservoirs et de l'energie (ok, sur-capacite, manque)
1685 |   try {
1686 |     // Resource=0 -> Metal, Resource=1 -> Cristal, Resource=2 -> Deuterium, Resource=3 -> Energie
1687 |     if (A_Planet[PlanetIndex].Type == C_Planet) {
1688 |       if (Resource == 0) { // Metal
1689 |         if (A_Resources[PlanetIndex].MetalOver == true) {
1690 |           return 'Over';
1691 |         }
1692 |       }
1693 |       else if (Resource == 1) { // Cristal
1694 |         if (A_Resources[PlanetIndex].CrystalOver == true) {
1695 |           return 'Over';
1696 |         }
1697 |       }
1698 |       else if (Resource == 2) { // Deuterium
1699 |         if (A_Resources[PlanetIndex].DeuteriumOver == true) {
1700 |           return 'Over';
1701 |         }
1702 |       }
1703 |       else { // Energie
1704 |         if (A_Resources[PlanetIndex].EnergyOver == true) {
1705 |           return 'Over';
1706 |         }
1707 |       }
1708 |     }
1709 |     return '';
1710 |   }
1711 |   catch(err) {
1712 |     ShowError(err, 'ResourcesOver('+PlanetIndex+', '+Resource+')');
1713 |   }
1714 | }
1715 |
1716 | function ValidateConstructionLevel(Group, Element, Level, PlanetIndex) {
1717 |   if (Group == C_Buildings) {
1718 |     if((A_Buildings[PlanetIndex][Element].Level=='-'?0:A_Buildings[PlanetIndex][Element].Level) < Level) {
1719 |       return false;
1720 |     }
1721 |   }
1722 |   else {
1723 |     if((A_Research[Element].Level=='-'?0:A_Research[Element].Level) < Level) {
1724 |       return false;
1725 |     }
1726 |   }
1727 |   return true;
1728 | }
1729 |
1730 | function ValidateBuilding(Group, Element, PlanetIndex) {
1731 |   try {
1732 |     var ErrorBuilding = '';
1733 |     if ((Group == C_Buildings) && ((A_Planet[PlanetIndex].TotalSpace-A_Planet[PlanetIndex].UsedSpace) == 0)) {
1734 |       ErrorBuilding += A_Language[C_NotEnoughFreeField]+'<br>';
1735 |     }
1736 |     else {
1737 |       if ((A_Planet[PlanetIndex].Type == C_Moon) && (A_Buildings[PlanetIndex][14].Level == 0) && (Element != 14)) {
1738 |         ErrorBuilding += A_Language[C_LunarBaseNotBuilt]+'<br>';
1739 |       }
1740 |     }
1741 |     if ((A_Construction[Group][Element].PlanetType == A_Planet[PlanetIndex].Type) || (A_Construction[Group][Element].PlanetType == C_All)) {
1742 |       if (A_Construction[Group][Element].Group0 >= 0) {
1743 |         if (ValidateConstructionLevel(A_Construction[Group][Element].Group0,A_Construction[Group][Element].Element0,A_Construction[Group][Element].Level0, PlanetIndex) == false) {
1744 |           ErrorBuilding += A_Construction[A_Construction[Group][Element].Group0][A_Construction[Group][Element].Element0].Name+' '+A_Construction[Group][Element].Level0+'<br>';
1745 |         }
1746 |         if (A_Construction[Group][Element].Group1 >= 0) {
1747 |           if (ValidateConstructionLevel(A_Construction[Group][Element].Group1,A_Construction[Group][Element].Element1,A_Construction[Group][Element].Level1, PlanetIndex) == false) {
1748 |             ErrorBuilding += A_Construction[A_Construction[Group][Element].Group1][A_Construction[Group][Element].Element1].Name+' '+A_Construction[Group][Element].Level1+'<br>';
1749 |           }
1750 |           if (A_Construction[Group][Element].Group2 >= 0) {
1751 |             if (ValidateConstructionLevel(A_Construction[Group][Element].Group2,A_Construction[Group][Element].Element2,A_Construction[Group][Element].Level2, PlanetIndex) == false) {
1752 |               ErrorBuilding += A_Construction[A_Construction[Group][Element].Group2][A_Construction[Group][Element].Element2].Name+' '+A_Construction[Group][Element].Level2+'<br>';
1753 |             }
1754 |             if (A_Construction[Group][Element].Group3 >= 0) {
1755 |               if (ValidateConstructionLevel(A_Construction[Group][Element].Group3,A_Construction[Group][Element].Element3,A_Construction[Group][Element].Level3, PlanetIndex) == false) {
1756 |                 ErrorBuilding += A_Construction[A_Construction[Group][Element].Group3][A_Construction[Group][Element].Element3].Name+' '+A_Construction[Group][Element].Level3+'<br>';
1757 |               }
1758 |             }
1759 |           }
1760 |         }
1761 |       }
1762 |     }
1763 |     else {
1764 |       if (A_Planet[PlanetIndex].Type == C_Planet) {
1765 |         ErrorBuilding += A_Language[C_NotOnPlanet]+'<br>';
1766 |       }
1767 |       else {
1768 |         ErrorBuilding += A_Language[C_NotOnMoon]+'<br>';
1769 |       }
1770 |     }
1771 |     return ErrorBuilding;
1772 |   }
1773 |   catch(err) {
1774 |     ShowError(err, 'ValidateBuilding('+Group+', '+Element+', '+PlanetIndex+')');
1775 |   }
1776 | }
1777 |
1778 | function SaveTransfer(TransferShowTmp) {
1779 |   var Value = 'Show='+((TransferShowTmp != undefined)?eval(TransferShowTmp):TransferShow)+
1780 |   '|Metal='+TransferMetal+
1781 |   '|Crystal='+TransferCrystal+
1782 |   '|Deuterium='+TransferDeuterium+
1783 |   '|State='+TransferState+
1784 |   '|ShipType='+TransferShipType+
1785 |   '|DestinationPlanet='+TransferDestinationPlanet+
1786 |   '|DestinationSystem='+TransferDestinationSystem+
1787 |   '|DestinationGalaxy='+TransferDestinationGalaxy+
1788 |   '|DestinationType='+TransferDestinationType;
1789 |   GMsetValue('OT_'+Account+'_Transfer', Value);
1790 | }
1791 | unsafeWindow.SaveTransfer = SaveTransfer;
1792 |
1793 | function AddAction(Action) {
1794 |   try {
1795 |     A_Actions[A_Actions.length] = Action.replace(/\|/g, '\'');
1796 |     Action = '';
1797 |     for (var k = 0; k < A_Actions.length; k++) {
1798 |       Action += A_Actions[k]+'|';
1799 |     }
1800 |     Action = Action.substr(0, Action.length-1);
1801 |     GMsetValue('OT_'+Account+'_Actions', Action);
1802 |   }
1803 |   catch(err) {
1804 |     ShowError(err, 'AddAction('+Action+')');
1805 |   }
1806 | }
1807 | unsafeWindow.AddAction = AddAction;
1808 |
1809 |
1810 |
1811 |
1812 |
1813 | /* DETECTION DE LA VERSION DU SCRIPT PRECEDEMMENT INSTALLE
1814 |    -------------------------------------------------- */
1815 |
1816 | if (((ScriptVersion != C_ScriptVersion) || (ScriptBuild != C_ScriptBuild)) && (Session) && (OgameHeader == true) && (HeaderDiv)) {
1817 |   try {
1818 |     // Affichage du non support du domaine ogame
1819 |     if (SupportedExtension == false) {
1820 |       alert(C_ScriptName+' doesn\'t support \253'+OgameExtension+'\273 ogame domain.\n'+
1821 |       'If you have some time to spend ;), you can translate this script.\n\n'+
1822 |       'Thanks in advance.\n\n'+
1823 |       'If you want some help, you can contact me through this page:\n'+
1824 |       'http://userscripts.org/scripts/show/23500\nOr:\n'+
1825 |       'http://lggillou.vbc3.com/poster.php\n\n'+
1826 |       'This ogame domain being unsupported, the english language will be used by default,\n'+
1827 |       'So errors will occur because some functions require a translation.');
1828 |     }
1829 |     // Sauvegarde de la version
1830 |     GM_setValue('OT_'+Account+'_Version', 'Version='+C_ScriptVersion+'|Build='+C_ScriptBuild);
1831 |     var Script; if (ScriptVersion) Script = ScriptVersion.match(/([\d\.]+)/)[1];
1832 |     if (Script != C_ScriptVersion.match(/([\d\.]+)/)[1]) {
1833 |       alert(A_Language[C_NewVersion]);
1834 |       window.setTimeout('window.location.replace(\'/game/index.php?page=techtree&session='+Session+'\')', 100);
1835 |     }
1836 |     else {
1837 |       alert(A_Language[C_NewBuild]);
1838 |       var Build = parseInt(ScriptBuild.match(/([0]{0,2})([\d]{1,3})/)[2]);
1839 |       if (Build < 9) {
1840 |         if (confirm('This update calculates the real-time resources by taking into account the capacity of storages and tanks.\nDo you want to update resources pages now so that this function is operational?') == true) {
1841 |           AddAction('RefreshPlanet()')
1842 |           window.setTimeout('window.location.replace(\'/game/index.php?page=resources&session='+Session+'\')', 100);
1843 |         }
1844 |       }
1845 |       else if (Build < 13) {
1846 |         alert('This build fix an account management bug.\n\nIt is possible that your settings will be reset if you have more than one ogame account.\n\nSorry for inconveniences.');
1847 |         window.setTimeout('window.location.replace(\'/game/index.php?page=techtree&session='+Session+'\')', 100);
1848 |       }
1849 |       else if (Build < 15) {
1850 |         alert('This build fix an incompatibility.\n\nTechnology page will be refresh after click on OK');
1851 |         window.setTimeout('window.location.replace(\'/game/index.php?page=techtree&session='+Session+'\')', 100);
1852 |       }
1853 |     }
1854 |   }
1855 |   catch(err) {
1856 |     ShowError(err, 'Check version');
1857 |   }
1858 | }
1859 |
1860 |
1861 |
1862 |
1863 | /* TOUTES LA PAGES : RECUPERATION DES RESSOURCES DE LA PLANETE ET DES NOMS DES PLANETES
1864 |    -------------------------------------------------- */
1865 |
1866 | // Sauvegarde des donnees de la planete active
1867 | function SavePlanetResources(PlanetIndex) {
1868 |   var GTime = new Date();
1869 |   var Value = 'Session='+Session+
1870 |   '|Metal='+A_Resources[PlanetIndex].Metal+
1871 |   '|Crystal='+A_Resources[PlanetIndex].Crystal+
1872 |   '|Deuterium='+A_Resources[PlanetIndex].Deuterium+
1873 |   '|FreeEnergy='+A_Resources[PlanetIndex].FreeEnergy+
1874 |   '|TotalEnergy='+A_Resources[PlanetIndex].TotalEnergy+
1875 |   '|MetalOver='+A_Resources[PlanetIndex].MetalOver+
1876 |   '|CrystalOver='+A_Resources[PlanetIndex].CrystalOver+
1877 |   '|DeuteriumOver='+A_Resources[PlanetIndex].DeuteriumOver+
1878 |   '|EnergyOver='+A_Resources[PlanetIndex].EnergyOver+
1879 |   '|Update='+GTime.getTime();
1880 |   GM_setValue('OT_'+A_Planet[PlanetIndex].Id+'_Resources', Value);
1881 |   A_Resources[PlanetIndex].Update = GTime.getTime();
1882 | }
1883 |
1884 | function SavePlanetName() {
1885 |   var Value = '';
1886 |   for (i = 0; i < (PlanetSelect.length); i++) {
1887 |     Value += A_Planet[i].Name+'='+A_Planet[i].Id+'|';
1888 |   }
1889 |   Value += 'Session='+Session;
1890 |   GM_setValue('OT_'+Account+'_PlanetName', Value);
1891 | }
1892 |
1893 | if ((OgameHeader == true) && (HeaderDiv)) {
1894 |   try {
1895 |     // Recuperation des ressources et energie en stock
1896 |     var ResourcesTable = document.getElementById('resources');
1897 |     var ResourcesFont = ResourcesTable.getElementsByTagName('font');
1898 |     A_Resources[PlanetSelectedIndex].Metal = ResourcesFont[5].innerHTML.replace(/\./g,'');
1899 |     A_Resources[PlanetSelectedIndex].Crystal = ResourcesFont[6].innerHTML.replace(/\./g,'');
1900 |     A_Resources[PlanetSelectedIndex].Deuterium = ResourcesFont[7].innerHTML.replace(/\./g,'');
1901 |     var DarkMatter = ResourcesFont[8].innerHTML.replace(/\./g,'');
1902 |     var ResourcesTd = ResourcesTable.getElementsByTagName('td');
1903 |     var Energy = ResourcesTd[14].innerHTML.replace('<font >','').replace('<font>','').replace('<font color="'+ResourcesFont[9].color+'">','').replace('</font>','');
1904 |     A_Resources[PlanetSelectedIndex].FreeEnergy = Energy.substring(0, Energy.indexOf('/')).replace(/\./g,'');
1905 |     A_Resources[PlanetSelectedIndex].TotalEnergy = Energy.substring((Energy.indexOf('/')+1), (Energy.length)).replace(/\./g,'');
1906 |     
1907 |     // Verification ressources en surplus par rapport au reservoir et manque d'energie
1908 |     A_Resources[PlanetSelectedIndex].MetalOver = false;
1909 |     A_Resources[PlanetSelectedIndex].CrystalOver = false;
1910 |     A_Resources[PlanetSelectedIndex].DeuteriumOver = false;
1911 |     A_Resources[PlanetSelectedIndex].EnergyOver = false;
1912 |     if (ResourcesFont[5].color == '#ff0000') { A_Resources[PlanetSelectedIndex].MetalOver = true; }
1913 |     if (ResourcesFont[6].color == '#ff0000') { A_Resources[PlanetSelectedIndex].CrystalOver = true; }
1914 |     if (ResourcesFont[7].color == '#ff0000') { A_Resources[PlanetSelectedIndex].DeuteriumOver = true; }
1915 |     if (ResourcesFont[9].color == '#ff0000') { A_Resources[PlanetSelectedIndex].EnergyOver = true; }
1916 |     
1917 |     // Sauvegarde des donnees recuperees pour la planete en cours
1918 |     SavePlanetResources(PlanetSelectedIndex);
1919 |     SavePlanetName();
1920 |     SavePlanetInformations(PlanetSelectedIndex);
1921 |   }
1922 |   catch(err) {
1923 |     ShowError(err, 'Get metal, crystal, deuterium and energy resources value');
1924 |   }
1925 | }
1926 |
1927 |
1928 |
1929 |
1930 |
1931 | /* PAGE GENERALE (Recuperation des donnees et memorisation via GreaseMonkey)
1932 |    -------------------------------------------------- */
1933 |
1934 | function SavePlanetInformations(PlanetIndex) {
1935 |   var GTime = new Date();
1936 |   if (A_Planet[PlanetIndex].Type == C_Moon) {
1937 |     A_Planet[PlanetIndex].ImageUrl = SkinUrl+'planeten/mond.jpg';
1938 |   }
1939 |   var Value = 'Session='+A_Planet[PlanetIndex].Session+
1940 |   '|Type='+A_Planet[PlanetIndex].Type+
1941 |   '|UsedSpace='+A_Planet[PlanetIndex].UsedSpace+
1942 |   '|TotalSpace='+A_Planet[PlanetIndex].TotalSpace+
1943 |   '|Diameter='+A_Planet[PlanetIndex].Diameter+
1944 |   '|MaxTemperature='+A_Planet[PlanetIndex].MaxTemperature+
1945 |   '|MinTemperature='+A_Planet[PlanetIndex].MinTemperature+
1946 |   '|ImageUrl='+A_Planet[PlanetIndex].ImageUrl+
1947 |   '|Update='+((PlanetSelectedIndex==PlanetIndex)?GTime.getTime():A_Planet[PlanetIndex].Update);
1948 |   GM_setValue('OT_'+A_Planet[PlanetIndex].Id+'_Planet', Value);
1949 |   if (PlanetSelectedIndex==PlanetIndex) A_Planet[PlanetIndex].Update=GTime.getTime();
1950 | }
1951 |
1952 | if (OgamePage == 'overview') {
1953 |
1954 |   try {
1955 |     var link = '';
1956 |     var Space = '';
1957 |     var Temp = '';
1958 |     if (ContentDiv) {
1959 |       var Table = ContentDiv.getElementsByTagName('table');
1960 |       for (j = 0; j < Table.length;j++){
1961 |         for (var k = 0; k < Table[j].rows.length; k++) {
1962 |           var cell = Table[j].rows[k].cells[0].textContent;
1963 |           if (cell.match(A_Language[C_Planet]+' ') || cell.match(A_Language[C_Moon]+' ')) {
1964 |             
1965 |             // Recuperation du type de colonie (planete ou lune)
1966 |             if (cell.match(A_Language[C_Planet]+' ')) {
1967 |               A_Planet[PlanetSelectedIndex].Type = C_Planet;
1968 |             }
1969 |             else {
1970 |               A_Planet[PlanetSelectedIndex].Type = C_Moon;
1971 |             }
1972 |             
1973 |             // Recuperation de l'adresse de l'image de planete en cours
1974 |             var Img = Table[j].getElementsByTagName('img')[0].src;
1975 |             if (Img.match('planeten') && A_Planet[PlanetSelectedIndex].Type == C_Planet) {
1976 |               A_Planet[PlanetSelectedIndex].ImageUrl = Img.replace(/planeten\//g, 'planeten/small/s_');
1977 |             }
1978 |             if (A_Planet[PlanetSelectedIndex].ImageUrl.match('mond')) {
1979 |               var Img = Table[j].getElementsByTagName('img')[1].src;
1980 |               if (Img.match('planeten') && A_Planet[PlanetSelectedIndex].Type == C_Planet) {
1981 |                 A_Planet[PlanetSelectedIndex].ImageUrl = Img.replace(/planeten\//g, 'planeten/small/s_');
1982 |               }
1983 |               else {
1984 |                 A_Planet[PlanetSelectedIndex].ImageUrl = '';
1985 |               }
1986 |             }
1987 |             
1988 |             // Recuperation de l'adresse des images des autres planetes
1989 |             var ImgTable = Table[j].getElementsByTagName('table')[0];
1990 |             for (var r = 0; r < ImgTable.rows.length; r++) {
1991 |               for (var c = 0; c < ImgTable.rows[r].cells.length; c++) {
1992 |                 var cell = ImgTable.rows[r].cells[c];
1993 |                 if (cell.getElementsByTagName('a')[0]) {                
1994 |                   link = cell.getElementsByTagName('a')[0].href;
1995 |                   link = link.match(/cp=([0-9]+)/);                  
1996 |                   if (link) {
1997 |                     for (i = 0; i < PlanetSelect.length; i++) {
1998 |                       if (A_Planet[i].Id == link[1]) {
1999 |                         Img = cell.getElementsByTagName('img')[0].src;
2000 |                         if (Img.match('planeten')) {
2001 |                           A_Planet[i].ImageUrl = Img;
2002 |                         }
2003 |                       }
2004 |                     }
2005 |                   }
2006 |                 }
2007 |               }
2008 |             }
2009 |           }
2010 |           // Recuperation du nombre de cases (utilisees et total) et du diametre
2011 |           else if (cell.match(A_Language[C_Diameter])) {
2012 |             var cell = Table[j].rows[k].cells[1];
2013 |             Space = cell.textContent.match(/([0-9\.]+)([a-zA-Z \(]+)([0-9]+)([ \/]+)([0-9]+)/);
2014 |             if (Space) {
2015 |               A_Planet[PlanetSelectedIndex].Diameter = Space[1].replace('.', '');
2016 |               A_Planet[PlanetSelectedIndex].UsedSpace = Space[3];
2017 |               A_Planet[PlanetSelectedIndex].TotalSpace = Space[5];
2018 |             }
2019 |           }
2020 |           // Recuperation de la temperature (minimum et maximum)
2021 |           else if (cell.match(A_Language[C_Temperature])) {
2022 |             var cell = Table[j].rows[k].cells[1];
2023 |             Temp = cell.textContent.match(/([a-zA-Z\. ]+)([0-9\-]+)([a-zA-Z\260\340 ]+)([0-9\-]+)/);
2024 |             if (Temp) {
2025 |               A_Planet[PlanetSelectedIndex].MinTemperature = Temp[2];
2026 |               A_Planet[PlanetSelectedIndex].MaxTemperature = Temp[4];
2027 |             }
2028 |             break;
2029 |           }
2030 |         }
2031 |         break;
2032 |       }
2033 |       for (i = 0; i < PlanetSelect.length; i++) {
2034 |         SavePlanetInformations(i);
2035 |       }
2036 |     }
2037 |   }
2038 |   catch(err) {
2039 |     ShowError(err, 'Get informations from overview page');
2040 |   }
2041 | }
2042 |
2043 |
2044 |
2045 |
2046 |
2047 | /* PAGE DES PRE-REQUIS DE CONSTRUCTION (Recuperation des donnees et memorisation via GreaseMonkey)
2048 |    -------------------------------------------------- */
2049 |
2050 | function SaveConstructionName() {
2051 |   var Value = '';
2052 |   for (i = 0; i < A_Construction.length; i++) {
2053 |     for (j = 0; j < A_Construction[i].length; j++) {
2054 |       Value += i+';'+j+';'+A_Construction[i][j].Name+'|';
2055 |     }
2056 |   }
2057 |   GM_setValue('OT_'+Account+'_ConstructionName', Value.substr(0,Value.length-1));
2058 | }
2059 |
2060 | if (OgamePage == 'techtree') {
2061 |   try {
2062 |     if (ContentDiv) {
2063 |       var Table = ContentDiv.getElementsByTagName('table');
2064 |       var Group = C_Buildings;
2065 |       var SpecialBuildings = 0;
2066 |       var i = 0;
2067 |       for (var n = 0; n < Table.length; n++) {
2068 |         var ResTable = Table[n];
2069 |         if (ResTable.rows[0].cells[1].textContent.match(A_Language[C_Require])) {
2070 |           for (var r = 1; r < ResTable.rows.length; r++) {
2071 |             if (ResTable.rows[r].cells[1].textContent.match(A_Language[C_Require])) {
2072 |               if (Group == C_Buildings) { Group = C_Research; SpecialBuildings=i; i=0; }
2073 |               else if (Group == C_Research) { Group = C_Fleets; i=0; }
2074 |               else if (Group == C_Fleets) { Group = C_Defenses; i=0;}
2075 |               else { Group = C_Buildings; i=SpecialBuildings; }
2076 |             }
2077 |             else if (ResTable.rows[r].cells[0].getElementsByTagName('a').length > 0) {
2078 |               var gid = ResTable.rows[r].cells[0].getElementsByTagName('a')[0].href.match(/gid=([\d]{1,3})/)[1];
2079 |               var name = ResTable.rows[r].cells[0].textContent.replace(/\[i\]/g,'').replace(/\n/g,'').replace(/^\s+/g,'').replace(/\s+$/g,'');
2080 |               var NotFound = true;
2081 |               for (j = 0; j < A_Construction[Group].length; j++) {
2082 |                 if (gid == A_Construction[Group][j].Id) {
2083 |                   A_Construction[Group][j].Name = name;
2084 |                   i++;
2085 |                   NotFound = false;
2086 |                   break;
2087 |                 }
2088 |               }
2089 |               if (NotFound == true) {
2090 |                 A_Construction[Group][i].Name = null;
2091 |               }
2092 |             }
2093 |           }
2094 |           break;
2095 |         }
2096 |       }
2097 |       SaveConstructionName();
2098 |     }
2099 |   }
2100 |   catch(err) {
2101 |     ShowError(err, 'Get construction name');
2102 |   }
2103 | }
2104 |
2105 |
2106 |
2107 |
2108 |
2109 | /* PAGE RESSOURCES (Recuperation des donnees et memorisation via GreaseMonkey)
2110 |    -------------------------------------------------- */
2111 |
2112 | function SavePlanetPourcent(PlanetIndex) {
2113 |   var GTime = new Date();
2114 |   var Value = 'Rate='+A_Pourcent[PlanetIndex].Rate+
2115 |   '|Metal='+A_Pourcent[PlanetIndex].Metal+
2116 |   '|Crystal='+A_Pourcent[PlanetIndex].Crystal+
2117 |   '|Deuterium='+A_Pourcent[PlanetIndex].Deuterium+
2118 |   '|Solar='+A_Pourcent[PlanetIndex].Solar+
2119 |   '|Fusion='+A_Pourcent[PlanetIndex].Fusion+
2120 |   '|Ship212='+A_Pourcent[PlanetIndex].Ship212+
2121 |   '|Update='+GTime.getTime();
2122 |   GM_setValue('OT_'+A_Planet[PlanetIndex].Id+'_Pourcent', Value);
2123 | }
2124 |
2125 | function SavePlanetProduction(PlanetIndex) {
2126 |   var GTime = new Date();
2127 |   var Value = 'Metal='+A_Production[PlanetIndex].Metal+
2128 |   '|Crystal='+A_Production[PlanetIndex].Crystal+
2129 |   '|Deuterium='+A_Production[PlanetIndex].Deuterium+
2130 |   '|MetalMax='+A_Production[PlanetIndex].MetalMax+
2131 |   '|CrystalMax='+A_Production[PlanetIndex].CrystalMax+
2132 |   '|DeuteriumMax='+A_Production[PlanetIndex].DeuteriumMax+
2133 |   '|Update='+GTime.getTime();
2134 |   GM_setValue('OT_'+A_Planet[PlanetIndex].Id+'_Production', Value);
2135 | }
2136 |
2137 | if (OgamePage == 'resources') {
2138 |   
2139 |   try {
2140 |     if (PlanetSelectedIndex) {
2141 |       // Reinitialisation des variables
2142 |       A_Pourcent[PlanetSelectedIndex].Metal = '-';
2143 |       A_Pourcent[PlanetSelectedIndex].Crystal = '-';
2144 |       A_Pourcent[PlanetSelectedIndex].Deuterium = '-';
2145 |       A_Pourcent[PlanetSelectedIndex].Solar = '-';
2146 |       A_Pourcent[PlanetSelectedIndex].Fusion = '-';
2147 |       A_Pourcent[PlanetSelectedIndex].Ship212 = '-';
2148 |       A_Production[PlanetSelectedIndex].Metal = 0;
2149 |       A_Production[PlanetSelectedIndex].Crystal = 0;
2150 |       A_Production[PlanetSelectedIndex].Deuterium = 0;
2151 |       A_Production[PlanetSelectedIndex].MetalMax = 0;
2152 |       A_Production[PlanetSelectedIndex].CrystalMax = 0;
2153 |       A_Production[PlanetSelectedIndex].DeuteriumMax = 0;
2154 |     }
2155 |     
2156 |     if (ContentDiv) {
2157 |       var NoRepeat;
2158 |       var ProductionRate = ContentDiv.innerHTML.match(A_Language[C_ProductionRate]+'([\\d\\.]+)');
2159 |       if (ProductionRate) {
2160 |         A_Pourcent[PlanetSelectedIndex].Rate = ProductionRate[1];
2161 |       }
2162 |       var Table = ContentDiv.getElementsByTagName('table');
2163 |       for (var n = 0; n < Table.length; n++) {
2164 |         var ResTable = ContentDiv.getElementsByTagName('table')[n];
2165 | // nonenn
2166 |         if (ResTable.rows[0].cells[0].textContent.match(A_Language[C_ResourcesTableHeader])) {
2167 |           for (var r = 0; r < ResTable.rows.length; r++) {
2168 |             if (ResTable.rows[r].cells.length == 7) {
2169 |               var cell = ResTable.rows[r].cells[0];
2170 |               if (!cell.textContent.match(A_Construction[C_Fleets][10].Name)) {
2171 |                 NoRepeat = -1
2172 |                 for (j = 0; j < 5; j++) {
2173 |                   if (cell.textContent.match(A_Construction[C_Buildings][j].Name)) {
2174 |                     NoRepeat = j;
2175 |                   }
2176 |                 }
2177 |                 if (cell.textContent.match(A_Construction[C_Buildings][NoRepeat].Name)) {
2178 |                   var Options = ResTable.rows[r].cells[6].getElementsByTagName('select')[0].options;
2179 |
2180 |                   for (var i = 0; i < 11; i++) {
2181 |                     if (Options[i].selected == true) {
2182 |                       if (NoRepeat == 0) {
2183 |                         A_Pourcent[PlanetSelectedIndex].Metal = Options[i].value;
2184 |                         NoRepeat++;
2185 |                         break;
2186 |                       }
2187 |                       else if (NoRepeat == 1) {
2188 |                         A_Pourcent[PlanetSelectedIndex].Crystal = Options[i].value;
2189 |                         NoRepeat++;
2190 |                         break;
2191 |                       }
2192 |                       else if (NoRepeat == 2) {
2193 |                         A_Pourcent[PlanetSelectedIndex].Deuterium = Options[i].value;
2194 |                         NoRepeat++;
2195 |                         break;
2196 |                       }
2197 |                       else if (NoRepeat == 3) {
2198 |                         A_Pourcent[PlanetSelectedIndex].Solar = Options[i].value;
2199 |                         NoRepeat++;
2200 |                         break;
2201 |                       }
2202 |                       else if (NoRepeat == 4) {
2203 |                         A_Pourcent[PlanetSelectedIndex].Fusion = Options[i].value;
2204 |                         NoRepeat++;
2205 |                         break;
2206 |                       }
2207 |                     }
2208 |                   }
2209 |                 }
2210 |               }
2211 |               else if (cell.textContent.match(A_Construction[C_Fleets][10].Name)) {
2212 |                 var Options = ResTable.rows[r].cells[6].getElementsByTagName('select')[0].options;
2213 |                 for (var i = 0; i < 11; i++) {
2214 |                   if (Options[i].selected == true) {
2215 |                     A_Pourcent[PlanetSelectedIndex].Ship212 = Options[i].value;
2216 |                     NoRepeat++;
2217 |                     break;
2218 |                   }
2219 |                 }
2220 |               }
2221 |             }
2222 |             else if (ResTable.rows[r].cells.length == 5) {
2223 |               if (ResTable.rows[r].cells[0].textContent == A_Language[C_Total]+':') {
2224 |                 A_Production[PlanetSelectedIndex].Metal = ResTable.rows[r].cells[1].textContent.replace(/\./g, '');
2225 |                 A_Production[PlanetSelectedIndex].Crystal = ResTable.rows[r].cells[2].textContent.replace(/\./g, '');
2226 |                 A_Production[PlanetSelectedIndex].Deuterium = ResTable.rows[r].cells[3].textContent.replace(/\./g, '');
2227 |               }
2228 |             }
2229 |             else if (ResTable.rows[r].cells.length == 6) {
2230 |               if (ResTable.rows[r].cells[5].innerHTML.match('action')) {
2231 |                 A_Production[PlanetSelectedIndex].MetalMax = ResTable.rows[r].cells[1].textContent.replace(/\./g, '').replace(/k/g, '');
2232 |                 A_Production[PlanetSelectedIndex].CrystalMax = ResTable.rows[r].cells[2].textContent.replace(/\./g, '').replace(/k/g, '');
2233 |                 A_Production[PlanetSelectedIndex].DeuteriumMax = ResTable.rows[r].cells[3].textContent.replace(/\./g, '').replace(/k/g, '');
2234 |               }
2235 |             }
2236 |           }
2237 |         }
2238 |       }
2239 |       
2240 |       SavePlanetPourcent(PlanetSelectedIndex);
2241 |       SavePlanetProduction(PlanetSelectedIndex);
2242 |     }
2243 |   }
2244 |   catch(err) {
2245 |     ShowError(err, 'Get informations from resources page (Pourcent and production)');
2246 |   }
2247 | }
2248 |
2249 |
2250 |
2251 |
2252 |
2253 | /* PAGE BATIMENT (Recuperation des donnees et memorisation via GreaseMonkey)
2254 |    -------------------------------------------------- */
2255 |
2256 | function SavePlanetBuilding(PlanetIndex) {
2257 |   var UTime = new Date();
2258 |   var Value = '';
2259 |   for (j = 0; j < 18; j++) {
2260 |     Value += A_Construction[C_Buildings][j].Id+'='+A_Buildings[PlanetIndex][j].Level+'|'+
2261 |     A_Construction[C_Buildings][j].Id+'UC='+A_Buildings[PlanetIndex][j].UC+'|';
2262 |   }
2263 |   Value += 'Update='+UTime.getTime();
2264 |   GM_setValue('OT_'+A_Planet[PlanetIndex].Id+'_Buildings', Value);
2265 | }
2266 |
2267 | if (OgamePage == 'b_building') {
2268 |   
2269 |   try {  
2270 |     var ResourcesBuildingsUC = false;
2271 |     for (i = 0; i < 18; i++) {
2272 |       if ((i < 5 ) && (A_Buildings[PlanetSelectedIndex][i].UC > 0)) {
2273 |         ResourcesBuildingsUCIndex = i;
2274 |         BuildingsUCLevel = A_Buildings[PlanetSelectedIndex][i].Level;
2275 |       }
2276 |       if (A_Planet[PlanetSelectedIndex].Type == C_Planet) {
2277 |         if (i > 14) {
2278 |           A_Buildings[PlanetSelectedIndex][i].Level = '-';
2279 |         }
2280 |         else {
2281 |           if (A_Buildings[PlanetSelectedIndex][i].Level == '') {
2282 |             A_Buildings[PlanetSelectedIndex][i].Level = 0;
2283 |           }
2284 |         }
2285 |       }
2286 |       else { // Lune
2287 |         if ((i == 5) || ((i >= 7) && (i <= 10)) || (i >= 15)) {
2288 |           if (A_Buildings[PlanetSelectedIndex][i].Level == '') {
2289 |             A_Buildings[PlanetSelectedIndex][i].Level = 0;
2290 |           }
2291 |         }
2292 |         else {
2293 |           A_Buildings[PlanetSelectedIndex][i].Level = '-';
2294 |         }
2295 |       }
2296 |       A_Buildings[PlanetSelectedIndex][i].UC = '-';
2297 |     }
2298 |       
2299 |     var Content = null;
2300 |     var Level = null;
2301 |     var Table = ContentDiv.getElementsByTagName('table')[0].getElementsByTagName('table')[0];
2302 |     
2303 |     for (var r = 0; r < Table.rows.length; r++) {
2304 |       if (Table.rows[r].cells.length > 1) {
2305 |         if (Table.rows[r].cells.length == 2) {
2306 |           var cell = Table.rows[r].cells[0];
2307 |           var build = Table.rows[r].cells[1].innerHTML.match(/modus=remove/);
2308 |         }
2309 |         else {
2310 |           var cell = Table.rows[r].cells[1];
2311 |           var build = Table.rows[r].cells[2].innerHTML.match(/modus=remove/);
2312 |         }
2313 |         Content = cell.innerHTML.match(/\>([^\<]+)\<\/a\> \(([a-zA-Z]+) ([0-9]{1,2})/);
2314 |         if (Content) {
2315 |           Level = Content[3];
2316 |         }
2317 |         else {
2318 |           Content = cell.innerHTML.match(/\>([^\<]+)\<\/a\>\</);
2319 |           if (Content) Level = 0;
2320 |         }
2321 |         if (Content) {
2322 |           for (i = 0; i < 18; i++) {
2323 |             if (Content[i] == A_Construction[C_Buildings][i].Name) {
2324 |               if (build) {
2325 |                 A_Buildings[PlanetSelectedIndex][i].UC = (parseInt(Level)+1);
2326 |               }
2327 |               else if ((A_Buildings[PlanetSelectedIndex][i].Level != Level) && (i < 5)) {
2328 |                 ResourcesBuildingsUC = true;
2329 |               }
2330 |               A_Buildings[PlanetSelectedIndex][i].Level = Level;
2331 |               break;
2332 |             }
2333 |           }
2334 |         }
2335 |       }
2336 |     }
2337 |     SavePlanetBuilding(PlanetSelectedIndex);
2338 |     if ((ResourcesBuildingsUC == true) && (ShowRequestToUpdateResourcesPage == true) && (RefreshPlanetRest == 0) && (AutoUpdateRest == 0)) {
2339 |       if (confirm(A_Language[C_ResourcesBuildingsUC]) == true) {
2340 |         AddAction('window.location.replace(|'+BaseUrl+'?page=b_building&session='+Session+'&planet='+A_Planet[PlanetSelectedIndex].Id+'|)');
2341 |         window.setTimeout('window.location.replace(\''+ResourcesLink+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\')', 2000);
2342 |         NotRun = true;
2343 |       }
2344 |     }
2345 |   }
2346 |   catch(err) {
2347 |     ShowError(err, 'Get informations from buildings page');
2348 |   }
2349 | }
2350 |
2351 |
2352 |
2353 |
2354 |
2355 | /* PAGE LABORATOIRE (Recuperation des donnees et memorisation via GreaseMonkey)
2356 |    -------------------------------------------------- */
2357 |
2358 | function SaveTechnology() {
2359 |   var UTime = new Date();
2360 |   ResearchUpdate = UTime.getTime();
2361 |   var Value = '';
2362 |   for (j = 0; j < 16; j++) {
2363 |     Value += A_Construction[C_Research][j].Id+'='+A_Research[j].Level+'|'+
2364 |     A_Construction[C_Research][j].Id+'UC='+A_Research[j].UC+'|';
2365 |   }
2366 |   Value += 'Update='+ResearchUpdate;
2367 |   GM_setValue('OT_'+Account+'_Research', Value);
2368 | }
2369 |
2370 | if ((OgamePage == 'buildings') && (OgameMode == 'Forschung')) {
2371 |   
2372 |   try {
2373 |     
2374 |     var Content = null;
2375 |     var Level = null;
2376 |     var Table = ContentDiv.getElementsByTagName('table')[0].getElementsByTagName('table')[0];
2377 |     if (Table) {
2378 |       if (Table.rows.length > 0) {
2379 |         if ((Table.rows[0].cells.length != 3) && (Table.rows[0].cells.length != 2)) {
2380 |           Table = ContentDiv.getElementsByTagName('table')[0].getElementsByTagName('table')[1];
2381 |         }
2382 |         if (Table) {
2383 |           for (var r = 0; r < Table.rows.length; r++) {
2384 |             if (Table.rows[r].cells.length > 1) {
2385 |               if (Table.rows[r].cells.length == 2) {
2386 |                 var cell = Table.rows[r].cells[0];
2387 |                 var build = Table.rows[r].cells[1].textContent.match(/unbau=([^\;]+)cp=([\d]+)/);
2388 |               }
2389 |               else {
2390 |                 var cell = Table.rows[r].cells[1];
2391 |                 var build = Table.rows[r].cells[2].textContent.match(/unbau=([^\;]+)cp=([\d]+)/);
2392 |               }
2393 |               Content = cell.textContent.match(/([a-zA-Z \351\340]+) \(([a-zA-Z]+) ([0-9]{0,2})/);
2394 |               if (Content == null) {
2395 |                 Content = cell.innerHTML.match(/\>([^\<]+)\<\/a\>\</);
2396 |                 if (Content) Level = 0;
2397 |               }
2398 |               else {
2399 |                 Level = Content[3];
2400 |               }
2401 |               if (Content) {
2402 |                 for (j = 0; j < 16; j++) {
2403 | // supers
2404 |   //    alert (" "+ Content[1] +" --  "+ A_Construction[C_Research][j].Name +"  ");
2405 |                   if (Content[1] == A_Construction[C_Research][j].Name) 
2406 | {
2407 |                     A_Research[j].Level = Level;
2408 |                     if (build) {
2409 |                       A_Research[j].UC = build[2];
2410 |                     }
2411 |                     else {
2412 |                       A_Research[j].UC = '-';
2413 |                     }
2414 |                   }
2415 |                 }
2416 |               }
2417 |             }
2418 |           }
2419 |         }
2420 |       }
2421 |     }
2422 |     SaveTechnology();
2423 |   }
2424 |   catch(err) {
2425 |     ShowError(err, 'Get informations from research page');
2426 |   }
2427 | }
2428 |
2429 |
2430 |
2431 |
2432 |
2433 | /* PAGE DEFENSE (Recuperation des donnees et memorisation via GreaseMonkey)
2434 |    ------------------------------------------------- */
2435 |
2436 | function SavePlanetDefenses(PlanetIndex) {
2437 |   var UTime = new Date();
2438 |   var Value = '';
2439 |   for (j = 0; j < 10; j++) {
2440 |     Value += A_Construction[C_Defenses][j].Id+'='+A_Defenses[PlanetIndex][j]+'|';
2441 |   }
2442 |   Value += 'Update='+UTime.getTime();
2443 |   GM_setValue('OT_'+A_Planet[PlanetIndex].Id+'_Defenses', Value);
2444 | }
2445 |
2446 | if ((OgamePage == 'buildings') && (OgameMode == 'Verteidigung')) {
2447 |   
2448 |   try {
2449 |     for (j = 0; j < 10; j++) {
2450 |       A_Defenses[PlanetSelectedIndex][j] = 0;
2451 |     }
2452 |     
2453 |     var Content = null;
2454 |     var Table = ContentDiv.getElementsByTagName('table')[0].getElementsByTagName('table')[0];
2455 |     
2456 |     for (var r = 0; r < Table.rows.length; r++) {
2457 |       if (Table.rows[r].cells.length > 1) {
2458 |         if (Table.rows[r].cells.length == 2) {
2459 |           var cell = Table.rows[r].cells[0];
2460 |         }
2461 |         else {
2462 |           var cell = Table.rows[r].cells[1];
2463 |         }
2464 |         Content = null;
2465 |         if (cell.textContent.match(/([a-zA-Z \351\350\340\-]+) \( ([0-9\.]+) ([a-zA-Z])/)) {
2466 |           Content = cell.textContent.match(/([a-zA-Z \351\350\340\-]+) \( ([0-9\.]+) ([a-zA-Z])/)
2467 |         }
2468 |         else if (cell.textContent.match(/([a-zA-Z \351\350\340\-]+) \(([0-9\.]+) ([a-zA-Z])/)) {
2469 |           Content = cell.textContent.match(/([a-zA-Z \351\350\340\-]+) \(([0-9\.]+) ([a-zA-Z])/)
2470 |         }
2471 |         if (Content != null) {
2472 |           for (j = 0; j < 10; j++) {
2473 |             if (Content[1] == A_Construction[C_Defenses][j].Name) {
2474 |               A_Defenses[PlanetSelectedIndex][j] = Content[2].replace('.', '');
2475 |             }
2476 |           }
2477 |         }
2478 |       }
2479 |     }
2480 |     SavePlanetDefenses(PlanetSelectedIndex);
2481 |     
2482 |   }
2483 |   catch(err) {
2484 |     ShowError(err, 'Get informations from defense page');
2485 |   }
2486 | }
2487 |
2488 |
2489 |
2490 |
2491 |
2492 | /* PAGE DEFENSE ET CHANTIER SPATIAL (Vaisseaux et defenses en construction) (Recuperation des donnees et memorisation via GreaseMonkey)
2493 |    ------------------------------------------------- */
2494 |
2495 | function SavePlanetFleetsDefensesUC(PlanetIndex) {
2496 |   var UTime = new Date();
2497 |   var Value = 'List=', n = 0;
2498 |   A_FleetsDefensesUC[PlanetIndex].List = '';
2499 |   for (j = 0; j < A_Ship.length; j++) {
2500 |     if (A_Ship[j].length > 0) {
2501 |       if (n&1 == 1) {
2502 |         A_FleetsDefensesUC[PlanetIndex].List += A_Ship[j]+':'+A_ShipNumber[j]+'<br>';
2503 |       }
2504 |       else {
2505 |         A_FleetsDefensesUC[PlanetIndex].List += '<font color="#ff9900">'+A_Ship[j]+':'+A_ShipNumber[j]+'</font><br>';
2506 |       }
2507 |       n++;
2508 |     }
2509 |   }
2510 |   Value += A_FleetsDefensesUC[PlanetIndex].List+'|Update='+UTime.getTime();
2511 |   A_FleetsDefensesUC[PlanetIndex].Update = UTime.getTime();
2512 |   GM_setValue('OT_'+A_Planet[PlanetIndex].Id+'_FleetsDefensesUC', Value);
2513 | }
2514 |
2515 | if ((OgamePage == 'buildings') && ((OgameMode == 'Verteidigung') || (OgameMode == 'Flotte'))) {
2516 |   try {
2517 |     var Script, Ship, ShipNumber;
2518 |     var A_Ship = new Array();
2519 |     var A_ShipNumber = new Array();
2520 |     if (document.getElementsByTagName('script').length > 0) {
2521 |       for (i = 0; i < document.getElementsByTagName('script').length; i++) {
2522 |         Script = document.getElementsByTagName('script')[i].innerHTML;
2523 |         if (Script.match('b = new Array')) {
2524 |           Script = Script.replace(/\",\"/g, '"').replace(/\"\"/g,'').match(/b = new Array\(([^\{]+)aa = /);
2525 |           Ship = String(Script[1]).match(/([^\)]+)/);
2526 |           ShipNumber = String(Script[1]).match(/\(([^\)]+)/);
2527 |           A_Ship = Ship[1].substr(1,Ship[1].length-1).split(/\"/);
2528 |           A_ShipNumber = ShipNumber[1].substr(1,ShipNumber[1].length-1).split(/\"/);
2529 |           break;
2530 |         }
2531 |       }
2532 |     }
2533 |     SavePlanetFleetsDefensesUC(PlanetSelectedIndex);
2534 |   }
2535 |   catch(err) {
2536 |     ShowError(err, 'Get defenses and ship under construction');
2537 |   }
2538 | }
2539 |
2540 |
2541 |
2542 |
2543 |
2544 | /* PAGE FLOTTE (Recuperation des donnees et memorisation via GreaseMonkey)
2545 |    -------------------------------------------------- */
2546 |
2547 | function SavePlanetFleets(PlanetIndex) {
2548 |   var UTime = new Date();
2549 |   var Value = '';
2550 |   for (j = 0; j < 14; j++) {
2551 |     Value += A_Construction[C_Fleets][j].Id+'='+A_Fleets[PlanetIndex][j]+'|';
2552 |   }
2553 |   Value += 'Update='+UTime.getTime();
2554 |   GM_setValue('OT_'+A_Planet[PlanetIndex].Id+'_Fleets', Value);
2555 | }
2556 |
2557 | if (OgamePage == 'flotten1') {
2558 |   
2559 |   try {
2560 |     // Mise en memoire des vaisseaux de la planete en cours de visualisation
2561 |     for (j = 0; j < 14; j++) {
2562 |       if (document.getElementsByName('maxship'+A_Construction[C_Fleets][j].Id).length) {
2563 |         A_Fleets[PlanetSelectedIndex][j] = document.getElementsByName('maxship'+A_Construction[C_Fleets][j].Id)[0].value;
2564 |       }
2565 |       else {
2566 |         A_Fleets[PlanetSelectedIndex][j] = 0;
2567 |       }
2568 |     }  
2569 |     SavePlanetFleets(PlanetSelectedIndex);
2570 |   
2571 |   }
2572 |   catch(err) {
2573 |     ShowError(err, 'Get informations from fleet page');
2574 |   }
2575 | }
2576 |
2577 |
2578 |
2579 |
2580 |
2581 |
2582 | /* REALISATION DES ACTIONS
2583 |    ----------------------------------------------- */
2584 |
2585 | if ((A_Actions.length > 0) && (NotRun == false)) {
2586 |   try {
2587 |     var Actions = '';
2588 |     if (A_Actions.length > 1) {
2589 |       for (i = 1; i < A_Actions.length; i++) {
2590 |         Actions += A_Actions[i]+'|';
2591 |       }
2592 |       Actions = Actions.substr(0, Actions.length-1);
2593 |     }
2594 |     GM_setValue('OT_'+Account+'_Actions', Actions);
2595 |     window.setTimeout(A_Actions[0], 1500);
2596 |   }
2597 |   catch(err) {
2598 |     ShowError(err, 'Run saved actions');
2599 |   }
2600 | }
2601 |
2602 |
2603 |
2604 |
2605 |
2606 | /* PANNEAU DE CONFIGURATION (Page Options)
2607 |    ----------------------------------------------- */
2608 |
2609 | unsafeWindow.LinkInfo = function() {
2610 |   alert(A_Language[C_KeyWordsInformations]);
2611 | } 
2612 |
2613 | unsafeWindow.AddLink = function() {
2614 |   try {
2615 |     if (document.getElementById('AddLinkOption').getElementsByTagName('table')) {
2616 |       var ConfigTable = document.getElementById('AddLinkOption').getElementsByTagName('table')[0];
2617 |       var RowNumber = -1;
2618 |       for (j = 0; j < ConfigTable.rows.length; j++) {
2619 |         var Row = ConfigTable.rows[j];
2620 |         if (Row.cells[0].textContent == '') {
2621 |           if (Row.cells[0].getElementsByTagName('input')[0].name == 'AddLink') {
2622 |             RowNumber = j;
2623 |           }
2624 |         }
2625 |       }
2626 |       if (RowNumber >= 0) {
2627 |         NbLink = document.getElementsByName('NbLink')[0].value;
2628 |         document.getElementsByName('NbLink')[0].value = parseInt(NbLink)+1;
2629 |         var RowText = '<td class="c" colspan="2">'+A_Language[C_LinkNumber]+(parseInt(NbLink)+1)+'&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" name="Delete'+NbLink+'" onclick="DeleteLink('+NbLink+');" value="'+A_Language[C_Delete]+'"></td>\n';
2630 |         ConfigTable.insertRow(RowNumber);
2631 |         ConfigTable.rows[RowNumber].innerHTML = RowText;
2632 |         RowText = '<th><input type="TEXT" name="LinkName'+NbLink+'" value=""></th><th>'+A_Language[C_LinkName]+'</th>\n';
2633 |         ConfigTable.insertRow(RowNumber+1);
2634 |         ConfigTable.rows[RowNumber+1].innerHTML = RowText;
2635 |         RowText = '<th><input type="TEXT" name="LinkUrl'+NbLink+'" value=""></th><th>'+A_Language[C_LinkUrl]+' <a style="cursor:pointer" onclick="LinkInfo()">?</a></th>\n';
2636 |         ConfigTable.insertRow(RowNumber+2);
2637 |         ConfigTable.rows[RowNumber+2].innerHTML = RowText;
2638 |         RowText = '<th><input type="TEXT" name="LinkPosition'+NbLink+'" value="" '+NoStringInput+' size="2"></th><th>'+A_Language[C_LinkPosition]+'</th>\n';
2639 |         ConfigTable.insertRow(RowNumber+3);
2640 |         ConfigTable.rows[RowNumber+3].innerHTML = RowText;
2641 |         RowText = '<th><input type="CHECKBOX" name="LinkNewWindow'+NbLink+'"></th><th>'+A_Language[C_LinkNewWindow]+'</th>\n';
2642 |         ConfigTable.insertRow(RowNumber+4);
2643 |         ConfigTable.rows[RowNumber+4].innerHTML = RowText;
2644 |         RowText = '<th><input type="TEXT" name="LinkTitle'+NbLink+'" value=""></th><th>'+A_Language[C_LinkTitle]+'</th>\n';
2645 |         ConfigTable.insertRow(RowNumber+5);
2646 |         ConfigTable.rows[RowNumber+5].innerHTML = RowText;
2647 |       }
2648 |     }
2649 |   }
2650 |   catch(err) {
2651 |     ShowError(err, 'AddLink(), options page');
2652 |   }
2653 | }
2654 |
2655 | unsafeWindow.DeleteLink = function(LinkNumber) {
2656 |   try {
2657 |     if (document.getElementById('AddLinkOption').getElementsByTagName('table')) {
2658 |       var ConfigTable = document.getElementById('AddLinkOption').getElementsByTagName('table')[0];
2659 |       var RowNumber = -1;
2660 |       for (j = 0; j < ConfigTable.rows.length; j++) {
2661 |         var Row = ConfigTable.rows[j];
2662 |         if (Row.cells[0].textContent.match(A_Language[C_LinkNumber]+(parseInt(LinkNumber)+1))) {
2663 |           RowNumber = j;
2664 |         }
2665 |       }
2666 |       
2667 |       if (RowNumber >= 0) {
2668 |         NbLink = document.getElementsByName('NbLink')[0].value;
2669 |         document.getElementsByName('NbLink')[0].value = parseInt(NbLink)-1;
2670 |         ConfigTable.deleteRow(RowNumber+5);
2671 |         ConfigTable.deleteRow(RowNumber+4);
2672 |         ConfigTable.deleteRow(RowNumber+3);
2673 |         ConfigTable.deleteRow(RowNumber+2);
2674 |         ConfigTable.deleteRow(RowNumber+1);
2675 |         ConfigTable.deleteRow(RowNumber);
2676 |         for (j = (parseInt(LinkNumber)+1); j < NbLink; j++) {
2677 |           ConfigTable.rows[(RowNumber+(j-(parseInt(LinkNumber)+1))*6)].innerHTML = '<td class="c" colspan="2">'+A_Language[C_LinkNumber]+j+'&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" name="Delete'+(j-1)+'" onclick="DeleteLink('+(j-1)+');" value="'+A_Language[C_Delete]+'"></td>\n';
2678 |           document.getElementsByName('LinkName'+j)[0].name = 'LinkName'+(j-1);
2679 |           document.getElementsByName('LinkUrl'+j)[0].name = 'LinkUrl'+(j-1);
2680 |           document.getElementsByName('LinkPosition'+j)[0].name = 'LinkPosition'+(j-1);
2681 |           document.getElementsByName('LinkNewWindow'+j)[0].name = 'LinkNewWindow'+(j-1);
2682 |           document.getElementsByName('LinkTitle'+j)[0].name = 'LinkTitle'+(j-1);
2683 |         }
2684 |       }
2685 |     }
2686 |   }
2687 |   catch(err) {
2688 |     ShowError(err, 'DeleteLink(), options page');
2689 |   }
2690 | }
2691 |
2692 | function SaveChangedParameter(SaveName, DefaultValue, Value) {
2693 |   if (DefaultValue != Value) {
2694 |     GMsetValue(SaveName, Value);
2695 |   }
2696 | }
2697 | unsafeWindow.SaveChangedParameter = SaveChangedParameter;
2698 |
2699 | function SaveParameter() {
2700 |   try {
2701 |     var Value = ''
2702 |
2703 |     // Parametres generaux
2704 |     Value = 'ShowInKilo='+document.getElementsByName('ShowInKilo')[0].checked+'|';
2705 |     Value += 'ShowSecondForUpperUpdateTimeInDay='+document.getElementsByName('ShowSecondForUpperUpdateTimeInDay')[0].checked+'|';
2706 |     // Suppression des liens officier (Icones et lien)
2707 |     Value += 'DeleteOfficerLink='+document.getElementsByName('DeleteOfficerLink')[0].checked+'|';
2708 |     Value += 'DeleteTraderLink='+document.getElementsByName('DeleteTraderLink')[0].checked+'|';
2709 |     // Tri des membres de l'alliance
2710 |     for (j = 0; j < 6; j++) {
2711 |       if (document.getElementsByName('SortMember')[0].options[j].selected == true) {
2712 |         Value += 'SortMember='+j+'|';
2713 |       }
2714 |     }
2715 |     if (document.getElementsByName('SortOrder')[0].options[0].selected == true) {
2716 |       Value += 'SortMember=0|';
2717 |     }
2718 |     else {
2719 |       Value += 'SortMember=1|';
2720 |     }
2721 |     Value += 'AddToolTip='+document.getElementsByName('AddToolTip')[0].checked+'|';
2722 |     Value += 'ShowRequestToUpdateResourcesPage='+document.getElementsByName('ShowRequestToUpdateResourcesPage')[0].checked+'|';
2723 |     Value += 'ShowAutoUpdate='+document.getElementsByName('ShowAutoUpdate')[0].checked+'|';
2724 |     Value += 'UseRandomUpdateTime='+document.getElementsByName('UseRandomUpdateTime')[0].checked+'|';
2725 |     Value += 'AddImageVersion='+document.getElementsByName('AddImageVersion')[0].checked+'|';
2726 |     Value += 'Debug='+document.getElementsByName('Debug')[0].checked;
2727 |     GMsetValue('OT_'+Account+'_MainOption', Value);
2728 |     
2729 |     // Affichage
2730 |     Value = 'ShowHeaderPlanetList='+document.getElementsByName('ShowHeaderPlanetList')[0].checked+'|';
2731 |     Value += 'ShowHeaderResourcesList='+document.getElementsByName('ShowHeaderResourcesList')[0].checked+'|';
2732 |     Value += 'AddResourcesTotal='+document.getElementsByName('AddResourcesTotal')[0].checked+'|';
2733 |     Value += 'ChangeHeaderPosition='+document.getElementsByName('ChangeHeaderPosition')[0].checked+'|';
2734 |     Value += 'HeaderPosition='+document.getElementsByName('HeaderPosition')[0].value+'|';
2735 |     Value += 'ChangeContentPosition='+document.getElementsByName('ChangeContentPosition')[0].checked+'|';
2736 |     Value += 'ContentPosition='+document.getElementsByName('ContentPosition')[0].value+'|';
2737 |     Value += 'AddCssCode='+((document.getElementById('CssDiv').style.display == 'none') ? false : true)+'|';
2738 |     SaveChangedParameter('OT_'+Account+'_CssCode', CssCode, document.getElementsByName('CssCode')[0].value);
2739 |     Value += 'AddJSCode='+((document.getElementById('JSDiv').style.display == 'none') ? false : true);
2740 |     SaveChangedParameter('OT_'+Account+'_JSCode', JSCode, document.getElementsByName('JSCode')[0].value);
2741 |     GMsetValue('OT_'+Account+'_ScreenOption', Value);
2742 |     
2743 |     // Tableau des ressources
2744 |     Value = 'ShowHeaderResourcesTable='+document.getElementsByName('ShowHeaderResourcesTable')[0].checked+'|';
2745 |     Value += 'ShowPlanetName='+document.getElementsByName('ShowPlanetName')[0].checked+'|';
2746 |     Value += 'ShowCoordinates='+document.getElementsByName('ShowCoordinates')[0].checked+'|';
2747 |     Value += 'ShowTotal='+document.getElementsByName('ShowTotal')[0].checked+'|';
2748 |     Value += 'ShowDarkMatter='+document.getElementsByName('ShowDarkMatter')[0].checked+'|';
2749 |     Value += 'ShowTimeUpdate='+document.getElementsByName('ShowTimeUpdate')[0].checked+'|';
2750 |     Value += 'ShowResourcesOnlyActiveSession='+document.getElementsByName('ShowResourcesOnlyActiveSession')[0].checked+'|';
2751 |     Value += 'RealTimeResources='+document.getElementsByName('RealTimeResources')[0].checked+'|';
2752 |     Value += 'RealTimeResourcesDelay='+document.getElementsByName('RealTimeResourcesDelay')[0].value+'|';
2753 |     Value += 'HeaderSelectedPlanetStyle='+document.getElementsByName('HeaderSelectedPlanetStyle')[0].value+'|';
2754 |     var TransparencyTmp = document.getElementsByName('Transparency')[0].value;
2755 |     if (parseInt(TransparencyTmp) > 0) {
2756 |       Value += 'Transparency='+TransparencyTmp+'|';
2757 |     }
2758 |     else {
2759 |       Value += 'Transparency='+Transparency+'|';
2760 |       alert(A_Language[C_TransparencyError]);
2761 |     }
2762 |     for (var i = 0; i < 10; i++) {
2763 |       A_UpdateTimeColor[i] = 1000*document.getElementsByName('UpdateTimeColor'+i)[0].value;
2764 |       Value += 'UpdateTimeColor'+i+'='+A_UpdateTimeColor[i]+'|';
2765 |     }
2766 |     Value += 'PlanetOrder='+document.getElementById('PlanetOrder').checked;
2767 |     GMsetValue('OT_'+Account+'_ResourcesTableOption', Value);
2768 |     Value = '';
2769 |     for (var i = 0; i < PlanetSelect.length; i++) {
2770 |       Value += document.getElementsByName('PlanetOrder'+i)[0].value+'|';
2771 |     }
2772 |     GMsetValue('OT_'+Account+'_PlanetOrder', Value.substr(0,Value.length-1));
2773 |     
2774 |     // Empire
2775 |     Value = 'ShowEmpire='+document.getElementsByName('ShowEmpire')[0].checked+'|';
2776 |     var EmpireMenuRowTmp = document.getElementsByName('EmpireMenuRow')[0].value;
2777 |     if (parseInt(EmpireMenuRowTmp) > 0) {
2778 |       Value += 'EmpireMenuRow='+EmpireMenuRowTmp+'|';
2779 |     }
2780 |     else {
2781 |       Value += 'EmpireMenuRow='+EmpireMenuRow+'|';
2782 |       alert(A_Language[C_EmpireRowError]+MenuDiv.getElementsByTagName('table')[0].rows.length+'.');
2783 |     }
2784 |     var EmpireLinkNameTmp = document.getElementsByName('EmpireLinkName')[0].value;
2785 |     if (EmpireLinkNameTmp.length > 0) {
2786 |       Value += 'EmpireLinkName='+EmpireLinkNameTmp+'|';
2787 |     }
2788 |     else {
2789 |       Value += 'EmpireLinkName='+EmpireLinkName+'|';
2790 |       alert(A_Language[C_EmpireTxtError]);
2791 |     }
2792 |     var EmpireIconSizeTmp = document.getElementsByName('EmpireIconSize')[0].value;
2793 |     if (parseInt(EmpireIconSizeTmp) > 0) {
2794 |       Value += 'EmpireIconSize='+EmpireIconSizeTmp+'|';
2795 |     }
2796 |     else {
2797 |       Value += 'EmpireIconSize='+EmpireIconSize+'|';
2798 |       alert(A_Language[C_EmpireSizeIconError]);
2799 |     }
2800 |     Value += 'UseRealTimeResourcesEmpire='+document.getElementsByName('UseRealTimeResourcesEmpire')[0].checked+'|'+
2801 |     'HideDefaultResourcesTable='+document.getElementsByName('HideDefaultResourcesTable')[0].checked+'|'+
2802 |     'ForceDisplayHeaderResourcesTableWithEmpire='+document.getElementsByName('ForceDisplayHeaderResourcesTableWithEmpire')[0].checked;
2803 |     GMsetValue('OT_'+Account+'_EmpireOption', Value);
2804 |     
2805 |     // Transfert
2806 |     if (document.getElementsByName('TransferRatioSpeed')[0].value < 1) {
2807 |       document.getElementsByName('TransferRatioSpeed')[0].value = 1;
2808 |     }
2809 |     Value = 'UseRealTimeResources='+document.getElementsByName('UseRealTimeResources')[0].checked+'|'+
2810 |     'ForceResourcesTransferTableUpdate='+document.getElementsByName('ForceResourcesTransferTableUpdate')[0].checked+'|'+
2811 |     'ShowTransferTableIfActiveTransfer='+document.getElementsByName('ShowTransferTableIfActiveTransfer')[0].checked+'|'+
2812 |     'TransferRatioSpeed='+document.getElementsByName('TransferRatioSpeed')[0].value;
2813 |     GMsetValue('OT_'+Account+'_TransferOption', Value);
2814 |     
2815 |     // Liens additionnels
2816 |     Value = '';
2817 |     NbLinkTmp = document.getElementsByName('NbLink')[0].value;
2818 |     var ValidLink = 0;
2819 |     var LinkName = '';
2820 |     var LinkUrl = '';
2821 |     var LinkPosition = 0;
2822 |     for (var j = 0; j < NbLinkTmp; j++) {
2823 |       LinkName = document.getElementsByName('LinkName'+ValidLink)[0].value;
2824 |       LinkUrl = document.getElementsByName('LinkUrl'+ValidLink)[0].value;
2825 |       LinkPosition = document.getElementsByName('LinkPosition'+ValidLink)[0].value;
2826 |       if ((LinkName.length > 0) && (LinkUrl.length > 0) && (parseInt(LinkPosition) > 0)) {
2827 |         Value += 'LinkName'+ValidLink+'='+LinkName+'|';
2828 |         Value += 'LinkUrl'+ValidLink+'='+LinkUrl+'|';
2829 |         Value += 'LinkPosition'+ValidLink+'='+LinkPosition+'|';
2830 |         Value += 'LinkNewWindow'+ValidLink+'='+document.getElementsByName('LinkNewWindow'+ValidLink)[0].checked+'|';
2831 |         Value += 'LinkTitle'+ValidLink+'='+document.getElementsByName('LinkTitle'+ValidLink)[0].value+'|';
2832 |         ValidLink = parseInt(ValidLink)+1;
2833 |       }
2834 |       else {
2835 |         alert(A_Language[C_LinkPositionError1]+(j+1)+A_Language[C_LinkPositionError2]+MenuDiv.getElementsByTagName('table')[0].rows.length+'.');
2836 |       }
2837 |     }
2838 |     GMsetValue('OT_'+Account+'_LinkOption', Value+'NbLink='+ValidLink);
2839 |     
2840 |     // Actualisation de la page
2841 |     if ((NbLinkTmp == ValidLink) && (Transparency > 0) && (EmpireMenuRow > 0) && (EmpireLinkName.length > 0) && (EmpireIconSize > 0)) {
2842 |       window.setTimeout('window.location.replace(\''+BaseUrl+'?page=options&session='+Session+'\')', 500);
2843 |     }
2844 |     else {
2845 |       alert(A_Language[C_SaveParameterError]);
2846 |     }
2847 |   }
2848 |   catch(err) {
2849 |     ShowError(err, 'SaveParameter(), options page');
2850 |   }
2851 | }
2852 | unsafeWindow.SaveParameter = SaveParameter;
2853 |
2854 | function HeaderOption(SubId, TitleId, Title) {
2855 |   try {
2856 |     return '<tr><td class="c" colspan="2" style="cursor:pointer" onclick="ScriptShowHide(\''+SubId+'\',\''+TitleId+'\',\''+Title.replace("'","\'+String.fromCharCode(39)+\'")+'\');window.location.replace(\'#'+TitleId+'\')"><span id="'+TitleId+'">'+Title+'&nbsp;&nbsp;&nbsp;<img src="'+C_ImgDown+'" alt="'+A_Language[C_Unfold]+'" '+((AddToolTip == true)?'title="'+A_Language[C_Unfold]+'"':'')+'></span></td></tr>\n'+
2857 |     '<tr><td colspan="2" style="padding:0" class="l"><div id="'+SubId+'" style="display:none"><table width="519px">\n';
2858 |   }
2859 |   catch(err) {
2860 |     ShowError(err, 'HeaderOption('+SubId+', '+TitleId+', '+Title+')');
2861 |   }
2862 | }
2863 |
2864 | function CheckBoxOption(Name, State, Description, DisableId) {
2865 |   try {
2866 |     if (DisableId) {
2867 |       return '<tr><th><input type="CHECKBOX" name="'+Name+'" '+((State == true) ? 'checked="CHECKED"' : '')+' onclick="if (this.checked == true) { document.getElementsByName(\''+DisableId+'\')[0].disabled = false; } else { document.getElementsByName(\''+DisableId+'\')[0].disabled = true; };"></th><th>'+Description+'</th></tr>\n';
2868 |     }
2869 |     else {
2870 |       return '<tr><th><input type="CHECKBOX" name="'+Name+'" '+((State == true) ? 'checked="CHECKED"' : '')+'></th><th>'+Description+'</th></tr>\n';
2871 |     }
2872 |   }
2873 |   catch(err) {
2874 |     ShowError(err, 'CheckBoxOption('+Name+', '+State+', '+Description+', '+DisableId+')');
2875 |   }
2876 | }
2877 |
2878 | function TextOption(Name, Value, Description, DisableCheckBox, Number, Size) {
2879 |   try {
2880 |     return '<tr><th><input type="TEXT" name="'+Name+'" value="'+Value+'" '+
2881 |     ((DisableCheckBox!=undefined) ? ((DisableCheckBox == true) ? '' : 'disabled="DISABLED"') : '')+' '+
2882 |     ((Number!=undefined) ? ((Number == true) ? NoStringInput : '') : '')+' '+
2883 |     ((Size!=undefined) ? 'size="'+Size+'"' : '')+'></th><th>'+Description+'</th></tr>\n';
2884 |   }
2885 |   catch(err) {
2886 |     ShowError(err, 'TextOption('+Name+', '+Value+', '+Description+', '+DisableCheckBox+', '+Number+', '+Size+')');
2887 |   }
2888 | }
2889 |
2890 | function PermutPlanetOrder(Planet1, Planet2) {
2891 |   try {
2892 |     var Permut;
2893 |     var Planet1Value = document.getElementsByName('PlanetOrder'+Planet1)[0].value;
2894 |     var Planet2Value = document.getElementsByName('PlanetOrder'+Planet2)[0].value;
2895 |     document.getElementsByName('PlanetOrder'+Planet1)[0].value = Planet2Value;
2896 |     document.getElementsByName('PlanetOrder'+Planet2)[0].value = Planet1Value;
2897 |     Permut = document.getElementById('PlanetOrderLabel'+Planet1).textContent;
2898 |     document.getElementById('PlanetOrderLabel'+Planet1).textContent = document.getElementById('PlanetOrderLabel'+Planet2).textContent;
2899 |     document.getElementById('PlanetOrderLabel'+Planet2).textContent = Permut;
2900 |     document.getElementsByName('PlanetOrder')[Planet1].checked = false;
2901 |     document.getElementsByName('PlanetOrder')[Planet2].checked = true;
2902 |   }
2903 |   catch(err) {
2904 |     ShowError(err, 'PermutPlanetOrder('+Planet1+', '+Planet2+'), options page');
2905 |   }
2906 | }
2907 | unsafeWindow.PermutPlanetOrder = PermutPlanetOrder;
2908 |
2909 | function ChangePlanetOrder(Direction) {
2910 |   try {
2911 |     var PlanetOrderSelected = 0, Permut;
2912 |     for (k = 0; k < PlanetSelect.length; k++) {
2913 |       if (document.getElementsByName('PlanetOrder')[k].checked == true) {
2914 |         PlanetOrderSelected = k;
2915 |       }
2916 |     }
2917 |     if (Direction == 1) {
2918 |       if (PlanetOrderSelected == PlanetSelect.length-1) {
2919 |         PermutPlanetOrder(PlanetOrderSelected,0);
2920 |       }
2921 |       else {
2922 |         PermutPlanetOrder(PlanetOrderSelected,(PlanetOrderSelected+1));
2923 |       }
2924 |     }
2925 |     else {
2926 |       if (PlanetOrderSelected == 0) {
2927 |         PermutPlanetOrder(PlanetOrderSelected,PlanetSelect.length-1);
2928 |       }
2929 |       else {
2930 |         PermutPlanetOrder(PlanetOrderSelected,(PlanetOrderSelected-1));
2931 |       }
2932 |     }
2933 |   }
2934 |   catch(err) {
2935 |     ShowError(err, 'ChangePlanetOrder('+Direction+'), options page');
2936 |   }
2937 | }
2938 | unsafeWindow.ChangePlanetOrder = ChangePlanetOrder;
2939 |
2940 | if (OgamePage == 'options') {
2941 |   
2942 |   try {
2943 |     // Creation du Div qui contiendra le panneau de configuration
2944 |     var ConfigContent = ContentDiv.getElementsByTagName('center')[0];
2945 |     var ConfigDiv = document.createElement('div');
2946 |     ConfigDiv.setAttribute('id','TransferResources');
2947 |     
2948 |     // Generation du panneau de configuration
2949 |     var ConfigPanel = '<table width="519px" id="ConfigPanel">'+
2950 |     // Parametres generales
2951 |     HeaderOption('MainOption', 'MainOptionTitle', A_Language[C_MainOption])+
2952 |     CheckBoxOption('ShowInKilo', ShowInKilo, A_Language[C_ShowInKilo])+
2953 |     CheckBoxOption('ShowSecondForUpperUpdateTimeInDay', ShowSecondForUpperUpdateTimeInDay, A_Language[C_ShowSecondForUpperUpdateTimeInDay])+
2954 |     CheckBoxOption('DeleteOfficerLink', DeleteOfficerLink, A_Language[C_DeleteOfficerLink])+
2955 |     CheckBoxOption('DeleteTraderLink', DeleteTraderLink, A_Language[C_DeleteTraderLink])+
2956 |     '<tr><th><select name="SortMember" style="text-align:left"><option value="00" '+((SortMember == 0) ? 'selected="SELECTED"' : '')+'>'+A_Language[C_Coordinates]+'</option>\n'+
2957 |     '<option value="1" '+((SortMember == 1) ? 'selected="SELECTED"' : '')+'>'+A_Language[C_Name]+'</option>\n'+
2958 |     '<option value="2" '+((SortMember == 2) ? 'selected="SELECTED"' : '')+'>'+A_Language[C_Status]+'</option>\n'+
2959 |     '<option value="3" '+((SortMember == 3) ? 'selected="SELECTED"' : '')+'>'+A_Language[C_Points]+'</option>\n'+
2960 |     '<option value="4" '+((SortMember == 4) ? 'selected="SELECTED"' : '')+'>'+A_Language[C_MemberShip]+'</option>\n'+
2961 |     '<option value="5" '+((SortMember == 5) ? 'selected="SELECTED"' : '')+'>'+A_Language[C_Online]+'</option></th><th>'+A_Language[C_SortMember]+'</th></tr>\n'+
2962 |     '<tr><th><select name="SortOrder" style="text-align:left"><option value="00" '+((SortMember == 0) ? 'selected="SELECTED"' : '')+'>'+A_Language[C_Increasing]+'</option>\n'+
2963 |     '<option value="1" '+((SortOrder == 1) ? 'selected="SELECTED"' : '')+'>'+A_Language[C_Lessening]+'</option></th><th>'+A_Language[C_SortOrder]+'</th></tr>\n'+
2964 |     CheckBoxOption('AddToolTip', AddToolTip, A_Language[C_AddToolTip])+
2965 |     CheckBoxOption('ShowRequestToUpdateResourcesPage', ShowRequestToUpdateResourcesPage, A_Language[C_ShowRequestToUpdateResourcesPage])+
2966 |     CheckBoxOption('ShowAutoUpdate', ShowAutoUpdate, A_Language[C_ShowAutoUpdate])+
2967 |     CheckBoxOption('UseRandomUpdateTime', UseRandomUpdateTime, A_Language[C_UseRandomUpdateTime])+
2968 |     CheckBoxOption('AddImageVersion', AddImageVersion, A_Language[C_AddImageVersion])+
2969 |     CheckBoxOption('Debug', Debug, A_Language[C_Debug])+
2970 |     '</table></div></td></tr>'+
2971 |     // Affichage
2972 |     HeaderOption('ScreenOption', 'ScreenOptionTitle', A_Language[C_ScreenOption])+
2973 |     CheckBoxOption('ShowHeaderPlanetList', ShowHeaderPlanetList, A_Language[C_ShowHeaderPlanetList])+
2974 |     CheckBoxOption('ShowHeaderResourcesList', ShowHeaderResourcesList, A_Language[C_ShowHeaderResourcesList])+
2975 |     CheckBoxOption('AddResourcesTotal', AddResourcesTotal, A_Language[C_AddResourcesTotal])+
2976 |     CheckBoxOption('ChangeHeaderPosition', ChangeHeaderPosition, A_Language[C_ChangeHeaderPosition], 'HeaderPosition')+
2977 |     TextOption('HeaderPosition', HeaderPosition, A_Language[C_HeaderPosition]+' <a style="cursor:pointer" onclick="alert(\''+A_Language[C_PositionInformations].replace("'","\'+String.fromCharCode(39)+\'")+'\')">?</a>', ChangeHeaderPosition)+
2978 |     CheckBoxOption('ChangeContentPosition', ChangeContentPosition, A_Language[C_ChangeContentPosition], 'ContentPosition')+
2979 |     TextOption('ContentPosition', ContentPosition, A_Language[C_ContentPosition]+' <a style="cursor:pointer" onclick="alert(\''+A_Language[C_PositionInformations].replace("'","\'+String.fromCharCode(39)+\'")+'\')">?</a>', ChangeContentPosition)+
2980 |     '<tr><th colspan="2"><a style="cursor:pointer" onclick="document.getElementById(\'CssDiv\').style.display=((document.getElementById(\'CssDiv\').style.display == \'none\') ? \'\' : \'none\');this.innerHTML=((document.getElementById(\'CssDiv\').style.display == \'none\') ? \''+A_Language[C_AddCssCode].replace("'","\'+String.fromCharCode(39)+\'")+'\' : \''+A_Language[C_RemoveCssCode].replace("'","\'+String.fromCharCode(39)+\'")+'\')">'+((AddCssCode == true) ? A_Language[C_RemoveCssCode] : A_Language[C_AddCssCode])+'</a><br><div id="CssDiv" '+((AddCssCode == true) ? '' : 'style="display:none"')+'><textarea name="CssCode" rows="10" cols="40">'+CssCode+'</textarea></div></th></tr>\n'+
2981 |     '<tr><th colspan="2"><a style="cursor:pointer" onclick="document.getElementById(\'JSDiv\').style.display=((document.getElementById(\'JSDiv\').style.display == \'none\') ? \'\' : \'none\');this.innerHTML=((document.getElementById(\'JSDiv\').style.display == \'none\') ? \''+A_Language[C_AddJSCode].replace("'","\'+String.fromCharCode(39)+\'")+'\' : \''+A_Language[C_RemoveJSCode].replace("'","\'+String.fromCharCode(39)+\'")+'\')">'+((AddJSCode == true) ? A_Language[C_RemoveJSCode] : A_Language[C_AddJSCode])+'</a><br><div id="JSDiv" '+((AddJSCode == true) ? '' : 'style="display:none"')+'><textarea name="JSCode" rows="10" cols="40">'+JSCode+'</textarea></div></th></tr>\n'+
2982 |     '</table></div></td></tr>'+
2983 |     // Tableau des ressources
2984 |     HeaderOption('ResourcesTableOption', 'ResourcesTableOptionTitle', A_Language[C_ResourcesTableOption])+
2985 |     CheckBoxOption('ShowHeaderResourcesTable', ShowHeaderResourcesTable, A_Language[C_ShowHeaderResourcesTable])+
2986 |     CheckBoxOption('ShowPlanetName', ShowPlanetName, A_Language[C_ShowPlanetName])+
2987 |     CheckBoxOption('ShowCoordinates', ShowCoordinates, A_Language[C_ShowCoordinates])+
2988 |     CheckBoxOption('ShowTotal', ShowTotal, A_Language[C_ShowTotal])+
2989 |     CheckBoxOption('ShowDarkMatter', ShowDarkMatter, A_Language[C_ShowDarkMatter])+
2990 |     CheckBoxOption('ShowTimeUpdate', ShowTimeUpdate, A_Language[C_ShowTimeUpdate])+
2991 |     CheckBoxOption('ShowResourcesOnlyActiveSession', ShowResourcesOnlyActiveSession, A_Language[C_ShowResourcesOnlyActiveSession])+
2992 |     CheckBoxOption('RealTimeResources', RealTimeResources, A_Language[C_RealTimeResources])+
2993 |     TextOption('RealTimeResourcesDelay', RealTimeResourcesDelay, A_Language[C_RealTimeResourcesDelay], true, 3)+
2994 |     TextOption('HeaderSelectedPlanetStyle', HeaderSelectedPlanetStyle, A_Language[C_HeaderSelectedPlanetStyle])+
2995 |     TextOption('Transparency', Transparency, A_Language[C_Transparency], true, 2)+
2996 |     '<tr><td class="l" colspan="2"><table width="519">'+
2997 |     '<tr><th colspan="2">'+A_Language[C_UpdateTimeColor]+'</th></tr>'+
2998 |     '<tr><th><input type="TEXT" style="background-color: #00FF00; color: #000000;" name="UpdateTimeColor0" value="'+Math.round(A_UpdateTimeColor[0]/1000)+'" '+NoStringInput+' size="8"></th>\n'+
2999 |     '<th><input type="TEXT" style="background-color: #33FF00; color: #000000;" name="UpdateTimeColor1" value="'+Math.round(A_UpdateTimeColor[1]/1000)+'" '+NoStringInput+' size="8"></th></tr>\n'+
3000 |     '<tr><th><input type="TEXT" style="background-color: #66FF00; color: #000000;" name="UpdateTimeColor2" value="'+Math.round(A_UpdateTimeColor[2]/1000)+'" '+NoStringInput+' size="8"></th>\n'+
3001 |     '<th><input type="TEXT" style="background-color: #99FF00; color: #000000;" name="UpdateTimeColor3" value="'+Math.round(A_UpdateTimeColor[3]/1000)+'" '+NoStringInput+' size="8"></th></tr>\n'+
3002 |     '<tr><th><input type="TEXT" style="background-color: #CCFF00; color: #000000;" name="UpdateTimeColor4" value="'+Math.round(A_UpdateTimeColor[4]/1000)+'" '+NoStringInput+' size="8"></th>\n'+
3003 |     '<th><input type="TEXT" style="background-color: #FFFF00; color: #000000;" name="UpdateTimeColor5" value="'+Math.round(A_UpdateTimeColor[5]/1000)+'" '+NoStringInput+' size="8"></th></tr>\n'+
3004 |     '<tr><th><input type="TEXT" style="background-color: #FFCC00; color: #000000;" name="UpdateTimeColor6" value="'+Math.round(A_UpdateTimeColor[6]/1000)+'" '+NoStringInput+' size="8"></th>\n'+
3005 |     '<th><input type="TEXT" style="background-color: #FF9900; color: #000000;" name="UpdateTimeColor7" value="'+Math.round(A_UpdateTimeColor[7]/1000)+'" '+NoStringInput+' size="8"></th></tr>\n'+
3006 |     '<tr><th><input type="TEXT" style="background-color: #FF6600; color: #000000;" name="UpdateTimeColor8" value="'+Math.round(A_UpdateTimeColor[8]/1000)+'" '+NoStringInput+' size="8"></th>\n'+
3007 |     '<th><input type="TEXT" style="background-color: #FF3300; color: #000000;" name="UpdateTimeColor9" value="'+Math.round(A_UpdateTimeColor[9]/1000)+'" '+NoStringInput+' size="8"></th></tr>\n'+
3008 |     '<tr><th colspan="2">'+A_Language[C_UpdateTimeRed]+'</th></tr></table></th></tr>'+  
3009 |     '<tr><td class="l" colspan="2"><table width="519">\n'+
3010 |     '<tr><th colspan="3"><input type="CHECKBOX" id="PlanetOrder" '+((PlanetOrder == true)?'checked="CHECKED"':'')+'><label for="PlanetOrder">'+A_Language[C_PlanetOrder]+'</label></th></tr>'+
3011 |     '<tr><th style="width:40% !important"><table width="100%">\n';
3012 |     for (i = 0; i < PlanetSelect.length; i++) {
3013 |       ConfigPanel += '<tr><th><input type="radio" name="PlanetOrder" id="PlanetOrderSelect'+i+'" '+(i==0?'checked="CHECKED"':'')+'>\n'+
3014 |       '<label for="PlanetOrderSelect'+i+'" id="PlanetOrderLabel'+i+'">'+A_Planet[i].Name+' ['+A_Planet[i].Galaxy+':'+A_Planet[i].System+':'+A_Planet[i].Planet+']</label>\n'+
3015 |       '<input type="hidden" name="PlanetOrder'+i+'" value="'+A_PlanetOrder[i]+'"></th></tr>\n';
3016 |     }
3017 |     ConfigPanel += '</table></th>\n'+
3018 |     '<th style="width:5% !important"><a style="cursor:pointer"><img src="'+C_ImgUp+'" alt="" onclick="ChangePlanetOrder(-1)"></a><br><br><a style="cursor:pointer"><img src="'+C_ImgDown+'" alt="" onclick="ChangePlanetOrder(1)"></a></th>\n'+
3019 |     '<th>'+A_Language[C_PlanetOrderDescription]+'</th></tr>\n'+
3020 |     '</table></td></tr></table></div></td></tr>\n'+
3021 |     // Empire
3022 |     HeaderOption('EmpireOption', 'EmpireOptionTitle', A_Language[C_Empire])+
3023 |     CheckBoxOption('ShowEmpire', ShowEmpire, A_Language[C_ShowEmpire])+
3024 |     TextOption('EmpireLinkName', EmpireLinkName, A_Language[C_EmpireLinkName])+
3025 |     TextOption('EmpireMenuRow', EmpireMenuRow, A_Language[C_EmpireMenuRow], true, 3)+
3026 |     TextOption('EmpireIconSize', EmpireIconSize, A_Language[C_EmpireIconSize], true, 3)+
3027 |     CheckBoxOption('UseRealTimeResourcesEmpire', UseRealTimeResourcesEmpire, A_Language[C_UseRealTimeResources])+
3028 |     CheckBoxOption('HideDefaultResourcesTable', HideDefaultResourcesTable, A_Language[C_HideDefaultResourcesTable])+
3029 |     CheckBoxOption('ForceDisplayHeaderResourcesTableWithEmpire', ForceDisplayHeaderResourcesTableWithEmpire, A_Language[C_ForceDisplayHeaderResourcesTableWithEmpire])+
3030 |     '</table></div></td></tr>'+
3031 |     // Transfert
3032 |     HeaderOption('TransferOption', 'TransferOptionTitle', A_Language[C_Transfer])+
3033 |     CheckBoxOption('UseRealTimeResources', UseRealTimeResources, A_Language[C_UseRealTimeResources])+
3034 |     CheckBoxOption('ForceResourcesTransferTableUpdate', ForceResourcesTransferTableUpdate, A_Language[C_ForceResourcesTransferTableUpdate])+
3035 |     CheckBoxOption('ShowTransferTableIfActiveTransfer', ShowTransferTableIfActiveTransfer, A_Language[C_ShowTransferTableIfActiveTransfer])+
3036 |     TextOption('TransferRatioSpeed', TransferRatioSpeed, A_Language[C_TransferRatioSpeed], true, 3)+
3037 |     '</table></div></td></tr>'+
3038 |     // Liens supplementaires
3039 |     HeaderOption('AddLinkOption', 'AddLinkOptionTitle', A_Language[C_LinkOption]);
3040 |     for (i = 0; i < NbLink; i++) {
3041 |       ConfigPanel += '<tr><td class="c" colspan="2">'+A_Language[C_LinkNumber]+(i+1)+'&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" name="Delete'+i+'" onclick="DeleteLink('+i+');" value="'+A_Language[C_Delete]+'"></td></tr>\n'+
3042 |       TextOption('LinkName'+i, LinkNameArray[i], A_Language[C_LinkName])+
3043 |       TextOption('LinkUrl'+i, LinkUrlArray[i], A_Language[C_LinkUrl]+' <a style="cursor:pointer" onclick="LinkInfo()">?</a>')+
3044 |       TextOption('LinkPosition'+i, LinkPositionArray[i], A_Language[C_LinkPosition], true, 2)+
3045 |       CheckBoxOption('LinkNewWindow'+i, LinkNewWindowArray[i], A_Language[C_LinkNewWindow])+
3046 |       TextOption('LinkTitle'+i, LinkTitleArray[i], A_Language[C_LinkTitle]);
3047 |     }
3048 |     ConfigPanel += '<tr><th colspan="2"><input type="button" name="AddLink" value="'+A_Language[C_AddLink]+'" onclick="AddLink();"></th></tr></table></div></td></tr>\n'+
3049 |     '<tr><td class="c" colspan="2"><input type="button" value="'+A_Language[C_Save]+'" onclick="SaveParameter();"></td></tr></table><input type="hidden" name="NbLink" value="'+NbLink+'">\n';
3050 |     
3051 |     // Modification du bouton sauvegarde de la page option
3052 |     if(document.getElementsByTagName('input')) {
3053 |       var InputList = document.getElementsByTagName('input');
3054 |       for (i = 0; i < InputList.length; i++) {
3055 |         if (InputList[i].type == 'submit') {
3056 |           InputList[i].setAttribute('onclick', 'SaveParameter()');
3057 |         }
3058 |       }
3059 |     }
3060 |     
3061 |     // Creation de la barre d'entete du panneau et insertion du panneau de configuration genere precedemment
3062 |     var ConfigText = '<table width="519px"><tr><td class="c" onclick="ScriptShowHide(\'OgameTransfer\',\'OTTitle\',\''+A_Language[C_ControlPanel]+' - '+C_ScriptName+'\');window.location.replace(\'#OTTitle\')" style="cursor: pointer;"><span id="OTTitle">'+A_Language[C_ControlPanel]+' - '+C_ScriptName+'&nbsp;&nbsp;&nbsp;<img src="'+C_ImgDown+'" alt="'+A_Language[C_Unfold]+'" '+((AddToolTip == true)?'title="'+A_Language[C_Unfold]+'"':'')+'></span></td></tr></table>\n'+
3063 |     '<div id="OgameTransfer" style="display:none">'+ConfigPanel+'</div><br><br>';
3064 |     
3065 |     ConfigDiv.innerHTML = ConfigText;
3066 |     
3067 |     // Affichage du Div
3068 |     ConfigContent.appendChild(ConfigDiv);
3069 |   }
3070 |   catch(err) {
3071 |     ShowError(err, 'Control panel, options page');
3072 |   }
3073 | }
3074 |
3075 |
3076 |
3077 |
3078 |
3079 | /* MODIFICATION LIEN 'Liste des membres' pour tri des membres
3080 |    ----------------------------------------------- */
3081 |
3082 | if (OgamePage == 'allianzen') {
3083 |   try {
3084 |     if (!window.location.href.match(/a=([0-9]{1,2})/)) {
3085 |       var AllyLink = ContentDiv.getElementsByTagName('a');
3086 |       for (var i = 0; i < AllyLink.length; i++) {
3087 |         if (AllyLink[i].href.match(/a=([0-9]{1,2})/)) {
3088 |           var AllyA = AllyLink[i].href.match(/a=([0-9]{1,2})/)[1];
3089 |           if (AllyA == '4') {
3090 |             AllyLink[i].href = AllyLink[i].href+'&sort1='+SortMember+'&sort2='+SortOrder;
3091 |             break;
3092 |           }
3093 |         }
3094 |       }
3095 |     }
3096 |   }
3097 |   catch(err) {
3098 |     ShowError(err, 'Add alliance\'s members sorting');
3099 |   }
3100 | }
3101 |
3102 |
3103 |
3104 |
3105 |
3106 | /* CORRECTION LIEN OVERLIB PAGE GALAXIE (FR)
3107 |    ----------------------------------------------- */
3108 |
3109 | if ((OgamePage == 'galaxy') && (ContentDiv) && (Language == 1)) {
3110 |   try{
3111 |     if (ContentDiv.getElementsByTagName('th').length > 0) {
3112 |       for (var i = 0; i < ContentDiv.getElementsByTagName('th').length; i++) {
3113 |         var Cell = ContentDiv.getElementsByTagName('th')[i];
3114 |         if (Cell.getElementsByTagName('a').length > 0) {
3115 |           var Link = Cell.getElementsByTagName('a')[0];
3116 |           if (Link.style.cursor == 'pointer') {
3117 |             if (Cell.innerHTML.match(/alliance/g)) {
3118 |               var OverLibLink = Cell.innerHTML.match(/onmouseover=\"([^\"]+)\"([^\>]+)\>([^\0]+)/);
3119 |               var NewLink = document.createElement('a');
3120 |               NewLink.setAttribute('style','cursor:pointer');
3121 |               NewLink.setAttribute('onmouseover',OverLibLink[1].replace(/\'alliance/g, "\\\'alliance"));
3122 |               NewLink.setAttribute('onmouseout','return nd();');
3123 |               NewLink.innerHTML = OverLibLink[3].replace(/\<\/a\>/g,"")+'</a>';
3124 |               Cell.innerHTML = '';
3125 |               Cell.appendChild(NewLink);
3126 |             }
3127 |           }
3128 |         }
3129 |       }
3130 |     }
3131 |   }
3132 |   catch(err) {
3133 |     ShowError(err, 'Correct an error on ogame fr galaxy page');
3134 |   }
3135 | }
3136 |
3137 |
3138 |
3139 |
3140 |
3141 | /* MISE A JOUR AUTOMATIQUE
3142 |    -------------------------------------------------- */
3143 |    
3144 | function AutoUpdate() {
3145 |   GMsetRefreshValue((PlanetSelect.length-1),5);
3146 |   window.setTimeout('window.location.replace(\''+BaseUrl+'?page=overview&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\')', 100);
3147 | }
3148 | unsafeWindow.AutoUpdate = AutoUpdate;
3149 |
3150 | function StopUpdate() {
3151 |   GMsetRefreshValue(0,0);
3152 |   window.setTimeout('window.location.replace(\''+BaseUrl+'?page=overview&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\')', 100);
3153 | }
3154 | unsafeWindow.StopUpdate = StopUpdate;
3155 |
3156 | try {
3157 |   if ((RefreshPlanetRest == 0) && (AutoUpdateRest > 0)) {
3158 |     GMsetRefreshValue((PlanetSelect.length-1),(AutoUpdateRest-1));
3159 |     RefreshPlanetRest = 0;
3160 |     if (AutoUpdateRest == 5) {
3161 |       window.setTimeout('window.location.replace(\''+BaseUrl+'?page=b_building&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\')', ((UseRandomUpdateTime == true) ? Math.round(Math.random()*1+2) : 5));
3162 |     }
3163 |     else if (AutoUpdateRest == 4) {
3164 |       window.setTimeout('window.location.replace(\''+BaseUrl+'?page=resources&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\')', ((UseRandomUpdateTime == true) ? Math.round(Math.random()*1+2) : 5));
3165 |     }
3166 |     else if (AutoUpdateRest == 3) {
3167 |       GMsetRefreshValue(0,(AutoUpdateRest-1));
3168 |       var LabMax = 0, PlanetLabMax = 0;
3169 |       for (i = 0; i < PlanetSelect.length; i++) {
3170 |         if (A_Buildings[i][11].Level > LabMax) {
3171 |           LabMax = A_Buildings[i][11].Level;
3172 |           PlanetLabMax = i;
3173 |         }
3174 |       }
3175 |       window.setTimeout('window.location.replace(\''+BaseUrl+'?page=buildings&mode=Forschung&session='+Session+'&cp='+A_Planet[PlanetLabMax].Id+'\')', ((UseRandomUpdateTime == true) ? Math.round(Math.random()*1+2) : 5));
3176 |     }
3177 |     else if (AutoUpdateRest == 2) {
3178 |       window.setTimeout('window.location.replace(\''+BaseUrl+'?page=flotten1&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\')', ((UseRandomUpdateTime == true) ? Math.round(Math.random()*1+2) : 5));
3179 |     }
3180 |     else {
3181 |       window.setTimeout('window.location.replace(\''+BaseUrl+'?page=buildings&mode=Verteidigung&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\')', ((UseRandomUpdateTime == true) ? Math.round(Math.random()*1+2) : 5));
3182 |     }
3183 |   }
3184 | }
3185 | catch(err) {
3186 |   ShowError(err, 'Automatic update');
3187 | }
3188 |
3189 |
3190 |
3191 |    
3192 | /* AFFICHAGE DU TABLEAU DE RESSOURCES
3193 |    ----------------------------------------------- */
3194 |
3195 | function RefreshPlanet() {
3196 |   try {
3197 |     GMsetRefreshValue((PlanetSelect.length-1),AutoUpdateRest);
3198 |     if (PlanetSelectedIndex == (PlanetSelect.length-1)) {
3199 |       window.setTimeout('window.location.replace(\''+A_Planet[0].Url+'\')', ((UseRandomUpdateTime == true) ? Math.round(Math.random()*1+2) : 5));
3200 |     }
3201 |     else {
3202 |       window.setTimeout('window.location.replace(\''+A_Planet[(PlanetSelectedIndex+1)].Url+'\')', ((UseRandomUpdateTime == true) ? Math.round(Math.random()*1+2) : 5));
3203 |     }
3204 |   }
3205 |   catch(err) {
3206 |     ShowError(err, 'RefreshPlanet()');
3207 |   }
3208 | }
3209 | unsafeWindow.RefreshPlanet = RefreshPlanet;
3210 |
3211 | function CalcRealTimeResources() {
3212 |   try {
3213 |     Counter = new Date();
3214 |     A_RealTimeResources = new Array(PlanetSelect.length+1);
3215 |     A_RealTimeResources[PlanetSelect.length] = new P_RealTimeResources();
3216 |     A_RealTimeResources[PlanetSelect.length].Metal = 0;
3217 |     A_RealTimeResources[PlanetSelect.length].Crystal = 0;
3218 |     A_RealTimeResources[PlanetSelect.length].Deuterium = 0;
3219 |     for (var k = 0; k < PlanetSelect.length; k++) {
3220 |       if ((A_Resources[k].Metal != undefined) && (A_Resources[k].Metal != '-')) {
3221 |         A_RealTimeResources[k] = new P_RealTimeResources();
3222 |         var Time = Math.round((Counter.getTime()-A_Resources[k].Update)/1000);
3223 |         A_RealTimeResources[k].Metal = Math.round(parseInt(A_Resources[k].Metal)+(Time*(A_Production[k].Metal/3600)));
3224 |         if (A_RealTimeResources[k].Metal > A_Production[k].MetalMax*1000) {
3225 |           if (parseInt(A_Resources[k].Metal) > A_Production[k].MetalMax*1000) {
3226 |             A_RealTimeResources[k].Metal = parseInt(A_Resources[k].Metal);
3227 |           }
3228 |           else {
3229 |             A_RealTimeResources[k].Metal = A_Production[k].MetalMax*1000;
3230 |           }
3231 |           if (A_Planet[k].Type == C_Planet) {
3232 |             document.getElementById('Metal'+k).style.textDecoration = 'blink';
3233 |           }
3234 |         }
3235 |         A_RealTimeResources[PlanetSelect.length].Metal = A_RealTimeResources[PlanetSelect.length].Metal+A_RealTimeResources[k].Metal;
3236 |         A_RealTimeResources[k].Crystal = Math.round(parseInt(A_Resources[k].Crystal)+(Time*(A_Production[k].Crystal/3600)));
3237 |         if (A_RealTimeResources[k].Crystal > A_Production[k].CrystalMax*1000) {
3238 |           if (parseInt(A_Resources[k].Crystal) > A_Production[k].CrystalMax*1000) {
3239 |             A_RealTimeResources[k].Crystal = parseInt(A_Resources[k].Crystal);
3240 |           }
3241 |           else {
3242 |             A_RealTimeResources[k].Crystal = A_Production[k].CrystalMax*1000;
3243 |           }
3244 |           if (A_Planet[k].Type == C_Planet) {
3245 |             document.getElementById('Crystal'+k).style.textDecoration = 'blink';
3246 |           }
3247 |         }
3248 |         A_RealTimeResources[PlanetSelect.length].Crystal = A_RealTimeResources[PlanetSelect.length].Crystal+A_RealTimeResources[k].Crystal;
3249 |         A_RealTimeResources[k].Deuterium = Math.round(parseInt(A_Resources[k].Deuterium)+(Time*(A_Production[k].Deuterium/3600)));
3250 |         if (A_RealTimeResources[k].Deuterium > A_Production[k].DeuteriumMax*1000) {
3251 |           if (parseInt(A_Resources[k].Deuterium) > A_Production[k].DeuteriumMax*1000) {
3252 |             A_RealTimeResources[k].Deuterium = parseInt(A_Resources[k].Deuterium);
3253 |           }
3254 |           else {
3255 |             A_RealTimeResources[k].Deuterium = A_Production[k].DeuteriumMax*1000;
3256 |           }
3257 |           if (A_Planet[k].Type == C_Planet) {
3258 |             document.getElementById('Deuterium'+k).style.textDecoration = 'blink';
3259 |           }
3260 |         }
3261 |         A_RealTimeResources[PlanetSelect.length].Deuterium = A_RealTimeResources[PlanetSelect.length].Deuterium+A_RealTimeResources[k].Deuterium
3262 |         if (document.getElementById('ResourcesDiv')) {
3263 |           var Table = document.getElementById('ResourcesDiv').getElementsByTagName('table')[0];
3264 |           if ((Table) && (RealTimeResources==true)) {
3265 |             document.getElementById('Metal'+k).innerHTML = FormatNb(A_RealTimeResources[k].Metal);
3266 |             document.getElementById('Crystal'+k).innerHTML = FormatNb(A_RealTimeResources[k].Crystal);
3267 |             document.getElementById('Deuterium'+k).innerHTML = FormatNb(A_RealTimeResources[k].Deuterium);
3268 |             var Color = PlanetTimeUpdate(k,false,true);
3269 |             Table.rows[1].cells[(k+1)].style.background = Color;
3270 |             Table.rows[2].cells[(k+1)].style.background = Color;
3271 |             Table.rows[3].cells[(k+1)].style.background = Color;
3272 |             Table.rows[4].cells[(k+1)].style.background = Color;
3273 |             if (ShowTimeUpdate == true) {
3274 |               document.getElementById('Update'+k).innerHTML = FormatTime(Time*1000);
3275 |               Table.rows[5].cells[(k+1)].style.background = Color;
3276 |             }
3277 |           }
3278 |         }
3279 |       }
3280 |     }
3281 |     if ((Table) && (ShowTotal==true) && (RealTimeResources == true)) {
3282 |       document.getElementById('MetalTotal').innerHTML = FormatNb(A_RealTimeResources[PlanetSelect.length].Metal);
3283 |       document.getElementById('CrystalTotal').innerHTML = FormatNb(A_RealTimeResources[PlanetSelect.length].Crystal);
3284 |       document.getElementById('DeuteriumTotal').innerHTML = FormatNb(A_RealTimeResources[PlanetSelect.length].Deuterium);
3285 |     }
3286 |     if (RealTimeResources == true) {
3287 |       window.setTimeout('CalcRealTimeResources()', RealTimeResourcesDelay*1000);
3288 |     }
3289 |   }
3290 |   catch(err) {
3291 |     ShowError(err, 'CalcRealTimeResources()');
3292 |   }
3293 | }
3294 | unsafeWindow.CalcRealTimeResources = CalcRealTimeResources;
3295 |
3296 | if (RefreshPlanetRest > 0) {
3297 |   try {
3298 |     GMsetRefreshValue((RefreshPlanetRest-1),AutoUpdateRest);
3299 |     if (PlanetSelectedIndex == (PlanetSelect.length-1)) {
3300 |       window.setTimeout('window.location.replace(\''+A_Planet[0].Url+'\')', ((UseRandomUpdateTime == true) ? Math.round(Math.random()*1+2) : 5));
3301 |     }
3302 |     else {
3303 |       window.setTimeout('window.location.replace(\''+A_Planet[(PlanetSelectedIndex+1)].Url+'\')', ((UseRandomUpdateTime == true) ? Math.round(Math.random()*1+2) : 5));
3304 |     }
3305 |   }
3306 |   catch(err) {
3307 |     ShowError(err, 'Refresh overview page of all planets');
3308 |   }
3309 | }
3310 |
3311 | function ShowHideColumn(Id) {
3312 |   try {
3313 |     if (Id < PlanetSelect.length) {
3314 |       if (document.getElementById('Planet'+Id).style.display == 'none') {
3315 |         var Display = '';
3316 |         document.getElementById('ImgShowHide'+Id).src = C_ImgLeft;
3317 |         if (AddToolTip == true) document.getElementById('ImgShowHide'+Id).title = A_Language[C_Hide]+' '+A_Planet[Id].Name;
3318 |       }
3319 |       else {
3320 |         var Display = 'none';
3321 |         document.getElementById('ImgShowHide'+Id).src = C_ImgRight;
3322 |         if (AddToolTip == true) document.getElementById('ImgShowHide'+Id).title = A_Language[C_Show]+' '+A_Planet[Id].Name;
3323 |       }
3324 |       document.getElementById('Planet'+Id).style.display = Display;
3325 |       document.getElementById('Metal'+Id).style.display = Display;
3326 |       document.getElementById('Crystal'+Id).style.display = Display;
3327 |       document.getElementById('Deuterium'+Id).style.display = Display;
3328 |       document.getElementById('Energy'+Id).style.display = Display;
3329 |       if (ShowTimeUpdate == true) {
3330 |         document.getElementById('Update'+Id).style.display = Display;
3331 |       }
3332 |     }
3333 |     // Colonne total
3334 |     else if ((Id == PlanetSelect.length)&& (document.getElementById('Total'))) {
3335 |       if (document.getElementById('Total').style.display == 'none') {
3336 |         var Display = '';
3337 |         document.getElementById('ImgShowHide'+Id).src = C_ImgLeft;
3338 |         if (AddToolTip == true) document.getElementById('ImgShowHide'+Id).title = A_Language[C_Hide]+' '+A_Language[C_Total];
3339 |       }
3340 |       else {
3341 |         var Display = 'none';
3342 |         document.getElementById('ImgShowHide'+Id).src = C_ImgRight;
3343 |         if (AddToolTip == true) document.getElementById('ImgShowHide'+Id).title = A_Language[C_Show]+' '+A_Language[C_Total];
3344 |       }
3345 |       document.getElementById('Total').style.display = Display;
3346 |       document.getElementById('MetalTotal').style.display = Display;
3347 |       document.getElementById('CrystalTotal').style.display = Display;
3348 |       document.getElementById('DeuteriumTotal').style.display = Display;
3349 |     }
3350 |     // Colonne antimatiere
3351 |     else if (document.getElementById('DarkMatterTitle')) {
3352 |       if (document.getElementById('DarkMatterTitle').style.display == 'none') {
3353 |         var Display = '';
3354 |         document.getElementById('ImgShowHide'+Id).src = C_ImgLeft;
3355 |         if (AddToolTip == true) document.getElementById('ImgShowHide'+Id).title = A_Language[C_Hide]+' '+A_Language[C_DarkMatter];
3356 |       }
3357 |       else {
3358 |         var Display = 'none';
3359 |         document.getElementById('ImgShowHide'+Id).src = C_ImgRight;
3360 |         if (AddToolTip == true) document.getElementById('ImgShowHide'+Id).title = A_Language[C_Show]+' '+A_Language[C_DarkMatter];
3361 |       }
3362 |       document.getElementById('DarkMatterTitle').style.display = Display;
3363 |       document.getElementById('DarkMatterValue').style.display = Display;
3364 |     }
3365 |     // Memorisation
3366 |     var Value = ''; 
3367 |     for (j = 0; j < PlanetSelect.length; j++) {
3368 |       Value += document.getElementById('Planet'+j).style.display+';|';
3369 |     }
3370 |     Value += ((document.getElementById('Total'))?document.getElementById('Total').style.display:'')+';|'+
3371 |     ((document.getElementById('DarkMatterTitle'))?document.getElementById('DarkMatterTitle').style.display+';':';');
3372 |     GMsetValue('OT_'+Account+'_ShowHideColumn', Value);
3373 |   }
3374 |   catch(err) {
3375 |     ShowError(err, 'ShowHideColumn('+Id+')');
3376 |   }
3377 | }
3378 | unsafeWindow.ShowHideColumn = ShowHideColumn;
3379 |
3380 | // Affichage du tableau de ressources en entete
3381 | if (((ShowHeaderResourcesTable == true) || ((ForceDisplayHeaderResourcesTableWithEmpire == true) && (OgameEmpire == true))) && (OgamePage != 'galaxy') && (HeaderDiv)) {
3382 |   
3383 |   try {
3384 |     //Initialisation des variables
3385 |     var ResourcesDiv = document.createElement('div');
3386 |     ResourcesDiv.setAttribute('id','ResourcesDiv');
3387 |     var PlanetTd = '';
3388 |     var MetalTd = '';
3389 |     var CrystalTd = '';
3390 |     var DeuteriumTd = '';
3391 |     var EnergieTd = '';
3392 |     var TimeUpdateTd = '';
3393 |     var TimeUpdate = '';
3394 |     var MetalTotal = 0;
3395 |     var CrystalTotal = 0;
3396 |     var DeuteriumTotal = 0;
3397 |     var Coordinates = '';
3398 |     
3399 |     if (RealTimeResources == true) {
3400 |       window.setTimeout('CalcRealTimeResources()', 1000);
3401 |     }
3402 |     
3403 |     // Generation des donnees du tableau
3404 |     for (var i = 0; i < PlanetSelect.length; i++) {
3405 |       
3406 |       // Creation de l'entete du tableau d'apercu du stock et du tableau de resultat du calcul
3407 |       Coordinates = '['+A_Planet[i].Galaxy+':'+A_Planet[i].System+':'+A_Planet[i].Planet+']';
3408 |       
3409 |       if (i == PlanetSelectedIndex) {
3410 |         PlanetTd += '<th align="center" id="PlanetSelected"><div id="Planet'+i+'" style="display:'+A_ShowHideColomn[i]+'"><a style="cursor:pointer" onclick="GMsetRefreshValue('+OgameEmpire+','+RefreshPlanetRest+','+AutoUpdateRest+');SaveTransfer();window.location.replace(\''+A_Planet[i].Url+'\');" '+((AddToolTip == true)?'title="'+Coordinates+'"':'')+'>'+((ShowPlanetName == true)?A_Planet[i].Name:'')+(((ShowPlanetName == true) && (ShowCoordinates == true))?'<br>':'')+((ShowCoordinates == true)?Coordinates:'')+'</a></div></th>\n'+
3411 |         '<td class="c" style="width:7px! important;cursor:pointer" onclick="javascript:ShowHideColumn('+i+')"><img id="ImgShowHide'+i+'" src="'+((A_ShowHideColomn[i] == 'none;')?C_ImgRight:C_ImgLeft)+'" alt="'+((A_ShowHideColomn[i] == 'none;')?A_Language[C_Show]:A_Language[C_Hide])+' '+A_Planet[i].Name+'" '+((AddToolTip == true)?'title="'+((A_ShowHideColomn[i] == 'none;')?A_Language[C_Show]:A_Language[C_Hide])+' '+A_Planet[i].Name+'"':'')+'></td>\n';
3412 |       }
3413 |       else {
3414 |         PlanetTd += '<td class="c" align="center"><div id="Planet'+i+'" style="display:'+A_ShowHideColomn[i]+'"><a style="cursor:pointer" onclick="'+((OgameEmpire==true)?'GMsetValue(\'OT_OgameEmpire\','+OgameEmpire+');':'')+'SaveTransfer();window.location.replace(\''+A_Planet[i].Url+'\');" '+((AddToolTip == true)?'title="'+Coordinates+'"':'')+'>'+((ShowPlanetName == true)?A_Planet[i].Name:'')+(((ShowPlanetName == true) && (ShowCoordinates == true))?'<br>':'')+((ShowCoordinates == true)?Coordinates:'')+'</a></div></td>\n'+
3415 |         '<td class="c" style="width:7px! important;cursor:pointer" onclick="javascript:ShowHideColumn('+i+')"><img id="ImgShowHide'+i+'" src="'+((A_ShowHideColomn[i] == 'none;')?C_ImgRight:C_ImgLeft)+'" alt="'+((A_ShowHideColomn[i] == 'none;')?A_Language[C_Show]:A_Language[C_Hide])+' '+A_Planet[i].Name+'" '+((AddToolTip == true)?'title="'+((A_ShowHideColomn[i] == 'none;')?A_Language[C_Show]:A_Language[C_Hide])+' '+A_Planet[i].Name+'"':'')+'></td>\n';
3416 |       }
3417 |       
3418 |       // Generation des lignes de ressources et d'energie du tableau (si des donnees memorisees sont trouvees sinon on affiche rien)
3419 |       if (A_Resources[i].Metal) {
3420 |         TimeUpdate = PlanetTimeUpdate(i, false);
3421 |         MetalTotal = MetalTotal + ((A_Resources[i].Metal!='-')?parseInt(A_Resources[i].Metal):0);
3422 |         CrystalTotal = CrystalTotal + ((A_Resources[i].Crystal!='-')?parseInt(A_Resources[i].Crystal):0);
3423 |         DeuteriumTotal = DeuteriumTotal + ((A_Resources[i].Deuterium!='-')?parseInt(A_Resources[i].Deuterium):0);
3424 |         MetalTd += '<td colspan="2" style="width:5px !important" align="right" class="'+TimeUpdate+ResourcesOver(i, 0, A_Planet[i].Type)+'"><div id="Metal'+i+'" style="display:'+A_ShowHideColomn[i]+'">'+FormatNb(A_Resources[i].Metal)+'</div></td>\n';
3425 |         CrystalTd += '<td colspan="2" style="width:5px !important" align="right" class="'+TimeUpdate+ResourcesOver(i, 1, A_Planet[i].Type)+'"><div id="Crystal'+i+'" style="display:'+A_ShowHideColomn[i]+'">'+FormatNb(A_Resources[i].Crystal)+'</div></td>\n';
3426 |         DeuteriumTd += '<td colspan="2" style="width:5px !important" align="right" class="'+TimeUpdate+ResourcesOver(i, 2, A_Planet[i].Type)+'"><div id="Deuterium'+i+'" style="display:'+A_ShowHideColomn[i]+'">'+FormatNb(A_Resources[i].Deuterium)+'</div></td>\n';
3427 |         EnergieTd += '<td colspan="2" style="width:5px !important" align="right" class="'+TimeUpdate+ResourcesOver(i, 3, A_Planet[i].Type)+'"><div id="Energy'+i+'" style="display:'+A_ShowHideColomn[i]+'">\n';
3428 |         EnergieTd += (A_Resources[i].FreeEnergy != '') ? FormatNb(A_Resources[i].FreeEnergy)+'/'+FormatNb(A_Resources[i].TotalEnergy) : '';
3429 |         EnergieTd += '</div></td>\n';
3430 |         if (ShowTimeUpdate == true) {
3431 |           TimeUpdateTd += '<td colspan="2" style="width:5px !important" align="right" class="'+TimeUpdate+'"><div id="Update'+i+'" style="display:'+A_ShowHideColomn[i]+'">'+FormatTime(PlanetTimeUpdate(i, true))+'</div></td>\n';
3432 |         }
3433 |       }
3434 |       else {
3435 |         MetalTd += '<td align="right" class="Time10" colspan="2"><div id="Metal'+i+'" style="display:'+A_ShowHideColomn[i]+'"></div></td>\n';
3436 |         CrystalTd += '<td align="right" class="Time10" colspan="2"><div id="Crystal'+i+'" style="display:'+A_ShowHideColomn[i]+'"></div></td>\n';
3437 |         DeuteriumTd += '<td align="right" class="Time10" colspan="2"><div id="Deuterium'+i+'" style="display:'+A_ShowHideColomn[i]+'"></div></td>\n';
3438 |         EnergieTd += '<td align="right" class="Time10" colspan="2"><div id="Energy'+i+'" style="display:'+A_ShowHideColomn[i]+'"></div></td>\n';
3439 |         if (ShowTimeUpdate == true) {
3440 |           TimeUpdateTd += '<td align="right" class="Time10" colspan="2"><div id="Update'+i+'" style="display:'+A_ShowHideColomn[i]+'"></div></td>\n';
3441 |         }
3442 |       }
3443 |     }
3444 |     
3445 |     // Creation du tableau
3446 |     ResourcesDiv.innerHTML = '<table id="planetResources">\n'+
3447 |     // Bouton precedent, mise a jour, suivant 
3448 |     '<tr><td class="c"><div style="display:inline !important;"><input style="width:19px!important;height:16px!important;margin-right:1px;border:none!important;background:transparent !important" type="image" src="'+C_ImgPrevious+'" name="previous" '+((AddToolTip == true)?'title="'+A_Language[C_PreviousPlanet]+'"':'')+' onclick="window.location.replace(\''+A_Planet[((PlanetSelectedIndex == 0) ? (PlanetSelect.length-1) : (PlanetSelectedIndex-1))].Url+'\');">'+
3449 |     (((AutoUpdateRest == 0) && (RefreshPlanetRest > 0)) ? '<input type="image" src="'+C_ImgStop+'" style="width:16px!important;height:16px!important;margin-left:1px;margin-right:1px;border:none!important;background:transparent !important" name="refresh" '+((AddToolTip == true)?'title="'+A_Language[C_UpdateStopInformations]+'" onclick="StopUpdate();"':'')+'>' : '<input style="width:11px!important;height:16px!important;margin-left:1px;margin-right:1px;border:none!important;background:transparent !important" type="image" src="'+C_ImgPlay+'" name="refresh" '+((AddToolTip == true)?'title="'+A_Language[C_UpdatePages]+'"':'')+' onclick="RefreshPlanet();">')+
3450 |     '<input style="width:19px!important;height:16px!important;margin-left:1px;border:none!important;background:transparent !important" type="image" src="'+C_ImgNext+'" name="next" '+((AddToolTip == true)?'title="'+A_Language[C_NextPlanet]+'"':'')+' onclick="window.location.replace(\''+A_Planet[((PlanetSelectedIndex == (PlanetSelect.length-1)) ? 0 : (PlanetSelectedIndex+1))].Url+'\');"></div></td>\n'+
3451 |     // Liste des planetes
3452 |     PlanetTd+
3453 |     // Total
3454 |     ((ShowTotal == true) ? '<td class="c" style="font-weight:bold; text-decoration:none;" align="center"><div id="Total" style="display:'+A_ShowHideColomn[PlanetSelect.length]+'">'+A_Language[C_Total]+'</div></td>\n'+
3455 |     '<td class="c" style="width:7px! important;cursor:pointer" onclick="javascript:ShowHideColumn('+PlanetSelect.length+')"><img id="ImgShowHide'+PlanetSelect.length+'" src="'+((A_ShowHideColomn[PlanetSelect.length] == 'none;')?C_ImgRight:C_ImgLeft)+'" alt="'+((A_ShowHideColomn[PlanetSelect.length] == 'none;')?A_Language[C_Show]:A_Language[C_Hide])+' '+A_Language[C_Total]+'" '+((AddToolTip == true)?'title="'+((A_ShowHideColomn[PlanetSelect.length] == 'none;')?A_Language[C_Show]:A_Language[C_Hide])+' '+A_Language[C_Total]+'"':'')+'></td>\n' : '')+
3456 |     // Antimatiere
3457 |     ((ShowDarkMatter == true) ? '<td class="c" align="center" style="font-weight:bold; padding-left:3px; padding-right:3px;"><div id="DarkMatterTitle" style="display:'+A_ShowHideColomn[(PlanetSelect.length+1)]+'">'+A_Language[C_DarkMatter]+'</div></td>\n'+
3458 |     '<td class="c" style="width:7px! important;cursor:pointer" onclick="javascript:ShowHideColumn('+(PlanetSelect.length+1)+')"><img id="ImgShowHide'+(PlanetSelect.length+1)+'" src="'+((A_ShowHideColomn[(PlanetSelect.length+1)] == 'none;')?C_ImgRight:C_ImgLeft)+'" alt="'+((A_ShowHideColomn[(PlanetSelect.length+1)] == 'none;')?A_Language[C_Show]:A_Language[C_Hide])+' '+A_Language[C_DarkMatter]+'" '+((AddToolTip == true)?'title="'+((A_ShowHideColomn[(PlanetSelect.length+1)] == 'none;')?A_Language[C_Show]:A_Language[C_Hide])+' '+A_Language[C_DarkMatter]+'"':'')+'></td>\n' : '')+
3459 |     '</tr>'+
3460 |     // Ressources
3461 |     '<tr><th style="font-weight:bold">'+A_Language[C_Metal]+'</th>\n'+MetalTd+((ShowTotal == true) ? '<th style="font-weight:bold" colspan="2" style="width:5px !important"><div id="MetalTotal" style="display:'+A_ShowHideColomn[PlanetSelect.length]+'">'+FormatNb(MetalTotal)+'</div></th>' : '')+((ShowDarkMatter == true) ? '<th style="font-weight:bold" colspan="2" style="width:5px !important"><div id="DarkMatterValue" style="display:'+A_ShowHideColomn[(PlanetSelect.length+1)]+'">'+FormatNb(DarkMatter)+'</div></th>' : '')+'</tr>\n'+
3462 |     '<tr><th style="font-weight:bold">'+A_Language[C_Crystal]+'</th>\n'+CrystalTd+((ShowTotal == true) ? '<th style="font-weight:bold" colspan="2" style="width:5px !important"><div id="CrystalTotal" style="display:'+A_ShowHideColomn[PlanetSelect.length]+'">'+FormatNb(CrystalTotal)+'</div></th>' : '')+((ShowDarkMatter == true) ? '<td colspan="2"></td>' : '')+'</tr>\n'+
3463 |     '<tr><th style="font-weight:bold">'+A_Language[C_Deuterium]+'</th>\n'+DeuteriumTd+((ShowTotal == true) ? '<th style="font-weight:bold" colspan="2" style="width:5px !important"><div id="DeuteriumTotal" style="display:'+A_ShowHideColomn[PlanetSelect.length]+'">'+FormatNb(DeuteriumTotal)+'</div></th>' : '')+((ShowDarkMatter == true) ? '<td colspan="2"></td>' : '')+'</tr>\n'+
3464 |     '<tr><th style="font-weight:bold">'+A_Language[C_Energy]+'</th>\n'+EnergieTd+((ShowTotal == true) ? '<td colspan="2"></td>' : '')+((ShowDarkMatter == true) ? '<td colspan="2"></td>' : '')+'</tr>\n'+
3465 |     ((ShowTimeUpdate == true) ? '<tr><th style="font-weight:bold">'+String(A_Language[C_Update]).replace(/([ ])/g,'&nbsp;')+'</th>\n'+TimeUpdateTd+((ShowTotal == true) ? '<td colspan="2"></td>' : '')+((ShowDarkMatter == true) ? '<td colspan="2"></td>' : '')+'</tr>\n' : '')+
3466 |     '</table>';
3467 |     
3468 |     // Affichage du tableau
3469 |     document.getElementsByTagName('body')[0].appendChild(ResourcesDiv);
3470 |   }
3471 |   catch(err) {
3472 |     ShowError(err, 'Resources table');
3473 |   }
3474 | }
3475 | // Ajoute la ligne total au tableau de ressources par defaut
3476 | if (AddResourcesTotal == true) {
3477 |   try {
3478 |     var MetalTotal = 0;
3479 |     var CrystalTotal = 0;
3480 |     var DeuteriumTotal = 0;
3481 |     for (var i = 0; i < PlanetSelect.length; i++) {
3482 |       if (A_Resources[i].Metal) {
3483 |         MetalTotal = MetalTotal + parseInt(A_Resources[i].Metal);
3484 |         CrystalTotal = CrystalTotal + parseInt(A_Resources[i].Crystal);
3485 |         DeuteriumTotal = DeuteriumTotal + parseInt(A_Resources[i].Deuterium);
3486 |       }
3487 |     }
3488 |     if (HeaderDiv) {
3489 |       var TotalTr = document.createElement('tr');
3490 |       TotalTr.setAttribute('class','header');
3491 |       var MetalTotalTd = document.createElement('td');
3492 |       MetalTotalTd.setAttribute('class','header');
3493 |       MetalTotalTd.setAttribute('width','90');
3494 |       MetalTotalTd.setAttribute('align','center');
3495 |       MetalTotalTd.textContent = FormatNb(MetalTotal);
3496 |       TotalTr.appendChild(MetalTotalTd);
3497 |       var CrystalTotalTd = document.createElement('td');
3498 |       CrystalTotalTd.setAttribute('class','header');
3499 |       CrystalTotalTd.setAttribute('width','90');
3500 |       CrystalTotalTd.setAttribute('align','center');
3501 |       CrystalTotalTd.textContent = FormatNb(CrystalTotal);
3502 |       TotalTr.appendChild(CrystalTotalTd);
3503 |       var DeuteriumTotalTd = document.createElement('td');
3504 |       DeuteriumTotalTd.setAttribute('class','header');
3505 |       DeuteriumTotalTd.setAttribute('width','90');
3506 |       DeuteriumTotalTd.setAttribute('align','center');
3507 |       DeuteriumTotalTd.textContent = FormatNb(DeuteriumTotal);
3508 |       TotalTr.appendChild(DeuteriumTotalTd);
3509 |       var NullTd = document.createElement('td');
3510 |       NullTd.setAttribute('style','background:none');
3511 |       NullTd.setAttribute('colspan','2');
3512 |       TotalTr.appendChild(NullTd);
3513 |       document.getElementById('resources').appendChild(TotalTr);
3514 |     }
3515 |   }
3516 |   catch(err) {
3517 |     ShowError(err, 'Add total to default resources table');
3518 |   }
3519 | }
3520 |
3521 |
3522 |
3523 |
3524 |
3525 | /* PAGE EMPIRE
3526 |    -------------------------------------------------- */
3527 |
3528 | function InsertSelect(Name, Value) {
3529 |   try {
3530 |     if (Value != '-') {
3531 |       var SelectScript = '<select name="'+Name+'" size="1">';
3532 |       var CurrentValue = 100;
3533 |       for (v = 0; v < 11 ; v++) {
3534 |         if (CurrentValue == Value) {
3535 |           SelectScript += '<option value="'+CurrentValue+'" selected>'+CurrentValue+'&#37;</option>';
3536 |         }
3537 |         else {
3538 |           SelectScript += '<option value="'+CurrentValue+'">'+CurrentValue+'&#37;</option>';
3539 |         }
3540 |         CurrentValue = CurrentValue-10;
3541 |       }
3542 |       SelectScript += '</select>';
3543 |       return SelectScript;
3544 |     }
3545 |     else {
3546 |       return Value;
3547 |     }
3548 |   }
3549 |   catch(err) {
3550 |     ShowError(err, 'InsertSelect()');
3551 |   }
3552 | }
3553 |
3554 | function CreateResourcesLink(PlanetId) {
3555 |   try {
3556 |     var Link = ResourcesLink+'&cp='+PlanetId;
3557 |     Link += ((document.getElementsByName('last1_'+PlanetId)[0]) ? '&last1='+document.getElementsByName('last1_'+PlanetId)[0].value : '');
3558 |     Link += ((document.getElementsByName('last2_'+PlanetId)[0]) ? '&last2='+document.getElementsByName('last2_'+PlanetId)[0].value : '');
3559 |     Link += ((document.getElementsByName('last3_'+PlanetId)[0]) ? '&last3='+document.getElementsByName('last3_'+PlanetId)[0].value : '');
3560 |     Link += ((document.getElementsByName('last4_'+PlanetId)[0]) ? '&last4='+document.getElementsByName('last4_'+PlanetId)[0].value : '');
3561 |     Link += ((document.getElementsByName('last12_'+PlanetId)[0]) ? '&last12='+document.getElementsByName('last12_'+PlanetId)[0].value : '');
3562 |     Link += ((document.getElementsByName('last212_'+PlanetId)[0]) ? '&last212='+document.getElementsByName('last212_'+PlanetId)[0].value : '');
3563 |     if (PlanetId != A_Planet[PlanetSelectedIndex].Id) {
3564 |       AddAction('window.location.replace(|'+Link+'|)');
3565 |       if (MenuDiv)
3566 |       AddAction('GMsetValue(|OT_OgameEmpire|,true);window.location.replace(|'+MenuDiv.getElementsByTagName('table')[0].rows[SearchRow].cells[0].getElementsByTagName('a')[0].href+'|)');
3567 |       window.location.replace(ResourcesLink+'&cp='+A_Planet[PlanetSelectedIndex].Id);
3568 |     }
3569 |     else {
3570 |       if (MenuDiv)
3571 |       AddAction('GMsetValue(|OT_OgameEmpire|,true);window.location.replace(|'+MenuDiv.getElementsByTagName('table')[0].rows[SearchRow].cells[0].getElementsByTagName('a')[0].href+'|)');
3572 |       window.location.replace(Link);
3573 |     }
3574 |   }
3575 |   catch(err) {
3576 |     ShowError(err, 'CreateResourcesLink('+PlanetId+')');
3577 |   }
3578 | }
3579 | unsafeWindow.CreateResourcesLink = CreateResourcesLink;
3580 |
3581 | function CalcEnergy(Group,Element,PlanetIndex) {
3582 |   try {
3583 |     var EnergyNeeded = 0;
3584 |     var Building = (A_Buildings[PlanetIndex][Element].Level&&A_Buildings[PlanetIndex][Element].Level!='-'?parseInt(A_Buildings[PlanetIndex][Element].Level):0);
3585 |     var Energy = (A_Research[5].Level&&A_Research[5].Level!='-'?parseInt(A_Research[5].Level):0);
3586 |     if ((Group == C_Buildings) && ((Element >= 0) && (Element <= 4))) {
3587 |       if (Element == 0 || Element == 1) {
3588 |         EnergyNeeded = -Math.ceil(10*(Building+1)*Math.pow(1.1,(Building+1)) - 10*Building*Math.pow(1.1,Building));
3589 |       }
3590 |       else if (Element == 2) {
3591 |         EnergyNeeded = -Math.ceil(20*(Building+1)*Math.pow(1.1,(Building+1)) - 20*Building*Math.pow(1.1,Building));
3592 |       }
3593 |       else if (Element == 3) {
3594 |         EnergyNeeded = Math.ceil(20*(Building+1)*Math.pow(1.1,(Building+1)) - 20*Building*Math.pow(1.1,Building));
3595 |       }
3596 |       else if (Element == 4) {
3597 |         EnergyNeeded = Math.ceil(30*(Building+1)*Math.pow((1.05+Energy*0.01),(Building+1)) - 30*Building*Math.pow((1.05+Energy*0.01),Building));
3598 |       }
3599 |       return ((EnergyNeeded < 0)?'<br>'+A_Language[C_Energy]+': <font style=color:#ff0000>'+FormatNb(EnergyNeeded)+'</font>':'<br>'+A_Language[C_Energy]+': <font style=color:#00ff00>+'+FormatNb(EnergyNeeded)+'</font>')+'&nbsp;<font style=color:#ff9900>('+(parseInt(A_Resources[PlanetIndex].FreeEnergy)+EnergyNeeded>0?'+':'')+FormatNb(parseInt(A_Resources[PlanetIndex].FreeEnergy)+EnergyNeeded)+')</font>';
3600 |     }
3601 |     return '';
3602 |   }
3603 |   catch(err) {
3604 |     ShowError(err, 'CalcEnergy('+Group+','+Element+','+PlanetIndex+')');
3605 |   }
3606 | }
3607 |
3608 | function CalcEvolution(Group,Element,LevelOrQuantity) {
3609 |   try {
3610 |     var MetalEvo = 0;
3611 |     var CrystalEvo = 0;
3612 |     var DeuteriumEvo = 0;
3613 |     var EnergyEvo = 0;
3614 |     // Batiment
3615 |     if (Group == C_Buildings) {
3616 |       if (Element == 0) {
3617 |         MetalEvo = Math.floor((60*(1-Math.pow(1.5,LevelOrQuantity))/(-0.5))-(60*(1-Math.pow(1.5,LevelOrQuantity-1))/(-0.5)));
3618 |         CrystalEvo = Math.floor((15*(1-Math.pow(1.5,LevelOrQuantity))/(-0.5))-(15*(1-Math.pow(1.5,LevelOrQuantity-1))/(-0.5)));
3619 |       }
3620 |       else if (Element == 1) {
3621 |         MetalEvo = Math.floor((48*(1-Math.pow(1.6,LevelOrQuantity))/(-0.6))-(48*(1-Math.pow(1.6,LevelOrQuantity-1))/(-0.6)));
3622 |         CrystalEvo = Math.floor((24*(1-Math.pow(1.6,LevelOrQuantity))/(-0.6))-(24*(1-Math.pow(1.6,LevelOrQuantity-1))/(-0.6)));
3623 |       }
3624 |       else if (Element == 2) {
3625 |         MetalEvo = Math.floor((225*(1-Math.pow(1.5,LevelOrQuantity))/(-0.5))-(225*(1-Math.pow(1.5,LevelOrQuantity-1))/(-0.5)));
3626 |         CrystalEvo = Math.floor((75*(1-Math.pow(1.5,LevelOrQuantity))/(-0.5))-(75*(1-Math.pow(1.5,LevelOrQuantity-1))/(-0.5)));
3627 |       }
3628 |       else if (Element == 3) {
3629 |         MetalEvo = Math.floor((75*(1-Math.pow(1.5,LevelOrQuantity))/(-0.5))-(75*(1-Math.pow(1.5,LevelOrQuantity-1))/(-0.5)));
3630 |         CrystalEvo = Math.floor((30*(1-Math.pow(1.5,LevelOrQuantity))/(-0.5))-(30*(1-Math.pow(1.5,LevelOrQuantity-1))/(-0.5)));
3631 |       }
3632 |       else if (Element == 4) {
3633 |         MetalEvo = Math.floor((900*(1-Math.pow(1.8,LevelOrQuantity))/(-0.8))-(900*(1-Math.pow(1.8,LevelOrQuantity-1))/(-0.8)));
3634 |         CrystalEvo = Math.floor((360*(1-Math.pow(1.8,LevelOrQuantity))/(-0.8))-(360*(1-Math.pow(1.8,LevelOrQuantity-1))/(-0.8)));
3635 |         DeuteriumEvo = Math.floor((180*(1-Math.pow(1.8,LevelOrQuantity))/(-0.8))-(180*(1-Math.pow(1.8,LevelOrQuantity-1))/(-0.8)));
3636 |       }
3637 |       else {
3638 |         MetalEvo = Math.floor((parseInt(A_Construction[Group][Element].Metal)*(-(1-Math.pow(2,LevelOrQuantity))))-(parseInt(A_Construction[Group][Element].Metal)*(-(1-Math.pow(2,LevelOrQuantity-1)))));
3639 |         CrystalEvo = Math.floor((parseInt(A_Construction[Group][Element].Crystal)*(-(1-Math.pow(2,LevelOrQuantity))))-(parseInt(A_Construction[Group][Element].Crystal)*(-(1-Math.pow(2,LevelOrQuantity-1)))));
3640 |         DeuteriumEvo = Math.floor((parseInt(A_Construction[Group][Element].Deuterium)*(-(1-Math.pow(2,LevelOrQuantity))))-(parseInt(A_Construction[Group][Element].Deuterium)*(-(1-Math.pow(2,LevelOrQuantity-1)))));
3641 |         EnergyEvo = Math.floor((parseInt(A_Construction[Group][Element].Energy)*(-(1-Math.pow(2,LevelOrQuantity))))-(parseInt(A_Construction[Group][Element].Energy)*(-(1-Math.pow(2,LevelOrQuantity-1)))));
3642 |       }
3643 |     }
3644 |     // Technologie
3645 |     else if (Group == C_Research) {
3646 |       if (Element == 15) {
3647 |         EnergyEvo = (parseInt(A_Construction[Group][Element].Energy)*Math.pow(3,LevelOrQuantity-1));
3648 |       }
3649 |       else {
3650 |         MetalEvo = parseInt(A_Construction[Group][Element].Metal)*Math.pow(2,LevelOrQuantity-1);
3651 |         CrystalEvo = parseInt(A_Construction[Group][Element].Crystal)*Math.pow(2,LevelOrQuantity-1);
3652 |         DeuteriumEvo = parseInt(A_Construction[Group][Element].Deuterium)*Math.pow(2,LevelOrQuantity-1);
3653 |         EnergyEvo = parseInt(A_Construction[Group][Element].Energy)*Math.pow(2,LevelOrQuantity-1);
3654 |       }
3655 |     }
3656 |     // Defense et Flotte
3657 |     else if ((Group == C_Defenses) || (Group == C_Fleets)) {
3658 |       MetalEvo = parseInt(A_Construction[Group][Element].Metal)*LevelOrQuantity;
3659 |       CrystalEvo = parseInt(A_Construction[Group][Element].Crystal)*LevelOrQuantity;
3660 |       DeuteriumEvo = parseInt(A_Construction[Group][Element].Deuterium)*LevelOrQuantity;
3661 |     }
3662 |     
3663 |     return MetalEvo+'|'+CrystalEvo+'|'+DeuteriumEvo+'|'+EnergyEvo;
3664 |   }
3665 |   catch(err) {
3666 |     ShowError(err, 'CalcEvolution('+Group+', '+Element+', '+LevelOrQuantity+')');
3667 |   }
3668 | }
3669 |
3670 | function CalcBuildingTime(Group,Metal,Crystal,PlanetIndex,Quantity) {
3671 |   try {
3672 |     var Time = 0;
3673 |     var RobotFactory = ((A_Buildings[PlanetIndex][5].Level)&&(A_Buildings[PlanetIndex][5].Level)!='-'?A_Buildings[PlanetIndex][5].Level:0);
3674 |     var NanitesFactory = ((A_Buildings[PlanetIndex][6].Level)&&(A_Buildings[PlanetIndex][6].Level)!='-'?A_Buildings[PlanetIndex][6].Level:0);
3675 |     var Shipyard = ((A_Buildings[PlanetIndex][7].Level)&&(A_Buildings[PlanetIndex][7].Level)!='-'?A_Buildings[PlanetIndex][7].Level:0);
3676 |     var Laboratory = ((A_Buildings[PlanetIndex][11].Level)&&(A_Buildings[PlanetIndex][11].Level)!='-'?A_Buildings[PlanetIndex][11].Level:0);
3677 |     if (Group == C_Buildings) {
3678 |       Time = ((Metal+Crystal)/5000) * (2/(1+parseInt(RobotFactory))) * Math.pow(0.5,parseInt(NanitesFactory));
3679 |     }
3680 |     else if (Group == C_Research) {
3681 |       var NbLaboratory, LaboratoryCumul = 0;
3682 |       var A_Laboratory = new Array();
3683 |       for (j = 0; j < PlanetSelect.length; j++) {
3684 |         if (j != PlanetIndex) {
3685 |           A_Laboratory[LaboratoryCumul] = ((A_Buildings[j][11].Level)&&(A_Buildings[j][11].Level)!='-'?A_Buildings[j][11].Level:0);
3686 |           LaboratoryCumul++;
3687 |         }
3688 |       }
3689 |       LaboratoryCumul = 0;
3690 |       A_Laboratory.sort(SortNumber);
3691 |       for (j = 0; j < (A_Research[13].Level&&A_Research[13].Level!='-'?A_Research[13].Level:0); j++) {
3692 |         LaboratoryCumul = LaboratoryCumul+parseInt(A_Laboratory[A_Laboratory.length-1-j]);
3693 |       }
3694 |       Time = (Metal+Crystal) / (1000*(1+parseInt(Laboratory)+LaboratoryCumul));
3695 |     }
3696 |     else if (Quantity) {
3697 |       Time = ((Metal+Crystal)/5000) * (2/(1+parseInt(Shipyard))) * Math.pow(0.5,parseInt(NanitesFactory)) * Quantity;
3698 |     }
3699 |     return FormatTime(Time*3600000);
3700 |   }
3701 |   catch(err) {
3702 |     ShowError(err, 'CalcBuildingTime('+Group+','+Metal+','+Crystal+','+PlanetIndex+','+Quantity+')');
3703 |   }
3704 | }
3705 | unsafeWindow.CalcBuildingTime = CalcBuildingTime;
3706 |
3707 | function CalcMissingResources(Metal,Crystal,Deuterium) {
3708 |   try {
3709 |     var Result = (Metal>0 ? A_Language[C_Metal]+':&nbsp;'+FormatNb(Metal)+'<br>' : '')+
3710 |     (Crystal>0 ? A_Language[C_Crystal]+':&nbsp;'+FormatNb(Crystal)+'<br>' : '')+
3711 |     (Deuterium>0 ? A_Language[C_Deuterium]+':&nbsp;'+FormatNb(Deuterium) : '');
3712 |     if (document.getElementById('MissingResourcesTr')) {
3713 |       if (Result.length > 0) {
3714 |         document.getElementById('MissingResourcesTr').style.display = '';
3715 |       }
3716 |       else {
3717 |         document.getElementById('MissingResourcesTr').style.display = 'none';
3718 |       }
3719 |     }
3720 |     return Result;
3721 |   }
3722 |   catch(err) {
3723 |     ShowError(err, 'CalcMissingResources('+Group+','+Metal+','+Crystal+','+Deuterium+','+Quantity+')');
3724 |   }
3725 | }
3726 | unsafeWindow.CalcMissingResources = CalcMissingResources;
3727 |
3728 | function CalcTransportShip(Metal,Crystal,Deuterium) {
3729 |   try {
3730 |     Metal = (Metal>0?Metal:0);
3731 |     Crystal = (Crystal>0?Crystal:0);
3732 |     Deuterium = (Deuterium>0?Deuterium:0);
3733 |     if ((Metal+Crystal+Deuterium) > 0) {
3734 |       if (document.getElementById('TransportShipTr')) { document.getElementById('TransportShipTr').style.display = ''; }
3735 |       return A_Language[C_LargeCargoShip]+': '+FormatNb(Math.ceil((Metal+Crystal+Deuterium)/25000))+', '+
3736 |       A_Language[C_SmallCargoShip]+': '+FormatNb(Math.ceil((Metal+Crystal+Deuterium)/5000));
3737 |     }
3738 |     if (document.getElementById('TransportShipTr')) { document.getElementById('TransportShipTr').style.display = 'none'; }
3739 |     return '';
3740 |   }
3741 |   catch(err) {
3742 |     ShowError(err, 'CalcNeededTransportShip('+Group+','+Metal+','+Crystal+','+Deuterium+','+Quantity+')');
3743 |   }
3744 | }
3745 | unsafeWindow.CalcMissingResources = CalcMissingResources;
3746 |
3747 | function RefreshCalc(Id,Group,Metal,Crystal,Deuterium,PlanetIndex) {
3748 |   try {
3749 |     document.getElementById('BuildingTime').textContent = A_Language[C_BuildingTime]+': '+CalcBuildingTime(Group,Metal,Crystal,PlanetIndex,document.getElementsByName(Id)[0].value);
3750 |     if (UseRealTimeResourcesEmpire == true && RealTimeResources == true && (ShowHeaderResourcesTable == true || ForceDisplayHeaderResourcesTableWithEmpire == true)) {
3751 |       if (A_RealTimeResources[PlanetIndex].Metal) {
3752 |         Metal = (Metal*document.getElementsByName(Id)[0].value)-A_RealTimeResources[PlanetIndex].Metal;
3753 |         Crystal = (Crystal*document.getElementsByName(Id)[0].value)-A_RealTimeResources[PlanetIndex].Crystal;
3754 |         Deuterium = (Deuterium*document.getElementsByName(Id)[0].value)-A_RealTimeResources[PlanetIndex].Deuterium;
3755 |         Metal = (Metal>0?Metal:0);
3756 |         Crystal = (Crystal>0?Crystal:0);
3757 |         Deuterium = (Deuterium>0?Deuterium:0);
3758 |         document.getElementById('MissingResources').innerHTML = CalcMissingResources(Metal,Crystal,Deuterium);
3759 |         document.getElementById('TransportShip').innerHTML = CalcTransportShip(Metal,Crystal,Deuterium);
3760 |       }
3761 |     }
3762 |     else {
3763 |       if (A_Resources[PlanetIndex].Metal) {
3764 |         Metal = (Metal*document.getElementsByName(Id)[0].value)-A_Resources[PlanetIndex].Metal;
3765 |         Crystal = (Crystal*document.getElementsByName(Id)[0].value)-A_Resources[PlanetIndex].Crystal;
3766 |         Deuterium = (Deuterium*document.getElementsByName(Id)[0].value)-A_Resources[PlanetIndex].Deuterium;
3767 |         Metal = (Metal>0?Metal:0);
3768 |         Crystal = (Crystal>0?Crystal:0);
3769 |         Deuterium = (Deuterium>0?Deuterium:0);
3770 |         document.getElementById('MissingResources').innerHTML = CalcMissingResources(Metal,Crystal,Deuterium);
3771 |         document.getElementById('TransportShip').innerHTML = CalcTransportShip(Metal,Crystal,Deuterium);
3772 |       }
3773 |     }
3774 |   }
3775 |   catch(err) {
3776 |     ShowError(err, 'RefreshCalc('+Id+','+Group+','+Metal+','+Crystal+','+PlanetIndex+')');
3777 |   }
3778 | }
3779 | unsafeWindow.RefreshCalc = RefreshCalc;
3780 |
3781 | // Prechargement lien fonction AddOverLib
3782 | if ((OgamePage != 'galaxy') && (HeaderDiv)) {
3783 |   try {
3784 |     // Lien vers page et texte correspondant
3785 |     var A_OverLib = new Array();
3786 |     A_OverLib[C_Buildings] = new P_OverLib();
3787 |     A_OverLib[C_Buildings].Text = A_Language[C_ToBuildings];
3788 |     A_OverLib[C_Buildings].Link = 'page=b_building';
3789 |     A_OverLib[C_Defenses] = new P_OverLib();
3790 |     A_OverLib[C_Defenses].Text = A_Language[C_ToDefenses];
3791 |     A_OverLib[C_Defenses].Link = 'page=buildings&mode=Verteidigung';
3792 |     A_OverLib[C_Research] = new P_OverLib();
3793 |     A_OverLib[C_Research].Text = A_Language[C_ToResearch];
3794 |     A_OverLib[C_Research].Link = 'page=buildings&mode=Forschung';
3795 |     A_OverLib[C_Fleets] = new P_OverLib();
3796 |     A_OverLib[C_Fleets].Text = A_Language[C_ToFleets];
3797 |     A_OverLib[C_Fleets].Link = 'page=buildings&mode=Flotte';
3798 |     
3799 |     // Calcul du total des ressources
3800 |     var MetalTotal = 0;
3801 |     var CrystalTotal = 0;
3802 |     var DeuteriumTotal= 0;
3803 |     for (i = 0;i < PlanetSelect.length; i++) {
3804 |       if (A_Resources[i].Metal) {
3805 |         MetalTotal = MetalTotal + parseInt(A_Resources[i].Metal);
3806 |         CrystalTotal = CrystalTotal + parseInt(A_Resources[i].Crystal);
3807 |         DeuteriumTotal = DeuteriumTotal + parseInt(A_Resources[i].Deuterium);
3808 |       }
3809 |     }
3810 |   }
3811 |   catch(err) {
3812 |     ShowError(err, 'Init OverLib variables and calculate resources total');
3813 |   }
3814 | }
3815 |
3816 | function AddOverLib(Value, Group, Element, PlanetIndex, UnderConstructionValue) {
3817 |   
3818 |   // Calcul du cout du prochain niveau (Batiment, technologie) ou du cout de construction (Flotte, defense)
3819 |   var Res = CalcEvolution(Group,Element,(((Group == C_Defenses) || (Group == C_Fleets)) ? 1 : (parseInt(((Value == '-') ? 0 : Value))+1)));
3820 |   if (Res) {
3821 |     var Res = Res.split(Separator);
3822 |     if (Res) {
3823 |       var MetalEvo = parseInt(Res[0]);
3824 |       var CrystalEvo = parseInt(Res[1]);
3825 |       var DeuteriumEvo = parseInt(Res[2]);
3826 |       var EnergyEvo = parseInt(Res[3]);
3827 |       
3828 |       if (PlanetIndex < PlanetSelect.length) {
3829 |         // Comparaison avec les ressources de toutes les planetes
3830 |         var VerifSup = true;
3831 |         var FontColor = ' color="#FF0000"';
3832 |         if (MetalTotal < MetalEvo) {
3833 |           VerifSup = false;
3834 |         }
3835 |         if (CrystalTotal < CrystalEvo) {
3836 |           VerifSup = false;
3837 |         }
3838 |         if (DeuteriumTotal < DeuteriumEvo) {
3839 |           VerifSup = false;
3840 |         }
3841 |         var Energy = A_Resources[i].TotalEnergy;
3842 |         if (Energy) {
3843 |           if (Energy < EnergyEvo) {
3844 |             VerifSup = false;
3845 |           }
3846 |         }
3847 |         if (VerifSup == true) {
3848 |           FontColor = ' color="#FF9900"';
3849 |         }
3850 |         
3851 |         // Comparaison avec les ressources de la planete
3852 |         if (Energy) {
3853 |           if (A_Resources[PlanetIndex].Metal < MetalEvo) {
3854 |             VerifSup = false;
3855 |           }
3856 |           if (A_Resources[PlanetIndex].Crystal < CrystalEvo) {
3857 |             VerifSup = false;
3858 |           }
3859 |           if (A_Resources[PlanetIndex].Deuterium < DeuteriumEvo) {
3860 |             VerifSup = false;
3861 |           }
3862 |           if (Energy < EnergyEvo) {
3863 |             VerifSup = false;
3864 |           }
3865 |           if (VerifSup == true) {
3866 |             FontColor = ' color="#00FF00"';
3867 |           }
3868 |         }
3869 |       }
3870 |       else {
3871 |         var FontColor = '';
3872 |       }
3873 |       
3874 |       if (UnderConstructionValue) {
3875 |         if (Group == C_Research) {
3876 |           if (A_Planet[PlanetIndex].Id == UnderConstructionValue) {
3877 |             UnderConstructionValue = parseInt(A_Research[Element].Level)+1;
3878 |           }
3879 |           else {
3880 |             UnderConstructionValue = undefined;
3881 |           }
3882 |         }
3883 |       }
3884 |       
3885 |       return '<a style="cursor:pointer" onclick="overlib(OverLibFunction(\''+Value+'\','+Group+','+Element+','+PlanetIndex+','+((UnderConstructionValue > 0) ? UnderConstructionValue : undefined)+'), STICKY, MOUSEOFF, 100, 750, CENTER, OFFSETX, -40, OFFSETY, -40);" onmouseover="overlib(OverLibFunction(\''+Value+'\','+Group+','+Element+','+PlanetIndex+','+((UnderConstructionValue > 0) ? UnderConstructionValue : undefined)+'), STICKY, MOUSEOFF, DELAY, 750, CENTER, OFFSETX, -40, OFFSETY, -40);" onmouseout="return nd();"><font'+FontColor+'>'+FormatNb(Value)+'</font>'+(((UnderConstructionValue != '-') && (UnderConstructionValue)) ? ' <font color="#FF00FF">('+FormatNb(UnderConstructionValue)+')</font>' : '')+'</a>';
3886 |     }
3887 |   }
3888 | }
3889 |
3890 | function SetTransferValue(Metal, Crystal, Deuterium, PlanetIndex) {
3891 |   TransferShow = true;
3892 |   TransferMetal = Metal;
3893 |   TransferCrystal = Crystal;
3894 |   TransferDeuterium = Deuterium;
3895 |   if (PlanetIndex) {
3896 |     TransferDestinationPlanet = A_Planet[PlanetIndex].Planet;
3897 |     TransferDestinationSystem = A_Planet[PlanetIndex].System;
3898 |     TransferDestinationGalaxy = A_Planet[PlanetIndex].Galaxy;
3899 |     TransferDestinationType = A_Planet[PlanetIndex].Type;
3900 |   }
3901 |   SaveTransfer();
3902 | }
3903 | unsafeWindow.SetTransferValue = SetTransferValue;
3904 |
3905 | // Optimisation afin d'eviter la perte de temps due a la concatenation de les objets au chargement de la page
3906 | // et permet de charger uniquement l'objet voulu
3907 | function OverLibFunction(Value, Group, Element, PlanetIndex, UnderConstructionValue) {
3908 |   
3909 |   try {
3910 |     var Action;
3911 |     // Calcul du cout du prochain niveau (Batiment, technologie) ou du cout de construction (Flotte, defense)
3912 |     var Res = CalcEvolution(Group,Element,(((Group == C_Defenses) || (Group == C_Fleets)) ? 1 : (parseInt(((Value == '-') ? 0 : Value))+1)));
3913 |     
3914 |     Res = Res.split(Separator);
3915 |     var MetalEvo = parseInt(Res[0]);
3916 |     var CrystalEvo = parseInt(Res[1]);
3917 |     var DeuteriumEvo = parseInt(Res[2]);
3918 |     var EnergyEvo = parseInt(Res[3]);
3919 |     
3920 |     // Mise en forme du resultat
3921 |     var ResCalc = '';
3922 |     if (MetalEvo != 0) {
3923 |       ResCalc += A_Language[C_Metal]+': '+FormatNb((((Group == C_Defenses) || (Group == C_Fleets)) ? MetalEvo*parseInt(((Value == '-') ? 0 : Value)) : MetalEvo));
3924 |     }
3925 |     if (CrystalEvo != 0) {
3926 |       ResCalc += ((ResCalc.length > 0) ? '<br>' : '')+A_Language[C_Crystal]+': '+FormatNb((((Group == C_Defenses) || (Group == C_Fleets)) ? CrystalEvo*parseInt(((Value == '-') ? 0 : Value)) : CrystalEvo));
3927 |     }
3928 |     if (DeuteriumEvo != 0) {
3929 |       ResCalc += ((ResCalc.length > 0) ? '<br>' : '')+A_Language[C_Deuterium]+': '+FormatNb((((Group == C_Defenses) || (Group == C_Fleets)) ? DeuteriumEvo*parseInt(((Value == '-') ? 0 : Value)) : DeuteriumEvo));
3930 |     }
3931 |     if (EnergyEvo != 0) {
3932 |       ResCalc += ((ResCalc.length > 0) ? '<br>' : '')+A_Language[C_Energy]+': '+FormatNb(EnergyEvo);
3933 |     }
3934 |     
3935 |     if (PlanetIndex < PlanetSelect.length) {
3936 |       
3937 |       if (UseRealTimeResourcesEmpire == true && RealTimeResources == true && (ShowHeaderResourcesTable == true || ForceDisplayHeaderResourcesTableWithEmpire == true)) {
3938 |         var Metal = A_RealTimeResources[PlanetIndex].Metal;
3939 |         var Crystal = A_RealTimeResources[PlanetIndex].Crystal;
3940 |         var Deuterium = A_RealTimeResources[PlanetIndex].Deuterium;
3941 |         MetalTotal = A_RealTimeResources[PlanetSelect.length].Metal;
3942 |         CrystalTotal = A_RealTimeResources[PlanetSelect.length].Crystal;
3943 |         DeuteriumTotal = A_RealTimeResources[PlanetSelect.length].Deuterium;
3944 |       }
3945 |       else {
3946 |         var Metal = A_Resources[PlanetIndex].Metal;
3947 |         var Crystal = A_Resources[PlanetIndex].Crystal;
3948 |         var Deuterium = A_Resources[PlanetIndex].Deuterium;
3949 |       }
3950 |       var Energy = A_Resources[PlanetIndex].TotalEnergy;
3951 |     
3952 |       // Nombre de satellites pour graviton
3953 |       if (((Group == C_Research) && (Element == 15)) || ((Group == C_Buildings) && (Element == 12))) {
3954 |         var EnergyNeeded = EnergyEvo-Energy;
3955 |         if (EnergyNeeded > 0) {
3956 |           var EnergyPerSat = Math.floor((parseInt(A_Planet[PlanetIndex].MaxTemperature)/4)+20);
3957 |           if (Group == C_Research) {
3958 |             ResCalc = A_Language[C_Crystal]+': <font color="#FF9900">'+FormatNb(A_Construction[C_Fleets][10].Crystal*Math.ceil(EnergyNeeded/EnergyPerSat))+'</font>'+
3959 |             '<br>'+A_Language[C_Deuterium]+': <font color="#FF9900">'+FormatNb(A_Construction[C_Fleets][10].Deuterium*Math.ceil(EnergyNeeded/EnergyPerSat))+'</font>';
3960 |             CrystalEvo = A_Construction[C_Fleets][10].Crystal*Math.ceil(EnergyNeeded/EnergyPerSat);
3961 |             DeuteriumEvo = A_Construction[C_Fleets][10].Deuterium*Math.ceil(EnergyNeeded/EnergyPerSat);
3962 |           }
3963 |           else {
3964 |             ResCalc = '<br>'+A_Language[C_Crystal]+': '+FormatNb(CrystalEvo)+' <font color="#FF9900">'+FormatNb(A_Construction[C_Fleets][10].Crystal*Math.ceil(EnergyNeeded/EnergyPerSat))+'</font>'+
3965 |             '<br>'+A_Language[C_Deuterium]+': '+FormatNb(DeuteriumEvo)+' <font color="#FF9900">'+FormatNb(A_Construction[C_Fleets][10].Deuterium*Math.ceil(EnergyNeeded/EnergyPerSat))+'</font>';
3966 |             CrystalEvo = CrystalEvo+(A_Construction[C_Fleets][10].Crystal*Math.ceil(EnergyNeeded/EnergyPerSat));
3967 |             DeuteriumEvo = DeuteriumEvo+(A_Construction[C_Fleets][10].Deuterium*Math.ceil(EnergyNeeded/EnergyPerSat));
3968 |           }
3969 |           ResCalc += '<br><br>'+A_Language[C_Ship212Production]+' : <font color="#FF9900">'+EnergyPerSat+'</font><br>'+A_Language[C_Ship212NecessaryNumber]+' : <font color="#FF9900">'+FormatNb(Math.ceil(EnergyNeeded/EnergyPerSat))+'</font>';
3970 |         }
3971 |       }
3972 |       
3973 |       // Comparaison avec les ressources de toutes les planetes
3974 |       var MetalBuildTotalNumber = -1;
3975 |       var CrystalBuildTotalNumber = -1;
3976 |       var DeuteriumBuildTotalNumber = -1;
3977 |       var VerifSup = true;
3978 |       var FontColor = ' color="#FF0000"';
3979 |       if (MetalTotal < MetalEvo) {
3980 |         VerifSup = false;
3981 |       }
3982 |       if (CrystalTotal < CrystalEvo) {
3983 |         VerifSup = false;
3984 |       }
3985 |       if (DeuteriumTotal < DeuteriumEvo) {
3986 |         VerifSup = false;
3987 |       }
3988 |       if (Energy) {
3989 |         if (Energy < EnergyEvo) {
3990 |           VerifSup = false;
3991 |         }
3992 |       }
3993 |       if (VerifSup == true) {
3994 |         FontColor = ' color="#FF9900"';
3995 |         if ((Group == C_Defenses) || (Group == C_Fleets)) {
3996 |           if (MetalEvo > 0) {
3997 |             MetalBuildTotalNumber = Math.floor(MetalTotal/MetalEvo);
3998 |           }
3999 |           if (CrystalEvo > 0) {
4000 |             CrystalBuildTotalNumber = Math.floor(CrystalTotal/CrystalEvo);
4001 |           }
4002 |           if (DeuteriumEvo > 0) {
4003 |             DeuteriumBuildTotalNumber = Math.floor(DeuteriumTotal/DeuteriumEvo);
4004 |           }
4005 |         }
4006 |       }
4007 |       
4008 |       // Calcul du nombre de construction possible avec les ressources de toutes les planetes
4009 |       if ((Group == C_Defenses) || (Group == C_Fleets)) {
4010 |         var A_BuildNumber = new Array();
4011 |         A_BuildNumber[0] = MetalBuildTotalNumber;
4012 |         A_BuildNumber[1] = CrystalBuildTotalNumber;
4013 |         A_BuildNumber[2] = DeuteriumBuildTotalNumber;
4014 |         A_BuildNumber.sort(SortNumber);
4015 |         var MaxBuildTotal = -1;
4016 |         for (j = 0; j < A_BuildNumber.length; j++) {
4017 |           if (MaxBuildTotal == -1) {
4018 |             if (A_BuildNumber[j] > -1) {
4019 |               MaxBuildTotal = A_BuildNumber[j];
4020 |             }
4021 |           }
4022 |         }
4023 |       }
4024 |       
4025 |       // Comparaison avec les ressources de la planete
4026 |       var MetalBuildPlanetNumber = -1;
4027 |       var CrystalBuildPlanetNumber = -1;
4028 |       var DeuteriumBuildPlanetNumber = -1;
4029 |       if (Metal) {
4030 |         if (Metal < MetalEvo) {
4031 |           VerifSup = false;
4032 |         }
4033 |         if (Crystal < CrystalEvo) {
4034 |           VerifSup = false;
4035 |         }
4036 |         if (Deuterium < DeuteriumEvo) {
4037 |           VerifSup = false;
4038 |         }
4039 |         if (Energy < EnergyEvo) {
4040 |           VerifSup = false;
4041 |         }
4042 |         if (VerifSup == true) {
4043 |           FontColor = ' color="#00FF00"';
4044 |           if ((Group == C_Defenses) || (Group == C_Fleets)) {
4045 |             if (MetalEvo > 0) {
4046 |               MetalBuildPlanetNumber = Math.floor(Metal/MetalEvo);
4047 |             }
4048 |             if (CrystalEvo > 0) {
4049 |               CrystalBuildPlanetNumber = Math.floor(Crystal/CrystalEvo);
4050 |             }
4051 |             if (DeuteriumEvo > 0) {
4052 |               DeuteriumBuildPlanetNumber = Math.floor(Deuterium/DeuteriumEvo);
4053 |             }
4054 |           }
4055 |         }
4056 |       }
4057 |       
4058 |       // Calcul du nombre de construction possible avec les ressources de la planete
4059 |       if ((Group == C_Defenses) || (Group == C_Fleets)) {
4060 |         var A_BuildNumber = new Array();
4061 |         A_BuildNumber[0] = MetalBuildPlanetNumber;
4062 |         A_BuildNumber[1] = CrystalBuildPlanetNumber;
4063 |         A_BuildNumber[2] = DeuteriumBuildPlanetNumber;
4064 |         A_BuildNumber.sort(SortNumber);
4065 |         var MaxBuildPlanet = -1;
4066 |         for (j = 0; j < A_BuildNumber.length; j++) {
4067 |           if (MaxBuildPlanet == -1) {
4068 |             if (A_BuildNumber[j] > -1) {
4069 |               MaxBuildPlanet = A_BuildNumber[j];
4070 |             }
4071 |           }
4072 |         }
4073 |       }
4074 |       
4075 |       // Recherche si un atiment est en cours de construction sur la planete
4076 |       if ((FontColor == ' color="#00FF00"') && (Group == C_Buildings)) {
4077 |         var UnderConstruction = false;
4078 |         for (j = 0; j < 18; j++) {
4079 |           if (A_Buildings[PlanetIndex][j].UC > 0) { UnderConstruction = true; }
4080 |         }
4081 |       }
4082 |       // Recherche si un developement est en cours de recherche sur toutes les planetes
4083 |       else if ((FontColor == ' color="#00FF00"') && (Group == C_Research)) {
4084 |         var UnderConstruction = false;
4085 |         for (j = 0; j < 16; j++) {
4086 |           if (A_Research[j].UC != '-') { UnderConstruction = true; }
4087 |         }
4088 |       }
4089 |       
4090 |       // Verification si la construction est possible
4091 |       var Launch = ValidateBuilding(Group, Element, PlanetIndex);
4092 |       
4093 |       // Calcul du temps avant la possibilite de construction
4094 |       var TimeBeforeBuilding = '';
4095 |       if (((FontColor == ' color="#FF9900"') || (FontColor == ' color="#FF0000"')) && (Launch.length == 0)) {
4096 |         if (A_Planet[PlanetIndex].Type == C_Planet) {
4097 |           var A_MaxTime = new Array();
4098 |           A_MaxTime[0] = Math.round((MetalEvo-Metal)/(A_Production[PlanetIndex].Metal/3600)*1000);
4099 |           A_MaxTime[1] = Math.round((CrystalEvo-Crystal)/(A_Production[PlanetIndex].Crystal/3600)*1000);
4100 |           A_MaxTime[2] = Math.round((DeuteriumEvo-Deuterium)/(A_Production[PlanetIndex].Deuterium/3600)*1000);
4101 |           A_MaxTime.sort(SortNumber);
4102 |           TimeBeforeBuilding += '<tr><td class="c" colspan="2">'+A_Language[C_ConstructionAvailable]+' :</td></tr>\n'+
4103 |           '<tr><th colspan="2">'+A_Language[C_WithPlanetResources]+' : '+FormatTime(A_MaxTime[2])+'</th></tr>';
4104 |         }
4105 |         else if (FontColor == ' color="#FF0000"') {
4106 |           TimeBeforeBuilding += '<tr><td class="c" colspan="2">'+A_Language[C_ConstructionAvailable]+' :</td></tr>\n';
4107 |         }
4108 |         if (FontColor == ' color="#FF0000"') {
4109 |           var A_MaxTime = new Array();
4110 |           A_MaxTime[0] = Math.round((MetalEvo-MetalTotal)/(MetalProductionTotal/3600)*1000);
4111 |           A_MaxTime[1] = Math.round((CrystalEvo-CrystalTotal)/(CrystalProductionTotal/3600)*1000);
4112 |           A_MaxTime[2] = Math.round((DeuteriumEvo-DeuteriumTotal)/(DeuteriumProductionTotal/3600)*1000);
4113 |           A_MaxTime.sort(SortNumber);
4114 |           TimeBeforeBuilding += '<tr><th colspan="2">'+A_Language[C_WithAllPlanetsResources]+' : '+FormatTime(A_MaxTime[2])+'</th></tr>';
4115 |         }
4116 |       }
4117 |       
4118 |       
4119 |       // Ajout du lien pour la realisation du batiment ou de la recherche
4120 |       if (Launch.length > 0) {
4121 |         Launch = '<br></th></tr><tr><td class="c" colspan="2">'+A_Language[C_Require]+'</td></tr>\n'+
4122 |         '<tr><th colspan="2"><font color="#FF0000">'+Launch+'</font></th></tr>';
4123 |       }
4124 |       else {
4125 |         if ((UnderConstruction == true) && (!UnderConstructionValue) && (Group == C_Buildings)) {
4126 |           Launch = '<br></th></tr><tr><td class="c" colspan="2">'+A_Language[C_BuildingsTxt]+'</td></tr>\n'+
4127 |           '<tr><th colspan="2"><font color="#FF0000">'+A_Language[C_OtherBuildingsInConstruction]+'</font></th></tr>';
4128 |         }
4129 |         else if ((UnderConstruction == true) && (!UnderConstructionValue) && (Group == C_Research)) {
4130 |           Launch = '<br></th></tr><tr><td class="c" colspan="2">'+A_Language[C_ResearchTxt]+'</td></tr>\n'+
4131 |           '<tr><th colspan="2"><font color="#FF0000">'+A_Language[C_OtherResearchInDevelopment]+'</font></th></tr>';
4132 |         }
4133 |         else if (UnderConstructionValue > 0) {
4134 |           if (Group == C_Buildings) {
4135 |             Action = '';
4136 |             if (PlanetIndex != PlanetSelectedIndex) {
4137 |               Action = 'AddAction(\'GMsetValue(|OT_OgameEmpire|,true);window.location.replace(|'+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&listid=1&modus=remove&planet='+A_Planet[PlanetIndex].Id+'&cp='+A_Planet[PlanetIndex].Id+'&techid='+A_Construction[Group][Element].Id+'|)\');'+
4138 |               'window.location.replace(\''+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\');';
4139 |             }
4140 |             else {
4141 |               Action = 'GMsetValue(\'OT_OgameEmpire\',true);window.location.replace(\''+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&listid=1&modus=remove&planet='+A_Planet[PlanetIndex].Id+'&cp='+A_Planet[PlanetIndex].Id+'&techid='+A_Construction[Group][Element].Id+'\')';
4142 |             }
4143 |             Launch = '<br><br><a style="cursor:pointer" onclick="'+Action+'" >'+A_Language[C_StopBuildings]+'</a></th></tr>';
4144 |           }
4145 |           else if (Group == C_Research) {
4146 |             Action = '';
4147 |             if (PlanetIndex != PlanetSelectedIndex) {
4148 |               Action = 'AddAction(\'GMsetValue(|OT_OgameEmpire|,true);window.location.replace(|'+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetIndex].Id+'&unbau='+A_Construction[Group][Element].Id+'|)\');'+
4149 |               'window.location.replace(\''+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\')';
4150 |             }
4151 |             else {
4152 |               Action = 'GMsetValue(\'OT_OgameEmpire\',true);window.location.replace(\''+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetIndex].Id+'&unbau='+A_Construction[Group][Element].Id+'\')';
4153 |             }
4154 |             Launch = '<br><br><a style="cursor:pointer" onclick="'+Action+'" >'+A_Language[C_StopResearch]+'</a></th></tr>';
4155 |           }
4156 |         }
4157 |         else {
4158 |           if (FontColor == ' color="#00FF00"') {
4159 |             // Batiment
4160 |             if (Group == C_Buildings) {
4161 |               Action = '';
4162 |               if (PlanetIndex != PlanetSelectedIndex) {
4163 |                 Action = 'AddAction(\'GMsetValue(|OT_OgameEmpire|,true);window.location.replace(|'+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&modus=add&planet='+A_Planet[PlanetIndex].Id+'&cp='+A_Planet[PlanetIndex].Id+'&techid='+A_Construction[Group][Element].Id+'|)\');'+
4164 |                 'window.location.replace(\''+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\');';
4165 |               }
4166 |               else {
4167 |                 Action = 'GMsetValue(\'OT_OgameEmpire\',true);window.location.replace(\''+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&modus=add&planet='+A_Planet[PlanetIndex].Id+'&cp='+A_Planet[PlanetIndex].Id+'&techid='+A_Construction[Group][Element].Id+'\')';
4168 |               }
4169 |               Launch = '<br><br><a style="cursor:pointer" onclick="'+Action+'" >'+A_Language[C_LaunchBuildings]+'</a></th></tr>';
4170 |             }
4171 |             // Technologie
4172 |             else if (Group == C_Research) {
4173 |               Action = '';
4174 |               if (PlanetIndex != PlanetSelectedIndex) {
4175 |                 Action = 'AddAction(\'GMsetValue(|OT_OgameEmpire|,true);window.location.replace(|'+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetIndex].Id+'&bau='+A_Construction[Group][Element].Id+'|)\');'+
4176 |                 'window.location.replace(\''+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\')';
4177 |               }
4178 |               else {
4179 |                 Action = 'GMsetValue(\'OT_OgameEmpire\',true);window.location.replace(\''+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetIndex].Id+'&bau='+A_Construction[Group][Element].Id+'\')';
4180 |               }
4181 |               Launch = '<br><br><a style="cursor:pointer" onclick="'+Action+'" >'+A_Language[C_LaunchResearch]+'</a></th></tr>';
4182 |             }
4183 |             // Defense
4184 |             else if (Group == C_Defenses) {
4185 |               Launch = '<br></th></tr><tr><td class="c" colspan="2">'+A_Language[C_WithPlanetResources]+'</td></tr>'+
4186 |               '<tr><th colspan="2"><input size="6" type="text" name="BuildNumberPlanet" '+NoStringInput+' value="0" onkeypress="RefreshCalc(\'BuildNumberPlanet\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')" />&nbsp;'+
4187 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="-1"':'')+' onclick="document.getElementsByName(\'BuildNumberPlanet\')[0].value=parseInt(document.getElementsByName(\'BuildNumberPlanet\')[0].value)-1;RefreshCalc(\'BuildNumberPlanet\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">\253</a>&nbsp;'+
4188 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="0"':'')+' onclick="document.getElementsByName(\'BuildNumberPlanet\')[0].value=0;RefreshCalc(\'BuildNumberPlanet\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">@</a>&nbsp;'+
4189 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="Max"':'')+' onclick="document.getElementsByName(\'BuildNumberPlanet\')[0].value='+MaxBuildPlanet+';RefreshCalc(\'BuildNumberPlanet\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">[max '+FormatNb(MaxBuildPlanet)+']</a>&nbsp;'+
4190 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="+1"':'')+' onclick="document.getElementsByName(\'BuildNumberPlanet\')[0].value=parseInt(document.getElementsByName(\'BuildNumberPlanet\')[0].value)+1;RefreshCalc(\'BuildNumberPlanet\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">\273</a>&nbsp;'+
4191 |               '</th></tr>\n';
4192 |               Action = '';
4193 |               if (PlanetIndex != PlanetSelectedIndex) {
4194 |                 Action = 'AddAction(\'GMsetValue(|OT_OgameEmpire|,true);window.location.replace(|'+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetIndex].Id+'&fmenge['+A_Construction[Group][Element].Id+']=\'+document.getElementsByName(\'BuildNumberPlanet\')[0].value+\'|)\');'+
4195 |                 'window.location.replace(\''+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\')';
4196 |               }
4197 |               else {
4198 |                 Action = 'GMsetValue(\'OT_OgameEmpire\',true);window.location.replace(\''+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetIndex].Id+'&fmenge['+A_Construction[Group][Element].Id+']=\'+document.getElementsByName(\'BuildNumberPlanet\')[0].value)';
4199 |               }
4200 |               Launch += '<tr><th colspan="2"><a style="cursor:pointer" onclick="'+Action+'" >'+A_Language[C_BuildDefenses]+'</a>\n<br></th></tr>'+
4201 |               '<tr><td class="c" colspan="2">'+A_Language[C_WithAllPlanetsResources]+'</td></tr>'+
4202 |               '<tr><th colspan="2"><input size="6" type="text" name="BuildNumberTotal" '+NoStringInput+' value="0" onkeypress="RefreshCalc(\'BuildNumberTotal\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')" />&nbsp;'+
4203 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="-1"':'')+' onclick="document.getElementsByName(\'BuildNumberTotal\')[0].value=parseInt(document.getElementsByName(\'BuildNumberTotal\')[0].value)-1;RefreshCalc(\'BuildNumberTotal\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">\253</a>&nbsp;'+
4204 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="0"':'')+' onclick="document.getElementsByName(\'BuildNumberTotal\')[0].value=0;RefreshCalc(\'BuildNumberTotal\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">@</a>&nbsp;'+
4205 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="Max"':'')+' onclick="document.getElementsByName(\'BuildNumberTotal\')[0].value='+MaxBuildTotal+';RefreshCalc(\'BuildNumberTotal\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">[max '+FormatNb(MaxBuildTotal)+']</a>&nbsp;'+
4206 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="+1"':'')+' onclick="document.getElementsByName(\'BuildNumberTotal\')[0].value=parseInt(document.getElementsByName(\'BuildNumberTotal\')[0].value)+1;RefreshCalc(\'BuildNumberTotal\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">\273</a>&nbsp;'+
4207 |               '</th></tr>\n';
4208 |               Action = 'SetTransferValue((document.getElementsByName(\'BuildNumberTotal\')[0].value*'+MetalEvo+'),(document.getElementsByName(\'BuildNumberTotal\')[0].value*'+CrystalEvo+'),(document.getElementsByName(\'BuildNumberTotal\')[0].value*'+DeuteriumEvo+'),'+PlanetIndex+');window.location.replace(\''+BaseUrl+'?page=flotten1&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\');';
4209 |               Launch += '<tr><th colspan="2"><a style="cursor:pointer" onclick="'+Action+'" >'+A_Language[C_TransferResources]+'</a>\n</th></tr>';
4210 |             }
4211 |             // Chantier spatial
4212 |             else if (Group == C_Fleets) {
4213 |               Launch = '<br></th></tr><tr><td class="c" colspan="2">'+A_Language[C_WithPlanetResources]+'</td></tr>'+
4214 |               '<tr><th colspan="2"><input size="6" type="text" name="BuildNumberPlanet" '+NoStringInput+' value="0" onkeypress="RefreshCalc(\'BuildNumberPlanet\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')" />&nbsp;'+
4215 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="-1"':'')+' onclick="document.getElementsByName(\'BuildNumberPlanet\')[0].value=parseInt(document.getElementsByName(\'BuildNumberPlanet\')[0].value)-1;RefreshCalc(\'BuildNumberPlanet\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">\253</a>&nbsp;'+
4216 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="0"':'')+' onclick="document.getElementsByName(\'BuildNumberPlanet\')[0].value=0;RefreshCalc(\'BuildNumberPlanet\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">@</a>&nbsp;'+
4217 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="Max"':'')+' onclick="document.getElementsByName(\'BuildNumberPlanet\')[0].value='+MaxBuildPlanet+';RefreshCalc(\'BuildNumberPlanet\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">[max '+FormatNb(MaxBuildPlanet)+']</a>&nbsp;'+
4218 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="+1"':'')+' onclick="document.getElementsByName(\'BuildNumberPlanet\')[0].value=parseInt(document.getElementsByName(\'BuildNumberPlanet\')[0].value)+1;RefreshCalc(\'BuildNumberPlanet\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">\273</a>&nbsp;'+
4219 |               '</th></tr>\n';
4220 |               Action = '';
4221 |               if (PlanetIndex != PlanetSelectedIndex) {
4222 |                 Action = 'AddAction(\'GMsetValue(|OT_OgameEmpire|,true);window.location.replace(|'+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetIndex].Id+'&fmenge['+A_Construction[Group][Element].Id+']=\'+document.getElementsByName(\'BuildNumberPlanet\')[0].value+\'|)\');'+
4223 |                 'window.location.replace(\''+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\')';
4224 |               }
4225 |               else {
4226 |                 Action = 'GMsetValue(\'OT_OgameEmpire\',true);window.location.replace(\''+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetIndex].Id+'&fmenge['+A_Construction[Group][Element].Id+']=\'+document.getElementsByName(\'BuildNumberPlanet\')[0].value)';
4227 |               }
4228 |               Launch += '<tr><th colspan="2"><a style="cursor:pointer" onclick="'+Action+'" >'+A_Language[C_BuildFleets]+'</a>\n<br></th></tr>'+
4229 |               '<tr><td class="c" colspan="2">'+A_Language[C_WithAllPlanetsResources]+'</td></tr>'+
4230 |               '<tr><th colspan="2"><input size="6" type="text" name="BuildNumberTotal" '+NoStringInput+' value="0" onkeypress="RefreshCalc(\'BuildNumberTotal\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')" />&nbsp;'+
4231 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="-1"':'')+' onclick="document.getElementsByName(\'BuildNumberTotal\')[0].value=parseInt(document.getElementsByName(\'BuildNumberTotal\')[0].value)-1;RefreshCalc(\'BuildNumberTotal\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">\253</a>&nbsp;'+
4232 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="0"':'')+' onclick="document.getElementsByName(\'BuildNumberTotal\')[0].value=0;RefreshCalc(\'BuildNumberTotal\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">@</a>&nbsp;'+
4233 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="Max"':'')+' onclick="document.getElementsByName(\'BuildNumberTotal\')[0].value='+MaxBuildTotal+';RefreshCalc(\'BuildNumberTotal\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">[max '+FormatNb(MaxBuildTotal)+']</a>&nbsp;'+
4234 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="+1"':'')+' onclick="document.getElementsByName(\'BuildNumberTotal\')[0].value=parseInt(document.getElementsByName(\'BuildNumberTotal\')[0].value)+1;RefreshCalc(\'BuildNumberTotal\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">\273</a>&nbsp;'+
4235 |               '</th></tr>\n';
4236 |               Action = 'SetTransferValue((document.getElementsByName(\'BuildNumberTotal\')[0].value*'+MetalEvo+'),(document.getElementsByName(\'BuildNumberTotal\')[0].value*'+CrystalEvo+'),(document.getElementsByName(\'BuildNumberTotal\')[0].value*'+DeuteriumEvo+'),'+PlanetIndex+');window.location.replace(\''+BaseUrl+'?page=flotten1&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\')';
4237 |               Launch += '<tr><th colspan="2"><a style="cursor:pointer" onclick="'+Action+'" >'+A_Language[C_TransferResources]+'</a>\n</th></tr>';
4238 |             }
4239 |           }
4240 |           // Ajout du lien vers la page flotte (preremplissage destination, ressources)
4241 |           else if (FontColor == ' color="#FF9900"') {
4242 |             if ((Group == C_Defenses) || (Group == C_Fleets)) {
4243 |               Launch = '<br></th></tr><tr><td class="c" colspan="2">'+A_Language[C_WithAllPlanetsResources]+'</td></tr>'+
4244 |               '<tr><th colspan="2"><input size="6" type="text" name="BuildNumberTotal" '+NoStringInput+' value="0" onkeypress="RefreshCalc(\'BuildNumberTotal\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')" />&nbsp;'+
4245 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="-1"':'')+' onclick="document.getElementsByName(\'BuildNumberTotal\')[0].value=parseInt(document.getElementsByName(\'BuildNumberTotal\')[0].value)-1;RefreshCalc(\'BuildNumberTotal\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">\253</a>&nbsp;'+
4246 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="0"':'')+' onclick="document.getElementsByName(\'BuildNumberTotal\')[0].value=0;RefreshCalc(\'BuildNumberTotal\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">@</a>&nbsp;'+
4247 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="Max"':'')+' onclick="document.getElementsByName(\'BuildNumberTotal\')[0].value='+MaxBuildTotal+';RefreshCalc(\'BuildNumberTotal\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">[max '+MaxBuildTotal+']</a>&nbsp;'+
4248 |               '<a style="cursor:pointer" '+((AddToolTip == true)?'title="+1"':'')+' onclick="document.getElementsByName(\'BuildNumberTotal\')[0].value=parseInt(document.getElementsByName(\'BuildNumberTotal\')[0].value)+1;RefreshCalc(\'BuildNumberTotal\','+Group+','+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+')">\273</a>&nbsp;'+
4249 |               '</th></tr>\n';
4250 |               Action = 'SetTransferValue((document.getElementsByName(\'BuildNumberTotal\')[0].value*'+MetalEvo+'),(document.getElementsByName(\'BuildNumberTotal\')[0].value*'+CrystalEvo+'),(document.getElementsByName(\'BuildNumberTotal\')[0].value*'+DeuteriumEvo+'),'+PlanetIndex+');window.location.replace(\''+BaseUrl+'?page=flotten1&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\')';
4251 |               Launch += '<tr><th colspan="2"><a style="cursor:pointer" onclick="'+Action+'" >'+A_Language[C_TransferResources]+'</a>\n</th></tr>';
4252 |             }
4253 |             else {
4254 |               Action = 'SetTransferValue('+MetalEvo+','+CrystalEvo+','+DeuteriumEvo+','+PlanetIndex+');window.location.replace(\''+BaseUrl+'?page=flotten1&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\')';
4255 |               Launch = '<br><br><a style="cursor:pointer" onclick="'+Action+'" >'+A_Language[C_TransferResources]+'</a><br></th></tr>';
4256 |             }
4257 |           }
4258 |         }
4259 |       }
4260 |       
4261 |       // Envoi du texte
4262 |       OverLibAction = '<table width=240>'+
4263 |       '<tr><td class=c colspan=2>'+A_Construction[Group][Element].Name+' ('+A_Planet[PlanetIndex].Name+')</td></tr>'+
4264 |       '<tr><th width=80><img src='+SkinUrl+'gebaeude/'+A_Construction[Group][Element].Id+'.gif alt='+A_Construction[Group][Element].Name+' width=75 height=75/></th>'+
4265 |       '<th align=left><table width=200><tr><td class=c>'+(((Group == C_Defenses) || (Group == C_Fleets)) ? (A_Language[C_TotalBuildingsCost]+' :') : (A_Language[C_LevelCost1]+' '+(parseInt(((Value == '-') ? 0 : Value))+1)+A_Language[C_LevelCost2]+' :'))+'</td></tr>'+
4266 |       '<tr><th align=left>'+ResCalc+CalcEnergy(Group,Element,PlanetIndex)+'</th></tr>';
4267 |       var MetalMissing = ((MetalEvo-Metal > 0)?(MetalEvo-Metal):0);
4268 |       var CrystalMissing = ((CrystalEvo-Crystal > 0)?(CrystalEvo-Crystal):0);
4269 |       var DeuteriumMissing = ((DeuteriumEvo-Deuterium > 0)?(DeuteriumEvo-Deuterium):0);
4270 |       OverLibAction += ((MetalMissing+CrystalMissing+DeuteriumMissing > 0 || Group == C_Defenses || Group == C_Fleets)?'<tr id=MissingResourcesTr '+((MetalMissing+CrystalMissing+DeuteriumMissing > 0)?'':'style=display:none')+'>'+
4271 |       '<th align=left id=MissingResources style=color:red>'+CalcMissingResources(MetalMissing,CrystalMissing,DeuteriumMissing)+'</th></tr>':'')+
4272 |       ((MetalMissing+CrystalMissing+DeuteriumMissing > 0 || Group == C_Defenses || Group == C_Fleets)?'<tr id=TransportShipTr '+((MetalMissing+CrystalMissing+DeuteriumMissing > 0)?'':'style=display:none')+'>'+
4273 |       '<th align=left id=TransportShip>'+CalcTransportShip(MetalMissing,CrystalMissing,DeuteriumMissing)+'</th></tr>':'')+
4274 |       '<tr><th align=left id=BuildingTime>'+A_Language[C_BuildingTime]+': '+CalcBuildingTime(Group,MetalEvo,CrystalEvo,PlanetIndex)+'</th></tr></table><br>';
4275 |       Action = '';
4276 |       if (PlanetIndex != PlanetSelectedIndex) {
4277 |         Action = 'AddAction(\'window.location.replace(|'+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetIndex].Id+'|)\');'+
4278 |         'window.location.replace(\''+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetSelectedIndex].Id+'\')';
4279 |       }
4280 |       else {
4281 |         Action = 'window.location.replace(\''+BaseUrl+'?'+A_OverLib[Group].Link+'&session='+Session+'&cp='+A_Planet[PlanetIndex].Id+'\')';
4282 |       }
4283 |       OverLibAction += '<a style="cursor:pointer" onclick="'+Action+'">'+A_OverLib[Group].Text+'</a>'+
4284 |       Launch+((!UnderConstructionValue) ? TimeBeforeBuilding : '')+
4285 |       '</table>';
4286 |       
4287 |     }
4288 |     else {
4289 |       
4290 |       // Envoi du texte
4291 |       OverLibAction = '<table width=240>'+
4292 |       '<tr><td class=c colspan=2>'+A_Construction[Group][Element].Name+'</td></tr>'+
4293 |       '<tr><th width=80><img src='+SkinUrl+'gebaeude/'+A_Construction[Group][Element].Id+'.gif alt='+A_Construction[Group][Element].Name+' width=75 height=75/></th>'+
4294 |       '<th align=left><table width=200><tr><td class=c>'+(((Group == C_Defenses) || (Group == C_Fleets)) ? (A_Language[C_TotalBuildingsCost]+' :') : (A_Language[C_LevelCost1]+' '+(parseInt(((Value == '-') ? 0 : Value))+1)+' :'))+A_Language[C_LevelCost2]+'</td></tr>'+
4295 |       '<tr><th align=left>'+ResCalc+'</th></tr></table><br></table>';
4296 |       
4297 |     }
4298 |     
4299 |     return OverLibAction;
4300 |   }
4301 |   catch(err) {
4302 |     ShowError(err, 'OverLibFunction('+Value+', '+Group+', '+Element+', '+PlanetIndex+', '+UnderConstructionValue+')');
4303 |   }
4304 | }
4305 | unsafeWindow.OverLibFunction = OverLibFunction;
4306 |
4307 | function EmpireBlockShowHide(Id, TitleId, Title, Number) {
4308 |   try {
4309 |     var Display;
4310 |     if (document.getElementById(Id+'0')) {
4311 |       if (document.getElementById(Id+'0').style.display == 'none') {
4312 |         Display = '';
4313 |         document.getElementById(TitleId).innerHTML = Title+'&nbsp;&nbsp;&nbsp;<img src="'+C_ImgUp+'" alt="'+A_Language[C_RollUp]+'" '+((AddToolTip == true)?'title="'+A_Language[C_RollUp]+'"':'')+'>';
4314 |       }
4315 |       else {
4316 |         Display = 'none';
4317 |         document.getElementById(TitleId).innerHTML = Title+'&nbsp;&nbsp;&nbsp;<img src="'+C_ImgDown+'" alt="'+A_Language[C_Unfold]+'" '+((AddToolTip == true)?'title="'+A_Language[C_Unfold]+'"':'')+'>';
4318 |       }
4319 |       for (i = 0; i < Number; i++) {
4320 |         if (document.getElementById(Id+i)) {
4321 |           document.getElementById(Id+i).style.display = Display;
4322 |         }
4323 |       }
4324 |     }
4325 |   }
4326 |   catch(err) {
4327 |     ShowError(err, 'EmpireBlockShowHide('+Id+', '+TitleId+', '+Title+', '+Number+')');
4328 |   }
4329 | }
4330 | unsafeWindow.EmpireBlockShowHide = EmpireBlockShowHide;
4331 |
4332 | function HeaderEmpire(Id, Title, Number, State) {
4333 |   try {
4334 |     if (State == 'none') {
4335 |       return '<tr><td class="c" align="center" colspan="'+(PlanetSelect.length+1)+'" style="cursor:pointer" onclick="EmpireBlockShowHide(\''+Id+'\',\''+Id+'Title\',\''+Title.replace("'","\'+String.fromCharCode(39)+\'")+'\','+Number+')"><span id="'+Id+'Title">'+Title+'&nbsp;&nbsp;&nbsp;<img src="'+C_ImgDown+'" alt="'+A_Language[C_Unfold]+'" '+((AddToolTip == true)?'title="'+A_Language[C_Unfold]+'"':'')+'></span></td><td style="background:none"></td></tr>\n';
4336 |     }
4337 |     else {
4338 |       return '<tr><td class="c" align="center" colspan="'+(PlanetSelect.length+1)+'" style="cursor:pointer" onclick="EmpireBlockShowHide(\''+Id+'\',\''+Id+'Title\',\''+Title.replace("'","\'+String.fromCharCode(39)+\'")+'\','+Number+')"><span id="'+Id+'Title">'+Title+'&nbsp;&nbsp;&nbsp;<img src="'+C_ImgUp+'" alt="'+A_Language[C_RollUp]+'" '+((AddToolTip == true)?'title="'+A_Language[C_RollUp]+'"':'')+'></span></td><td style="background:none"></td></tr>\n';
4339 |     }
4340 |   }
4341 |   catch(err) {
4342 |     ShowError(err, 'HeaderEmpire('+Id+', '+Title+', '+Number+', '+State+')');
4343 |   }
4344 | }
4345 |
4346 | function CellHTML(Text, AlignLeft) {
4347 |   return '<th '+((AlignLeft == true) ? 'style="text-align:left"' : '')+'>'+Text+'</th>\n';
4348 | }
4349 |
4350 | function RowBBCode(Text, LayoutInTable) {
4351 |   return (LayoutInTable==true?'[tr]':'')+Text+(LayoutInTable==true?'[/tr]':'');
4352 | }
4353 | unsafeWindow.RowBBCode = RowBBCode;
4354 |
4355 | function CellBBCode(Text, Color, LayoutInTable, End, ColSpan) {
4356 |   var Center = document.getElementById('CenteredTextInTable').checked;
4357 |   var Resize = document.getElementById('ResizeTextInTable').checked;
4358 |   var Colored = document.getElementById('TextColored').checked;
4359 |   Text = ((Colored==true)?'[color='+Color+']'+Text+'[/color]':Text);
4360 |   if (LayoutInTable==true) {
4361 |     Text = ((Resize==true)?'[size=11]'+Text+'[/size]':Text);
4362 |     Text = ((Center==true)?'[center]'+Text+'[/center]':Text);
4363 |     return '[td'+(ColSpan?' colspan='+ColSpan+'':'')+']'+Text+'[/td]';
4364 |   }
4365 |   else {
4366 |     return Text+(End==true?'':'&#160;&#160;&#160;');
4367 |   }
4368 | }
4369 | unsafeWindow.CellBBCode = CellBBCode;
4370 |
4371 | function ExportGenerator() {
4372 |   try {
4373 |     var Centred = document.getElementById('ExportCenter').checked;
4374 |     var LayoutInTable = document.getElementById('LayoutInTable').checked;
4375 |     var NoSpecialCharacter = document.getElementById('NoSpecialCharacter').checked;
4376 |     var A_ExportSection = new Array();
4377 |     for (i = 0; i < 8; i++) {
4378 |       A_ExportSection[i] = document.getElementById('ExportSection'+i).checked;
4379 |     }
4380 |     var Code, Color;
4381 |     // BBCode
4382 |     Code = (Centred==true?'[center]':'')+(LayoutInTable==true?'[table]':'');
4383 |     for (i = 0; i < 8; i++) {
4384 |       if (A_ExportSection[i] == true) {
4385 |         // Nom des planetes
4386 |         if (i == 0) {
4387 |           Code += (LayoutInTable==true?'[tr]':'')+CellBBCode(A_Language[C_Name],'#99ff00',LayoutInTable);
4388 |         }
4389 |         // Informations generales
4390 |         else if (i == 1) {
4391 |           A_PlanetTr[0] = CellBBCode(A_Language[C_Type],'#99ff00',LayoutInTable);
4392 |           A_PlanetTr[1] = CellBBCode(A_Language[C_Coordinates],'#99ff00',LayoutInTable);
4393 |           A_PlanetTr[2] = CellBBCode(A_Language[C_FieldNumber],'#99ff00',LayoutInTable);
4394 |           A_PlanetTr[3] = CellBBCode(A_Language[C_Diameter],'#99ff00',LayoutInTable);
4395 |           A_PlanetTr[4] = CellBBCode(A_Language[C_Temperature],'#99ff00',LayoutInTable);
4396 |         }
4397 |         // Production horaire
4398 |         else if (i == 2) {
4399 |           A_HourProductionTr[0] = CellBBCode(A_Construction[C_Buildings][0].Name,'#99ff00',LayoutInTable);
4400 |           A_HourProductionTr[1] = CellBBCode(A_Construction[C_Buildings][1].Name,'#99ff00',LayoutInTable);
4401 |           A_HourProductionTr[2] = CellBBCode(A_Construction[C_Buildings][2].Name,'#99ff00',LayoutInTable);
4402 |         }
4403 |         // Production journaliere
4404 |         else if (i == 3) {
4405 |           A_DayProductionTr[0] = CellBBCode(A_Construction[C_Buildings][0].Name,'#99ff00',LayoutInTable);
4406 |           A_DayProductionTr[1] = CellBBCode(A_Construction[C_Buildings][1].Name,'#99ff00',LayoutInTable);
4407 |           A_DayProductionTr[2] = CellBBCode(A_Construction[C_Buildings][2].Name,'#99ff00',LayoutInTable);
4408 |         }
4409 |         // Batiment
4410 |         else if (i == 4) {
4411 |           for (j = 0; j < 18; j++) {
4412 |             if (A_Construction[C_Buildings][j].Name) {
4413 |               A_BuildingsTr[j] = CellBBCode(A_Construction[C_Buildings][j].Name,'#99ff00',LayoutInTable);
4414 |             }
4415 |           }
4416 |         }
4417 |         // Technologie
4418 |         else if (i == 5) {
4419 |           for (j = 0; j < 16; j++) {
4420 |             A_ResearchTr[j] = CellBBCode(A_Construction[C_Research][j].Name,'#99ff00',LayoutInTable)+
4421 |             CellBBCode(A_Research[j].Level,'#0099ff',LayoutInTable);
4422 |             CellBBCode('','#99ff00',LayoutInTable,true,PlanetSelect.length);
4423 |           }
4424 |         }
4425 |         // Defenses
4426 |         else if (i == 6) {
4427 |           for (j = 0; j < 10; j++) {
4428 |             A_DefensesTr[j] = CellBBCode(A_Construction[C_Defenses][j].Name,'#99ff00',LayoutInTable);
4429 |           }
4430 |         }
4431 |         // Flotte
4432 |         else if (i == 7) {
4433 |           for (j = 0; j < 14; j++) {
4434 |             A_FleetsTr[j] = CellBBCode(A_Construction[C_Fleets][j].Name,'#99ff00',LayoutInTable);
4435 |           }
4436 |         }
4437 |         for (j = 0; j < PlanetSelect.length; j++) {
4438 |           Color = ((j&1 == 1)?'#ff9900':'#0099ff');
4439 |           if (i == 0) {
4440 |             Code += CellBBCode(A_Planet[j].Name,Color,LayoutInTable,((j+1==PlanetSelect.length)?true:false));
4441 |           }
4442 |           else if (i == 1) {
4443 |             A_PlanetTr[0] += CellBBCode(((A_Planet[j].Type == C_Planet)?A_Language[C_Planet]:A_Language[C_Moon]),Color,LayoutInTable,((j+1==PlanetSelect.length)?true:false));
4444 |             A_PlanetTr[1] += CellBBCode('['+A_Planet[j].Galaxy+':'+A_Planet[j].System+':'+A_Planet[j].Planet+']',Color,LayoutInTable,((j+1==PlanetSelect.length)?true:false));
4445 |             A_PlanetTr[2] += CellBBCode(A_Planet[j].UsedSpace+'/'+A_Planet[j].TotalSpace,Color,LayoutInTable,((j+1==PlanetSelect.length)?true:false));
4446 |             A_PlanetTr[3] += CellBBCode(FormatNb(A_Planet[j].Diameter)+' km',Color,LayoutInTable,((j+1==PlanetSelect.length)?true:false));
4447 |             A_PlanetTr[4] += CellBBCode(A_Planet[j].MinTemperature+'&#160;'+A_Language[C_To]+'&#160;'+A_Planet[j].MaxTemperature+'&#160;\260C',Color,LayoutInTable,((j+1==PlanetSelect.length)?true:false));
4448 |           }
4449 |           else if (i == 2) {
4450 |             A_HourProductionTr[0] += CellBBCode(FormatNb(A_Production[j].Metal),Color,LayoutInTable);
4451 |             A_HourProductionTr[1] += CellBBCode(FormatNb(A_Production[j].Crystal),Color,LayoutInTable);
4452 |             A_HourProductionTr[2] += CellBBCode(FormatNb(A_Production[j].Deuterium),Color,LayoutInTable);
4453 |           }
4454 |           else if (i == 3) {
4455 |             A_DayProductionTr[0] += CellBBCode(FormatNb(A_Production[j].Metal*24),Color,LayoutInTable);
4456 |             A_DayProductionTr[1] += CellBBCode(FormatNb(A_Production[j].Crystal*24),Color,LayoutInTable);
4457 |             A_DayProductionTr[2] += CellBBCode(FormatNb(A_Production[j].Deuterium*24),Color,LayoutInTable);
4458 |           }
4459 |           else if (i == 4) {
4460 |             for (k = 0; k < 18; k++) {
4461 |               if (A_Construction[C_Buildings][k].Name) {
4462 |                 A_BuildingsTr[k] += CellBBCode(A_Buildings[j][k].Level,Color,LayoutInTable,((j+1==PlanetSelect.length)?true:false));
4463 |               }
4464 |             }
4465 |           }
4466 |           else if (i == 6) {
4467 |             for (k = 0; k < 10; k++) {
4468 |               A_DefensesTr[k] += CellBBCode(FormatNb(A_Defenses[j][k]),Color,LayoutInTable);
4469 |             }
4470 |           }
4471 |           else if (i == 7) {
4472 |             for (k = 0; k < 14; k++) {
4473 |               A_FleetsTr[k] += CellBBCode(FormatNb(A_Fleets[j][k]),Color,LayoutInTable);
4474 |             }
4475 |           }
4476 |         }
4477 |         if (i == 0) {
4478 |           Code += (LayoutInTable==true?'[td][/td][/tr]':'')+C_CRLF;
4479 |         }
4480 |         else if (i == 1) {
4481 |           Code += RowBBCode(CellBBCode('----------'+A_Language[C_MainInformations]+'----------','#99ff00',LayoutInTable,true,PlanetSelect.length+2),LayoutInTable)+C_CRLF+
4482 |           RowBBCode(A_PlanetTr[0],LayoutInTable)+C_CRLF+RowBBCode(A_PlanetTr[1],LayoutInTable)+C_CRLF+RowBBCode(A_PlanetTr[2],LayoutInTable)+
4483 |           C_CRLF+RowBBCode(A_PlanetTr[3],LayoutInTable)+C_CRLF+RowBBCode(A_PlanetTr[4],LayoutInTable)+C_CRLF;
4484 |         }
4485 |         else if (i == 2) {
4486 |           Code += RowBBCode(CellBBCode('----------'+A_Language[C_HourProduction]+'----------','#99ff00',LayoutInTable,true,PlanetSelect.length+2),LayoutInTable)+C_CRLF+
4487 |           RowBBCode(A_HourProductionTr[0]+CellBBCode(FormatNb(MetalProductionTotal),'#99ff00',LayoutInTable),LayoutInTable,true)+C_CRLF+
4488 |           RowBBCode(A_HourProductionTr[1]+CellBBCode(FormatNb(CrystalProductionTotal),'#99ff00',LayoutInTable),LayoutInTable,true)+C_CRLF+
4489 |           RowBBCode(A_HourProductionTr[2]+CellBBCode(FormatNb(DeuteriumProductionTotal),'#99ff00',LayoutInTable),LayoutInTable,true)+C_CRLF;
4490 |         }
4491 |         else if (i == 3) {
4492 |           Code += RowBBCode(CellBBCode('----------'+A_Language[C_DayProduction]+'----------','#99ff00',LayoutInTable,true,PlanetSelect.length+2),LayoutInTable)+C_CRLF+
4493 |           RowBBCode(A_DayProductionTr[0]+CellBBCode(FormatNb(MetalProductionTotal*24),'#99ff00',LayoutInTable),LayoutInTable,true)+C_CRLF+
4494 |           RowBBCode(A_DayProductionTr[1]+CellBBCode(FormatNb(CrystalProductionTotal*24),'#99ff00',LayoutInTable),LayoutInTable,true)+C_CRLF+
4495 |           RowBBCode(A_DayProductionTr[2]+CellBBCode(FormatNb(DeuteriumProductionTotal*24),'#99ff00',LayoutInTable),LayoutInTable,true)+C_CRLF;
4496 |         }
4497 |         else if (i == 4) {
4498 |           Code += RowBBCode(CellBBCode('----------'+A_Language[C_BuildingsTxt]+'----------','#99ff00',LayoutInTable,true,PlanetSelect.length+2),LayoutInTable,true)+C_CRLF;
4499 |           for (j = 0; j < 18; j++) {
4500 |             if (A_Construction[C_Buildings][j].Name) {
4501 |               Code += RowBBCode(A_BuildingsTr[j],LayoutInTable)+C_CRLF;
4502 |             }
4503 |           }
4504 |         }
4505 |         else if (i == 5) {
4506 |           Code += RowBBCode(CellBBCode('----------'+A_Language[C_ResearchTxt]+'&#160;('+ResearchTotal+'&#160;'+A_Language[C_Points]+')----------','#99ff00',LayoutInTable,true,PlanetSelect.length+2),LayoutInTable)+C_CRLF;
4507 |           for (j = 0; j < 16; j++) {
4508 |             Code += RowBBCode(A_ResearchTr[j],LayoutInTable)+C_CRLF;
4509 |           }  
4510 |         }
4511 |         else if (i == 6) {
4512 |           Code += RowBBCode(CellBBCode('----------'+A_Language[C_DefensesTxt]+'----------','#99ff00',LayoutInTable,true,PlanetSelect.length+2),LayoutInTable)+C_CRLF;
4513 |           for (j = 0; j < 10; j++) {
4514 |             Code += RowBBCode(A_DefensesTr[j]+CellBBCode(FormatNb(A_DefensesTotal[j]),'#99ff00',LayoutInTable),LayoutInTable,true)+C_CRLF;
4515 |           }
4516 |         }
4517 |         else if (i == 7) {
4518 |           Code += RowBBCode(CellBBCode('----------'+A_Language[C_FleetsTxt]+'&#160;('+FormatNb(FleetsTotal)+')----------','#99ff00',LayoutInTable,PlanetSelect.length+2),LayoutInTable)+C_CRLF;
4519 |           for (j = 0; j < 14; j++) {
4520 |             Code += RowBBCode(A_FleetsTr[j]+CellBBCode(FormatNb(A_FleetsTotal[j]),'#99ff00',LayoutInTable,true),LayoutInTable)+C_CRLF;
4521 |           }
4522 |         }
4523 |       }
4524 |     }
4525 |     Code += (LayoutInTable==true?'[/table]':'')+C_CRLF+'Generated by [url=http://userscripts.org/scripts/show/23500]'+C_ScriptName+'[/url]'+(Centred==true?'[/center]':'');
4526 |     if (NoSpecialCharacter == true) Code = Code.replace(/\&([a-zA-Z0-9\#]+)\;/g, ' ');
4527 |     document.getElementsByName('ExportArea')[0].value = Code;
4528 |     document.getElementById('CharacterNumber').innerHTML = ' ('+Code.length+' '+A_Language[C_Characters]+')';
4529 |     SetClipboard(Code);
4530 |   }
4531 |   catch(err) {
4532 |     ShowError(err, 'ExportGenerator()');
4533 |   }
4534 | }
4535 | unsafeWindow.ExportGenerator = ExportGenerator;
4536 |
4537 | function Export() {
4538 |   try {
4539 |     var OverLibAction = '<table width=600>'+
4540 |       '<tr><td class=c colspan=2>'+A_Language[C_Export]+'</td></tr>'+
4541 |       '<tr><th colspan="2">'+A_Language[C_GeneratorOptions]+'</th></tr>'+
4542 |       '<tr><th colspan="2">'+
4543 |       '<input type="checkbox" id="ExportCenter" ckecked="CHECKED"><label for="ExportCenter">'+A_Language[C_Center]+'</label>'+
4544 |       '<input type="checkbox" id="TextColored" ckecked="CHECKED"><label for="TextColored">'+A_Language[C_TextColored]+'</label>'+
4545 |       '<input type="checkbox" id="NoSpecialCharacter" ckecked="CHECKED"><label for="NoSpecialCharacter">'+A_Language[C_NoSpecialCharacter]+'</label><br>'+
4546 |       '<input type="checkbox" id="LayoutInTable" ckecked="CHECKED"><label for="LayoutInTable">'+A_Language[C_LayoutInTable]+'</label>'+
4547 |       '<input type="checkbox" id="CenteredTextInTable" ckecked="CHECKED"><label for="CenteredTextInTable">'+A_Language[C_CenteredTextInTable]+'</label>'+
4548 |       '<input type="checkbox" id="ResizeTextInTable" ckecked="CHECKED"><label for="ResizeTextInTable">'+A_Language[C_ResizeTextInTable]+'</label>'+
4549 |       '</th></tr>'+
4550 |       '<tr><th colspan="2">'+
4551 |       '<input type="checkbox" id="ExportSection0"><label for="ExportSection0">'+A_Language[C_Name]+'</label>'+
4552 |       '<input type="checkbox" id="ExportSection1"><label for="ExportSection1">'+A_Language[C_MainInformations]+'</label>'+
4553 |       '<input type="checkbox" id="ExportSection2"><label for="ExportSection2">'+A_Language[C_HourProduction]+'</label><br>'+
4554 |       '<input type="checkbox" id="ExportSection3"><label for="ExportSection3">'+A_Language[C_DayProduction]+'</label>'+
4555 |       '<input type="checkbox" id="ExportSection4"><label for="ExportSection4">'+A_Language[C_BuildingsTxt]+'</label>'+
4556 |       '<input type="checkbox" id="ExportSection5"><label for="ExportSection5">'+A_Language[C_ResearchTxt]+'</label>'+
4557 |       '<input type="checkbox" id="ExportSection6"><label for="ExportSection6">'+A_Language[C_DefensesTxt]+'</label>'+
4558 |       '<input type="checkbox" id="ExportSection7"><label for="ExportSection7">'+A_Language[C_FleetsTxt]+'</label>'+
4559 |       '</th></tr>'+
4560 |       '<tr><th colspan="2"><input type="button" name="ExportGenerator" value="'+A_Language[C_Generate]+'" onclick="ExportGenerator()"><span id="CharacterNumber"></span></th></tr>'+
4561 |       '<tr><th colspan="2"><textarea name="ExportArea" rows="20" cols="200"></textarea></th></tr>'+
4562 |       '<tr><th colspan="2" id="cell"></th></tr>'+
4563 |       '</table>';
4564 |     return OverLibAction;
4565 |   }
4566 |   catch(err) {
4567 |     ShowError(err, 'Export()');
4568 |   }
4569 | }
4570 | unsafeWindow.Export = Export;
4571 |
4572 |
4573 |
4574 |
4575 |
4576 | // Detection de la page recherche remplacement
4577 | if (OgameEmpire == true) {
4578 |   try {
4579 |     // Reinitialisation de la page
4580 |     GM_setValue('OT_OgameEmpire',false);
4581 |     OgameEmpire = false;
4582 |     
4583 |     // Ajout du lien vers la page empire au menu de selection des planetes
4584 |     for (i = 0; i < PlanetSelect.length; i++) {
4585 |       PlanetSelect[i].value = 'javascript:GMsetValue(\'OT_OgameEmpire\',true);window.location.replace(\''+A_Planet[i].Url+'\');';
4586 |     }
4587 |     
4588 |     // Generation du panneau empire
4589 |     var GTime = new Date();
4590 |     var CurrentTime = GTime.getTime();
4591 |     var Empire = '<table width="519" id="empire"><tr><td style="background:none"></td>';
4592 |     for (i = 0; i < PlanetSelect.length; i++) {
4593 |       //alert(A_Planet[i].Name+' : '+A_Planet[i].ImageUrl)
4594 |       Empire += '<th align="center"><img src="'+A_Planet[i].ImageUrl+'" '+((AddToolTip == true)?'title="'+A_Planet[i].Name+'"':'')+' alt="'+A_Language[C_ImageNotSaved]+'" width="'+EmpireIconSize+'" height="'+EmpireIconSize+'"/><br /><b>'+A_Planet[i].Name+'</b></th>';
4595 |     }
4596 |     Empire += '<td style="background:none"></td></tr>\n';
4597 |     var A_PlanetTr = new Array();
4598 |     var A_PourcentTr = new Array();
4599 |     var A_HourProductionTr = new Array();
4600 |     var A_DayProductionTr = new Array();
4601 |     var A_BuildingsTr = new Array();
4602 |     var A_ResearchTr = new Array();
4603 |     var A_FleetsTr = new Array();
4604 |     var A_DefensesTr = new Array();
4605 |     var A_FleetsDefensesUCTr = new Array();
4606 |     var A_FleetsTotal = new Array();
4607 |     var A_DefensesTotal = new Array();
4608 |     for (i = 0; i < PlanetSelect.length; i++) {
4609 |       if (i == 0) {
4610 |         // Infos generales
4611 |         A_PlanetTr[0] = '<tr id="PlanetInformations0">'+CellHTML(A_Language[C_Type], true);
4612 |         A_PlanetTr[1] = '<tr id="PlanetInformations1">'+CellHTML(A_Language[C_Coordinates], true);
4613 |         A_PlanetTr[2] = '<tr id="PlanetInformations2">'+CellHTML(A_Language[C_FieldNumber], true);
4614 |         A_PlanetTr[3] = '<tr id="PlanetInformations3">'+CellHTML(A_Language[C_Diameter], true);
4615 |         A_PlanetTr[4] = '<tr id="PlanetInformations4">'+CellHTML(A_Language[C_Temperature], true);
4616 |         A_PlanetTr[5] = '<tr id="PlanetInformations5">'+CellHTML(A_Language[C_Update], true);
4617 |         // Ressources
4618 |         A_PourcentTr[0] = '<tr id="Pourcent0">'+CellHTML(A_Language[C_ProductionRate].replace(/\:/g,''), true);
4619 |         for (j = 0; j < 5; j++) {
4620 |           A_PourcentTr[j+1] = '<tr id="Pourcent'+(j+1)+'">'+CellHTML(A_Construction[C_Buildings][j].Name, true);
4621 |         }
4622 |         A_PourcentTr[6] = '<tr id="Pourcent6">'+CellHTML(A_Construction[C_Fleets][10].Name, true);
4623 |         A_PourcentTr[7] = '<tr id="Pourcent7">'+CellHTML(A_Language[C_Update], true);
4624 |         A_PourcentTr[8] = '<tr id="Pourcent8"><td style="background:none;"></td>\n';
4625 |         // Production
4626 |         for (j = 0; j < 3; j++) {
4627 |           A_HourProductionTr[j] = '<tr id="HourProduction'+j+'">'+CellHTML(A_Construction[C_Buildings][j].Name, true);
4628 |           A_DayProductionTr[j] = '<tr id="DayProduction'+j+'">'+CellHTML(A_Construction[C_Buildings][j].Name, true);
4629 |         }
4630 |         var MetalProductionTotal = 0;
4631 |         var CrystalProductionTotal = 0;
4632 |         var DeuteriumProductionTotal = 0;
4633 |         // Batiment
4634 |         for (j = 0; j < 18; j++) {
4635 |           if (A_Construction[C_Buildings][j].Name) {
4636 |             A_BuildingsTr[j] = '<tr id="Buildings'+j+'">'+CellHTML(A_Construction[C_Buildings][j].Name, true);
4637 |           }
4638 |         }
4639 |         A_BuildingsTr[18] = '<tr id="Buildings18">'+CellHTML(A_Language[C_Update], true);
4640 |         // Flotte
4641 |         for (j = 0; j < 14; j++) {
4642 |           A_FleetsTr[j] = '<tr id="Fleets'+j+'">'+CellHTML(A_Construction[C_Fleets][j].Name, true);
4643 |           A_FleetsTotal[j] = 0;
4644 |         }
4645 |         A_FleetsTr[14] = '<tr id="Fleets14">'+CellHTML(A_Language[C_Update], true);
4646 |         // Technologie
4647 |         var ResearchTotal = 0;
4648 |         for (j = 0; j < 16; j++) {
4649 | // nonenn
4650 |           A_ResearchTr[j] = '<tr id="Research'+j+'">'+CellHTML(A_Construction[C_Research][j].Name, true);
4651 | //  alert (" "+ A_Research[j].Level +" "); 
4652 |           ResearchTotal = ResearchTotal+((A_Research[j].Level != '-')?parseInt(A_Research[j].Level):0);
4653 |         }
4654 |         A_ResearchTr[16] = '<tr id="Research16">'+CellHTML(A_Language[C_Update], true);
4655 |         // Defense
4656 |         for (j = 0; j < 10; j++) {
4657 |           A_DefensesTr[j] = '<tr id="Defenses'+j+'">'+CellHTML(A_Construction[C_Defenses][j].Name, true);
4658 |           A_DefensesTotal[j] = 0;
4659 |         }
4660 |         A_DefensesTr[10] = '<tr id="Defenses10">'+CellHTML(A_Language[C_Update], true);
4661 |         // Vaisseaux et defenses en construction
4662 |         A_FleetsDefensesUCTr[0] = '<tr id="FleetsDefensesUC0">'+CellHTML(A_Language[C_List], true);
4663 |         A_FleetsDefensesUCTr[1] = '<tr id="FleetsDefensesUC1">'+CellHTML(A_Language[C_Update], true);
4664 |       }
4665 |       // Infos generales
4666 |       A_PlanetTr[0] += CellHTML(((A_Planet[i].Type == C_Planet)?A_Language[C_Planet]:A_Language[C_Moon]));
4667 |       A_PlanetTr[1] += CellHTML('['+A_Planet[i].Galaxy+':'+A_Planet[i].System+':'+A_Planet[i].Planet+']');
4668 |       A_PlanetTr[2] += CellHTML(A_Planet[i].UsedSpace+'&nbsp;/&nbsp;'+A_Planet[i].TotalSpace+' <font color="#FF9900">('+(A_Planet[i].TotalSpace-A_Planet[i].UsedSpace)+')</font>');
4669 |       A_PlanetTr[3] += CellHTML(FormatNb(A_Planet[i].Diameter)+' km');
4670 |       A_PlanetTr[4] += CellHTML(A_Planet[i].MinTemperature+'&nbsp;'+A_Language[C_To]+'&nbsp;'+A_Planet[i].MaxTemperature+'&nbsp;&deg;C');
4671 |       A_PlanetTr[5] += CellHTML(((A_Planet[i].Update != '') ? FormatTime(CurrentTime-A_Planet[i].Update) : '-'));
4672 |       // Ressources
4673 |       A_PourcentTr[0] += CellHTML(A_Pourcent[i].Rate);
4674 |       A_PourcentTr[1] += CellHTML(InsertSelect('last1_'+A_Planet[i].Id, A_Pourcent[i].Metal));
4675 |       A_PourcentTr[2] += CellHTML(InsertSelect('last2_'+A_Planet[i].Id, A_Pourcent[i].Crystal));
4676 |       A_PourcentTr[3] += CellHTML(InsertSelect('last3_'+A_Planet[i].Id, A_Pourcent[i].Deuterium));
4677 |       A_PourcentTr[4] += CellHTML(InsertSelect('last4_'+A_Planet[i].Id, A_Pourcent[i].Solar));
4678 |       A_PourcentTr[5] += CellHTML(InsertSelect('last12_'+A_Planet[i].Id, A_Pourcent[i].Fusion));
4679 |       A_PourcentTr[6] += CellHTML(InsertSelect('last212_'+A_Planet[i].Id, A_Pourcent[i].Ship212));
4680 |       A_PourcentTr[7] += CellHTML(((A_Pourcent[i].Update != '') ? FormatTime(CurrentTime-A_Pourcent[i].Update) : '-'));
4681 |       A_PourcentTr[8] += CellHTML('<input type="button" value="'+A_Language[C_Apply]+'" onclick="CreateResourcesLink('+A_Planet[i].Id+');" />');
4682 |       // Production
4683 |       A_HourProductionTr[0] += CellHTML(FormatNb(A_Production[i].Metal));
4684 |       A_HourProductionTr[1] += CellHTML(FormatNb(A_Production[i].Crystal));
4685 |       A_HourProductionTr[2] += CellHTML(FormatNb(A_Production[i].Deuterium));
4686 |       A_DayProductionTr[0] += CellHTML(FormatNb(A_Production[i].Metal*24));
4687 |       A_DayProductionTr[1] += CellHTML(FormatNb(A_Production[i].Crystal*24));
4688 |       A_DayProductionTr[2] += CellHTML(FormatNb(A_Production[i].Deuterium*24));
4689 |       MetalProductionTotal = MetalProductionTotal + parseInt(A_Production[i].Metal);
4690 |       CrystalProductionTotal = CrystalProductionTotal + parseInt(A_Production[i].Crystal);
4691 |       DeuteriumProductionTotal = DeuteriumProductionTotal + parseInt(A_Production[i].Deuterium);
4692 |       // Batiment
4693 |       for (j = 0; j < 18; j++) {
4694 |         if (A_Construction[C_Buildings][j].Name) {
4695 |           A_BuildingsTr[j] += CellHTML(AddOverLib(A_Buildings[i][j].Level, C_Buildings, j, i, A_Buildings[i][j].UC));
4696 |         }
4697 |       }
4698 |       A_BuildingsTr[18] += CellHTML(((A_BuildingsUpdate[i] != '') ? FormatTime(CurrentTime-A_BuildingsUpdate[i]) : '-'));
4699 |       // Flotte
4700 |       for (j = 0; j < 14; j++) {
4701 |         A_FleetsTr[j] += CellHTML(AddOverLib(A_Fleets[i][j], C_Fleets, j, i));
4702 |         A_FleetsTotal[j] = A_FleetsTotal[j] + parseInt(((A_Fleets[i][j]=='-')?'0':A_Fleets[i][j]));
4703 |       }
4704 |       A_FleetsTr[14] += CellHTML(((A_FleetsUpdate[i] != '') ? FormatTime(CurrentTime-A_FleetsUpdate[i]) : '-'));
4705 |       // Technologie
4706 |       for (j = 0; j < 16; j++) {
4707 |         A_ResearchTr[j] += CellHTML(AddOverLib(A_Research[j].Level, C_Research, j, i, A_Research[j].UC));
4708 |       }
4709 |       A_ResearchTr[16] += CellHTML(((ResearchUpdate != '') ? FormatTime(CurrentTime-ResearchUpdate) : '-'));
4710 |       // Defense
4711 |       for (j = 0; j < 10; j++) {
4712 |         A_DefensesTr[j] += CellHTML(AddOverLib(A_Defenses[i][j], C_Defenses, j, i));
4713 |         A_DefensesTotal[j] = A_DefensesTotal[j] + parseInt(((A_Defenses[i][j]=='-')?'0':A_Defenses[i][j]));
4714 |       }
4715 |       A_DefensesTr[10] += CellHTML(((A_DefensesUpdate[i] != '') ? FormatTime(CurrentTime-A_DefensesUpdate[i]) : '-'));
4716 |       // Vaisseaux et defenses en construction
4717 |       A_FleetsDefensesUCTr[0] += CellHTML(A_FleetsDefensesUC[i].List,true);
4718 |       A_FleetsDefensesUCTr[1] += CellHTML(((A_FleetsDefensesUC[i].Update != '') ? FormatTime(CurrentTime-A_FleetsDefensesUC[i].Update) : '-'));
4719 |     }
4720 |     //Infos generales
4721 |     Empire += HeaderEmpire('PlanetInformations',A_Language[C_MainInformations], 6, '');
4722 |     for (i = 0; i < 6; i++) {
4723 |       Empire += A_PlanetTr[i]+'<td style="background:none"></td></tr>\n';
4724 |     }
4725 |     //Ressources
4726 |     Empire += HeaderEmpire('Pourcent',A_Language[C_Resources], 9, '');
4727 |     for (i = 0; i < 9; i++) {
4728 |       Empire += A_PourcentTr[i]+'<td style="background:none"></td></tr>\n';
4729 |     }
4730 |     //Production
4731 |     Empire += HeaderEmpire('HourProduction',A_Language[C_HourProduction], 3, '')+
4732 |     A_HourProductionTr[0]+CellHTML(FormatNb(MetalProductionTotal), false, true)+'</tr>\n'+
4733 |     A_HourProductionTr[1]+CellHTML(FormatNb(CrystalProductionTotal), false, true)+'</tr>\n'+
4734 |     A_HourProductionTr[2]+CellHTML(FormatNb(DeuteriumProductionTotal), false, true)+'</tr>\n'+
4735 |     HeaderEmpire('DayProduction',A_Language[C_DayProduction], 3, '')+
4736 |     A_DayProductionTr[0]+CellHTML(FormatNb(MetalProductionTotal*24), false, true)+'</tr>\n'+
4737 |     A_DayProductionTr[1]+CellHTML(FormatNb(CrystalProductionTotal*24), false, true)+'</tr>\n'+
4738 |     A_DayProductionTr[2]+CellHTML(FormatNb(DeuteriumProductionTotal*24), false, true)+'</tr>\n'+
4739 |     //Batiment
4740 |     HeaderEmpire('Buildings',A_Language[C_BuildingsTxt], 19, '');
4741 |     for (i = 0; i < 18; i++) {
4742 |       if (A_Construction[C_Buildings][i].Name) {
4743 |         Empire += A_BuildingsTr[i]+'<td style="background:none"></td></tr>\n';
4744 |       }
4745 |     }
4746 |     Empire += A_BuildingsTr[18]+'<td style="background:none"></td></tr>\n';
4747 |     // Defense
4748 |     Empire += HeaderEmpire('Defenses',A_Language[C_DefensesTxt], 11, '');
4749 |     for (i = 0; i < 10; i++) {
4750 |       Empire += A_DefensesTr[i]+'<th align="center">'+AddOverLib(A_DefensesTotal[i], C_Defenses, i, PlanetSelect.length)+'</th></tr>\n';
4751 |     }
4752 |     Empire += A_DefensesTr[10]+'<td style="background:none"></td></tr>\n'+
4753 |     // Technologie
4754 |
4755 |   // nonenn
4756 |      HeaderEmpire('Research',A_Language[C_ResearchTxt]+' ('+ResearchTotal+')', 17, '');
4757 |      for (i = 0; i < 17; i++) {
4758 |          Empire += A_ResearchTr[i]+'<td style="background:none"></td></tr>\n';
4759 |      }
4760 |     // Flotte
4761 |     Empire += HeaderEmpire('Fleets',A_Language[C_FleetsTxt], 15, '');
4762 |     var FleetsTotal = 0
4763 |     for (i = 0; i < 14; i++) {
4764 |       Empire += A_FleetsTr[i]+'<th align="center">'+AddOverLib(A_FleetsTotal[i], C_Fleets, i, PlanetSelect.length)+'</th></tr>\n';
4765 |       FleetsTotal = FleetsTotal + parseInt(A_FleetsTotal[i]);
4766 |     }
4767 |     Empire += A_FleetsTr[14]+'<th align="center">('+FormatNb(FleetsTotal)+')</th></tr>\n'+
4768 |     // Vaisseaux et defenses en construction
4769 |     HeaderEmpire('FleetsDefensesUC',A_Language[C_FleetsDefensesUC], 2, '')+
4770 |     A_FleetsDefensesUCTr[0]+'<td style="background:none"></td></tr>\n'+
4771 |     A_FleetsDefensesUCTr[1]+'<td style="background:none"></td></tr>\n'+
4772 |     '</table>';
4773 |     Empire += '<table><tr><td class="c" style="cursor:pointer" onclick="overlib(Export(), STICKY, MOUSEOFF, 100, 750, CENTER, OFFSETX, -200, OFFSETY, -300);" onmouseover="overlib(Export(), STICKY, MOUSEOFF, DELAY, 750, CENTER, OFFSETX, -200, OFFSETY, -300);" onmouseout="return nd();">'+A_Language[C_Export]+'</td></tr></table>';
4774 |     ContentDiv.innerHTML = '<center>'+Empire+'</center>';
4775 |     GM_addStyle('th { text-align: center; vertical-align: middle; }');
4776 |   }
4777 |   catch(err) {
4778 |     ShowError(err, 'Create empire page');
4779 |   }
4780 | }
4781 |
4782 |  
4783 |    
4784 |
4785 |    
4786 | /* FONCTIONS NECESSAIRES AUX CALCULS DES TRANSFERTS
4787 |    -------------------------------------------------- */
4788 |
4789 | function RefreshTotal(Reset) {
4790 |   try {
4791 |     if (TransferState == false) {
4792 |       // Initialisation des variables
4793 |       var NbPlanetResources = 0, NbPlanetResourcesTemp = 0, PlanetType = '', DestinationIndex = -1;
4794 |       var A_PlanetUsed = new Array();
4795 |       
4796 |       var A_Metal = new Array();
4797 |       var A_Crystal = new Array();
4798 |       var A_Deuterium = new Array();
4799 |       
4800 |       var Mode = 0,  NbGT = 0, NbPT = 0, Permut = 0, TotalResources = 0;
4801 |       var MetalUsed = 0, CrystalUsed = 0, DeuteriumUsed = 0;
4802 |       var MetalRestMoy = 0, CrystalRestMoy = 0, DeuteriumRestMoy = 0;
4803 |       
4804 |       var A_ConsumptionGT = new Array();
4805 |       var A_ConsumptionPT = new Array();
4806 |       var A_ConsumptionRecycler = new Array();
4807 |       
4808 |       var A_FlightTime = new Array();
4809 |       var A_FlightRecyclerTime = new Array();
4810 |       var A_FlightPTTime = new Array();
4811 |       
4812 |       var A_AddRecycler = new Array();
4813 |       var A_Speed = new Array();
4814 |       
4815 |       // Chargement des donnees sur les planetes dans les tableaux precedement crees
4816 |       MetalTotal = 0;
4817 |       CrystalTotal = 0;
4818 |       DeuteriumTotal = 0;
4819 |       for (var i = 0; i < PlanetSelect.length; i++) {
4820 |         
4821 |         // Chargement des ressources
4822 |         if (A_Resources[i].Metal != undefined) {
4823 |           if ((RealTimeResources == true) && (UseRealTimeResources == true)) {
4824 |             A_Metal[i] = A_RealTimeResources[i].Metal;
4825 |             A_Crystal[i] = A_RealTimeResources[i].Crystal;
4826 |             A_Deuterium[i] = A_RealTimeResources[i].Deuterium;
4827 |             // Actualisation des ressources du tableau de transfert
4828 |             if (ForceResourcesTransferTableUpdate == true) {
4829 |               document.getElementById('MetalTransfer'+i).innerHTML = FormatNb(A_Metal[i]);
4830 |               document.getElementById('CrystalTransfer'+i).innerHTML = FormatNb(A_Crystal[i]);
4831 |               document.getElementById('DeuteriumTransfer'+i).innerHTML = FormatNb(A_Deuterium[i]);
4832 |             }
4833 |           }
4834 |           else {
4835 |             A_Metal[i] = A_Resources[i].Metal;
4836 |             A_Crystal[i] = A_Resources[i].Crystal;
4837 |             A_Deuterium[i] = A_Resources[i].Deuterium;
4838 |           }
4839 |           // Calcul du total des ressources
4840 |           if (document.getElementsByName('PlanetUsed'+i)[0].checked == true) {
4841 |             MetalTotal = (MetalTotal+parseInt(A_Metal[i]));
4842 |             CrystalTotal = (CrystalTotal+parseInt(A_Crystal[i]));
4843 |             DeuteriumTotal = (DeuteriumTotal+parseInt(A_Deuterium[i]));
4844 |             NbPlanetResources++;
4845 |           }
4846 |         }
4847 |         
4848 |         // Mise en memoire planete de destination
4849 |         if (document.getElementsByName('Destination')[i].checked == true) {
4850 |           TransferDestinationPlanet = A_Planet[i].Planet;
4851 |           TransferDestinationSystem = A_Planet[i].System;
4852 |           TransferDestinationGalaxy = A_Planet[i].Galaxy;
4853 |           PlanetType = A_Planet[i].Type;
4854 |           DestinationIndex = i;
4855 |           if ((document.getElementsByName('UseTotalResourcesDestinationPlanet')[0].checked == true) && (document.getElementsByName('PlanetUsed'+i)[0].checked == false)) {
4856 |             MetalTotal = (MetalTotal+parseInt(A_Metal[i]));
4857 |             CrystalTotal = (CrystalTotal+parseInt(A_Crystal[i]));
4858 |             DeuteriumTotal = (DeuteriumTotal+parseInt(A_Deuterium[i]));
4859 |             NbPlanetResources++;
4860 |           }
4861 |         }
4862 |       }
4863 |       
4864 |       // Verification Autre destination que les planetes du compte
4865 |       if (document.getElementsByName('Destination')[PlanetSelect.length].checked == true) {
4866 |         TransferDestinationPlanet = document.getElementsByName('DestinationPlanet')[0].value;
4867 |         TransferDestinationSystem = document.getElementsByName('DestinationSystem')[0].value;
4868 |         TransferDestinationGalaxy = document.getElementsByName('DestinationGalaxy')[0].value;
4869 |       }
4870 |       
4871 |       // Remise a zero notamment pour le changement de mode de calcul
4872 |       if (Reset == true) {
4873 |         for (var i = 0; i < PlanetSelect.length; i++) {
4874 |           document.getElementsByName('Metal'+i)[0].value = '0';
4875 |           document.getElementsByName('Crystal'+i)[0].value = '0';
4876 |           document.getElementsByName('Deuterium'+i)[0].value = '0';
4877 |         }
4878 |       }
4879 |       
4880 |       // Affichage du total des planetes cochees
4881 |       document.getElementsByName('MetalTotalInput')[0].value = FormatNb(MetalTotal);
4882 |       document.getElementsByName('CrystalTotalInput')[0].value = FormatNb(CrystalTotal);
4883 |       document.getElementsByName('DeuteriumTotalInput')[0].value = FormatNb(DeuteriumTotal);
4884 |       
4885 |       // Affichage des ressources restantes
4886 |       var MetalRest, CrystalRest, DeuteriumRest;
4887 |       
4888 |       var MetalNeeded = parseInt(document.getElementsByName('MetalNeededInput')[0].value);
4889 |       var CrystalNeeded = parseInt(document.getElementsByName('CrystalNeededInput')[0].value);
4890 |       var DeuteriumNeeded = parseInt(document.getElementsByName('DeuteriumNeededInput')[0].value);
4891 |       
4892 |       MetalRest = MetalTotal-MetalNeeded;
4893 |       document.getElementsByName('MetalRestInput')[0].value = FormatNb(MetalRest);
4894 |       if (String(MetalRest).charAt(0) == '-') { document.getElementsByName('MetalRestInput')[0].style.color = '#FF0000'; }
4895 |       else { document.getElementsByName('MetalRestInput')[0].style.color = document.getElementsByName('MetalTotalInput')[0].style.color; }
4896 |       
4897 |       CrystalRest = CrystalTotal-CrystalNeeded;
4898 |       document.getElementsByName('CrystalRestInput')[0].value = FormatNb(CrystalRest);
4899 |       if (String(CrystalRest).charAt(0) == '-') { document.getElementsByName('CrystalRestInput')[0].style.color = '#FF0000'; }
4900 |       else { document.getElementsByName('CrystalRestInput')[0].style.color = document.getElementsByName('CrystalTotalInput')[0].style.color; }
4901 |       
4902 |       DeuteriumRest = DeuteriumTotal-DeuteriumNeeded;
4903 |       document.getElementsByName('DeuteriumRestInput')[0].value = FormatNb(DeuteriumRest);
4904 |       if (String(DeuteriumRest).charAt(0) == '-') { document.getElementsByName('DeuteriumRestInput')[0].style.color = '#FF0000'; }
4905 |       else { document.getElementsByName('DeuteriumRestInput')[0].style.color = document.getElementsByName('DeuteriumTotalInput')[0].style.color; }
4906 |       
4907 |       // Mise en variable des ressources necessaire au projet
4908 |       if ((document.getElementsByName('UseTotalResourcesDestinationPlanet')[0].checked == true) && (DestinationIndex >= 0)) {
4909 |         MetalNeeded = MetalNeeded-A_Metal[DestinationIndex];
4910 |         CrystalNeeded = CrystalNeeded-A_Crystal[DestinationIndex];
4911 |         DeuteriumNeeded = DeuteriumNeeded-A_Deuterium[DestinationIndex];
4912 |         if (MetalNeeded < 0) { MetalNeeded = 0; }
4913 |         if (CrystalNeeded < 0) { CrystalNeeded = 0; }
4914 |         if (DeuteriumNeeded < 0) { DeuteriumNeeded = 0; }
4915 |         NbPlanetResources--;
4916 |       }
4917 |       
4918 |       // On lance le calcul uniquement si des planetes ont ete selectionnees
4919 |       if (NbPlanetResources > 0) {
4920 |       
4921 |         // Creation des tableaux necessaires aux calculs sur les planetes selectionnees
4922 |         var A_MetalSelected = new Array(NbPlanetResources);
4923 |         var A_CrystalSelected = new Array(NbPlanetResources);
4924 |         var A_DeuteriumSelected = new Array(NbPlanetResources);
4925 |         for (var i = 0; i < NbPlanetResources; i++) {
4926 |           A_MetalSelected[i] = new Array(2);
4927 |           A_CrystalSelected[i] = new Array(2);
4928 |           A_DeuteriumSelected[i] = new Array(2);
4929 |         }
4930 |         
4931 |         // Chargement des tableaux necessaires aux calculs sur les planetes selectionnees
4932 |         for (var i = 0; i < PlanetSelect.length; i++) {
4933 |           if (document.getElementsByName('PlanetUsed'+i)[0].checked == true) {
4934 |             if (((document.getElementsByName('UseTotalResourcesDestinationPlanet')[0].checked == true) && (DestinationIndex == i)) == false) {
4935 |               A_MetalSelected[NbPlanetResourcesTemp][0] = parseInt(A_Metal[i]);
4936 |               A_MetalSelected[NbPlanetResourcesTemp][1] = i;
4937 |               A_CrystalSelected[NbPlanetResourcesTemp][0] = parseInt(A_Crystal[i]);
4938 |               A_CrystalSelected[NbPlanetResourcesTemp][1] = i;
4939 |               A_DeuteriumSelected[NbPlanetResourcesTemp][0] = parseInt(A_Deuterium[i]);
4940 |               A_DeuteriumSelected[NbPlanetResourcesTemp][1] = i;
4941 |               NbPlanetResourcesTemp++;
4942 |             }
4943 |           }
4944 |           // Mise a zero des planetes non-utilisees
4945 |           else {
4946 |             document.getElementsByName('Metal'+i)[0].value = 0;
4947 |             document.getElementsByName('Crystal'+i)[0].value = 0;
4948 |             document.getElementsByName('Deuterium'+i)[0].value = 0;
4949 |           }
4950 |         }
4951 |         
4952 |         // Calcul par reste similaire ou calcul par utilisation des planetes ou il y a le plus de ressources
4953 |         if (document.getElementsByName('CalcMode')[0].checked == true) {
4954 |           
4955 |           // Tri bubble - ordre decroissant
4956 |           for (var i = 0; i < NbPlanetResources; i++) {
4957 |             for (var j = (i+1);j < NbPlanetResources; j++) {
4958 |               if (A_MetalSelected[i][0] < A_MetalSelected[j][0]) {
4959 |                 Permut = A_MetalSelected[i][0]; A_MetalSelected[i][0] = A_MetalSelected[j][0]; A_MetalSelected[j][0] = Permut;
4960 |                 Permut = A_MetalSelected[i][1]; A_MetalSelected[i][1] = A_MetalSelected[j][1]; A_MetalSelected[j][1] = Permut;
4961 |               }
4962 |               if (A_CrystalSelected[i][0] < A_CrystalSelected[j][0]) {
4963 |                 Pe