var aMonth = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"];
var aDays = ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"];
// TymerControler On
var tcOnHtmlContent = "date-heure : "+
	"<strong lang=\"en\">on</strong> / "+
	"<a href=\"javascript:controlTimer('off');\" title=\"Arrêter"+
	" la mise à jour automatique de l'horodateur ci-dessous\">"+
	"<span lang=\"en\">off</span></a>";
// TymerControler Off
var tcOffHtmlContent = "date-heure : <a href=\"javascript:controlTimer('on');\" "+
	"title=\"Démarrer la mise à jour automatique de l'horodateur"+
	" ci-dessous\"><span lang=\"en\">on</span></a> / "+
	"<strong lang=\"en\">off</strong>";
function controlTimer(mode) {
	var tcNode = document.getElementById("timerControler");
	switch(mode) {
		case "off":
			clearInterval(timerId);
			timerId= null;
			setInnerHTML(tcNode,tcOffHtmlContent);
			break;
		case "on":
			if (!timerId) {
				updateTimer();
				timerId = setInterval("updateTimer()",60000);
				setInnerHTML(tcNode,tcOnHtmlContent);
			}
			break;
	}
	document.getElementById("timerAnchor").focus();
}
var timerId;
function updateTimer() {
	var nTimer = document.getElementById("timer");
	if (nTimer) {
		var ObjetDate = new Date();
		var JourDuMois = ObjetDate.getDate();
		var JourDeLaSemaine = ObjetDate.getDay();
		var Heure = ObjetDate.getHours();
		var LesMinutes = ObjetDate.getMinutes();
		if (LesMinutes<10) {
			LesMinutes = "0" + LesMinutes;
		}
		var Mois = ObjetDate.getMonth();
		var FullAnnee = ObjetDate.getFullYear();
    setInnerHTML(nTimer, "<a name=\"timerAnchor\" id=\"timerAnchor\"></a>"+aDays[JourDeLaSemaine]+" "+JourDuMois+" "+aMonth[Mois]+" "+FullAnnee+" "+Heure+":"+LesMinutes);
	}
}

function setTimer() {
	if (document.getElementById("timerControler")) {
		var tcNode = document.getElementById("timerControler");
		setInnerHTML(tcNode,tcOnHtmlContent);
    updateTimer();
		timerId = setInterval("updateTimer()",60000);
	}
}
/* parseHTML ultra-ultra-ultra light */
function setInnerHTML(oNode,s) {
  if (oNode.innerHTML) {
    oNode.innerHTML = s;
  } else {
  	var fragment;
  	try {fragment = parseHTML(s);} catch(err) {}
  	if (fragment) {
  		deleteAllChild(oNode);
  		oNode.appendChild(fragment);
  	}
	}
}
function deleteAllChild(oNode) {
	while(oNode.firstChild) {
		oNode.removeChild(oNode.firstChild);
	}
}
function parseHTML(s) {
	var _rHtml = {
		ELEMENTSTART:/^<([a-z0-9]+)[^>]*>/i,
		ATTRIBUTES:/^<[a-z0-9]+\s([^>]+)\/?>$/i,
		ELEMENTEND:/^<\/([^>]+)>/,
		TEXT:/^([^<]+)/
	};
	function _parseElementStart(parentNode, s) {
		if (_rHtml.ELEMENTSTART.test(s)) {
			var aRegExec = _rHtml.ELEMENTSTART.exec(s);
			var oElement = document.createElement(aRegExec[1]);
			_parseAttributes(oElement, aRegExec[0]);
			parentNode.appendChild(oElement);
			s=s.replace(_rHtml.ELEMENTSTART,"");
			return [oElement,s];
		}
	}
	function _parseAttributes(oRefNode, s) {
		if (_rHtml.ATTRIBUTES.test(s)) {
			var aRegExec = _rHtml.ATTRIBUTES.exec(s);
			var sAttributes = aRegExec[1];
			while (sAttributes.length>0) {
				var attrName = trim(sAttributes.slice(0,sAttributes.indexOf("=")));
				if (attrName.length==0) break;
				var indexOfValue=sAttributes.indexOf("=")+1;
				var attrValue = /^\"([^\"]+)\"/.exec(sAttributes.slice(indexOfValue))[1];
				sAttributes= trim(sAttributes.replace(/^[^=]+=\"[^\"]+\"/,""));
				oRefNode.setAttribute(attrName.toLowerCase(),attrValue?attrValue:"");
			}
		}
	}
	function _parseElementEnd(oNode, s) {
		if (_rHtml.ELEMENTEND.test(s)) {
			s=s.replace(_rHtml.ELEMENTEND,"");
			return [oNode.parentNode, s];
		}
		return [oNode, s];
	}
	function _parseText(parentNode, s) {
		if (_rHtml.TEXT.test(s)) {
			var aRegExec = _rHtml.TEXT.exec(s);
			var oTxt = document.createTextNode(aRegExec[1]);
			parentNode.appendChild(oTxt);
			s=s.replace(_rHtml.TEXT,"");
		}
		return [parentNode, s];
	}
	var fragment = document.createDocumentFragment();
	var aParsed = [fragment,s];
	while (aParsed && (aParsed[1].length>0)) {
		if (_rHtml.ELEMENTSTART.test(aParsed[1])) {
			aParsed = _parseElementStart(aParsed[0], aParsed[1]);
		} else if (_rHtml.ELEMENTEND.test(aParsed[1])) {
			aParsed = _parseElementEnd(aParsed[0], aParsed[1]);
		} else if(_rHtml.TEXT.test(aParsed[1])) {
			aParsed = _parseText(aParsed[0], aParsed[1]);
		}
	}
	if (typeof(aParsed)=="boolean") {
		return aParsed;
	} else {
		return fragment;
	}
}
