 if (window.Event) /* Pour netscape 4 */
  {
    document.captureEvents(Event.KEYPRESS);
  }
function autoTab(obj,nextobj,mlength)
  {
    if(!mlength)
      {
        mlength = obj.size;
      }
    if(obj.value.length>=mlength)
      {
        obj.value = obj.value.substr(0,mlength);
	      nextobj.focus();
	    }
  }

/* -----------------------------------------------------------------------------------------*/

function checkField(fieldToCheck, fieldSize)
  {
    if (CheckEuro(fieldToCheck, fieldSize)=="error")
      {
        fieldToCheck.value='';
        return false;
      }
    Remplir(fieldToCheck, fieldSize,'G','0');
    return true;
  }

function Remplir(Objet,Taille,Position,Caract)
  {
    var tmp="" ;
    var strVal = Objet.value ;
    if (Position=='D')
      {
        for (i=strVal.length; i<Taille; i++)
        Objet.value =Objet.value+ Caract ;
      }
    else
      {
        for (i=strVal.length; i<Taille; i++) tmp=tmp+Caract ;
        Objet.value =tmp+Objet.value ;
      }
  }

/* -----------------------------------------------------------------------------------------*/


function CheckTodayPlusOne (Today)
  {

    /* Today - Birthday / 10000 = Age (Millenium+Year in two digits+month+day) */

    Fetch = new Date()
    month = Fetch.getMonth()
    month = (month * 1) + 1
    day = Fetch.getDate()
    year = Fetch.getYear()
    if (year<=200) year=year+1900;
    if (month.length==1) month="0"+month;
    if (day.length==1) day="0"+month;
    var ActualDate= "2"+year+month+day;
    if (Today < ActualDate) return("error");
    else return("ok");
  }

/* -----------------------------------------------------------------------------------------*/

function Scan(string,caracter)
  {
    var temp;
    var i=0;
    var car="e";

    if (string=="") return(true);

    temp=string;
    j=string.length;

    for(i=0;i<j;i++)
      {
        car=temp.substring(i,i+1);
        if (car==caracter) return(i);
      }

    return(-1);
  }

/* -----------------------------------------------------------------------------------------*/

function IsAllSpaces(string)
  {
    var i=0;
    var j=string.length;
    for(i=0;i<j;i++)
      {
        var car=string.substring(i,i+1);
        if (car!=" ") return false;
      }
   return true;
  }

/* -----------------------------------------------------------------------------------------*/

function IsAlphabetic(string)
  {
    var temp;
    var i=0;
    var j=0;
    var signfound=false;
    var alwaysspace=true;
    var OK=true;
    var OKtemp=false;
    var car="e";
    tabl = new Array(11);

    tabl[1]=" ";
    tabl[2]="0";
    tabl[3]="1";
    tabl[4]="2";
    tabl[5]="3";
    tabl[6]="4";
    tabl[7]="5";
    tabl[8]="6";
    tabl[9]="7";
    tabl[10]="8";
    tabl[11]="9";
    tabl[12]="+";
    tabl[13]="-";

    if (string=="") return(true);

    temp=string;
    j=string.length;

    for(i=0;i<j;i++)
      {
        car=temp.substring(i,i+1);
        OKtemp= false;
        prem=1;
        for (k=1;((signfound==false && k<=13)||(signfound=true && k<=11));k++)
          {
            if (car==tabl[k])
              {
                if (k!=1) alwaysspace=false;
                if (k>11) signfound=true;
                OKtemp=true;
                break;
              }
          }
        Ok=OKtemp;
        if (OKtemp==false)
          {
            return(true);
          }
      }
    return(alwaysspace);
  }

/* -----------------------------------------------------------------------------------------*/

function IsInteger(valeur,minimum,maximum)
  {
    var intVal=parseInt(valeur);
    if (IsAlphabetic(valeur)) return false;
    if (minimum!="") var minVal=parseInt(minimum);
    if (maximum!="") var maxVal=parseInt(maximum);
    if (minimum!="" && maximum!="")
      {
        if (minVal < intVal && intVal < maxVal) return(true);
        else return(false);
      }
    if (minimum!="")
      if (minVal < intVal) return(true);
    if (maximum!="")
      if (intVal < maxVal) return(true);
    if (minimum=="" && maximum=="") return(true);

    return(false);
  }

/* -----------------------------------------------------------------------------------------*/

function IsNumber(valeur,NbChiffres,NbDecimales)
  {
    var decimalesOK=false;
    var chiffresOK=false;
    if (NbChiffres<NbDecimales) return(false);

    var valeur2=valeur;
    var PosEnd=Scan(valeur," ");
    if (PosEnd!=-1)
      {
        valeur2=valeur.substring(0,PosEnd);
        var temp= valeur.substring(PosEnd,valeur.length);
        if (!IsAllSpaces(temp)) return(false);
      }

    var PosPoint=Scan(valeur2,".");
    if (NbDecimales==0 && PosPoint==-1)
      {
        decimalesOK=true;
        var chiffres=valeur2;
      }
    else
      {
        if (NbDecimales==0 && PosPoint!=-1) decimalesOK=false;
        else
          {
            var decimales=valeur2.substring(PosPoint+1,valeur2.length);
            if ((IsInteger(decimales,"","")) && (decimales.length==NbDecimales)
                && (Scan(decimales,"+")==-1) && (Scan(decimales,"-")==-1))
            decimalesOK=true;
          }
        var chiffres=valeur2.substring(0,PosPoint);
      }
    if (IsInteger(chiffres,"",""))
      {
        var car=chiffres.substring(0,1);
        var fin=chiffres.substring(1,chiffres.length);
        if ((Scan(fin,"+")==-1) && (Scan(fin,"-")==-1))
          {
            if ((car=="+") || (car=="-"))
              chiffresOK =((chiffres.length-1)==(NbChiffres-NbDecimales));
            else
              chiffresOK =(chiffres.length==(NbChiffres-NbDecimales));
          }
      }
    return((decimalesOK==true)&&(chiffresOK==true));
  }

/* -----------------------------------------------------------------------------------------*/

function IsStructured(string)
  {
    var temp;
    var module;
    var chiffre;
    temp=string;
    if (temp.length!=12) return(false);
    chiffre = temp.substring(0,10);
    module = temp.substring(10,12);
    if (module == 97) module=00;
    if (chiffre % 97 == module)
    return(true);
  }

/* -----------------------------------------------------------------------------------------*/

function IsNumeroNational(string)
  {
    var temp;
    var module;
    var chiffre;
    temp=string;
    if (temp.length!=11) return(false);
    chiffre = temp.substring(0,9);
    module = temp.substring(9,11);
    if (chiffre % 97 == (97-module)) return(true);
  }

/* -----------------------------------------------------------------------------------------*/

function IsDateValid(string)
  {
    var temp;
    var day;
    var month;
    var year;
    var day2;
    var month2;
    var year2;
    var tabl = new Array(12);

    tabl[1]="31";
    tabl[2]="29";
    tabl[3]="31";
    tabl[4]="30";
    tabl[5]="31";
    tabl[6]="30";
    tabl[7]="31";
    tabl[8]="31";
    tabl[9]="30";
    tabl[10]="31";
    tabl[11]="30";
    tabl[12]="31";

    temp=string;
    if (temp.length!=10) return(false);
    if (temp.charAt(2)!='/') return(false);
    if (temp.charAt(5)!='/') return(false);

    day=temp.substring(0,temp.indexOf("/"));
    temp=temp.substring(temp.indexOf("/")+1,temp.length);
    month=temp.substring(0,temp.indexOf("/"));
    temp=temp.substring(temp.indexOf("/")+1,temp.length);
    year=temp.substring(0,temp.length);

    if (day.substring(0,1)=="0") day=day.substring(1,2);
    if (month.substring(0,1)=="0") month=month.substring(1,2);

    if (!IsInteger(day,"","")) return(false);
    if (!IsInteger(month,"","")) return(false);
    if (!IsInteger(year,"","")) return(false);

    day2=parseInt(day);
    month2=parseInt(month);
    year2=parseInt(year);

    if ((month2<1) || (month2>12)) return(false);
    if ((year2<1900) || (year2>2099)) return(false);

    if ((year2 % 4) == 0) tabl[2]=29;
    else tabl[2]=28;

    if ((day2<1) || (day2>tabl[month2])) return(false);
    return(true);
  }

/* -----------------------------------------------------------------------------------------*/

function IsTimeValid(string)
  {
    var temp;
    var hour;
    var min;
    var sec;
    var hour2;
    var min2;
    var sec2;

    temp=string;
    if (temp.length!=8) return(false);
    if (temp.charAt(2)!=':') return(false);
    if (temp.charAt(5)!=':') return(false);

    hour=temp.substring(0,temp.indexOf(":"));
    temp=temp.substring(temp.indexOf(":")+1,temp.length);
    min=temp.substring(0,temp.indexOf(":"));
    temp=temp.substring(temp.indexOf(":")+1,temp.length);
    sec=temp.substring(0,temp.length);

    if (!IsNumber(hour,2,0))
      return(false);
    if (!IsNumber(min,2,0))
      return(false);
    if (!IsNumber(sec,2,0))
      return(false);

    if (!IsInteger(hour,"","")) return(false);
    if (!IsInteger(min,"","")) return(false);
    if (!IsInteger(sec,"","")) return(false);

    hour2=parseInt(hour);
    min2=parseInt(min);
    sec2=parseInt(sec);

    if ((hour2<0) || (hour2>23)) return(false);
    if ((min2<0) || (min2>59)) return(false);
    if ((sec2<0) || (sec2>59)) return(false);
    return(true);
  }

/* -----------------------------------------------------------------------------------------*/

function CheckEuro(ZoneName, ZoneLength, SendType)
  {
    var Element = new Array(12)
      Element[0] = "0";
      Element[1] = "1";
      Element[2] = "2";
      Element[3] = "3";
      Element[4] = "4";
      Element[5] = "5";
      Element[6] = "6";
      Element[7] = "7";
      Element[8] = "8";
      Element[9] = "9";
      Element[10] = "-";
      Element[11] = ",";
      Element[12] = ".";
    var Car      = "";
    var tmp      = "";
    var StrOk    = "";
    var Negative = 0;
    var Comma    = 0;
    var temp     = 0;

    if (ZoneName.value=="") return("0,00");

    for (var i=0; i<ZoneName.value.length; i++)
      {
        Car = ZoneName.value.substring(i,i+1);
        if (ZoneName.value.substring(i,i+1)=="-") Negative = Negative + 1;
        if (ZoneName.value.substring(i,i+1)==",") Comma = Comma + 1;
        if (ZoneName.value.substring(i,i+1)==".") Comma = Comma + 1;
        for (var counter=0; (counter<13); counter++)
          {
            if (Car == Element[counter]) tmp = tmp + "Y";
          }
        StrOk = StrOk + "Y";
      }

    if ((StrOk != tmp)||(Negative > 1)||(Comma > 1))
      {
        alert ("La zone n\'est pas numérique ! \n" +
               "Veuillez vérifier s\'il ny a pas des blancs dans la zone s.v.p.");
        ZoneName.focus();
        return("error");
      }

    if ((Negative==1)&&(ZoneName.value.substring(0,1)!="-"))
      {
        alert ("Le caractère \' - \' ne se retrouve pas sur la bonne endroit \n" +
               "Veuillez vérifier le montant s.v.p.");
        ZoneName.focus();
        return("error");
      }

    if (Comma==0)
      {
        if (ZoneName.value.length > ZoneLength-3)
          {
            alert("Le montant en euro est trop grand. \n Veuillez introduire un maximum de " + ZoneLength-3 + " chiffres s.v.p.");
            ZoneName.focus();
            return("error");
          }
        if (ZoneName.value == "") ZoneName.value = "";
        else ZoneName.value = ZoneName.value + ",00";
      }

    if (Comma==1)
      {
        var part1=ZoneName.value.substring(0, ZoneName.value.length-3);
        var part2=ZoneName.value.substring(ZoneName.value.length-2,ZoneName.value.length);
        ZoneName.value=part1+","+part2
      }

    /******************************/
    /* In case of a SendType = L  */
    /* don't forget to delete the */
    /* function "Remplir"         */
    /******************************/

    if (SendType=="L")
      {
        if (ZoneName.value.length==ZoneLength)
          {
            return(ZoneName.value)
          }
        else
          {
            var whitespace = ZoneLength-ZoneName.value.length;
            var ValidatedField = ZoneName.value + "[_" + whitespace + "]";
            return (ValidatedField);
          }
      }
    else return(ZoneName.value)
  }

// ----------------------------------
// isInt (s [,eok])
// ----------------------------------
// Retourne true si tous les caractères du champ en entrée sont des chiffres.
function isInt (s) {
  var i;

	if(s.length==0) {
		if(isInt.arguments.length == 1) {
     	return (false);
		} else {
			return (isInt.arguments[1] == true);
		}
	}

  for (i = 0; i < s.length; i++) {
	  var c = s.charAt(i);
	  if((c < "0") || (c > "9")) return (false);
  }

  return (true);
}
