// --- teste si un champ texte est vide
function TexteIsVide(champ)
{
  if (eval("document."+formulaire+"."+champ+".value")=="")
  { return true;}
  else
  { return false;}
}

// --- teste si un email (situe dans un champ texte) est invalide
function TexteIsNotEmail(champ)
{
    val = eval("document."+formulaire+"."+champ+".value");
	longueur = val.length;
	pos = val.indexOf("@");
	pos2 = val.lastIndexOf(".");
	if (pos==-1 || pos2==-1 || pos2<pos || pos<1 || pos2-pos<2 || longueur-pos2<2)
	{ return true;}
	else
	{ return false;}
}

// --- teste si est decimal
function TexteIsNotDecimal(champ)
{
  val = eval("document."+formulaire+"."+champ+".value");
  if (IsDecimal(val))
  { return false;}
  else
  { return true;}
}
// --- teste si est numeric
function TexteIsNotNumeric(champ)
{
  val = eval("document."+formulaire+"."+champ+".value");
  if (IsNumeric(val))
  { return false;}
  else
  { return true;}
}
// --- teste si est alpha
function TexteIsNotAlpha(champ)
{
  val = eval("document."+formulaire+"."+champ+".value");
  if (IsAlpha(val))
  { return false;}
  else
  { return true;}
}
// --- teste si est alpha
function TexteIsNotAlphaNum(champ)
{
  val = eval("document."+formulaire+"."+champ+".value");
  if (IsAlphaNum(val))
  { return false;}
  else
  { return true;}
}

// --- teste si est une valeur entre 2 bornes
function TexteIsNotBetween(champ, mini, maxi)
{
  val = eval("document."+formulaire+"."+champ+".value");
  if (IsNumeric(val))
  {
    if (val>mini && val<maxi)
	{ return false;}
	else
	{ return true;}
  }
  else { return true;}
}

// --- teste si 2 champs texte sont differents
function TexteIsNotEgaux(champ1, champ2)
{
  if (eval("document."+formulaire+"."+champ1+".value")!=eval("document."+formulaire+"."+champ2+".value"))
  { return true;}
  else
  { return false;}
}

// --- teste qu'on a au moins selectionne 1 entree dans un SELECT (multiligne: sinon le visible est selectionner)
function SelectIsVide(champ)
{
  if (eval("document."+formulaire+"."+champ+".selectedIndex")==-1)
  { return true;}
  else
  { return false;}
}
// --- teste validite d'une date
function SelectIsNotDate(champannee, champmois, champjour)
{
  annee = eval("document."+formulaire+"."+champannee+".value");
  mois = eval("document."+formulaire+"."+champmois+".value");
  jour = eval("document."+formulaire+"."+champjour+".value");
  if (IsDateValide(annee, mois, jour))
  { return false;}
  else
  { return true;}
}

// --- teste si un bouton radio est selectionne
function RadioIsNotCoche(champ)
{
  noncoche=true;
  nb=eval("document."+formulaire+"."+champ+".length");
    for (i=0; i<nb; i++)
    {
      if (eval("document."+formulaire+"."+champ+"["+i+"].checked")) noncoche=false;
    }
  return noncoche;
}

// --- teste combien de checkbox sont coche dans un serie de checkbox
function BoxCombienCoche(racinechamp, totalchamp)
{
  nb = 0;
  for (i=1; i<=totalchamp; i++)
  {
    if (eval("document."+formulaire+"."+racinechamp+i+".checked") == true)  nb=nb+1;
  }
  return nb;
}

// --- supplement pour que pas plus de x entrees dans une serie de cases &agrave; cocher
// --- nb est le nb de case coche dans la serie
//  function texte()
//  {
//	var nb = 0
//	var stopper = 0
//	for (i=1; i<=4; i++)
//	{
//	  if (eval("document.formulaire.nature" + i + ".checked") == true)
//     {
//        nb = nb + 1
//      }
//	}
//
//    if (nb > 2)
//    {
//      if (document.formulaire.nature1.checked == true)
//      { document.formulaire.nature1.checked = false }
//      else
//      {
//        if (document.formulaire.nature2.checked == true)
//        { document.formulaire.nature2.checked = false }
//      }
//    }
//  }


// --- verifie si la date est valide
function IsDateValide(annee, mois, jour)
{
  bi = (annee%400==0 || (annee%4==0 && annee%100!=0));
  if ( ( mois == 1 || mois == 3 || mois == 5 || mois == 7 || mois == 8 || mois == 10 || mois == 12 ) && jour >= 1 && jour <= 31)
    { correct = true;}
    else
    {
	  if ( ( mois == 4 || mois == 6 || mois == 9 || mois == 11 ) && jour >= 1 && jour <= 30)
	  { correct = true;}
	  else
	  {
		if (bi)
		{ correct = ( jour >= 1 && jour <= 29 && mois == 2);}
		else
		{ correct = ( jour >= 1 && jour <= 28 && mois == 2);}
	  }
	}
  return correct;  
}


AlphaChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
NumChars = "0123456789";
AlphaNumChars = AlphaChars + NumChars;
HexaChars = "ABCDEFabcdef";
// verifie si la chaine est numerique
		function IsNumeric(Data) {
			var It = true;
			var c;
			for (var x = 0; x < Data.length; x++)
				if (It) {
					c = Data.charAt(x);
					It = ( NumChars.indexOf(c) != -1);
				}
			return It;
		}
// verifie si la chaine est alphanumerique
		function IsAlphaNum(Data) {
			var It = true;
			var c;
			for (var x = 0; x < Data.length; x++)
				if (It) {
					c = Data.charAt(x);
					It = ( AlphaNumChars.indexOf(c) != -1);
				}
			return It;
		}
// verifie si la chaine est decimale
		function IsDecimal(Data) {
			var It = true;
			var virgule = false;
			var c;
			c = Data.charAt(0);	
			It = ( (NumChars.indexOf(c) != -1) || (c == "+") || (c=="-") );
			for (var x = 1; x < Data.length; x++)
				if (It) {
					c = Data.charAt(x);
					if ( (c==".") || (c == ",") )
						if (virgule) 
							It = false;
						else {
							It = true;
							virgule = true;
						}
					else
						It = (NumChars.indexOf(c) != -1);
				}
			return It;
		}
// verifie si la chaine est alphabetique
		function IsAlpha(Data) {
			var It = true;
			var c;
			for (var x = 0; x < Data.length; x++)
				if (It) {
					c = Data.charAt(x);
					It = ( AlphaChars.indexOf(c) != -1);
				}
			return It;
		}


