/****************************************
 *  0: testo libero			*
 *  1: numero intero			*
 *  2: data				*
 *  3: ora				*
 *  4: combo box di valori numerici	*
 *  5: combo box di stringhe		*
 *  6: email		*
 ****************************************/
function check(valore,richiesto,tipo,max,min) {
 if (richiesto==1) {
 	switch(tipo) {
 	case 0:
 	case 1:
 	case 2:
 	case 3: if (valore.length<1) return "SYS100";
 	   break;
 	case 4: try{
 	         if (valore.options[valore.selectedIndex].value==-1) return "SYS100";
 	        }
 	        catch(e) {return "SYS100";}
 	   break;
 	case 5: try{
 	         if (valore.options[valore.selectedIndex].value=="") return "SYS100";
 	        }
 	        catch(e) {return "SYS100";}
 	   break;
 	}
 }
 switch(tipo) {
  case 1: //numero intero
   if (isNaN(valore)) return "SYS101";
   if (valore==-1 || (""+parseInt(valore))!=valore) return "SYS101";
   if ((!isNaN(min))&&(parseInt(valore)<parseInt(min))) return "SYS103";
   if ((!isNaN(max))&&(parseInt(valore)>parseInt(max))) return "SYS104";
   break;
  case 2: //data
   if (valore.length != 10) return "SYS102";
   datag = parseInt(valore.substring(0,2),10);
   datam = parseInt(valore.substring(3,5),10);
   dataa = parseInt(valore.substring(6,10),10);
   if ((isNaN(datag))||(isNaN(datam))||(isNaN(dataa))||(datam<1)||(datam>12)) return "SYS102";
   lm = new MakeArray(12);
   lm[1] = 31; lm[2] = 28; lm[3] = 31; lm[4] = 30; lm[5] = 31; lm[6] = 30;
   lm[7] = 31; lm[8] = 31; lm[9] = 30; lm[10] = 31; lm[11] = 30; lm[12] = 31;
   if (dataa % 4 == 0) lm[2] = 29;
   if (datag < 1 || datag > lm[datam]) return "SYS102";
   dataInserita = new Date(dataa,datam-1,datag);
   if ((max.toString().length>0)&&(dataInserita.getTime()>max.getTime())) return "SYS104";
   if ((min.toString().length>0)&&(dataInserita.getTime()<min.getTime())) return "SYS103";
   break;
/*  case 3: //ora
   if ((isNaN(valore))||(isNaN(mese))) return false;
   oraInt = parseInt(valore.substring(0,2));
   minutiInt = parseInt(valore.substring(4,6));
   if (! ((valore.length!=0 && mese.length!=0)||
          (valore.length==0 && mese.length==0)) ) return false;
   if ((oraInt<0)||(oraInt>24)||(minutiInt<0)||(minutiInt>59)) return false;
   if ((!isNaN(min))&&((oraInt*60+minutiInt)<parseInt(min))) return false;
   if ((!isNaN(max))&&((oraInt*60+minutiInt)>parseInt(max))) return false;
   break; */
 }
 return "";
}
function MakeArray(n) { 
 this.length = n;
 for (var i=1; i<=n; i++) this[i] = 0;
 return this;
} 

function ControllaMail(EmailAddr)
   {
   Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
   if (Filtro.test(EmailAddr))
      return true;
   else
      {
      return false;
      }
   }

function Strip(string) {
 var s_str = string.length;
 for (var i=0; i<string.length; i++) {
  if (" " != string.substring(i,i+1)) {
   s_str = i;
   break;
  }
 }
 if (s_str == string.length) return "";
 for (i=string.length-1; i>=0; i--) {
  if (" " != string.substring(i,i+1)) {
   var s_end = i;
   break;
  }
 }
 return string.substring(s_str,s_end+1);
}

function StripLeading0(string) {
 var s_str = string.length;
 for (var i=0; i<string.length; i++) {
  if ("0" != string.substring(i,i+1)) {
   s_str = i;
   break;
  }
 }
 if (s_str == string.length) return "";
 return string.substring(s_str,string.length);
}