// controllo se il parametro passato e' composto da caratteri numerici
// simile a isNaN (is-Not-a-Number)
function is_number(num)	
{
	validi = "0123456789";
	for( i = 0; i < num.length; i++ )
	{	
		if( validi.indexOf( num.charAt(i) ) == -1 ) 
		  return false;
	}
	return true;
} 

// controllo se il parametro passato e' composto da lettere
// ATTENZIONE: non e' come !isNaN 
function is_letter(lett)	
{
	validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	lett = lett.toUpperCase();
	for( i = 0; i < lett.length; i++ )
	{	
		if( validi.indexOf( lett.charAt(i) ) == -1 ) 
		  return false;
	}
	return true;
}

// controllo validità data
function controllo_data(today, nome_data, campo_obbligatorio) // today e' il valore della data da controllare
{
	if (nome_data == "") nome_data = "data";
	
	if (today.value == "")
	{
		if (campo_obbligatorio == "si")
		{
			alert("Non hai inserito la "+nome_data+" !");
			today.focus();
			return false;
		}
		else return true;
	}
	
	ttoday=today.value.replace(/[^\d]/g,"0");
	gg=ttoday.substr(0,2);
	mm=ttoday.substr(3,2);
	aa=ttoday.substr(6,4);
	strdata=gg+"/"+mm+"/"+aa;
	data = new Date(aa,mm-1,gg);
    daa=data.getFullYear().toString();
    dmm=(data.getMonth()+1).toString();
    dmm=dmm.length==1?"0"+dmm:dmm;
    dgg=data.getDate().toString();
    dgg=dgg.length==1?"0"+dgg:dgg;
    dddata=dgg+"/"+dmm+"/"+daa;   
	if (dddata!=strdata)
	{
		alert("La "+nome_data+" inserita non e' corretta !");
		today.focus(); 
		return false;
	}
	
	today.value = dddata;
	return true;
}  


// controllo validita' della e-mail
function controllo_email(email) 
{
  if (window.RegExp) {
    var nonvalido = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
    var valido = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
    var regnv = new RegExp(nonvalido);
    var regv = new RegExp(valido);
    if (!regnv.test(email.value) && regv.test(email.value))
      return true;
    alert("L'indirizzo email non e' valido !");
	email.focus();
	return false;
  }
  else {
    if(email.value.indexOf("@") >= 0)
      return true;
    alert("L'indirizzo email non e' valido !");
	email.focus();
	return false;
  }
}
// --------------------------------------------------------------------



// ---- controllo partita IVA
function controllo_partita_iva(partita_iva)
{
	if (partita_iva.value == "")  
	{
		alert("Non hai inserito la partita IVA !");
		partita_iva.focus();
		return false;
	}
	
	if( partita_iva.value.length != 11 )
	{
		alert("La partita IVA deve essere composta da 11 cifre !");
		partita_iva.focus();
		return false;
	}
	
	validi = "0123456789";
	for( i = 0; i < 11; i++ )
	{	
		if( validi.indexOf( partita_iva.value.charAt(i) ) == -1 )
		{
			alert("La partita IVA contiene un carattere non valido !");
			partita_iva.focus();
			return false;
		}
	}
	s = 0;
	for( i = 0; i <= 9; i += 2 )
		s += partita_iva.value.charCodeAt(i) - '0'.charCodeAt(0);
	for( i = 1; i <= 9; i += 2 ){
		c = 2*( partita_iva.value.charCodeAt(i) - '0'.charCodeAt(0) );
		if( c > 9 )  c = c - 9;
		s += c;
	}
	if( ( 10 - s%10 )%10 != partita_iva.value.charCodeAt(10) - '0'.charCodeAt(0) )
	{
		alert("La partita IVA non e' valida !");
		partita_iva.focus();
		return false;
	}
	return true;
}
// ----------------------------------------------------------------------------




// funzione che controlla il codice_fiscale
function controllo_codice_fiscale(codice_fiscale, soggetto, richiesto)
{
	var validi, i, s, set1, set2, setpari, setdisp;
	validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
	
	if(codice_fiscale.value == "")
	{
		if (richiesto == "si")
		{
			alert("Non hai inserito il codice fiscale "+ soggetto +"  !");
			codice_fiscale.focus();
			return false;
		}
		else return true;
	}
	
	if(codice_fiscale.value.length != 16)
	{
		alert("Il codice fiscale "+ soggetto +" deve essere composto da 16 caratteri !");
		codice_fiscale.focus();
		return false;
	}
	
	codice_fiscale.value = codice_fiscale.value.toUpperCase();
	
	for( i = 0; i < 16; i++ )
	{
		if( validi.indexOf( codice_fiscale.value.charAt(i) ) == -1 )
		{
			alert ("Il codice fiscale "+ soggetto +" contiene un carattere non valido." );
			codice_fiscale.focus();
			return false;
		}
	}
	
	s = 0;
	for( i = 1; i <= 13; i += 2 )
		s += setpari.indexOf( set2.charAt( set1.indexOf( codice_fiscale.value.charAt(i) )));
	for( i = 0; i <= 14; i += 2 )
		s += setdisp.indexOf( set2.charAt( set1.indexOf( codice_fiscale.value.charAt(i) )));
	if( s%26 != codice_fiscale.value.charCodeAt(15)-'A'.charCodeAt(0) )
	{
		alert ("Il codice fiscale "+ soggetto +" non e' corretto !!");
		codice_fiscale.focus();
		return false;
	}
	
	return true;
}

function is_valid_string(string) 
{
	var pattern = "^([a-zA-Z0-9\.\_\-])+$";
}
