OGame Clock PT

By JuveLeo Last update Apr 26, 2007 — Installed 1,359 times.
// Autor: ..:: BARANOWA ::.. Tradução: Tubarão
// Traduzido em 26/04/2007

// ==UserScript==
// @name OGame Clock PT
// @namespace OGame Clock
// @author ..:: BARANOWA ::..
// @tradutor Tubarão
// @description Modifica ol relógio na vista principal. Adiciona outro relógio com base na hora local do jogador e com refresh automático.
// @include http://ogame*.de/*
// @include  http://*.gfsrv.*/
// @exclude  
// ==/UserScript==

//Funcion para buscar dentro de un array un valor y devolver su posicion.
function BuscarPos(array, id) {
   for(var i = 0; i < array.length; i++) {
      if(array[i] == id) return i;
	}
   return -1;
}

//Funcion para verificar si un anio es bisiesto o no.
function AnoBisiesto(ano) {
   return (((ano % 4 == 0) && (ano % 100 != 0)) || (ano % 400 == 0)) ? 1 : 0;
}

//Funcion para calcular la cantidad de dias que tiene el mes.
function DiasMes(mes, ano) {
   if(mes == 0 || mes == 2 || mes == 4 || mes == 6 || mes == 7|| mes == 9 || mes == 11)
      return 31;
   if(mes == 3 || mes == 5 || mes == 8 || mes == 10)
      return 30;
   if(mes == 1 && AnoBisiesto(ano) == 0)
      return 28;
   else
      return 29;
}

//Funcion para actualizar los relojes de la vista principal.
function Clock() {
   nodeLocal = document.getElementById("ClockLocal");
   nodeServer = document.getElementById("ClockServer");
   var date = new Date();
   var ano = date.getFullYear();
   var mes = date.getMonth();
   var dia = date.getDay();
   var diaNum = date.getDate();
   var hora = date.getHours();
   var mins = date.getMinutes();
   var segs = date.getSeconds();
   var dias = new Array('Domingo,','Segunda-feira,','Terça-feira,','Quarta-feira,','Quinta-feira,','Sexta-feira,','Sábado,');
   var meses = new Array('Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro');
   var fecha = nodeServer.innerHTML.match(/(\S+) (\d+) de (\S+) - (\d{2}):(\d{2}):(\d{2})/);
   nodeLocal.innerHTML = dias[dia] + ' ' + diaNum + ' de ' + meses[mes] + ' - ' + ((hora < 10) ? '0' : '') + hora + ((mins < 10) ? ':0' : ':') + mins + ((segs < 10) ? ':0' : ':') + segs;
   dia = BuscarPos(dias, fecha[1]);
   diaNum = fecha[2] * 1;
   mes = BuscarPos(meses, fecha[3]);
   hora = fecha[4] * 1;
   mins = fecha[5] * 1;
   segs = fecha[6] * 1;
   if(++segs > 59) {
      segs = 0;
      if(++mins > 59) {
         mins = 0;
         if(++hora == 23) {
            hora = 0;
            if(++dia > 6) dia = 0;
            diaNum++;
            if(diaNum > DiasMes(mes, ano)) {
               diaNum = 1;
               if(++mes > 11) mes = 0;
            }
         }
      }
   }
   nodeServer.innerHTML = dias[dia] + ' ' + diaNum + ' de ' + meses[mes] + ' - ' + ((hora < 10) ? '0' : '') + hora + ((mins < 10) ? ':0' : ':') + mins + ((segs < 10) ? ':0' : ':') + segs;
   //Actualizaremos dentro de um 1 segundo si no cambio la pagina.
   if(document.baseURI.indexOf("overview.php") != -1)
      setTimeout(Clock, 1000);
}

//Verificamos si esta abierta en el frame principal la pagina de vision general.
if(document.baseURI.indexOf("overview.php") != -1) {

   var nodo = document.evaluate("/html/body/center/table[last()]/tbody/tr[th[2]]/th[2]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;
   var dias = new Array('Domingo,','Segunda-feira,','Terça-feira,','Quarta-feira,','Quinta-feira,','Sexta-feira,','Sábado,');
   var meses = new Array('Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro');
   var days = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
   var months = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');

   var date = new Date();
   var mes = date.getMonth();
   var dia = date.getDay();
   var diaNum = date.getDate();
   var hora = date.getHours();
   var mins = date.getMinutes();
   var segs = date.getSeconds();

   var fecha = nodo.innerHTML.match(/(\S\S\S) (\S\S\S) (\d+) (\d+)(:\d\d:\d\d)/);
   var fechaLocal = dias[dia] + " " + diaNum + " de " + meses[mes] + " - " + ((hora < 10) ? "0" : "") + hora + ((mins < 10) ? ":0" : ":") + mins + ((segs < 10) ? ":0" : ":") + segs;
   var fechaServer = dias[BuscarPos(days,fecha[1])] + " " + fecha[3] + " de " + meses[BuscarPos(months, fecha[2])] + " - " + ((fecha[4] < 10) ? "0" : "") + fecha[4] + fecha[5];

   var nodoLocal = nodo.parentNode.cloneNode(true);
   nodo.parentNode.parentNode.insertBefore(nodoLocal, nodo.parentNode.nextSibling);
   nodoLocal.innerHTML = "<th>Hora local</th><th colspan='3' id='ClockLocal'>" + fechaLocal + "</th>";

   nodo.previousSibling.previousSibling.innerHTML='Hora server';
   nodo.innerHTML = fechaServer;
   nodo.setAttribute('id', 'ClockServer');
   setTimeout(Clock, 1000);
}