//ELIMINA SPAZI
function Trim(mytext)
{
  mytext.value=mytext.value.replace(/ *\n */g,'\n').replace(/ *\r */g,'\r').replace(/^ */g,'').replace(/ *$/g,'').replace(/(\r\n)*$/g,"")
}

//CONTROLLA CAMPO NUMERICO  
function ControlloNumerico(mytext, name, bCk)
{ 
   if (mytext.value.match(/\D/)) {
      alert("Il campo ''" + name + "'' deve essere numerico.  ");
      mytext.focus();	  
      return false}
   else
   	if (bCk==false) {
   	   if (parseInt(mytext.value)==0) {
           alert("Il campo ''" + name + "'' deve essere un valore positivo.  ") 
           mytext.focus(); 
           return false}
    }	

    return true	  
}

//TORNA INDIETRO DI 1 PAG.
function TornaIndietro(){
	window.history.back(-1);
}

//CONTROLLA CAMPO OBBLIGATORIO
function ControlloObbligatorio(mytext, name)
{ 
   mytext.value=mytext.value.replace(/ *\n */g,'\n').replace(/ *\r */g,'\r').replace(/^ */g,'').replace(/ *$/g,'').replace(/(\r\n)*$/g,"")
   if (mytext.value=="") {
      alert(name+"     ");
      mytext.focus();	  
      return false}
   else
    return true	  

}


//CONTROLLO CODICE FISCALE

function ControlloCF(mytext)
{
 var somma=0
 var chrcontrollo
 mytext.value=mytext.value.toUpperCase()
 strCodFis=mytext.value
 if (mytext.value==""){return true}

 if (strCodFis.length!=16) 
  {
   alert("Il codice fiscale deve contenere 16 caratteri.  ");
   mytext.focus();
   return false;
  }
 // calcola la cifra di controllo
 //--------------------------------------------
    for (var i=0; i<15; i++) 
       {
        if (((i+1) % 2) != 0) //caratteri dispari
          {
           switch (strCodFis.charAt(i)) 
                 {
                  case '0':
                  case 'A':{ somma += 1; break;}
                  case '1':
                  case 'B':{ somma += 0; break;}
                  case '2':
                  case 'C':{ somma += 5; break;}
                  case '3':
                  case 'D':{ somma += 7; break;}
                  case '4':
                  case 'E':{ somma += 9; break;}
                  case '5':
                  case 'F':{ somma += 13; break;}
                  case '6':
                  case 'G':{ somma += 15; break;}
                  case '7':
                  case 'H':{ somma += 17; break;}
                  case '8':
                  case 'I':{ somma += 19; break;}
                  case '9':
                  case 'J':{ somma += 21; break;}
                  case 'K':{ somma += 2; break;}
                  case 'L':{ somma += 4; break;}
                  case 'M':{ somma += 18; break;}
                  case 'N':{ somma += 20; break;}
                  case 'O':{ somma += 11; break;}
                  case 'P':{ somma += 3; break;}
                  case 'Q':{ somma += 6; break;}
                  case 'R':{ somma += 8; break;}
                  case 'S':{ somma += 12; break;}
                  case 'T':{ somma += 14; break;}
                  case 'U':{ somma += 16; break;}
                  case 'V':{ somma += 10; break;}
                  case 'W':{ somma += 22; break;}
                  case 'X':{ somma += 25; break;}
                  case 'Y':{ somma += 24; break;}
                  case 'Z':{ somma += 23; break;}
                 }
          } 
        else //caratteri pari
            {
              switch (strCodFis.charAt(i)) 
                 {
                  case '0':
                  case 'A':{ somma += 0; break;}
                  case '1':
                  case 'B':{ somma += 1; break;}
                  case '2':
                  case 'C':{ somma += 2; break;}
                  case '3':
                  case 'D':{ somma += 3; break;}
                  case '4':
                  case 'E':{ somma += 4; break;}
                  case '5':
                  case 'F':{ somma += 5; break;}
                  case '6':
                  case 'G':{ somma += 6; break;}
                  case '7':
                  case 'H':{ somma += 7; break;}
                  case '8':
                  case 'I':{ somma += 8; break;}
                  case '9':
                  case 'J':{ somma += 9; break;}
                  case 'K':{ somma += 10; break;}
                  case 'L':{ somma += 11; break;}
                  case 'M':{ somma += 12; break;}
                  case 'N':{ somma += 13; break;}
                  case 'O':{ somma += 14; break;}
                  case 'P':{ somma += 15; break;}
                  case 'Q':{ somma += 16; break;}
                  case 'R':{ somma += 17; break;}
                  case 'S':{ somma += 18; break;}
                  case 'T':{ somma += 19; break;}
                  case 'U':{ somma += 20; break;}
                  case 'V':{ somma += 21; break;}
                  case 'W':{ somma += 22; break;}
                  case 'X':{ somma += 23; break;}
                  case 'Y':{ somma += 24; break;}
                  case 'Z':{ somma += 25; break;}
                 }
            }
    }
   somma %= 26;
   switch (somma) 
         {
          case 0: {chrcontrollo='A'; break;}
          case 1: {chrcontrollo='B'; break;}
          case 2: {chrcontrollo='C'; break;}
          case 3: {chrcontrollo='D'; break;}
          case 4: {chrcontrollo='E'; break;}
          case 5: {chrcontrollo='F'; break;}
          case 6: {chrcontrollo='G'; break;}
          case 7: {chrcontrollo='H'; break;}
          case 8: {chrcontrollo='I'; break;}
          case 9: {chrcontrollo='J'; break;}
          case 10: {chrcontrollo='K'; break;}
          case 11: {chrcontrollo='L'; break;}
          case 12: {chrcontrollo='M'; break;}
          case 13: {chrcontrollo='N'; break;}
          case 14: {chrcontrollo='O'; break;}
          case 15: {chrcontrollo='P'; break;}
          case 16: {chrcontrollo='Q'; break;}
          case 17: {chrcontrollo='R'; break;}
          case 18: {chrcontrollo='S'; break;}
          case 19: {chrcontrollo='T'; break;}
          case 20: {chrcontrollo='U'; break;}
          case 21: {chrcontrollo='V'; break;}
          case 22: {chrcontrollo='W'; break;}
          case 23: {chrcontrollo='X'; break;}
          case 24: {chrcontrollo='Y'; break;}
          case 25: {chrcontrollo='Z'; break;}
         }
 //--------------------------------------------
if (chrcontrollo!=strCodFis.charAt(15))
 {
  alert("Il codice fiscale inserito non è corretto.  ");
  mytext.focus();
  return false;
 }

 return true; 
}

//CONTROLLA PARTITA IVA
function ControlloPIVA(mytext)
{

 cCod=mytext.value;
 if (mytext.value==""){return true}

if (cCod=='00000000000')
 {
   alert('La partita iva inserita non è corretta.  ');
   mytext.focus();
   return false;
 }
somma=0; 
risultato=0; 
prodotto=0; 
resto=0;

for (var i=1; i<=5; i++)
 somma = somma + parseInt(cCod.substring(i*2-2, i*2-1))
 
for (var i=1; i<=5; i++)
 {
  prodotto = cCod.substring(i*2-1, i*2)*2;
  if (prodotto < 10) risultato=0      ///riga necessaria per netscape
  else risultato = parseInt(prodotto / 10,10)  
  somma = somma + risultato + (prodotto - risultato*10)
 } 
 
resto=10 - (somma - (parseInt((somma / 10),10))*10)
if (resto==10) resto=0
if (resto==parseInt(cCod.substring(10, 11),10)) return true
else
 {
   alert('La partita iva inserita non è corretta.  ');
   mytext.focus();
   return false;
 }  
}


//CONTROLLA EMAIL

function ControlloEmail(mytext)
{
var ok=false;
var at=0
var j = mytext.value.length
  for (var i = 0; i < j; i++)
   {
     if (mytext.value.charAt(i) == '@' )
	  {
	    at=at+1
		for ( ; i< j; i++)
		 {
		  if (mytext.value.charAt(i+1) == '@' ) at=at+1
		  if ((mytext.value.charAt(i) == '.' )&&(mytext.value.charAt(i+1) != '' )) ok=true
		  if ((mytext.value.charAt(i) == '.' )&&(mytext.value.charAt(i+1) == '.' )) at=at+1
		 }
	  }
	}  
if ((!ok)||(at>1))
   { 
	alert ("L'indirizzo Email non è nel formato corretto.  ");
	mytext.focus();	
	return false;	    
   }
return true
}

function ControlloData(sData, sDesc){

var sCKData = sData.value;
var sContaBarra = 0;

if (sCKData.length != 10){alert("Inserire ''" + sDesc + "'' nel seguente Formato ''GG/MM/AAAA''.  "); sData.focus(); return false}

for (var i = 0; i < sCKData.length; i++)
    {
		var ch = sCKData.substring(i, i + 1)
        if (ch == "/"){sContaBarra = sContaBarra + 1;}
    }

if (sContaBarra != 2){alert("Inserire ''" + sDesc + "'' nel seguente Formato ''GG/MM/AAAA''.  "); sData.focus(); return false}

var giorno = sCKData.substring(0, 2);
var mese = sCKData.substring(3, 5);
var anno = sCKData.substring(6, 10);
   
  //Verifica la correttezza della data
  var c=0;
  while (c<3)
  {
    s="";
    if (c==0) {s=giorno}
    if (c==1) {s=mese}
    if (c==2) {s=anno}
	if (((s.length<2)&(c==0))||((s.length<2)&(c==1))||((s.length<4)&(c==2)))
	     { 
		  if (c==0) alert("(" + sDesc + ") Il giorno deve essere espresso con due cifre (es. 02)");
		  if (c==1) alert("(" + sDesc + ") Il mese deve essere espresso con due cifre (es. 07)");
		  if (c==2) alert("(" + sDesc + ") L'anno deve essere espresso con quattro cifre (es.1999)");
		  return false;
		 }
    for (var i = 0; i < s.length; i++)
      {
         var ch = s.substring(i, i + 1)
         if (ch < "0" || ch > "9")
         {
             alert("Inserire " + sDesc + " nel seguente Formato ''GG/MM/AAAA''.")
             sData.focus();
             return false
         }
      }
  c+=1;	  
  }

  if (parseInt(eval(giorno))==0) {
     alert("Inserire ''" + sDesc + "'' nel seguente Formato ''GG/MM/AAAA''.  ") 
     sData.focus(); 
     return false}
  if (parseInt(eval(mese))==0) {
     alert("Inserire ''" + sDesc + "'' nel seguente Formato ''GG/MM/AAAA''.  ") 
     sData.focus(); 
     return false}  
   if (parseInt(eval(anno))==0) {
     alert("Inserire ''" + sDesc + "'' nel seguente Formato ''GG/MM/AAAA''.  ") 
     sData.focus(); 
     return false}

 array_mesi = ["31","28","31","30","31","30","31","31","30","31","30","31"];
 
 var giorno = parseInt(giorno, 10);
 var mese = parseInt(mese, 10)
 var anno = parseInt(anno, 10)
 
 var anno1 = "";
 var anno2 = "";
 var anno3 = "";
 
 if ((mese>12)||(mese<1)){alert("MESE non Corretto. Inserire ''" + sDesc + "'' nel seguente Formato ''GG/MM/AAAA''.  "); sData.focus(); return false;}
 
 anno1 = parseInt(anno/4, 10)
 anno2 = parseInt(anno/100, 10)
 anno3 = parseInt(anno/400, 10)

 if (((anno==anno1*4)&(anno==anno2*100)&(anno==anno3*400))|
 	 ((anno==anno1*4)&(anno!=anno2*100)))
  {
     if (mese==2){if ((giorno<1)||(giorno>29)){alert("MESE di Febbraio non Corretto. Inserire ''" + sDesc + "'' nel seguente Formato ''GG/MM/AAAA''.  ");  sData.focus(); return false;}}
  }
 else 
   {
     if (mese==2) {if ((giorno<1)||(giorno>28)){alert("MESE di Febbraio non Corretto. Inserire ''" + sDesc + "'' nel seguente Formato ''GG/MM/AAAA''.  ");  sData.focus(); return false;}}
   } 
     if (mese!=2) {if ((giorno<1)||(parseInt(giorno)>array_mesi[parseInt(mese,10)-1])){alert("GIORNO non Corretto. Inserire ''" + sDesc + "'' nel seguente Formato ''GG/MM/AAAA''.  "); sData.focus(); return false;}}

}


