﻿//================================================================================= Tools
// GET ELEMENT BY ID 
if (!document.getElementById) {
if (document.all)
	document.getElementById=function() {
		if ( typeof(document.all[arguments[0]]) != "undefined")
			return document.all[arguments[0]];
		else
			return null;
	}
	else if (document.layers)
		document.getElementById=function() {
			if ( typeof(document[arguments[0]]) != "undefined")
				return document[arguments[0]];
			else
				return null;
		}
}

// GET ELEMENT
function $() {
	var elements = new Array();
	for (var i=0,len=arguments.length;i<len;i++) {
		var element = arguments[i];
		if (typeof element == 'string') {
			var matched = document.getElementById(element);
			if (matched) {
				elements.push(matched);
			} else {
				var allels = (document.all) ? document.all : document.getElementsByTagName('*');
				var regexp = new RegExp('(^| )'+element+'( |$)');
				for (var i=0,len=allels.length;i<len;i++) if (regexp.test(allels[i].className)) elements.push(allels[i]);
			}
			if (!elements.length) elements = document.getElementsByTagName(element);
			if (!elements.length) {
				elements = new Array();
				var allels = (document.all) ? document.all : document.getElementsByTagName('*');
				for (var i=0,len=allels.length;i<len;i++) if (allels[i].getAttribute(element)) elements.push(allels[i]);
			}
			if (!elements.length) {
				var allels = (document.all) ? document.all : document.getElementsByTagName('*');
				for (var i=0,len=allels.length;i<len;i++) if (allels[i].attributes) for (var j=0,lenn=allels[i].attributes.length;j<lenn;j++) if (allels[i].attributes[j].specified) if (allels[i].attributes[j].nodeValue == element) elements.push(allels[i]);
			}
		} else {
			elements.push(element);
		}
	}
	if (elements.length == 1) {
		return elements[0];
	} else {
		return elements;
	}
}

// DECLENCHE EVENEMENTS
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

// FENETRE CENTREE
function fenetreCent(url,nom,largeur,hauteur,options) {
var haut=(screen.height-hauteur)/2;
var Gauche=(screen.width-largeur)/2;
fencent=window.open(url,nom,"top="+haut+",left="+Gauche+",width="+largeur+",height="+hauteur+","+options);
}

// Objet pour les requetes ajax
function getXhr(){
	var xhr = null; 
	if(window.XMLHttpRequest) // Firefox et autres
		xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject){ // Internet Explorer 
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	else { // XMLHttpRequest non supporté par le navigateur 
		xhr = false; 
	} 
	return xhr
}

//================================================================================= Menu
var idTimeOutMenu;
function montre(num) {
	clearTimeout(idTimeOutMenu);
	for (var i = 1; i<=4; i++){
		if (document.getElementById('smenu'+i)) {
			document.getElementById('smenu'+i).style.display='none';
			document.getElementById('menu'+i).className='';
		}
	}
	if (document.getElementById('smenu'+num)) {
		document.getElementById('smenu'+num).style.display='block';
		document.getElementById('menu'+num).className='sel';
	}
}
function cache(ok){
	if(ok)
		idTimeOutMenu = setTimeout("montre()",250);
	else
		clearTimeout(idTimeOutMenu);
}

//================================================================================= Decompte
var lastDay = new Date();
lastDay.setDate(12);
lastDay.setMonth(2);//numero du mois - 1
lastDay.setFullYear(2008);
lastDay.setHours(14);
lastDay.setMinutes(0);
		
var dayLeft;
var hoursLeft;
var minsLeft;
var idTimeOutTimeleft;
function initimeleft(){
	var msDate = lastDay.getTime() - today.getTime();
	dayLeft = Math.floor(msDate / (24 * 60 * 60 * 1000));
	hoursLeft = Math.floor(msDate / (60 * 60 * 1000)) - (dayLeft * 24);
	minsLeft = Math.floor(msDate / (60 * 1000))  - (((dayLeft * 24) + hoursLeft) * 60);
	if(dayLeft >= 0){
		$('timeleft').innerHTML= ((dayLeft > 9)?dayLeft:'0'+dayLeft) + "j " + ((hoursLeft > 9)?hoursLeft:'0'+hoursLeft) + "h " + ((minsLeft > 9)?minsLeft:'0'+minsLeft) + "mn";
		idTimeOutTimeleft = setTimeout("updateTimeLeft()",60000);
	}else{
		$('timeleft').innerHTML= "00j 00h 00mn";
	}
}

function updateTimeLeft(){
	minsLeft = (minsLeft - 1);
	if(minsLeft < 0){
		minsLeft = 59;
		hoursLeft = (hoursLeft - 1);
		if(hoursLeft < 0){
			hoursLeft = 23;
			dayLeft = (dayLeft - 1);
			if(dayLeft < 0){
				dayLeft = 0;
				clearTimeout(idTimeOutTimeleft);
			}
		}
	}
	$('timeleft').innerHTML= ((dayLeft > 9)?dayLeft:'0'+dayLeft) + "j " + ((hoursLeft > 9)?hoursLeft:'0'+hoursLeft) + "h " + ((minsLeft > 9)?minsLeft:'0'+minsLeft) + "mn";
	setTimeout("updateTimeLeft()",60000);
}

addLoadEvent(initimeleft);

//================================================================================= Scrollbar
var idTimeOutMoveLayer;
var Pas = 4;
function moveLayer(Sens){
	var Objet=document.getElementById("contenu");
	if(parseInt(Objet.style.top) + (Pas*Sens)>0){
		clearTimeout(idTimeOutMoveLayer);
	}
	else if(parseInt(Objet.style.top) + (Pas*Sens)<-(Objet.offsetHeight-document.getElementById("frame").offsetHeight)){
		clearTimeout(idTimeOutMoveLayer);
	}
	else{
		Objet.style.top = (parseInt(Objet.style.top) + (Pas*Sens)) + "px";
	}
	idTimeOutMoveLayer = setTimeout("moveLayer(" + Sens + ");", 30);
}

//================================================================================= RssNews
var idTimeOutReadRSS;
var nbTryRSS = 0;
function readRSS(){
	var reg=new RegExp("[a-zA-Z0-9]");
	var xhr = getXhr()
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4){
			//alert((reg.test(xhr.responseText)?"true":"false") + " => " +xhr.responseText)
			if(xhr.status == 200 && reg.test(xhr.responseText)){
				$("rssTxt").innerHTML = xhr.responseText;
				clearTimeout(idTimeOutReadRSS);
				moveRss();
				//Ajoute lien externe
				 var str="";
				 resultat = xhr.responseText.match(/ id=\"(lien_rss_([0-9]+))\" /g);
				 if(resultat)
					for(i=0;i<resultat.length;++i){
						str = resultat[i].replace(/ id=\"(lien_rss_([0-9]+))\" /g,"$1");
						$(str).onclick = function() { 
							fenetreCent(this.href,"externe",800,600,"resizable=yes,location=yes,menubar=yes,status=nyes,scrollbars=yes,toolbar=yes");
							fencent.focus();
							return false;
						}
					}

			}else{
				nbTryRSS = nbTryRSS + 1;
				//$("rssTxt").innerHTML = '<span class="orange">en chargement (essai n°'+nbTryRSS+')</span>';
				idTimeOutReadRSS = setTimeout("readRSS();", 5000);
			}
		}
	}
	var d = new Date();
	xhr.open("GET","readRSS.php?d="+d.getTime(),true);
	xhr.send(null);
}

function moveRss(){
	var obj=$("rsscontent");
	var box=$("fluxrss");
	if(obj.offsetWidth + parseInt(obj.style.left) < 0)
		obj.style.left = box.offsetWidth + "px";
	else
		obj.style.left = (parseInt(obj.style.left) - 1)  + "px";
	setTimeout("moveRss()",35);
}

//================================================================================= RssFAQ
var idTimeOutReadFASRSS;
var nbTryFAQRSS = 0;
function readFAQ(){
	var reg=new RegExp("[a-zA-Z0-9]");
	var xhr = getXhr()
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4){
			//alert((reg.test(xhr.responseText)?"true":"false") + " => " +xhr.responseText)
			if(xhr.status == 200 && reg.test(xhr.responseText)){
				$("rssQueries").innerHTML = xhr.responseText;
				moveQueryRss();
				clearTimeout(idTimeOutReadFASRSS);
				//Ajoute lien externe
				 var str="";
				 resultat = xhr.responseText.match(/ id=\"(lien_faqrss_([0-9]+))\" /g);
				 if(resultat)
					for(i=0;i<resultat.length;++i){
						str = resultat[i].replace(/ id=\"(lien_faqrss_([0-9]+))\" /g,"$1");
						$(str).onclick = function() { 
							fenetreCent(this.href,"externe",800,600,"resizable=yes,location=yes,menubar=yes,status=nyes,scrollbars=yes,toolbar=yes");
							fencent.focus();
							return false;
						}
					}

			}else{
				nbTryFAQRSS = nbTryFAQRSS + 1;
				idTimeOutReadFASRSS = setTimeout("readFAQ();", 5000);
			}
		}
	}
	var d = new Date();
	xhr.open("GET","../readFAQRSS.php?d="+d.getTime(),true);
	xhr.send(null);
}

function moveQueryRss(){
	var obj=$("contentFAQ");
	var box=$("fluxRSSFAQ");
	if(obj.offsetWidth + parseInt(obj.style.left) < 0)
		obj.style.left = box.offsetWidth + "px";
	else
		obj.style.left = (parseInt(obj.style.left) - 1)  + "px";
	setTimeout("moveQueryRss()",35);
}