function controllo_piva(piva)
{
  result = true;
  
  if (piva != '')
  {
	if( piva.length != 11 )
	{
      result = false;
	}
	validi = "0123456789";
	for( i = 0; i < 11; i++ )
	{
	  if( validi.indexOf( piva.charAt(i) ) == -1 )
	  {
        result = false;
	  }
	}
	s = 0;
	for( i = 0; i <= 9; i += 2 )
		s += piva.charCodeAt(i) - '0'.charCodeAt(0);
	for( i = 1; i <= 9; i += 2 )
	{
		c = 2*( piva.charCodeAt(i) - '0'.charCodeAt(0) );
		if( c > 9 )  c = c - 9;
		s += c;
	}
	if( ( 10 - s%10 )%10 != piva.charCodeAt(10) - '0'.charCodeAt(0) )
	{
      result = false;
	}
  }
  return result;
}

function controllo_cofi(cofi)
{
  result = true
  if (cofi != '')
  {
	var validi, i, s, set1, set2, setpari, setdisp;
	cofi = cofi.toUpperCase();
	if ( cofi.length != 16 )
	{
      result = false
	}
	validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	for( i = 0; i < 16; i++ )
	{
	  if ( validi.indexOf( cofi.charAt(i) ) == -1 )
	  {
        result = false
	  }
	}
	set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
	s = 0;
	for( i = 1; i <= 13; i += 2 )
		s += setpari.indexOf( set2.charAt( set1.indexOf( cofi.charAt(i) )));
	for( i = 0; i <= 14; i += 2 )
		s += setdisp.indexOf( set2.charAt( set1.indexOf( cofi.charAt(i) )));
	if ( s%26 != cofi.charCodeAt(15)-'A'.charCodeAt(0) )
	{
	  if ( validi.indexOf( cofi.charAt(i) ) == -1 )
	  {
        result = false
      }  
	}	
  }
  return result;
}

function controllo_cofi_piva(cofi)
{
  result = true
  
  if (cofi != '')
  {
	var validi, i, s, set1, set2, setpari, setdisp;
	cofi = cofi.toUpperCase();
	if ( cofi.length != 16 )
	{
      result = controllo_piva(cofi);
	}
	validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	for( i = 0; i < 16; i++ )
	{
	  if ( validi.indexOf( cofi.charAt(i) ) == -1 )
	  {
        result = controllo_piva(cofi);
	  }
	}
	set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
	s = 0;
	for( i = 1; i <= 13; i += 2 )
		s += setpari.indexOf( set2.charAt( set1.indexOf( cofi.charAt(i) )));
	for( i = 0; i <= 14; i += 2 )
		s += setdisp.indexOf( set2.charAt( set1.indexOf( cofi.charAt(i) )));
	if ( s%26 != cofi.charCodeAt(15)-'A'.charCodeAt(0) )
	{
	  if ( validi.indexOf( cofi.charAt(i) ) == -1 )
	  {
        result = controllo_piva(cofi);
      }  
	}	
  }
  
  return result;
}

function controllo_email(email)
{
  result = true;
  if (email != '')
  {
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!(filter.test(email)) )
	{
	  result = false;
	}
  } 
  return result;
}


