Source for "TEM La Firme - Real Time"

By Gillou
Has 4 other scripts.


/* TEM LA FIRME - Affiche en temps reel le temps avant le retour au bunker

Creation (MM/JJ/AAAA): 03/22/2007
Gillou
http://lggillou.free.fr/script/temrealtime.user.js

Teste sous GreaseMonkey 0,7.20080121.0

Script sous license Creative Commons (http://creativecommons.org/licenses/by-nc-nd/2.0/fr/)

*/




// ==UserScript==
// @name           TEM La Firme - Real Time 
// @namespace      V0.1
// @description    Affiche en temps reel le temps avant le retour au bunker
// @include        http://www.tem-la-firme.com/bunker*
// ==/UserScript==






/* RELEASE
   -------------------------------------------------- */

var ScriptName = 'TEM La Firme - Real Time';                          // Nom du script
var ScriptVersion = '0.1';                                            // Version du script pour les mises a jour majeures
var ScriptBuild = '003';                                              // Sous-version du script pour les mises a jour mineures
var ScriptDate = '05/26/2008';                                        // Date de la publication (MM/JJ/AAAA)


/* SCRIPT
   -------------------------------------------------- */

function RSet(string, length, character) { // Ajoute X caractere a gauche pour avoir la longueur voulu
  string = new String(string); // Pour etre que c'est bien un string
  if (string.length >= length) {
    return string;
  }
  else if (character.length == 1) {
    for (var i = 0; i < (length-string.length+1); i++) {
      string = character+string;
    }
    return string;
  }
}

function formatageDate(chaine) { // Fonction TEM
	var resultat
	if (chaine<=9) {
		resultat="0"+chaine
	}
	else {
		resultat = chaine
	}
	return resultat;
}

function CalcTime(datedeb,datefin) { // Fonction TEM
  
  // Calcul de la difference
	var T1=datedeb.split('-');
	var T2=datefin.split('-');

	var NewDateDeb = new Date('20' + T1[0] + '/' + T1[1] + '/' + T1[2] + ' ' + T1[3] + ':' + T1[4] + ':' + T1[5])
	var NewDateFin = new Date('20' + T2[0] + '/' + T2[1] + '/' + T2[2] + ' ' + T2[3] + ':' + T2[4] + ':' + T2[5])

	var reste = Math.floor((NewDateFin - NewDateDeb)/1000)
  
  //On transforme les secondes en date j/hh/mm/sec
	var j
	var h
	var m
	var s
	var tps = Math.abs(reste) - 1;

	if (tps>3600) { 
		h=Math.floor(tps/3600);
		tps=tps % 3600;
	}
	else {
		h=0;
	}

	if (tps>60) { 
		m=Math.floor(tps/60);
		tps=tps % 60;
	}
	else {
		m=0;
	}

	s=Math.floor(tps);

	//On construit la chaine
	var texte = "";
	if (j>0) {
	 texte = j + "j " + formatageDate(h) +":" + formatageDate(m) +":" + formatageDate(s)
	}
	else {
	 texte = ((h>0)?formatageDate(h)+"h ":"") + ((m>0)?formatageDate(m)+"m ":"") + formatageDate(s)+"s";
	}
	
  //On affiche maintenant
  if (document.getElementById('RealTime')) {
    if (reste > 0) {
      document.getElementById('RealTime').innerHTML = 'Retour \340 la base :<br>'+texte;
      document.title = title+' - Retour \340 la base : '+texte;
    }
    else {
      document.getElementById('RealTime').innerHTML = 'Vous \352tes \340 votre base :<br>'+texte;
      document.title = title;
    }
  }
  return reste;
}

function RefreshTime() {
  var Time = new Date();
  var NewTime = Time.getTime()-DiffTime;
  Time.setTime(NewTime);
  var Year = String(Time.getYear());
  var CurrentTime = RSet(Year.substr(1,2),2,'0')+'-'+RSet((Time.getMonth()+1),2,'0')+'-'+RSet(Time.getDate(),2,'0')+'-'+RSet(Time.getHours(),2,'0')+'-'+RSet(Time.getMinutes(),2,'0')+'-'+RSet(Time.getSeconds(),2,'0');
  CalcTime(CurrentTime,EndTime);
}
unsafeWindow.RefreshTime = RefreshTime;

if (document.getElementById('console')) {
  var Div = document.getElementById('console');
  if (Div.getElementsByTagName('script')) {
    var Script = Div.getElementsByTagName('script');
    var ScriptTime = '';
    for (var k = 0; k < Script.length; k++) {
      if (Script[k].innerHTML.match(/disp_clock\(/)) {
        ScriptTime = Script[k].innerHTML.match(/disp_clock\(\'([0-9]+)\'\,\'([0-9\-]+)\'\,\'([0-9\-]+)/);
      }
    }
    var Span = Div.getElementsByTagName('span');
    for (var k = 0; k < Span.length; k++) {
      if (Span[k].innerHTML.match(/Retour \340 la base/)) {
        var Time = Span[k].innerHTML.match(/Retour \340 la base \:\<br\>([^\<]+)/);
        Span[k].innerHTML = Span[k].innerHTML.replace(/Retour \340 la base \:\<br\>([^\<]+)/g, '<span id="RealTime">Retour \340 la base :<br>'+Time[1]+'</span>');
        break;
      }
    }
    if (ScriptTime.length > 0) {
      var StartTime = ScriptTime[2].split('-');
      var EndTime = ScriptTime[3];
      var Time = new Date();
      var StartDate = new Date('20' + StartTime[0] + '/' + StartTime[1] + '/' + StartTime[2] + ' ' + StartTime[3] + ':' + StartTime[4] + ':' + StartTime[5])
      var DiffTime = Time.getTime()-StartDate.getTime(); // Calcul de la difference de temps entre le serveur et le pc utilisateur
      var title = document.title;
      window.setInterval('RefreshTime();',333);
    }
  }
}