//**************************
// Validità Data
//**************************
function TestData (Ctrl)
 {
  var err=0;
  var psj=0;
  a=Ctrl.value

  // Lunghezza deve essere 10 bytes	
  if (a.length != 10) err=1

  // Giorno
  d = a.substring(0, 2)//day

  // prima '/'
  c = a.substring(2, 3)// '/'

  // Mese
  b = a.substring(3, 5)// month

  // seconda '/'
  e = a.substring(5, 6)// '/'

  // Anno di 4 cifre
  f = a.substring(6, 10)// year

  //Mesi da 1 a 12
  if (b<1 || b>12) err = 1

  // Posizione della 1 barra
  if (c != '/') err = 1

  // Giorni in generale da 1 a 31
  if (d<1 || d>31) err = 1

  // Posizione della 2 barra
  if (e != '/') err = 1
	
  // Range dell'anno
  if (f<1800 || f>2100) err = 1
	
  // Mesi con 30 giorni
  if (b==4 || b==6 || b==9 || b==11)
   {
    if (d > 30) err=1
   }

  // Febbraio (Bisestile)
  if (b==2)
   {
    // feb
    var g=parseInt(f/4)
    if (isNaN(g)) 
     {
      err=1
     }

    // Maggior di 29 NO
    if (d>29) err=1

    // Bisestile
    if (d==29 && ((f/4)!=parseInt(f/4))) err=1
   }
  if (err==1)
   {
    window.status ="Inserisci la data nella forma gg/mm/aaaa";
    alert ("Inserisci la data nella forma gg/mm/aaaa");
    window.status ="";
    Ctrl.focus();
    return (false);
   }
  else
   return (true);   
 }

//**************************
// Validità Ora
//**************************
function TestOra (Ctrl)
 {
  var err=0;
  a=Ctrl.value

  // Lunghezza deve essere 5 bytes	
  if (a.length != 5) err=1

  // Ora
  b = a.substring(0, 2)  

  //  'Separatore :'
  c = a.substring(2, 3)

  // Minuti
  d = a.substring(3, 5)  

  //Ora da 0 a 23
  if (b<0 || b>23) err = 1

  //Minuti da 0 a 59
  if (d<0 || d>59) err = 1

  if (err==1)
   {
    alert ("Inserisci l' orario nella forma hh:mm");
    Ctrl.focus();
    return (false);
   }
  else
   return (true);   
 }

//**************************
// Validità E-mail
//**************************
function TestEmail (Ctrl)
 {
  if (Ctrl.value == "")
   {alert ("Inserire l'e-mail!");
    Ctrl.focus();
    return (false);
   }
    
  //deve esserci una sola @
  pos=Ctrl.value.indexOf('@', 0)
  if (pos == 0)
   {alert ("Inserire correttamente l'e-mail!");
    Ctrl.focus();
    return (false);
   }

  if (pos == -1) 
   {alert ("Inserire correttamente l'e-mail!");
    Ctrl.focus();
    return (false);
   }
  else
   {if (Ctrl.value.indexOf('@', pos+1) != -1)
    {alert ("Inserire correttamente l'e-mail!");
     Ctrl.focus();
     return (false);
    }
   }

  //devono esserci almeno 4 caratteri dopo @
  if (Ctrl.value.substring(pos+1,Ctrl.value.length).length < 4)
   {alert ("Inserire correttamente l'e-mail!");
    Ctrl.focus();
    return (false);
   }

  //deve esserci almeno un . dopo @
  if (Ctrl.value.indexOf('.', pos+1) == -1)      
   {alert ("Inserire correttamente l'e-mail!");
    Ctrl.focus();
    return (false);
   }

  //devono esserci almeno 2 caratteri dopo .
  pos=Ctrl.value.indexOf('.', pos+1);
  if (Ctrl.value.substring(pos+1,Ctrl.value.length).length < 2)
   {alert ("Inserire correttamente l'e-mail!");
    Ctrl.focus();
    return (false);
   }

  //caratteri ammessi
  stremail=Ctrl.value.toUpperCase()
  for (var i = 0; i < stremail.length; i++)
   {if (".-_0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(stremail.charAt(i)) == -1) 
    {alert ("Inserire correttamente l'e-mail!");
     Ctrl.focus();
     return (false);
    }
   }
  //Tutto OK
  return (true);   
 }


//**********************
// Validità Campo Empty
//**********************
function TestEmpty (Ctrl,msg)
 {if (Ctrl.value == "")
   {alert (msg);
    Ctrl.focus();
    return (false);
   }
  else
   return (true);   
 }

//**********************
// Validità Campo Numerico
//**********************
function TestNumerico (Ctrl,msg)
 {
  if (Ctrl.value == "") Ctrl.value=0;

  for (var j=0; j<Ctrl.value.length; j++)
    {
     if ("0123456789".indexOf(Ctrl.value.charAt(j)) == -1)
     {
      alert(msg);
      Ctrl.focus();
      return(false);
     }
    }
  return (true);   
 }

//**********************
// Validità Euro
//**********************
function TestEuro (Ctrl)
 {// Prezzo (con decimali)
  
  if ((Ctrl.value == "") || (Ctrl.value == ",")) Ctrl.value="0";
  for (var i = 0; i < Ctrl.value.length; i++)
  {
    if ("0123456789,".indexOf(Ctrl.value.charAt(i)) == -1)
    {
    alert('Indicare un importo valido');
    Ctrl.focus();
    return(false);
    }
  }

  //se c'è deve esserci una sola virgola
  pos=Ctrl.value.indexOf(',', 0)
  if (pos != -1)
   {
    if (Ctrl.value.indexOf('@', pos+1) != -1)
     {alert ("Indicare un importo valido");
      Ctrl.focus();
      return (false);
     }

    //se c'è la virgola due decimali al massimo
    if (Ctrl.value.substring(pos+1,Ctrl.value.length).length > 2)
     {alert ("Indicare un importo valido");
      Ctrl.focus();
      return (false);
     }
   }  

  //l'importo deve essere > 0
  var importo=Ctrl.value.replace(",",".");
  if (importo <= 0)
   {alert ("Indicare un importo maggiore di 0");
    Ctrl.focus();
    return (false);
   }

 //Tutto OK
  return (true);   
 }


