/**
 * 
 * This effectively creates a queue of functions to be executed when the page loads. 
 * To add functions to this queue, I just need to write:
 * addLoadEvent(firstFunction);
 * addLoadEvent(secondFunction);
 */
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}
// addLoadEvent(montre);
/**
 * Test si la date d est au format jj/mm/yyyy
 * @param 	date	d
 * @return	boolean 
 */
function isDate2Ok(d) {
	re=/\d\d\/\d\d\/20\d\d/;
	if(!d.match(re)){
		return false;
	}
	else {
		j = d.substr(0,2);
		m = d.substr(3,2);
		a = d.substr(6,4);
		if(m>12) return false;
		if(j>30) {
			if(m != '01' && m != '03' && m != '05' && m != '07' && m != '08' && m != '10' && m != '12') {
				return false;
			}
		}
		if(j>28 && m =='02' ) return false;					
	}
	return true;
}

function isDateOk(d) {
	re=/\d\d\/\d\d\/20\d\d/;
	if(!d.match(re)){
		return false;
	}
	else {
		j = d.substr(0,2);
		m = d.substr(3,2);
		a = d.substr(6,4);
		if(m>12) return false;
		if(j>30) {
			if(m != '01' && m != '03' && m != '05' && m != '07' && m != '08' && m != '10' && m != '12') {
				return false;
			}
		}
		if(j>28 && m =='02' ) return false;					
	}
	return true;
}
/**
 * verifie la solidite du mot de passe
 */
function checkPassword() {
	if(document.getElementById("password").value == document.getElementById("password2").value) {
		if(document.getElementById("password").value.length <6 || document.getElementById("password").value.length > 8) {
			alert ('Le mot de passe doit avoir entre 6 et 8 caracteres');
			return(false);
		}
		re=/[a-z]/;
		if(!document.getElementById("password").value.match(re)) {
			alert('Manque au moins une minuscule');
			return (false);
		}
		re =/[A-Z]/;
		if(!document.getElementById("password").value.match(re)) {
			alert('Manque au moins une majuscule');
			return (false);
		}
		re = /[0-9]/;
		if(!document.getElementById("password").value.match(re)) {
			alert('Manque au moins un chiffre');
			return (false);
		}
		re = /[^a-zA-Z0-9]/
		if(!document.getElementById("password").value.match(re)) {
			alert('Manque au moins un caractere special');
			return (false);
		}
	return (true);
	}
	else {
		alert('Les mots de passes sont differents');
		return (false);
	}			
}

/**
 * verifie la solidite du mot de passe
 */
function checkPasswordMini() {
	if(document.getElementById("password").value == document.getElementById("password2").value) {
		if(document.getElementById("password").value.length <5) {
			alert ('Le mot de passe est trop court');
			return(false);
		}
		return (true);
	}
	else {
		alert('Les mots de passes sont differents');
		return (false);
	}			
}

/**
 * verifie que l'objet dont l'id est passe en parametres est un float.
 * Si oui il retourne la veleur l'objet sinon il retourne 0
 */
function verifFloat(id){
	reel = document.getElementById(id);
	reel.value=reel.value.replace(",",".");
	reel.value = isNaN(parseFloat(reel.value)) ? 0 : parseFloat(reel.value);
}
/**
 * verifie que l'objet dont l'id est passe en parametres est un float.
 * Si oui il retourne la veleur l'objet sinon il retourne 0
 */
function verifInt(id){
	entier = document.getElementById(id);
	entier.value = isNaN(parseInt(entier.value)) ? 0 : parseInt(entier.value);
}

function strip(n){
	n.value=n.value.replace('/','-');
}

/**
 * Transforme un entier xxxxx en un reel de la forme xxxx.00
 */
function int2float(x){
	x = String(x);
	re=/\./;
	return(x.match(re) ? x : x + '.00');
}
/**
 * réalise a x  b avec une precision de e
 */
function ExactRoundMult(a,b,e){
	a=String(int2float(a));
	b=String(int2float(b));
	var deci=( a.split('\.')[1].length > b.split('\.')[1].length )?a.split('\.')[1].length:b.split('\.')[1].length;
	var c= Number(a) * Number(b);
	var expo= (Math.pow(10,deci))
	var result=((Math.round(c*expo)/expo).toFixed(e));
	return result;
}
/**
 * réalise a / b avec une precision de e
 */
function ExactRoundDiv(a,b,e){
	a=String(int2float(a));
	b=String(int2float(b));
	var deci=( a.split('\.')[1].length > b.split('\.')[1].length )?a.split('\.')[1].length:b.split('\.')[1].length;
	var c= Number(a) / Number(b);
	var expo= (Math.pow(10,deci))
	var result=((Math.round(c*expo)/expo).toFixed(e));
	return result;
}
/**
 * réalise a + b avec une precision de e
 */
function ExactRoundAdd(a,b,e){
	a=String(int2float(a));
	b=String(int2float(b));
	var deci=( a.split('\.')[1].length > b.split('\.')[1].length )?a.split('\.')[1].length:b.split('\.')[1].length;
	var c= Number(a) + Number(b);
	var expo= (Math.pow(10,deci))
	var result=((Math.round(c*expo)/expo).toFixed(e));
	return result;
}

function objFloat(obj){
	obj.value=obj.value.replace(",",".");
	obj.value = isNaN(parseFloat(obj.value)) ? 0 : parseFloat(obj.value);
}

function objInt(obj){
	obj.value = isNaN(parseInt(obj.value)) ? 0 : parseInt(obj.value);
}

function isIE(){
	return(window.ActiveXObject);
}

function aide(lien,idFenetre,posX,posY){
	var fenetre=document.getElementById(idFenetre);
	if(! fenetre){
		fenetre = document.createElement("div");
		var corps = document.getElementById('corps')
		fenetre.style.backgroundColor="white";
		fenetre.style.borderColor="black";
		fenetre.style.borderStyle="solid";
		fenetre.style.borderWidth="1px";
		fenetre.style.width="500px"
		fenetre.style.position="absolute";
		y = !posY ? "180px" : posY + "px";
		x = !posX ? "100px" : posX + "px";
		fenetre.style.top=y;
		fenetre.style.left=x;
		fenetre.style.zIndex="100";
		fenetre.id=idFenetre;
		corps.appendChild(fenetre);
		xmlhttp=createxmlHttp();
		makerequest(xmlhttp,lien , fenetre);
	}
}

function affichage(evt,lien,idFenetre,posX,width){
	var fenetre=document.getElementById(idFenetre);
	if(! fenetre){
		if(isIE()){
			//y = evt.clientY + 'px';
			y = parseInt(parseInt(document.body.scrollTop) + parseInt(evt.clientY)) + 'px';
		}
		else {
			y = parseInt(evt.pageY) + 5;
			y = y + 'px';
		}
		fenetre = document.createElement("div");
		var corps = document.getElementById('corps')
		fenetre.style.backgroundColor="white";
		fenetre.style.borderColor="black";
		fenetre.style.borderStyle="solid";
		fenetre.style.borderWidth="1px";
		w = !width ? "500px" : width;
		fenetre.style.width=w + "px";
		fenetre.style.position="absolute";
		x = !posX ? "100px" : posX + "px";
		fenetre.style.top=y;
		fenetre.style.left=x;
		fenetre.style.zIndex="100";
		fenetre.id=idFenetre;
		corps.appendChild(fenetre);
		xmlhttp=createxmlHttp();
		makerequest(xmlhttp,lien , fenetre);
	}
}
function affichageCourt(evt,lien,idFenetre,posX,width){
	var fenetre=document.getElementById(idFenetre);
	if(! fenetre){
		if(isIE()){
			s=document.body.scrollTop;
			y = parseInt(parseInt(document.body.scrollTop) + parseInt(evt.clientY)) + 'px';
			x = evt.clientX + 'px';
			
		}
		else {
			y = parseInt(evt.pageY) + 5;
			x = parseInt(evt.pageX) + 5;
			y = y + 'px';
			x = x + 'px';
		}
		fenetre = document.createElement("div");
		var corps = document.getElementById('corps')
		fenetre.style.backgroundColor="white";
		fenetre.style.borderColor="black";
		fenetre.style.fontSize="12px";
		fenetre.style.borderStyle="solid";
		fenetre.style.borderWidth="1px";
		w = !width ? "400px" : width;
		fenetre.style.width="450px";
		fenetre.style.position="absolute";
		//x = !posX ? "100px" : posX + "px";
		fenetre.style.top=y;
		
		//fenetre.style.left="200px";
		fenetre.style.zIndex="100";
		fenetre.id=idFenetre;
		corps.appendChild(fenetre);
		//fenetre.scrollIntoView();
		xmlhttp=createxmlHttp();
		makerequest(xmlhttp,lien , fenetre);
	}
}

var imgCoeffInit = new Array();
var imgCoeff	 = new Array();
var imgLarg		 = new Array();
var imgHaut		 = new Array();
var imgNom	     = new Array();
function imgInitParam(tab,nom_de_limage,coeff,larg,haut) {
    imgCoeffInit[tab]=coeff;
	imgCoeff[tab]=coeff;
	imgLarg[tab]=larg;
	imgHaut[tab]=haut;
	imgNom[tab]=nom_de_limage;
}
function initImg(tab){
	document.images[imgNom[tab]].width = Math.round(imgLarg[tab]/imgCoeff[tab]);
    document.images[imgNom[tab]].height = Math.round(imgHaut[tab]/imgCoeff[tab]);
}
function imgTailleInitiale(tab) {
	
    if (document.images[imgNom[tab]].width > imgLarg[tab]/imgCoeffInit[tab]) {
    	window.clearTimeout(chang);
    	imgCoeff[tab] = imgCoeff[tab]+0.2;
    	document.images[imgNom[tab]].width = Math.round(imgLarg[tab]/imgCoeff[tab]);
    	document.images[imgNom[tab]].height = Math.round(imgHaut[tab]/imgCoeff[tab]);
    	initi=window.setTimeout('imgTailleInitiale("'+tab+'");',60);//vitesse de l'effet
    	
    }
    else {
    	window.clearTimeout(initi);
    }
}

function imgChangerTaille(tab) {
    if (document.images[imgNom[tab]].width < imgLarg[tab]) {
    	imgCoeff[tab] = imgCoeff[tab]-0.2;
    	document.images[imgNom[tab]].width = Math.round(imgLarg[tab]/imgCoeff[tab]);
    	document.images[imgNom[tab]].height = Math.round(imgHaut[tab]/imgCoeff[tab]);
    	chang=window.setTimeout('imgChangerTaille("'+tab+'");',60);//vitesse de l'effet
    }
    else {
    	window.clearTimeout(chang);
    }
}


