function VerifDate(val) {
	var err=0
	//a=val.value
	if (val.length != 10) err=1
		d = val.substring(0, 2)// jour
		c = val.substring(2, 3)// '/'
		b = val.substring(3, 5)// mois
		e = val.substring(5, 6)// '/'
		f = val.substring(6, 10)// annee
		if (b<1 || b>12) err = 1
		if (d<1 || d>31) err = 2
		if (f<1900) err = 3
		if (b==4 || b==6 || b==9 || b==11) {
			if (d==31) err=4
		}
		if (b==2) {
			var g=parseInt(f/4)
			if (isNaN(g)) err=5
			if (d>29) err=6
			if (d==29 && ((f/4)!=parseInt(f/4))) err=7
		}
		if (err!=0) {
			//alert(val);
			//alert(val.length);
			//alert('' + err);
			return false
		}
	return true;
}

function isDate(val) {
	// Cette fonction permet de vérifier la validité d'une date au format jj/mm/aa ou jj/mm/aaaa
	// Par Romuald
	
	if (val == "") // si la variable est vide on retourne faux
		return false;
	
	e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$");
	
	if (!e.test(val)) // On teste l'expression régulière pour valider la forme de la date
		return false; // Si pas bon, retourne faux

	// On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
	j = parseInt(val.split("/")[0], 10); // jour
	m = parseInt(val.split("/")[1], 10); // mois
	a = parseInt(val.split("/")[2], 10); // année

	// Si l'année n'est composée que de 2 chiffres on complète automatiquement
	if (a < 1000) {
		if (a < 89)    a+=2000; // Si a < 89 alors on ajoute 2000 sinon on ajoute 1900
		else a+=1900;
	}

	// Définition du dernier jour de février
	// Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
	if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
	else fev = 28;

	// Nombre de jours pour chaque mois
	nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);

	// Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
	return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
}

function testHour(val) {
	var point,left,right;
	point = val.indexOf(':');
	left = val.substring(0,point);
	right = val.substring(point+1,val.length);
	//alert(point+","+isNaN(left)+","+isNaN(right)); //isNan renvoie true si c'est du texte
	if(point < 0 || isNaN(left) || isNaN(right)) return false;
	else {
		if(left < 0 || left > 23 || right < 0 || right > 59) return false;
		else return true;
	}
}

function testEmail(val) {
	if(val.indexOf('@')<1 || val.indexOf('@')==(val.length-1)) return false
	else return true
}

function testPercent(val) {
	var rExp = /,/gi;
	val = val.replace(rExp,"."); //remplacement des virgules par des points
	if(isNaN(val)) return false;
	else {
		if(val < 0 || val > 100) return false;
		else return true;
	}
}

function testNumeric(val,entier) {
	if(entier==true) {
		var rExp = /,/gi;
		val = val.replace(rExp,"."); //remplacement des virgules par des points
		if(isNaN(val)) return false;
		else return true;
	}
	else {
		if(isNaN(val) || val.indexOf('.') > 0) return false;
		else return true;
	}
}

function testSiret(val) {
	var total = 0;
	//si SIRET pas numérique on renvoie false
	if(!testNumeric(val,true)) return false;
	
	for(var i=13;i>=0; i--) { 
		/* Caractere interdit : refus ! */
		//if(val.charAt(i) == '0') return false;
		
		/* Les chiffres de rangs impairs sont sommés : */
		//if( ((13-i+1)%2)!= 0) total = total + (val.charAt(i) - '0');
		if( ((13-i+1)%2)!= 0) {
			total = total + eval(val.charAt(i));
			//alert(total);
		}
		else {
		/* Les chiffres de rangs pairs sont sommes après avoir été doublés,et si le double dépasse 10, on rajoute 1 aux unitées : */
			if(val.charAt(i) >= 5) {
				total = total + ((eval(val.charAt(i))*2)-10)+1;
			}
			else {
				total = total + (eval(val.charAt(i))*2);
			}
		}
    }

	/* Le total DOIT etre un multiple de 10 : */

	if((total % 10) == 0) return true;
	else return false;
}

function testNoNumber(val) {
	var numbers = "0123456789";
	for(var i=0;i<=val.length-1;i++) {
		for(var j=0;j<=numbers.length-1;j++) {
			if(val.charAt(i)==numbers.charAt(j)) {
				//alert(val.charAt(i)+'/'+numbers.charAt(j)+'/i='+i+'/j='+j);
				return false;
			}
		}
	}
	return true
}

//--------------- FONCTIONS DW4 ---------------------

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}