// JavaScript Document

function send_registrazione(link,elem)
{

  /* data controls */

  var err = false;
    
  /* resetto gli errori */
  
  var err_el = getElementsByName_cross("err_desc");
  for(i=0;i<err_el.length;i++)
  {
    err_el[i].innerHTML = "";
  }
  
  // Controllo l'username
  var username = trim(document.forms['form_registrazione'].username.value);
  if ( username == "" )
  {
    getElement("err_username").innerHTML = "<i>Username mancante</i>";
    err = true;
  }
  else
  {
    if ( ( username.length < 3 ) || ( username.length > 25 ) )
    {
      getElement("err_username").innerHTML = "<i>Lunghezza non consentita</i>";
      err = true;
    }
    else
    {
      // Controllo dei caratteri
      if (!(is_alphanum_signal(username) ))
      {
        getElement("err_username").innerHTML = "<i>Caratteri non consentiti</i>";
        err = true;
      }  
    }
  }
  
  // controllo data_nascita
  var data_nascita = trim(document.forms['form_registrazione'].data_nascita.value);
  if ( data_nascita!="" )
  {
    if ( !is_valid_date(data_nascita) )
    {
      getElement("err_data_nascita").innerHTML = "<i>Data non valida</i>";
      err = true;
    }
  }
  
  // controllo sesso
  var chk    = false;
  var selIdx = null;
  for(var i = 0; i < document.forms['form_registrazione'].sesso.length; i++) 
  {
		if(document.forms['form_registrazione'].sesso[i].checked)
    {
      chk = true;
      selIdx = i;
    }
  }
  
  if ( chk == false )
  {
    getElement("err_sesso").innerHTML = "<i>Sesso non valorizzato</i>";
    err = true;
  } 
  
  // Controllo la password
  var pwd   = trim(document.forms['form_registrazione'].pwd.value);
  var repwd = trim(document.forms['form_registrazione'].repwd.value);
  if ( pwd == "" )
  {
    getElement("err_pwd").innerHTML = "<i>Password mancante</i>";
    err = true;
  }
  else
  {
    if ( ( pwd.length < 6 ) || ( pwd.length > 25 ) )
    {
      getElement("err_pwd").innerHTML = "<i>Lunghezza non consentita</i>";
      err = true;
    }
    else
    {
      if ( pwd != repwd )
      {
        getElement("err_repwd").innerHTML = "<i>La password inserita non coincide</i>";
        err = true;
      }
    }
  }
  
  // Controllo la mail
  var mail    = trim(document.forms['form_registrazione'].mail.value);
  var remail  = trim(document.forms['form_registrazione'].remail.value);
  
  if ( mail == "" )
  {
    getElement("err_mail").innerHTML = "<i>E-mail mancante</i>";
    err = true;
  }
  else
  {
    if (!(is_valid_mail(mail)))
    {
      getElement("err_mail").innerHTML = "<i>E-mail non é nel formato corretto</i>";
      err = true;
    }
    else
    {
      if ( mail != remail )
      {
        getElement("err_remail").innerHTML = "<i>La mail di conferma non coincide</i>";
        err = true;
      }
    }
  }
  
  // Controllo il nome
  /*
  var nome  = trim(document.forms['form_registrazione'].nome.value);
  
  if ( nome == "" )
  {
    getElement("err_nome").innerHTML = "<i>Nome mancante</i>";
    err = true;
  }
  else
  {
    if ( nome.length > 255 )
    {
      getElement("err_nome").innerHTML = "<i>Lunghezza non consentita</i>";
      err = true;
    }
  }
  */
  
  // Controllo il cognome
  /*
  var cognome  = trim(document.forms['form_registrazione'].cognome.value);
  
  if ( cognome == "" )
  {
    getElement("err_cognome").innerHTML = "<i>Cognome mancante</i>";
    err = true;
  }
  else
  {
    if ( cognome.length > 255 )
    {
      getElement("err_cognome").innerHTML = "<i>Lunghezza non consentita</i>";
      err = true;
    }
  }
  */
  
  // Controllo telefono
  /*
  var telefono  = trim(document.forms['form_registrazione'].telefono.value);
  
  if ( telefono == "" )
  {
    getElement("err_telefono").innerHTML = "<i>Telefono mancante</i>";
    err = true;
  }
  else
  {
    if ( telefono.length > 255 )
    {
      getElement("err_telefono").innerHTML = "<i>Lunghezza non consentita</i>";
      err = true;
    }
    else
    {
      if ( !is_valid_tel_number(telefono) )
      {
        getElement("err_telefono").innerHTML = "<i>Caratteri non consentiti</i>";
        err = true;
      }
    }
  }
  */
  
  // Controllo accettazione privacy  
  if ( !document.forms['form_registrazione'].accetta.checked )
  {
    getElement("err_accetta").innerHTML = "<i>Acconsenti al testo del trattamento della privacy</i>";
    err = true;
  }
  
  // Controllo security code
  var cryptcode   = trim(document.forms['form_registrazione'].cryptcode.value);
  var controlcode = trim(document.forms['form_registrazione'].controlcode.value);
  
  if ( controlcode == "" )
  {
    getElement("err_controlcode").innerHTML = "<i>Codice di controllo non inserito</i>";
    err = true;
  }
  
   if ( cryptcode == "" )
  {
    err = true;
  }
  
  
  /* se i controlli sui dati sono passati con successo eseguo la chiamata */
  if(!err)
  {
  
    var Aobj = new JAjax();
    Aobj.setPost();
    Aobj.setTextResponse();
    Aobj.setLocal();
    Aobj.setLink( link );
      
    Aobj.setOperation( function (str){
                        document.getElementById(elem).innerHTML = str;
                        window.scroll(0,0);
                     });
      
    var fm = document.forms['form_registrazione'];
    
    Aobj.addQueryString("username",fm.username.value);
    Aobj.addQueryString("pwd",fm.pwd.value);
    Aobj.addQueryString("repwd",fm.repwd.value);
    Aobj.addQueryString("mail",fm.mail.value);
    Aobj.addQueryString("remail",fm.remail.value);
    Aobj.addQueryString("sesso",fm.sesso[selIdx].value);
    Aobj.addQueryString("accetta",fm.accetta.checked);
    Aobj.addQueryString("cryptcode",fm.cryptcode.value);
    Aobj.addQueryString("controlcode",fm.controlcode.value);
    
    //if ( trim(fm.nome.value)!="" )
      Aobj.addQueryString("nome",fm.nome.value);
    
    //if ( trim(fm.cognome.value)!="" )  
      Aobj.addQueryString("cognome",fm.cognome.value);
    
    //if ( trim(fm.telefono.value)!="" )  
      Aobj.addQueryString("telefono",fm.telefono.value);
    
    if ( trim(fm.data_nascita.value)!="" )  
      Aobj.addQueryString("data_nascita",fm.data_nascita.value);
    
    //if ( trim(fm.professione.value)!="" )  
      Aobj.addQueryString("professione",fm.professione.value);
    
    Aobj.sendData();
  }
}
