//CONVALIDA NUMERI
// optional= 1 il campo può essere lasciato libero-- IsNumber(entered,alertbox,optional)
//CONVALIDA E-MAIL--IsEmail(entered, alertbox)
//CONVALIDA QUALSIASI VALORE--IsEmpty(entered, alertbox)
//CONVALIDA COMBO BOX --IsComboSelected(entered, alertbox)
//CONVALIDA CHECK BOX --IsCheckSelected(entered, alertbox)
//CONVALIDA FILE FIELD(type è il tipo di file)--IsExt(entered,type,alertbox,optional)
//CONTROLLA SE UNA STRINGA CONTIENE
//NUMERI E SIA DI UNA CERTA LUNGHEZZA(es.2 numeri)-- IsNumberLength(entered,StringLength,alertbox)
//CONVALIDA CODICE FISCALE --IsFiscalCode(entered,alertbox)
//CONTROLLA CHE UNA STRINGA SIA DI
//LUNGHEZZA MINIMA --IsLengthString(entered,MinLen,alertbox)
//CONTROLLA CHE LA PASSWORD DEL BOX CONFERMA SIA
//UGUALE A QUELLA DIGITATA NEL BOX PASSWORD
//myPass é il nome del campo ridigita password --IsOkPass(entered,myPass,alertbox)
//CONTROLLA se la valuta Euro é stata 
//introdotta correttamente--IsEuro(entered,alertbox)

function trim(mystr){
  var i = 0;
  mystr=mystr+" "
  while (mystr.charAt(i)==" ") {i++;}
  mystr=mystr.substring(i,mystr.length)
  i = mystr.length-1
  while (mystr.charAt(i)==" ") {i--;}
  mystr=mystr.substring(0,i+1)
  return (mystr)
}

//validazione Euro
function IsEuroOrFree(entered,alertbox)
{

var numStr="0123456789,";
var thisChar; 
var counter = 0; 
var punto = 0;
var pos = 0;
var DecCifre;
with (entered)
{
value=trim(value);
if (value==null || value=="")
 {
 //il campo può essere omesso
  return true;
  } 
else 
{
for (var i=0; i < value.length; i++) { 
     thisChar = value.substring(i, i+1); 
     //la prima cifra non può essere 0
     if( thisChar == "0" && i == 0)
     {
     alert(alertbox);
     return false;
     }
     //controllo se il carattere é un punto
     if (thisChar== ",")
     {
     if (i == 0 || i == (value.length-1))
       {
       alert(alertbox);
       return false;
       }
     else
       {
       pos=i
       punto ++;
       }
     }
    if (numStr.indexOf(thisChar) != -1) 
      counter ++; 
  } 
//la valuta non può contenere più di un punto
    if (punto == 2)
      {
      alert(alertbox);
      return false;
      }
   //le cifre decimali non possono essere più di due
   if (punto == 1)
      {
      DecCifre=value.substring(pos+1,value.length); 
        if (DecCifre.length > 2)
         {
          alert(alertbox);
          return false;
         }
      }


if (counter == value.length)
   return(true); 
else 
  alert(alertbox);
  return(false); 
}
} 
}

//validazione Euro
function IsEuro(entered,alertbox)
{

var numStr="0123456789,";
var thisChar; 
var counter = 0; 
var punto = 0;
var pos = 0;
var DecCifre;
with (entered)
{
value=trim(value);
if (value==null || value=="")
 {
  alert(alertbox);
  return false;
  } 
else 
{
for (var i=0; i < value.length; i++) { 
     thisChar = value.substring(i, i+1); 
     //la prima cifra non può essere 0
     if( thisChar == "0" && i == 0)
     {
     alert(alertbox);
     return false;
     }
     //controllo se il carattere é un punto
     if (thisChar== ",")
     {
     if (i == 0 || i == (value.length-1))
       {
       alert(alertbox);
       return false;
       }
     else
       {
       pos=i
       punto ++;
       }
     }
    if (numStr.indexOf(thisChar) != -1) 
      counter ++; 
  } 
//la valuta non può contenere più di un punto
    if (punto == 2)
      {
      alert(alertbox);
      return false;
      }
   //le cifre decimali non possono essere più di due
   if (punto == 1)
      {
      DecCifre=value.substring(pos+1,value.length); 
        if (DecCifre.length > 2)
         {
          alert(alertbox);
          return false;
         }
      }


if (counter == value.length)
   return(true); 
else 
  alert(alertbox);
  return(false); 
}
} 
}
//validazione numeri
function IsNumber(entered,alertbox,optional)
{

var numStr="0123456789";
var thisChar; 
var counter = 0; 
with (entered)
{
//se optional=1 il campo può anche essere lasciato vuoto

if (optional==1 && value.length==0)
 {
 return true;
 }
if (value==null || value=="")
 {
  alert(alertbox);
  return false;
  } 
else 
for (var i=0; i < value.length; i++) { 
     thisChar = value.substring(i, i+1); 
     
     if (numStr.indexOf(thisChar) != -1) 
      counter ++; 
  } 
if (counter == value.length)
   return(true); 
else 
  alert(alertbox);
  return(false); 
} 
}
//validazione-stringa lunghezza minima
function IsLengthString(entered,MinLen,alertbox)
{
with (entered)
{
if (value==null || value=="" || value.length < MinLen)
 {
  alert(alertbox);
  return false;
  } 
  else
  {return true;
  }
}
}

//validazione-email
function IsEmail(entered, alertbox)
{
with (entered)
{
if (value==null || value=="")
 {
  alert(alertbox);
  return false;
  } 
else 
apos=value.indexOf("@");
dotpos=value.lastIndexOf(".");
lastpos=value.length-1;
if (apos<1 || dotpos-apos<2 || lastpos-dotpos>3 || lastpos-dotpos<2) 
{if (alertbox) {alert(alertbox);} return false;}
else {return true;}
}
}


//controlla se un campo é vuoto
function IsEmpty(entered, alertbox)
{
with (entered)
{
if (value==null || value=="")
{if (alertbox!="") {alert(alertbox);} return false;}
else {return true;}
}
}

//controlla se un combo box non ha selezione
function IsComboSelected(entered, alertbox)
{
with (entered)
{
var selIx= selectedIndex;
var selText=options[selIx].text;
if (selText=="") {
 alert(alertbox);
 return false;
 }
 else {
 return true;
 }

}
}

//controlla se un check box sia selezionato
function IsCheckSelected(entered, alertbox)
{
with (entered)
{

if( checked) {
 return true;
 
 }
 else {
 alert(alertbox);
 return false;
 }

}
}
//controlla se un campo contiene numeri e di una certa lunghezza
//ATTENZIONE TRE PARAMETRI
function IsNumberLength(entered,StringLength,alertbox)
{
var numStr="0123456789";
var thisChar; 
var counter = 0; 
with (entered)
{

for (var i=0; i < value.length; i++) { 
     thisChar = value.substring(i, i+1); 
     
     if (numStr.indexOf(thisChar) != -1) 
      counter ++; 
  } 
if (counter == value.length && value.length == StringLength){
   return(true); }
else {
  alert(alertbox);
  return(false); }
} 
}

//controlla che un campo abbia almeno un valore minimo di caratteri
//inseriti
//ATTENZIONE TRE PARAMETRI
function IsMinimumLength(entered,minValue,alertbox)
{
var numStr="0123456789";
var thisChar; 
var counter = 0; 
with (entered)
{

for (var i=0; i < value.length; i++) { 
     thisChar = value.substring(i, i+1); 
     
     if (numStr.indexOf(thisChar) != -1) 
      counter ++; 
  } 
if (counter == value.length && value.length > minValue ){
   return(true); }
else {
  alert(alertbox);
  return(false); }
} 
}
//controlla che il  tipo di file in un controllo file
//ATTENZIONE TRE PARAMETRI

function IsExt(entered,mytype,alertbox,optional)
{
with (entered)
{
//se optional=1 il campo può anche essere lasciato vuoto

if (optional==1 && value.length==0)
 {
 return true;
 }
 
if (value==null || value=="")
 {
 alert(alertbox);
 return false; 
 }
else
{
 var thisChar; 
 var counter = 0; 
 var init=(value.length)-4;
 var myExt="";
 myExt=value.substring(init,value.length); 

  if (myExt == mytype)
   return(true); 
  else 
   alert(alertbox);
  return(false); 
}
} 
}
//tipo jpeg o jpg o vuot
//FUNCTION IsMOV

function IsMOV(entered,alertbox,optional)
{
with (entered)
{
//se optional=1 il campo può anche essere lasciato vuoto

if (optional==1 && value.length==0)
 {
 return true;
 }
 
if (value==null || value=="")
 {
 alert(alertbox);
 return false; 
 }
else
{
 var thisChar; 
 var counter = 0; 
 var init=(value.length)-4;
 var myExt="";
 myExt=value.substring(init,value.length); 

  if (myExt == '.mov')
   return(true); 
  else 
   alert(alertbox);
  return(false); 
}
} 
}
//tipo jpeg o jpg o vuot
//FUNCTION IsJpg

function IsFoto(entered,alertbox,optional)
{
with (entered)
{
//se optional=1 il campo può anche essere lasciato vuoto

if (optional==1 && value.length==0)
 {
 return true;
 }
var tmp1=value.indexOf(".");
var tmp2=value.lastIndexOf(".");
 
//c'è piu' di un punto nel nome del file
if(tmp1 < tmp2) { 
 alert("Il nome del file deve contenere solo un punto");
 return false; 
}
if (value==null || value=="")
 {
 alert(alertbox);
 return false; 
 }
else
{
 var thisChar; 
 var counter = 0; 
 var init=(value.length)-4;
 var myExt="";
 //controllare che non contenga più di un punto
 myExt=value.substring(init,value.length); 

  if (myExt == '.jpg' || myExt == 'jpeg' || myExt == 'JPEG' || myExt == '.JPG' || myExt == '.GIF' || myExt == '.gif')
   return(true); 
  else 
   alert(alertbox);
  return(false); 
}
} 
}
//validazione del confronto PASSWORD
function IsOkPass(entered,myPass,alertbox)
{
var Pwd = myPass.value;
with (entered)
{

if (value==null || value=="" || value != Pwd )
 {
  alert(alertbox);
  return false;
  } 
 else
 {
 return true;
 }
}
}

function getmese(mese){
  switch(mese)
      {
        case "gennaio": mymonth ="01";
          break;
case "febbraio": mymonth ="02";
          break;
case "marzo": mymonth ="03";
          break;
case "aprile": mymonth ="04";
          break;
case "maggio": mymonth ="05";
          break;
case "giugno": mymonth ="06";
          break;
case "luglio": mymonth ="07";
          break;
case "agosto": mymonth ="08";
          break;
case "settembre": mymonth ="09";
          break;
case "ottobre": mymonth ="10";
          break;
case "novembre": mymonth ="11";
          break;
case "dicembre": mymonth ="12";
          break;
    
       }
return (mymonth);
}

function isValidDate(dateStr) {
// Date validation function courtesty of 
// Sandeep V. Tamhankar (stamhankar@hotmail.com) -->

// Checks for the following valid date formats:
// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year

var matchArray = dateStr.match(datePat); // is the format ok?
if (matchArray == null) {
alert(dateStr + " Date is not in a valid format.")
return false;
}
month = matchArray[1]; // parse date into variables
day = matchArray[3];
year = matchArray[4];
if (month < 1 || month > 12) { // check month range
alert("Month must be between 1 and 12.");
return false;
}
if (day < 1 || day > 31) {
alert("Day must be between 1 and 31.");
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert("Month "+month+" doesn't have 31 days!")
return false;
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
alert("February " + year + " doesn't have " + day + " days!");
return false;
   }
}
return true;
}

function isValidTime(timeStr) {
// Time validation function courtesty of 
// Sandeep V. Tamhankar (stamhankar@hotmail.com) -->

// Checks if time is in HH:MM:SS AM/PM format.
// The seconds and AM/PM are optional.

var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;

var matchArray = timeStr.match(timePat);
if (matchArray == null) {
alert("Time is not in a valid format.");
return false;
}
hour = matchArray[1];
minute = matchArray[2];
second = matchArray[4];
ampm = matchArray[6];

if (second=="") { second = null; }
if (ampm=="") { ampm = null }

if (hour < 0  || hour > 23) {
alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
return false;
}
if (hour <= 12 && ampm == null) {
if (confirm("Please indicate which time format you are using.  OK = Standard Time, CANCEL = Military Time")) {
alert("You must specify AM or PM.");
return false;
   }
}
if  (hour > 12 && ampm != null) {
alert("You can't specify AM or PM for military time.");
return false;
}
if (minute < 0 || minute > 59) {
alert ("Minute must be between 0 and 59.");
return false;
}
if (second != null && (second < 0 || second > 59)) {
alert ("Second must be between 0 and 59.");
return false;
}
return true;
}

