function get_object(form,name){
myobj= 0;
for (i=0;i<form.length;i++){
object= form.elements[i];
if (object.value== name) {
  myobj= form.elements[i+1];
  break;
}
}
return myobj;
}




/**********************************Controllo Campi**************************************/

//esempio di chiamata
//Check('document.miaForm.MioText', 'MioText','String','S',2,5,'');

function Check(Controllo,NomeCampo,Tipo,Obbligo,MinDim,MaxDim,sDatoApp)
{
  var res = '';
  
  if (Obbligo=='S')
  {
 		if (eval(Controllo+'.value')=='')
		{
   		//	alert('ATTENZIONE: Il campo ' + NomeCampo +' e'+"'"+' obbligatorio. Inserire un valore.');
 	  	//	eval(Controllo + '.focus()');
 			return('ATTENZIONE: Il campo ' + NomeCampo +' e'+"'"+' obbligatorio. Inserire un valore.');		
 		}
	}

	if (eval(Controllo + '.value')!='') 
	{
		switch (Tipo)
		{
			case 'Number':
					res=Is_Number(eval(Controllo + '.value'),MinDim,MaxDim);
					break;
			case 'String':
					res=Is_String(eval(Controllo + '.value'),MinDim,MaxDim);
					break;
			case 'Date':
					res=Is_Date(eval(Controllo + '.value'));
					break;
			case 'Cap':
					res=Is_Cap(eval(Controllo + '.value'));
					break;
			case 'PhonePrefix':
					res=Is_Prefix(eval(Controllo + '.value'));
					break;
			case 'PhoneNumber':
					res=Is_PhoneNumber(eval(Controllo + '.value'));
					break;
			case 'PhoneNumberMinMax':
					res=Is_PhoneNumber_MinMax(eval(Controllo + '.value'), MinDim, MaxDim);
					break;
			case 'GenericPhonePrefix':
					res=Is_Prefix(eval(Controllo + '.value'));
					if(res!='') res=Is_Number(eval(Controllo + '.value'),MinDim,MaxDim);
					break;
			case 'GenericPhoneNumber':
					res=Is_PhoneNumber(eval(Controllo + '.value'));
					if(res!='') res=Is_Number(eval(Controllo + '.value'),MinDim,MaxDim);
					break;
			case 'FiscalCode':
					res=Is_FiscalCode(eval(Controllo + '.value'));
					break;
			case 'PIVA':
					res=Is_PIVA(eval(Controllo + '.value'));
					break;
			case 'CCX':
					res=Is_CCX(eval(Controllo + '.value'),sDatoApp);
					break;
			case 'Email':
					res=Is_Email(eval(Controllo + '.value'));
					break;
			case 'ABI':
					res=Is_ABI(eval(Controllo + '.value'));
					break;
			case 'CAB':
					res=Is_CAB(eval(Controllo + '.value'));
					break;
			case 'CC':
					res=Is_CC(eval(Controllo + '.value'),MinDim,MaxDim);
					break;
			case 'CIN':
					res=Is_CIN(eval(Controllo + '.value'));
					break;
			case 'Account':
					res=Is_Account(eval(Controllo + '.value'),MinDim,MaxDim);
					break;
		}
	}
	if (res!='')	
		return('Il campo ' + NomeCampo + ' ' + res);
	return('');
}


/**********************************Controllo Campi**************************************/

//esempio di chiamata
//CheckValue(document.miaForm.MioText.value, 'MioText','String','S',2,5,'');

function CheckValue(Valore,NomeCampo,Tipo,Obbligo,MinDim,MaxDim,sDatoApp)
{
var res = '';
    if (Obbligo=='S')
    {
		if (Valore=='')
		{
			return('ATTENZIONE: Il campo ' + NomeCampo +' e'+"'"+' obbligatorio. Inserire un valore.');		
		}
	}
	if (Valore!='') 
	{
		switch (Tipo)
		{
			case 'Number':
					res=Is_Number(Valore,MinDim,MaxDim);
					break;
			case 'String':
					res=Is_String(Valore,MinDim,MaxDim);
					break;
			case 'Date':
					res=Is_Date(Valore);
					break;
			case 'Cap':
					res=Is_Cap(Valore);
					break;
			case 'PhonePrefix':
					res=Is_Prefix(Valore);
					break;
			case 'PhoneNumber':
					res=Is_PhoneNumber(Valore);
					break;
			case 'GenericPhonePrefix':
					res=Is_Prefix(Valore);
					if(res!='') res=Is_Number(Valore,MinDim,MaxDim);
					break;
			case 'GenericPhoneNumber':
					res=Is_PhoneNumber(Valore);
					if(res!='') res=Is_Number(Valore,MinDim,MaxDim);
					break;
			case 'FiscalCode':
					res=Is_FiscalCode(Valore);
					break;
			case 'PIVA':
					res=Is_PIVA(Valore);
					break;
			case 'CCX':
					res=Is_CCX(Valore,sDatoApp);
					break;
			case 'Email':
					res=Is_Email(Valore);
					break;
			case 'ABI':
					res=Is_ABI(Valore);
					break;
			case 'CAB':
					res=Is_CAB(Valore);
					break;
			case 'CC':
					res=Is_CC(Valore,MinDim,MaxDim);
					break;
			case 'CIN':
					res=Is_CIN(Valore);
					break;
			case 'Account':
					res=Is_Account(Valore,MinDim,MaxDim);
					break;
		}
	}
	if (res!='')	
		return('Il campo ' + NomeCampo + ' ' + res);
	return('');
}


function Is_Number(sDato,MinDim,MaxDim)
{	
	if ((MinDim != 0) && (MaxDim != 0))
	{
		if (sDato.length < MinDim)
			return('deve contenere almeno ' + MinDim + ' caratteri.');
		if (sDato.length > MaxDim)
			return('deve contenere al piu\' ' + MaxDim + ' caratteri.');
	}
	for (i = 0;  i < sDato.length;  i++)
	{
		CodeChr = sDato.charAt(i);
		if ((CodeChr<'0') || (CodeChr>'9'))
			return('deve contenere esclusivamente cifre.');
	}
	return('');
}

function Is_String(sDato,MinDim,MaxDim)
{
	if ((MinDim !=0) && (MaxDim != 0))
	{
		if (sDato.length < MinDim)
			return('deve contenere almeno ' + MinDim + ' caratteri.');
		if (sDato.length > MaxDim)
			return('deve contenere al piu\' ' + MaxDim + ' caratteri.');
	}
    return('');	
}

function Is_Date (sDato)
{
	if (sDato.length!=10)
		return(' deve essere una data nel formato DD/MM/YYYY 1.');
	Data=sDato.split("/");
	if (Data.length!=3) 
		return(' deve essere una data nel formato DD/MM/YYYY 2.');
	if (Is_Number(Data[0],2,2)!='')		
		return(' deve essere una data nel formato DD/MM/YYYY 3.');
	if (Is_Number(Data[1],2,2)!='')		
		return(' deve essere una data nel formato DD/MM/YYYY 4.');
	if (Is_Number(Data[2],4,4)!='')		
		return(' deve essere una data nel formato DD/MM/YYYY 5.');
	Giorno=parseInt(Data[0],10);
	Mese=parseInt(Data[1],10);
	Anno=parseInt(Data[2],10);
	if ((Mese<1) ||(Mese>12))
		return(' contiene una data errata.');
	switch (Mese)
	{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			MaxDay=31;
			break;
		case 4:
		case 6:
		case 9:
		case 11:
			MaxDay=30;
			break;
		case 2:
			if (((Anno % 4)==0) && (((Anno % 100) !=0) || ((Anno % 400)==0)))
				MaxDay=29;
			else
				MaxDay=28;
			break;
	}
	if ((Giorno < 1) || (Giorno > MaxDay))
		return(' contiene una data errata.');
    return('');
}

function Is_Date_Time (sDato)
{
	if (sDato.length!=19)
		return(' deve essere una data/ora nel formato DD/MM/YYYY HH24.MI.SS');
	// Splitto Data e Ora
    Dato=sDato.split(" ");
	if (Dato.length!=2) 
		return(' deve essere una data/ora nel formato DD/MM/YYYY HH24.MI.SS');
    
    // Splitto la Data in DD MM YYYY
	Data=Dato[0].split("/");
	if (Data.length!=3) 
		return(' deve essere una data nel formato DD/MM/YYYY');
	if (Is_Number(Data[0],2,2)!='')		
		return(' giorno deve essere nel formato DD');
	if (Is_Number(Data[1],2,2)!='')		
		return(' mese deve essere nel formato MM');
	if (Is_Number(Data[2],4,4)!='')		
		return(' anno deve essere nel formato YYYY');
	// Estraggo Giorno Mese Anno
    Giorno=parseInt(Data[0],10);
	Mese=parseInt(Data[1],10);
	Anno=parseInt(Data[2],10);
	if ((Mese<1) ||(Mese>12))
		return(' contiene una mese non valido.');
	switch (Mese)
	{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			MaxDay=31;
			break;
		case 4:
		case 6:
		case 9:
		case 11:
			MaxDay=30;
			break;
		case 2:
			if (((Anno % 4)==0) && (((Anno % 100) !=0) || ((Anno % 400)==0)))
				MaxDay=29;
			else
				MaxDay=28;
			break;
	}
	if ((Giorno < 1) || (Giorno > MaxDay))
		return(' contiene una giorno non valido.');
    
    // Splitto l'ora in HH MI SS
    Time=Dato[1].split(".");
	if (Time.length!=3) 
		return(' deve essere una data/ora nel formato DD/MM/YYYY HH24.MI.SS');
	if (Is_Number(Time[0],2,2)!='')		
		return(' ora deve essere un orario nel formato HH24');
	if (Is_Number(Time[1],2,2)!='')		
		return(' minuti deve essere un orario nel formato MI');
	if (Is_Number(Time[2],2,2)!='')		
		return(' secondi deve essere un orario nel formato SS');
	// Estraggo Ore Minuti Secondi
    Hours=parseInt(Time[0],10);
	Minutes=parseInt(Time[1],10);
	Seconds=parseInt(Time[2],10);
	if ((Hours<0) ||(Hours>24))
		return(' valore dei minuti non valido.');	
	if ((Minutes < 0) || (Minutes > 59))
		return(' contiene un orario errato.');
    
    if ((Seconds < 0) || (Seconds > 59))
		return(' valore dei secondi non valido.');
    
    return('');
}

function Is_Cap(sDato)
{
	if (Is_Number(sDato,5,5)!='') 
		return('contiene un CAP errato: deve essere di 5 cifre.');
	return('');
}

function Is_Prefix(sDato)
{
	if (Is_Number(sDato,2,4)!='') 
		return('contiene un prefisso non valido.');
	if (sDato.substr(0,1)!='0')
		return('contiene un prefisso non valido. Deve iniziare con 0.');
	return('');
}

function Is_PhoneNumber(sDato)
{
	if (Is_Number(sDato,4,8)!='') 
		return('contiene un numero telefonico non valido.');
	if ((sDato.substr(0,1)=='0')||(sDato.substr(0,1)=='1'))
		return('contiene un numero non valido.');
	return('');
}

function Is_PhoneNumber_MinMax (sDato, min, max)
{
	if (Is_Number(sDato, min, max)!='') 
		return('contiene un numero telefonico non valido.');
	if ((sDato.substr(0,1)=='0')||(sDato.substr(0,1)=='1'))
		return('contiene un numero non valido.');
	return('');
}

function Is_CAB(sDato)
{
	if (Is_Number(sDato,5,5)!='') 
		return('contiene un CAB errato: deve essere di 5 cifre.');
	return('');
}

function Is_ABI(sDato)
{
	if (Is_Number(sDato,5,5)!='') 
		return('contiene un ABI errato: deve essere di 5 cifre.');
	return('');
}

function Is_PIVA(sDato)
{
	if (Is_Number(sDato,11,11)!='')
		return ('contiene una partita IVA non valida.');
	
	SOMMADISPARI=0;
	SOMMAPARI=0;
	
	for (i=0;i<9;i+=2)
	{
	    SOMMADISPARI+=(sDato.charAt(i)-'0');
		if((2*(sDato.charAt(i+1)-'0'))<10)
			DIVQ=0;
		else										   
			DIVQ=1;
		
		DIVR=(2*(sDato.charAt(i+1)-'0') % 10);
		SOMMAPARI+= (DIVQ + DIVR);
	}
	SOMMACTR=SOMMADISPARI+SOMMAPARI;
	DIVI= ((10-(SOMMACTR % 10)) % 10);
	if ((sDato.charAt(10)-'0')==DIVI)
	  return ('');
	else
	  return ('contiene una partita IVA non valida.');
}

function Is_FiscalCode(sDato) 
{

	if (sDato.length !=16) 
		return('contiene un codice fiscale non valido.');
	sDato=sDato.toUpperCase();
	iChecksum=0;
	iPos=-1;
	iSum=0;
	bPari=true;
	sCaratteri = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	sCodiciPari= "000102030405060708091011121314151617181920212223242500010203040506070809";
	sCodiciDispari="010005070913151719210204182011030608121416102225242301000507091315171921";
	for (iloop=0; iloop<16; iloop++)
	{
	  sCheck=sDato.charAt(iloop);
	  iPos=((sCaratteri.indexOf(sCheck)+1)*2)-1;
 	  if ( (iloop%2) != 0)
 	  {
	  	iSum = parseInt(sCodiciPari.substr(iPos-1,2),10);
	  	//iSum = parseInt(sCodiciPari.charAt(iPos-1),10)*10 + parseInt(sCodiciPari.charAt(iPos),10);
 		//alert(iPos + ' ' + iSum);
	  }
	  else
	  {
		iSum = parseInt(sCodiciDispari.substr(iPos-1,2),10);
		//iSum = parseInt(sCodiciDispari.charAt(iPos-1),10)*10 + parseInt(sCodiciDispari.charAt(iPos),10);
 		//alert(iPos + ' ' + iSum);
 	  }
	  if (iloop != 15)
		iChecksum = iChecksum +	iSum;
	}
	//alert(iSum + ' ' + (iChecksum % 26));
	if ((iChecksum % 26) !=	iSum)
		return ('contiene un codice fiscale non valido.');
	else
		return('');
}

function Is_CCX(sDato,sDato2)
{
	Prefisso= new Array("1800","2014","2131","2149","304","305","34","36","37","38","3","4","4","51","52","53","54","55","56","6011","4","4","51","52","53","54","55","600598","54866","41356");
	Lunghezza=new Array(15,15,15,15,14,14,15,14,15,14,16,13,16,16,16,16,16,16,16,16,13,16,16,16,16,16,16,19,16,16);
	//TipoCCX=     new Array("JBC","ENROUTE","JBC","ENROUTE","DINERS","DINERS","AMERICAN EXPRESS","DINERS","AMERICAN EXPRESS","DINERS","JBC","VISA","VISA","MASTERCARD","MASTERCARD","MASTERCARD","MASTERCARD","MASTERCARD","BANKAMERICARD","DISCOVER","CARTASI","CARTASI","CARTASI","CARTASI","CARTASI","CARTASI","CARTASI","CARTA AURA","CARTA AURA","CARTA AURA");
	TipoCCX=     new Array("JBC","ENROUTE","JBC","ENROUTE","DINERS","DINERS","AMERICAN EXPRESS","DINERS","AMERICAN EXPRESS","DINERS","JBC","VISA/MASTERCARD - ALTRE BANCHE","VISA/MASTERCARD - ALTRE BANCHE","VISA/MASTERCARD - ALTRE BANCHE","VISA/MASTERCARD - ALTRE BANCHE","VISA/MASTERCARD - ALTRE BANCHE","VISA/MASTERCARD - ALTRE BANCHE","VISA/MASTERCARD - ALTRE BANCHE","BANKAMERICARD","DISCOVER","CARTASI","CARTASI","CARTASI","CARTASI","CARTASI","CARTASI","CARTASI","CARTA AURA","CARTA AURA","CARTA AURA");
	CheckSum= new Array(0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
	MinLen=   15;
	MaxLen=   16;

	if (Is_Number(sDato,15,16)!='')
	{
		return("contiene un numero non valido.");
	}
	
	CardOK=-1;
	for(i=0;i<30;i++)
	{
        /* Nel caso il tipo CCX venga identificato automaticamente, questo parametro (il tipo) sarą vuoto e va saltato questo check - P.Perelli 02/10/08 */
    	if (sDato2.toUpperCase() != "") {
            if (sDato2.toUpperCase() == TipoCCX[i].toUpperCase())
    			//if (sDato.substr(0,Prefisso[i].length) == Prefisso[i])
    				if (sDato.length == Lunghezza[i])
    				{
    					CardOK=i;
    					i=31;
    				}
        } else {
            CardOK=0;
            i=31;
        }
	}
	if (CardOK==-1)
		return("contiene un numero non valido.");
	else
	{
	  if (CheckSum[CardOK] == 0)
	  {
	    int_Checksum = 0;
        CifraPari = -1;
        for (i=sDato.length-1;i>=0;i--)
		{
          CifraCorr = sDato.charCodeAt(i) - 48;
          if (CifraPari == 0) 
		  {
            CifraCorr = CifraCorr * 2;
            if (CifraCorr >= 10)
	          CifraCorr = CifraCorr - 9;
		  }		
          int_Checksum = int_Checksum + CifraCorr;
          if (CifraPari == -1)
            CifraPari = 0;
          else
            CifraPari = -1;
		 }
         if ((int_Checksum % 10) != 0)
		   return("contiene un numero non valido.");
	     else
           return('');	
       }
       else
           return('');
	}
}
function Is_Email(sDato)
{
	DOMAIN_CHARACTERS = ".ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-";
	USERNAME_CHARACTERS = ".ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-_";
    	
    // L'indirizzo deve essere lungo almeno 6 caratteri
    if (sDato.length < 6) 
		return("contiene un indirizzo e-mail non valido.");    	

	adrPart=sDato.split("@");
	if (adrPart.length != 2)
		return("contiene un indirizzo e-mail non valido.");    	

    // Estraggo il dominio
    Domain = adrPart[1].toUpperCase();
    
    // Estraggo il nome dell'utente
    UserName =adrPart[0].toUpperCase();
    	
    // Controllo che lo user name non contenga spazi
    if (UserName=="")
		return("contiene un indirizzo e-mail non valido.");    	

    // Controllo che lo user name contenga solo caratteri validi
	for(i=0;i<UserName.length;i++)
	{
	  if (USERNAME_CHARACTERS.indexOf(UserName.substr(i,1))==-1)	  
		return("contiene un indirizzo e-mail non valido.");    	
	}

    // Controllo che ci sia il "." nel dominio
    if (Domain.indexOf(".") == -1)
		return("contiene un indirizzo e-mail non valido.");    	
    	
    // Controllo che il dominio contenga solo caratteri validi
	for(i=0;i<Domain.length;i++)
	{
	  if (DOMAIN_CHARACTERS.indexOf(Domain.substr(i,1))==-1)	  
		return("contiene un indirizzo e-mail non valido.");    	
	}
	// Enumero tutti gli elementi del dominio (eventuali sotto domini)
    SubDomainArray = Domain.split(".")
    IsIPDomain = false
    	
    for(i=0;i<SubDomainArray.length;i++)
	{
		if (SubDomainArray[i].length == 0)
			return("contiene un indirizzo e-mail non valido.");    	
    		
    	// Controllo che il dominio sia un indirizzo IP
    	if (i == 0)
		{
    		if (Is_Number(SubDomainArray[i],0,0)=='')
			{
    			//Solo un indirizzo IP puņ avere sottodominii numerici
    			IsIPDomain = true;
    			// Nel caso sia un idirizzo IP, controllo che ci siano 4 sottodominii
    			if (SubDomainArray.length != 4)
					return("contiene un indirizzo e-mail non valido.");    	    			
   			}
   		}
   		//Controllo i sottodominii nel caso sia un idirizzo IP
    	if (IsIPDomain)
		{
    		Octect = parseInt(SubDomainArray[i]);  			
  			if ((Octect > 255) || (Octect < 0)) Then
				return("contiene un indirizzo e-mail non valido.");    	    			
		} 			
    	else
    		// Dominio, subdominio possono avere una lunghezza max di 64 caratteri - RFC821
    		if (SubDomainArray[i].length > 64)
				return("contiene un indirizzo e-mail non valido.");    	    			
	}    	

        if((!IsIPDomain)&&(SubDomainArray[SubDomainArray.length -1].length <2))
		return("contiene un indirizzo e-mail non valido.");

    // Controllo che l'ultimo carattere dello username non sia un punto
    if (UserName.substr(UserName.length-1,1)==".")
		return("contiene un indirizzo e-mail non valido.");    	

    return('');
}

function Is_CC(sDato,MinDim,MaxDim)
{
	CC_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
	
	if ((MinDim !=0) && (MaxDim != 0))
	{
		if (sDato.length < MinDim)
			return('deve contenere almeno ' + MinDim + ' caratteri.');
		if (sDato.length > MaxDim)
			return('deve contenere al piu\' ' + MaxDim + ' caratteri.');
	}
	
	CC = sDato.toUpperCase();

	// Controllo che il conto corrente contenga solo caratteri validi
	for(i=0;i<CC.length;i++)
	{
		if (CC_CHARACTERS.indexOf(CC.substr(i,1))==-1)	  
			return("contiene caratteri non ammessi.");    	
	}

	return('');
}

function Is_CIN(sDato) 
{
	CIN_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	
	// Il CIN deve essere lungo 1 carattere
	if (sDato.length != 1) 
		return('contiene un CIN non valido.');

	if (CIN_CHARACTERS.indexOf(sDato)==-1)	  
		return("contiene un CIN non valido.");    	

	return('');
}

function Is_Account(sDato,MinDim,MaxDim)
{
	ACCOUNT_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.-_";
	
	if ((MinDim !=0) && (MaxDim != 0))
	{
		if (sDato.length < MinDim)
			return('deve contenere almeno ' + MinDim + ' caratteri.');
		if (sDato.length > MaxDim)
			return('deve contenere al piu\' ' + MaxDim + ' caratteri.');
	}
	
	ACCOUNT = sDato.toUpperCase();

	// Controllo che il conto corrente contenga solo caratteri validi
	for(i=0;i<ACCOUNT.length;i++)
	{
		if (ACCOUNT_CHARACTERS.indexOf(ACCOUNT.substr(i,1))==-1)	  
			return("contiene caratteri non ammessi.");    	
	}

	return('');
}





/***************************************************************************************/



 function alertField(message){
 ok= true;
   if (message!= ''){
    ok= false;
    alert(message);
   }
 return ok;
 }


function noDollars(form){
ok= true;
find= false;
for (i=0;i<form.length;i++){
object= form.elements[i];
find= false;
  for (j=0;j<object.value.length;j++){
//      alert(object.value.charAt(j))
    if (object.value.charAt(j)== '$'){
     alert("NON E' POSSIBILE INSERIRE '$' ALL'INTERNO DEI CAMPI!");
     find= true;
     ok= false;
    break;
    }
  }
if (find) break;
}
return ok;
}

function controlFields(form){
ok= true;

if (form.name== "FormDati"){
	ok_1= true;
	if (form.checkfrm.value=="1") 
	{
		ok=  alertField(Check("document.FormDati.Cognome", 'Cognome','String','S',2,30,''))
		 &&  alertField(Check("document.FormDati.Nome", 'Nome','String','S',2,30,''))
		 &&  alertField(Check("document.FormDati.Sesso", 'Sesso','String','S',1,5,''))
		 &&  alertField(Check("document.FormDati.DataNascita", 'Data di nascita','Date','S',2,12,''))
		 &&  alertField(Check("document.FormDati.CittaNascita", 'Luogo di nascita','String','S',2,30,''))
		 &&  alertField(Check("document.FormDati.CittaResidenza", 'Cittį di Residenza','String','S',2,30,''))
		 &&  alertField(Check("document.FormDati.CapResidenza", 'CAP','Cap','S',2,5,''))
		 &&  alertField(Check("document.FormDati.Indirizzo", 'Indirizzo','String','S',2,30,''))
		 &&  alertField(Check("document.FormDati.PrefissoTel", 'Prefisso del telefono','PhonePrefix','S',2,5,''))
		 &&  alertField(Check("document.FormDati.NumeroTel", 'Numero del telefono','PhoneNumber','S',2,30,''))
		 &&  alertField(Check("document.FormDati.CodiceFiscale", 'Codice Fiscale','FiscalCode','S',2,5,''))
		 &&  alertField(Check("document.FormDati.PrefissoFax", 'Prefisso del Fax','PhonePrefix','N',2,5,''))
		 &&  alertField(Check("document.FormDati.NumeroFax", 'Numero del Fax','PhoneNumber','N',2,30,''))
		 &&  alertField(Check("document.FormDati.Email", 'E-mail','Email','N',2,5,''))
		 &&  alertField(Check("document.FormDati.PrefissoAtt1", 'Prefisso del Primo Numero su cui vuole attivare il servizio','PhonePrefix','S',2,5,''))
		 &&  alertField(Check("document.FormDati.NumeroAtt1", 'Primo Numero di telefono su cui vuole attivare il servizio','PhoneNumber','S',2,30,''))
		 &&  alertField(Check("document.FormDati.PrefissoAtt2", 'Prefisso del Secondo Numero ISDN su cui vuole attivare il servizio','PhonePrefix','N',2,5,''))
		 &&  alertField(Check("document.FormDati.NumeroAtt2", 'Secondo Numero di telefono ISDN su cui vuole attivare il servizio','PhoneNumber','N',2,5,''))
		 &&  ok_1;
	}
	else
	{
		ok=  alertField(Check("document.FormDati.PrefissoAtt1", 'Prefisso del Primo Numero su cui vuole attivare il servizio','PhonePrefix','S',2,5,''))
		 &&  alertField(Check("document.FormDati.NumeroAtt1", 'Primo Numero di telefono su cui vuole attivare il servizio','PhoneNumber','S',2,30,''))
		 &&  alertField(Check("document.FormDati.PrefissoAtt2", 'Prefisso del Secondo Numero ISDN su cui vuole attivare il servizio','PhonePrefix','N',2,5,''))
		 &&  alertField(Check("document.FormDati.NumeroAtt2", 'Secondo Numero di telefono ISDN su cui vuole attivare il servizio','PhoneNumber','N',2,5,''))
		 &&  ok_1;
	}
	if(ok)
	{
	if ((form.PrefissoAtt2.value!= '')&&(form.NumeroAtt2.value== '')){
		ok= false;
		alert('E\' necessario compilare il campo del secondo numero di telefono da attivare');
	}
	if ((form.PrefissoAtt2.value!= '')&&(!form.ISDN.checked)){
		ok= false;
		alert('Per attivare due numeri telefonici e\' necessario che almeno uno sia ISDN');
	}
	if ((form.PrefissoAtt2.value== form.PrefissoAtt1.value)&&(form.NumeroAtt2.value== form.NumeroAtt1.value)){
		ok= false;
		alert('I due numeri telefonici da attivare devono essere diversi');
	}
  }
    
}

if ((form.name== "FormDati2a") || (form.name== "FormDati2cscps"))
{
	ok=  alertField(Check("document."+form.name+".InDuePref", 'Prefisso','PhonePrefix','N',2,30,''))
	 &&  alertField(Check("document."+form.name+".InDueTel", 'Numero di Telefono','PhoneNumber','N',2,30,''));
}


if (form.name== "FormDati2b"){
	ok= true; 
}

if (form.name== "FormDati3"){
  ok1= true;
  
  if (document.FormDati3.ElencoCentriFatt.value == "true")
  {
	  if (document.FormDati3.RowIdCentroFatt.value.length > 0)
	  {
	  	ok1 = true;
	  	return (ok1);
	  }
	  else
	  {
	    ok1= false;
	    alert("Attenzione: Selezionare una modalita\' di pagamento.")
	    return(ok1);
	  }
  }
  
  if (!document.FormDati3.Modalita(0).checked && !document.FormDati3.Modalita(1).checked)
  {
    ok1= false;
    alert("Attenzione: Selezionare una modalita\' di pagamento.")
    return(ok1);
  }
  if (document.FormDati3.Modalita(0).checked && ((document.FormDati3.IntestatarioCCXCognome.value== '') || (document.FormDati3.IntestatarioCCXNome.value== '')))
  {
    ok1= false;
  }
  if (document.FormDati3.Modalita(0).checked)
  {
    ok=  alertField(Check("document.FormDati3.NumeroCCX", 'Numero della carta di credito','String','S',16,16,document.FormDati3.NomeCCX.value))
     &&  alertField(Check("document.FormDati3.ScadMMCCX", 'Mese di scadenza della carta di credito','String','S',2,30,''))
     &&  alertField(Check("document.FormDati3.ScadYYYYCCX", 'Anno di scadenza della carta di credito','String','S',2,30,''))     
     && ok1;
  }
  else
    {
     ok=  alertField(Check("document.FormDati3.NumeroCC", 'Numero di Conto Corrente','String','S',2,30,''))
      &&  alertField(Check("document.FormDati3.ABI", 'ABI','ABI','S',2,30,''))
      &&  alertField(Check("document.FormDati3.CAB", 'CAB','CAB','S',2,30,''))
      &&  alertField(Check("document.FormDati3.CorrentistaCognome", 'Cognome del Sottoscrittore RID','String','S',2,100,''))
      &&  alertField(Check("document.FormDati3.CorrentistaNome", 'Nome del Sottoscrittore RID','String','S',2,100,''))
      &&  alertField(Check("document.FormDati3.CorrentistaCF", 'Cod. Fiscale del Sottoscrittore RID','FicalCode','S',2,16,''))
      &&  alertField(Check("document.FormDati3.IntestatarioCognome", 'Cognome dell\'intestatario del C/C','String','S',2,100,''))
      &&  alertField(Check("document.FormDati3.IntestatarioNome", 'Nome dell\'intestatario del C/C','String','S',2,100,''))
      && ok1;
  }	

}

if (form.name== "FormDati3ull")
{
	ok=  alertField(Check("document.FormDati3ull.CognomeTI", 'Cognome del titolare Telecom','String','S',2,30,''))
	 &&  alertField(Check("document.FormDati3ull.NomeTI", 'Nome del titolare Telecom','String','S',2,30,''))
	 &&  alertField(Check("document.FormDati3ull.CodFiscaleTI", 'Codice Fiscale del titolare Telecom','FiscalCode','S',2,5,''))
	 &&  alertField(Check("document.FormDati3ull.IndirizzoTI", 'Indirizzo del titolare Telecom','String','S',2,30,''))
}

if (form.name== "FormDati3cscps"){
  ok1= true;
  
  if (document.FormDati3cscps.ElencoCentriFatt.value == "true")
  {
	  if (document.FormDati3cscps.RowIdCentroFatt.value.length > 0)
	  {
	  	ok1 = true;
	  	return (ok1);
	  }
	  else
	  {
	    ok1= false;
	    alert("Attenzione: Selezionare una modalita\' di pagamento.")
	    return(ok1);
	  }
  }
  
  if (!document.FormDati3cscps.Modalita(0).checked && !document.FormDati3cscps.Modalita(1).checked)
  {
    ok1= false;
    alert("Attenzione: Selezionare una modalita\' di pagamento.")
    return(ok1);
  }
  if (document.FormDati3cscps.Modalita(0).checked && ((document.FormDati3cscps.IntestatarioCCXCognome.value== '') || (document.FormDati3cscps.IntestatarioCCXNome.value== '')))
  {
    ok1= false;
  }
  if (document.FormDati3cscps.Modalita(0).checked)
  {
    ok=  alertField(Check("document.FormDati3cscps.NumeroCCX", 'Numero della carta di credito','String','S',16,16,document.FormDati3cscps.NomeCCX.value))
     &&  alertField(Check("document.FormDati3cscps.ScadMMCCX", 'Mese di scadenza della carta di credito','String','S',2,30,''))
     &&  alertField(Check("document.FormDati3cscps.ScadYYYYCCX", 'Anno di scadenza della carta di credito','String','S',2,30,''))     
     && ok1;
  }
  else
    {
     ok=  alertField(Check("document.FormDati3cscps.NumeroCC", 'Numero di Conto Corrente','String','S',2,30,''))
      &&  alertField(Check("document.FormDati3cscps.ABI", 'ABI','ABI','S',2,30,''))
      &&  alertField(Check("document.FormDati3cscps.CAB", 'CAB','CAB','S',2,30,''))
      &&  alertField(Check("document.FormDati3cscps.CorrentistaCognome", 'Cognome del Sottoscrittore RID','String','S',2,100,''))
      &&  alertField(Check("document.FormDati3cscps.CorrentistaNome", 'Nome del Sottoscrittore RID','String','S',2,100,''))
      &&  alertField(Check("document.FormDati3cscps.CorrentistaCF", 'Cod. Fiscale del Sottoscrittore RID','FicalCode','S',2,16,''))
      &&  alertField(Check("document.FormDati3cscps.IntestatarioCognome", 'Cognome dell\'intestatario del C/C','String','S',2,100,''))
      &&  alertField(Check("document.FormDati3cscps.IntestatarioNome", 'Nome dell\'intestatario del C/C','String','S',2,100,''))
      && ok1;
  }	

}

if (form.name== "FormDati5ull"){
  ok1= true;
  
  if (document.FormDati5ull.ElencoCentriFatt.value == "true")
  {
	  if (document.FormDati5ull.RowIdCentroFatt.value.length > 0)
	  {
	  	ok1 = true;
	  	return (ok1);
	  }
	  else
	  {
	    ok1= false;
	    alert("Attenzione: Selezionare una modalita\' di pagamento.")
	    return(ok1);
	  }
  }
  
  if (!document.FormDati5ull.Modalita(0).checked && !document.FormDati5ull.Modalita(1).checked)
  {
    ok1= false;
    alert("Attenzione: Selezionare una modalita\' di pagamento.")
    return(ok1);
  }
  if (document.FormDati5ull.Modalita(0).checked && ((document.FormDati5ull.IntestatarioCCXCognome.value== '') || (document.FormDati5ull.IntestatarioCCXNome.value== '')))
  {
    ok1= false;
  }
  if (document.FormDati5ull.Modalita(0).checked)
  {
    ok=  alertField(Check("document.FormDati5ull.NumeroCCX", 'Numero della carta di credito','String','S',16,16,document.FormDati5ull.NomeCCX.value))
     &&  alertField(Check("document.FormDati5ull.ScadMMCCX", 'Mese di scadenza della carta di credito','String','S',2,30,''))
     &&  alertField(Check("document.FormDati5ull.ScadYYYYCCX", 'Anno di scadenza della carta di credito','String','S',2,30,''))     
     && ok1;
  }
  else
    {
     ok=  alertField(Check("document.FormDati5ull.NumeroCC", 'Numero di Conto Corrente','String','S',2,30,''))
      &&  alertField(Check("document.FormDati5ull.ABI", 'ABI','ABI','S',2,30,''))
      &&  alertField(Check("document.FormDati5ull.CAB", 'CAB','CAB','S',2,30,''))
      &&  alertField(Check("document.FormDati5ull.CorrentistaCognome", 'Cognome del Sottoscrittore RID','String','S',2,100,''))
      &&  alertField(Check("document.FormDati5ull.CorrentistaNome", 'Nome del Sottoscrittore RID','String','S',2,100,''))
      &&  alertField(Check("document.FormDati5ull.CorrentistaCF", 'Cod. Fiscale del Sottoscrittore RID','FicalCode','S',2,16,''))
      &&  alertField(Check("document.FormDati5ull.IntestatarioCognome", 'Cognome dell\'intestatario del C/C','String','S',2,100,''))
      &&  alertField(Check("document.FormDati5ull.IntestatarioNome", 'Nome dell\'intestatario del C/C','String','S',2,100,''))
      && ok1;
  }	

}

if ((form.name== "FormDati4f") || (form.name== "FormDati4")){

   for(i=0;i<form.length;i++){
   object= form.elements[i];
   if ((object.value== 'si')&&(!object.checked)){
   ok= false;
   alert('Devi Confermare le condizioni di contratto e di trattamento dei dati personali.');
   break;
   }
   }

}


return ok;
}


function parsValue(object){
value= '';
   if (object.type!= "checkbox"&&object.type!= "radio"){
       value = object.value;
   }
   else{
     if (object.checked){
       value= 'YES';
     }
     else{
       value= 'NO';
     }
   }
return value;
}


function checkAll(form){
for (i=0;i<form.length;i++){
object=form.elements[i];
 if (object.type== 'checkbox'&&!object.checked){
 object.checked= true;
 object.value= 'NO';
}
}
}

function doSubmit(form){
  if (form.name!= "FormDati4")
  {
    if (controlFields(form))
    {
   //   checkAll(form);
      form.submit();
    }
  }
  else 
 {
   if (controlFields(document.FormDati4f)) form.submit();
  }
}

function CloseSession(form){
 location.href="inorder_155.pkg_pronto1055.CloseSession";
}

function avanti(form){
url='';
  if (controlFields(form)) {

   if (form.name== 'FormDati') url= 'ecrm_admin.dbcheck_page_1?';
   if (form.name== 'FormDati2a') url= 'ecrm_admin.dbcheck_page_2a?';
   if (form.name== 'FormDati2b') url= 'ecrm_admin.dbcheck_page_2b?';
   if (form.name== 'FormDati3') url= 'ecrm_admin.dbcheck_page_3?';
      a=0;
	 for (i=0;i<form.length;i++){
            	object= form.elements[i];
               	len= object.name.length;
                 if (object.type!= 'button'){
                      parent.repository.save(object.name,parsValue(object));
                  }
              if (object.name.substr(len-2,len)== '_v'){
                a++;
                if (a== 1){
                      url+= object.name + '=' + object.value;
                    }
       
                  else{
                      url+= '&' + object.name + '=' + object.value;
                    }
              }
	 }
            //alert(url);
         parent.steps.location.href= url;
 }
} //fine funzione

function backStep(form,url){
form.action= '!inorder_155.pkg_pronto1055.BackStep';
form.p_back_url.value= url;
//checkAll(form);
form.submit();
}

function save(name,value){
pos= search_field(name);
//alert(pos);
   if (pos!= 0){
     update_field(name,value,pos);
   }
   else{
       document.datarep.p_names.value += name + '$';
       document.datarep.p_values.value += value + '$';
//alert(document.datarep.p_values.value);
  }
}

