// ==UserScript==
// @name Ogame FR : Standard b_building.php (Buildings)
// @author Izcelion
// @description Ogame FR : Standard b_building.php (Buildings)
// @language FR
// @include http://*/game/b_building.php*
// @exclude http://*/game/allianzdepot.php*
// @exclude http://*/game/allianzen.php*
// @exclude http://*/game/bericht.php*
// @exclude http://*/game/bewerbungen.php*
// @exclude http://*/game/buddy.php*
// @exclude http://*/game/buildings.php*
// @exclude http://*/game/flotten1.php*
// @exclude http://*/game/flotten2.php*
// @exclude http://*/game/flottenversand.php*
// @exclude http://*/game/galaxy.php*
// @exclude http://*/game/imperium.php*
// @exclude http://*/game/infos.php*
// @exclude http://*/game/leftmenu.php*
// @exclude http://*/game/logout.php*
// @exclude http://*/game/messages.php*
// @exclude http://*/game/notizen.php*
// @exclude http://*/game/options.php*
// @exclude http://*/game/overview.php*
// @exclude http://*/game/raketenangriff.php*
// @exclude http://*/game/redir.php*
// @exclude http://*/game/renameplanet.php*
// @exclude http://*/game/resources.php*
// @exclude http://*/game/stat.php*
// @exclude http://*/game/suche.php*
// @exclude http://*/game/techtree.php*
// @exclude http://*/game/writemessages.php*
// ==/UserScript==
//==========================
// Calculate the expire time
//==========================
function CalcTime(TimeLeft){
v = new Date();
var time = v.getTime();
var ar_time = new Date(time+TimeLeft*1000);
var ard = ar_time.getDay()+'';
var armm = ar_time.getMonth()+'';
var arh = ar_time.getHours()+'';
var arm = ar_time.getMinutes()+'';
var ars = ar_time.getSeconds()+'';
var nw_time = new Date(time);
var nwd = nw_time.getDay()+'';
var nwmm = nw_time.getMonth()+'';
var datearrival,timearrival;
if (nwd==ard && nwmm==armm) {
datearrival = ''
} else {
datearrival = ard+"/"+armm+" ";
}
timearrival = arh+":"+((arm.length == 1)? "0"+arm:arm)+":"+((ars.length == 1)? "0"+ars:ars);
return datearrival+timearrival;
}
//===========================================
// Get Metal, Crystal, Deuterium in the Stock
//===========================================
function GetMCD(){
var tablenode = document.getElementsByTagName('table');
var i=0;
var Tab_Resources = new Array();
var Cpt_Tab_Res = 0;
var ResourcesNoFound = true;
while(i<tablenode.length && ResourcesNoFound){
//=================================
// Find <TABLE> in ressources title
//=================================
if (tablenode[i].getAttribute("border")=="0" && tablenode[i].getAttribute("cellpadding")=="0" && tablenode[i].getAttribute("cellspacing")=="0" && tablenode[i].getAttribute("width")=="100%"){
var trnode = tablenode[i].getElementsByTagName('tr');
var tdnode = trnode[1].getElementsByTagName('td');
var sentence2;
var t=0;
//======================
// Scan column <td></td>
//======================
while(t<tdnode.length){
sentence2 = tdnode[t].innerHTML;
sentence2 = sentence2.replace('<font color="#ff0000">','');
sentence2 = sentence2.replace("<font color='#ff0000'>","");
sentence2 = sentence2.replace('</font>','');
if(tdnode[t].getAttribute("align")=="center" && tdnode[t].getAttribute("width")=="85" && sentence2.indexOf("/",1)==-1){
Tab_Resources[Cpt_Tab_Res] = RemovePoint(sentence2);
Cpt_Tab_Res++;
}
t++;
}
if (Tab_Resources.length==3) ResourcesNoFound=false;
}
i++;
}
return Tab_Resources;
}
//============================
// Add Point "." in a sentence
//============================
function AddPoint(Sentence){
var SentenceModified = '';
var Rest = '';
while (Sentence >= 1000 || Sentence <= -1000) {
Rest = Sentence - Math.floor(Sentence/1000)*1000;
if (Rest<10) Rest='00'+Rest;
else if (Rest<100) Rest='0'+Rest;
Sentence = Math.floor(Sentence/1000);
SentenceModified = '.'+Rest+SentenceModified;
}
return (Sentence+SentenceModified);
}
//===============================
// Remove Point "." in a sentence
//===============================
function RemovePoint(Sentence){
var SentenceModified = Sentence;
SentenceModified=SentenceModified.replace('.','');
while (Sentence != SentenceModified){
Sentence = SentenceModified;
SentenceModified=SentenceModified.replace('.','');
}
return parseInt(Sentence);
}
//=====================================
// Check if you have enought Ressources
//=====================================
function CheckRessourcesCost(Ressource,NodeHTML,ActualRessource){
var sentence1 = Ressource+": <b>";
var sentence2 = "</b>";
var pos1 = NodeHTML.indexOf(sentence1,0);
if (pos1>=0){
var pos2 = NodeHTML.indexOf(sentence2,pos1+sentence1.length);
var SentenceRessource = RemovePoint(NodeHTML.substring(pos1+sentence1.length,pos2));
//alert(SentenceRessource);
//===================
// Ressource needed ?
//===================
var Difference = ActualRessource - SentenceRessource;
if(Difference<0){
var sentence3 = Ressource+": <a style=\"cursor: pointer;\" title=\""+AddPoint(Difference)+"\"><span class=\"noresources\">"+AddPoint(SentenceRessource)+"</span></a>"
var sentence4 = NodeHTML.substring(pos1,pos2+sentence2.length);
NodeHTML = NodeHTML.replace(sentence4,sentence3);
}
}
return NodeHTML;
}
//===========================
// Get Server Name
//===========================
function GetServerName(){
var ServerName = "";
var sentenceIni = window.location.href;
var sentence1 = "http://";
var sentence2 = "/game/";
var pos1 = sentenceIni.indexOf(sentence1,0);
if (pos1 >= 0 ){
var pos2 = sentenceIni.indexOf(sentence2,pos1+sentence1.length);
ServerName = sentenceIni.substring(pos1+sentence1.length,pos2);
}
//alert(ServerName);
return ServerName;
}
//===========================
// Get Session ID
//===========================
function GetSessionID(){
var SessionID = "";
var sentenceIni = window.location.href;
var sentence1 = "session=";
var pos1 = sentenceIni.indexOf(sentence1,0);
if (pos1 >= 0 ){
SessionID = sentenceIni.substring(pos1+sentence1.length,pos1+sentence1.length+12);
}
//alert(SessionID);
return SessionID;
}
//===========================
// Get Universe
//===========================
function GetUniverse(){
var Universe="Error";
var ServerName = GetServerName();
switch(ServerName) {
case "ogame312.de":
Universe=1;
break;
case "ogame290.de":
Universe=2;
break;
case "ogame199.de":
Universe=3;
break;
case "ogame235.de":
Universe=4;
break;
case "ogame333.de":
Universe=5;
break;
case "ogame200.de":
Universe=6;
break;
case "ogame316.de":
Universe=7;
break;
case "ogame259.de":
Universe=8;
case "ogame124.de":
Universe=9;
break;
case "ogame250.de":
Universe=10;
break;
case "ogame251.de":
Universe=11;
break;
case "ogame190.de":
Universe=12;
break;
case "81.169.184.163":
Universe=13;
break;
case "ogame317.de":
Universe=14;
break;
case "ogame215.de":
Universe=15;
break;
case "ogame170.de":
Universe=16;
break;
case "ogame181.de":
Universe=17;
break;
case "ogame186.de":
Universe=18;
break;
case "ogame193.de":
Universe=19;
break;
case "ogame221.de":
Universe=20;
break;
case "ogame208.de":
Universe=21;
break;
case "ogame140.de":
Universe=22;
break;
case "ogame123.de":
Universe=23;
break;
case "ogame286.de":
Universe=24;
break;
case "ogame525.de":
Universe=25;
break;
case "ogame240.de":
Universe=26;
break;
case "ogame213.de":
Universe=27;
break;
case "ogame447.de":
Universe=28;
break;
case "ogame135.de":
Universe=29;
break;
case "ogame338.de":
Universe=30;
break;
case "ogame311.de":
Universe=31;
break;
case "ogame216.de":
Universe=32;
break;
case "ogame388.de":
Universe=33;
break;
case "81.169.184.253":
Universe=34;
break;
case "ogame380.de":
Universe=35;
break;
case "s058.gfsrv.net":
Universe=36;
break;
case "81.169.131.155":
Universe=37;
break;
case "ogame391.de":
Universe=38;
break;
case "ogame449.de":
Universe=39;
break;
case "ogame444.de":
Universe=40;
break;
case "ogame464.de":
Universe=41;
break;
case "ogame474.de":
Universe=42;
break;
case "ogame496.de":
Universe=43;
break;
case "ogame501.de":
Universe=44;
break;
case "ogame544.de":
Universe=45;
break;
case "ogame396.de":
Universe=46;
break;
default:
Universe="Error";
break;
};
//alert(Universe);
return Universe;
}
(function(){
//=================================
// Check if it's a French Universe
//=================================
if (isFinite(GetUniverse())){
var egrave = String.fromCharCode(232);
var eaigu = String.fromCharCode(233);
var ocirconflexe = String.fromCharCode(244);
var agrave = String.fromCharCode(224);
var WidthTableNeeded = 600;
//==================
// Resize all images
//==================
var imgnode = document.getElementsByTagName('img');
var pixel = 40;
var u=0;
while(u<imgnode.length){
if(imgnode[u].getAttribute("height")==120 && imgnode[u].getAttribute("width")==120 && imgnode[u].getAttribute("align")=="top" && imgnode[u].getAttribute("border")==0){
imgnode[u].setAttribute("height",pixel);
imgnode[u].setAttribute("width",pixel);
imgnode[u].setAttribute("align","middle");
var td_ParentNode = imgnode[u].parentNode.parentNode
if((td_ParentNode.tagName).toUpperCase()=="TD"){
td_ParentNode.setAttribute("width",pixel);
td_ParentNode.setAttribute("height",pixel);
td_ParentNode.setAttribute("valign","middle");
td_ParentNode.setAttribute("align","center");
}
}
u++;
}
//alert("Standard b_building.php (Buildings) => Resize Image");
//==================
// Resize Main Table
//==================
var tablenode = document.getElementsByTagName('table');
var u=0;
while(u<tablenode.length){
if(tablenode[u].getAttribute("width")==530) tablenode[u].setAttribute("width",WidthTableNeeded);
u++;
}
//===================================================
// Rebuild text in each buildings.
// Remove non necessary text
// Put the ressources in color red in each building,
// if there isnot enought and how many !
//===================================================
var Tab_Resources = GetMCD();
var tdnode = document.getElementsByTagName('td');
var f=0;
while (f<tdnode.length){
if (tdnode[f].getAttribute("class")=="l" && (tdnode[f].innerHTML).indexOf("Ressources n"+eaigu+"cessaires :",0)>=0 && (tdnode[f].innerHTML).indexOf("Dur"+eaigu+"e de construction :",0)>=0){
//===================
// Remove description
//===================
var sentence1 = "<br>";
var sentence2 = "<br>";
var pos1 = (tdnode[f].innerHTML).indexOf(sentence1,0);
if (pos1>=0) {
var pos2 = (tdnode[f].innerHTML).indexOf(sentence2,pos1+sentence1.length);
var SentenceDescription = (tdnode[f].innerHTML).substring(pos1,pos2+sentence2.length);
//alert(SentenceDescription);
tdnode[f].innerHTML = (tdnode[f].innerHTML).replace(SentenceDescription,"<br>");
}
//===============================
// Remove "Research can begin in"
// (Account Commandant)
//===============================
var sentence1 = "<br>Construction can begin in";
var sentence2 = "</span>";
var pos1 = (tdnode[f].innerHTML).indexOf(sentence1,0);
if (pos1>=0){
var pos2 = (tdnode[f].innerHTML).indexOf(sentence2,pos1+sentence1.length);
var SentenceConstructionBegin = (tdnode[f].innerHTML).substring(pos1,pos2+sentence2.length);
//alert(SentenceConstructionBegin);
tdnode[f].innerHTML = (tdnode[f].innerHTML).replace(SentenceConstructionBegin,"");
}
//===========================================
// Check if building need ressource and how !
//===========================================
tdnode[f].innerHTML = CheckRessourcesCost("M"+eaigu+"tal",tdnode[f].innerHTML,Tab_Resources[0])
tdnode[f].innerHTML = CheckRessourcesCost("Cristal",tdnode[f].innerHTML,Tab_Resources[1])
tdnode[f].innerHTML = CheckRessourcesCost("Deut"+eaigu+"rium",tdnode[f].innerHTML,Tab_Resources[2])
}
f++;
}
//==========================
// Detect upgrade launched
// and write the finish time
//==========================
var tdnode = document.getElementsByTagName('td');
var f=0;
while (f<tdnode.length){
if (tdnode[f].getAttribute("class")=="k" && (tdnode[f].innerHTML).indexOf('<div id="bxx" class="z">',0)>=0){
var sentence1 = 'pp="';
var sentence2 = '";';
var pos1 = (tdnode[f].innerHTML).indexOf(sentence1,0);
if (pos1>=0){
var pos2 = (tdnode[f].innerHTML).indexOf(sentence2,pos1+sentence1.length);
var SentenceTimeLeft = (tdnode[f].innerHTML).substring(pos1+sentence1.length,pos2);
//alert(SentenceTimeLeft);
var emnode = document.createElement("em");
emnode.innerHTML = "<small>( <font color=orange>"+CalcTime(SentenceTimeLeft)+"</font> )</small>";
tdnode[f].appendChild(emnode);
}
}
f++;
}
//alert("Standard b_building.php (Buildings)");
}
})();