
function isdate (d, can_be_null) {
	var ret = true;
	if (d.length != 0) {		// date vide
		if (d.length != 10) {
			ret = false;
		}
		else {
// 	format 	DD/MM/YYYY
//		0123456789
			yy = parseInt(d.substring(6,10),10);
			mm = parseInt(d.substring(3,5),10);
			dd = parseInt(d.substring(0,2),10);

			mm = mm - 1 ;
			
			var mydate = new Date(yy,mm,dd);
			y2 = mydate.getYear();
			if (y2<1000) { y2 += 1900; }
			m2 = mydate.getMonth();
			d2 = mydate.getDate();
		//	al = "yyyy-mm-dd = "+yy+"-"+mm+"-"+dd+"\ny2-m2-d2 = "+y2+"-"+m2+"-"+d2+" ";
	//		alert (al);
			if (yy > y2) {
				ret = false;
			}
			else {
				if (mm>m2) {
					ret = false;
				}
				else {
					if ((mm = m2) && (dd>d2)) {
						ret = false
					}
				}
			}
		}
	}
	else {
		if (! can_be_null) {
			ret = false;
		}
	}
	return ret;
}




function ismail(email) {
	var index1;
	var index2;
	var espace;

	index1 = email.indexOf("@")
	index2 = email.indexOf(".")
	espace = email.indexOf(" ")
	
	if (   (index1==-1) 
		|| (index1==0)
		|| (index1==(email.length-1))
		|| (index2==-1)
		|| (index2==(email.length-1))
		|| (eval(espace)>0)
		|| (email.length < 6)
		|| (eval(email.indexOf("%"))>0)
		|| (eval(email.indexOf("'"))>0)
		|| (eval(email.indexOf(")"))>0)
		|| (eval(email.indexOf("("))>0)
		|| (eval(email.indexOf("]"))>0)
		|| (eval(email.indexOf("["))>0)
		|| (eval(email.indexOf(":"))>0)
		|| (eval(email.indexOf(";"))>0)
		|| (eval(email.indexOf("*"))>0)
		|| (eval(email.indexOf("/"))>0)
		|| (eval(email.indexOf("é"))>0)
		|| (eval(email.indexOf("è"))>0)
		|| (eval(email.indexOf("à"))>0)
		|| (eval(email.indexOf("ù"))>0)
		|| (eval(email.indexOf("<"))>0)
		|| (eval(email.indexOf(">"))>0)
		|| (eval(email.indexOf(","))>0)
		|| (eval(email.indexOf("§"))>0)
		|| (eval(email.indexOf("?"))>0)
		)
	
		
		return false;
	else
		return true;
}



function isentier(str)
{
var val;
var i;
var car;
var ok;

ok=true;

for(i=0; i < str.length; i++)
	{
	car=str.charAt(i);
	if(car < '0' || car > '9')
		{
		ok=false;
		}
	}

return ok;
}




function IsNumeric(str) // test si un champs = numerique , renvoie true si numerique
{
var val;
var i;
var car;
var ok;

ok=true;

for(i=0; i < str.length && ok == true; i++)
	{
	car=str.charAt(i);
	if(car < '0' || car > '9')
		{
		ok=false;
		}
	}
return ok;
}


function IsFloat(str) // test si un champs = float , renvoie true si float
{
var val;
var i;
var car;
var okfloat;
var virgule;

virgule=false;
okfloat=true;

for(i=0; i < str.length && okfloat == true; i++)
	{
	car=str.charAt(i);
	if(car < '0' || car > '9')
		{
		if(car != '.')
			{
			okfloat=false;
			}
		else
			{
			if(virgule)
				okfloat=false;
			else
				virgule=true;
			}
		}
	}
return okfloat;
}


function ToNumber(str)
{
var val;
var i;
var car;
var ok;
var virgule
var decim;

ok=true;
virgule=false;
val=0;
decim=1;

for(i=0; i < str.length && ok == true; i++)
	{
	car=str.charAt(i);
	if(car < '0' || car > '9')
		{
		//---- ce n'est pas un chiffre
		if(car != '.')
			{
			//--- caractere inacceptable
			val=parseInt("a");
			ok=false;
			}
		else{ //--- c'est un point
			if (virgule)
				{ //--- deja eu un point
				val=parseInt("a");
				ok=false;
				}
			else
				{
				virgule=true;
				}
			}
		}
	else { //---- c'est un chiffre
		if(virgule)
			{
			decim=decim*10;
			val=val+ (parseInt(car)/decim)
			}
		else
			{
			val=val*10+parseInt(car);
			}
		}
	}
return val;
}



//----- test si la chaine est du format aaaa/mm/jj
function isDateRev(str)	
{
var annee;
var mois;
var jour;

tableau=str.split("/");

return isDate( tableau[2] + "/" + tableau[1] +"/" + tableau[0]);
}


//----- test si la chaine est du format jj/mm/aaaa

function isDate(str)
{
var ok;
var dt;

var annee;
var mois;
var jour;

ok=true;
//alert(str);

tableau=str.split("/");

annee=tableau[2];
if(annee.length !=4)
	ok=false;

mois=tableau[1];
if(mois.length !=2)
	ok=false;
	
jour=tableau[0];
if(jour.length != 2)
	ok=false;

//alert("annee="+annee+",mois="+mois+",jour="+jour)

if(!IsNumeric(annee))
	ok=false;
else
	annee=parseInt(annee);
	
	
if(IsNumeric(mois))
	{
	mois=parseInt(mois);
	if(mois < 1 || mois > 12)
		ok=false;
	}
else
	ok=false;
	
	
if(IsNumeric(jour))
	{
	jour=parseInt(jour);
	if(jour < 1 || jour > 31)
		ok=false;
	}
else
	ok=false;
	

if(ok)
	{
	dt=new Date(annee, mois-1, jour);
	
	//alert("full="+getYearFull(dt));
	//alert("annee="+annee+",mois="+mois+",jour="+jour)	
	if(getYearFull(dt) != annee)
		{
		//alert("mauvaise annee");
		ok=false;
		}
		
	if(dt.getMonth()+1 != mois)
		{
		//alert("mauvais mois");
		ok=false;
		}
		
	if(dt.getDate() != jour)
		{
		//alert("mauvais jour");
		ok=false;
		}
	
	}
return ok;
}


function getYearFull(dt)
{
var nav=navigator.appName;
var ver=navigator.appVersion;
var annee;


ver=ver[0];

if( nav == "Netscape" )
	nav="nt";
if( nav == "Microsoft Internet Explorer" )
	nav="ie";
	

annee=dt.getYear();


if(nav=="ie")
	{
	if(annee < 100)
		annee+=1900;
	}
	
if(nav=="nt")
	{
	if(ver=="2" || ver=="3" || ver=="4")
		{
		if(annee < 100)
			annee+=1900;
		}
	
	}

return annee;
}



function FaxTel(str){ // test si un champs est un numéro de téléphone renvoie true si vrai
var iC;
var digits="0123456789-/ ()+"; 
var IsTel=true;

for (iC=0; iC<str.length && IsTel == true; iC++){
	temp=str.substring(iC, iC+1);
		if ((digits.indexOf(temp)==-1) || str.length<10){
			IsTel = false;
			return false;
      	}
		else{
			IsTel = true;
			return true;
		}
   }
}

/* Jean-Benoit LEVIEL - 05-07-2002 

Fonction renvoyant false si la valeur sélectionnée dans un dropdown menu est égale à -1
Renvoie vrai sinon
*/

function IsSelected(form,field){
	var ThisField = eval("document."+form+"."+field+"[document."+form+"."+field+".selectedIndex].value");
	if (ThisField==-1){
		return false;
	}
	else{
		return true;
	}	
}
