
function parametroObbligatorio(str)
{
  var patternvalido = "^check_.*";
  var reg = new RegExp(patternvalido);

  return str.match(reg);
}

function togliIndicazioneCampoObbligatorio(str){
  
  var regcheck = /^check_/;
  var regnocheck = /^nochk_/;
  
  str = str.replace(regcheck,'');
  str = str.replace(regnocheck,'');

  return str;
}

function controlla_num_cell(num_cell){
  
  var reg = /^3\d+$/;
  
  return num_cell.match(reg);
}

function controlla_num_tel_fisso(num_tel_fisso){
  
  var reg = /^0\d+$/;
  
  return num_tel_fisso.match(reg);
}

function controlla_email(email){
  
  var pattern = "^[a-zA-Z0-9\.\\-\_]+\@[a-zA-Z0-9\-\_]+\\.[a-zA-Z0-9]+";
  var reg = new RegExp(pattern);
    
  return email.match(reg);
}


function estrai_nome_parte(nomeCampo){
  
  var nomeParte;

  if (nomeCampo.match(/^cellu__.*$/))
    {
      nomeParte = nomeCampo.replace(/^cellu__/,'');
    }
  
  if (nomeCampo.match(/^telfs__.*$/))
    {
      nomeParte = nomeCampo.replace(/^telfs__/,'');
    }
  
  if (nomeCampo.match(/^email__.*$/))
    {
      nomeParte = nomeCampo.replace(/^email__/,'');
    }

  if (nomeCampo.match(/^testo__.*$/))
    {
      nomeParte = nomeCampo.replace(/^testo__/,'');
    }
  
  return nomeParte;
}


function controlla_dati(){

  var count;
  var msgErrore= '';
  var verifica;
  var nomeCampo;
  
  verifica = 1;

  count  = 0;

  var regcell = /^cellu_.*$/;
  var regtelfisso = /^telfs_.*$/;
  var regemail = /^email_.*$/;
  var regtesto = /^testo_.*$/;

  while (count < document.input.length){

    nomeCampo = togliIndicazioneCampoObbligatorio(document.input.elements[count].name);
    // controllo l'esistenza dei campi obbligatori 
    if(parametroObbligatorio(document.input.elements[count].name))
      {
	var nomeParte = estrai_nome_parte(nomeCampo);
	if(document.input.elements[count].value == '')
	  {
	    verifica = 0;
	    msgErrore = msgErrore + nomeParte + " non presente \n";
	  }
      }
	
    // controllo correttezza dei campi numcell, telfisso, email
    if (nomeCampo.match(regcell))
      {
	var num_cell = document.input.elements[count].value;
	if ( (num_cell !='') && (!controlla_num_cell(num_cell)) )
	  {
	    verifica = 0;
	    msgErrore = msgErrore + " numero di cellulare errato\n";
	  }
      }
    else if (nomeCampo.match(regtelfisso))
      {
	var num_tel_fisso = document.input.elements[count].value;
	if ((num_tel_fisso != '') && (!controlla_num_tel_fisso(num_tel_fisso)))
	  {
	    verifica = 0;
	    msgErrore = msgErrore + 
	      " numero di telefono fisso errato\n";
	  }
      }
    else if (nomeCampo.match(regemail))
      {
	var email = document.input.elements[count].value;
	if ((email != '') && (!controlla_email(email)))
	  {
	    verifica = 0;
	    msgErrore = msgErrore + 
	      " e-mail errata\n";
	  }
      }
    count++;
  }
  
  if(verifica == 0)
    {
      alert(msgErrore);
      return false;
    }
  else
    {
      return true;
    }	    
} 

