function ver_user(nomeid) {
// assegnazione dell'elemento con id univoco
var elemento = prendiElementoDaId(nomeid).value;

if(elemento !=""){ //se il campo username non è vuoto allora restituisco un suggerimento
//carico un'immagine per l'attesa
var e = document.getElementById('usernameerr'); 
e.innerHTML = "<img src=\"img/wait.gif\" />"; 

//questo per evitare di fare un'altra richiesta prima che sia completa la precedente
var isWorking = false;

// assegnazione oggetto XMLHttpRequest
var oggetto = assegnaXMLHttpRequest();

// se l'oggetto XMLHttpRequest non è nullo ed ho fatto una sola richiesta
  if(oggetto && !isWorking) {

    var r = Math.random();//uso un numero casuale per il problema della cache su ie
	var url = "verify_username.php";//indirizzo del mio server,  dato che uso la POST, i parametri li spedisco con la SEND
	var params = "param="+escape(elemento)+"&rand="+escape(r);//parametri inviati nella SEND

	
  // impostazione richiesta asincrona POST del file specificato
  oggetto.open("POST", url, true);
  
  // imposto il giusto header per la POST, con la GET non serve
  oggetto.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  oggetto.setRequestHeader("Content-length", params.length);

  // rimozione dell'header "connection" come "keep alive"
  oggetto.setRequestHeader("connection", "close");
	
  // impostazione controllo e stato della richiesta
    oggetto.onreadystatechange = function() {

	// verifica dello stato
      if(oggetto.readyState == readyState.COMPLETATO) {
	  //verifica della risposta da parte del server
	  if(statusText[oggetto.status] == "OK"){
	  switch(oggetto.responseText){
	  case "nondisponibile":
	  e.innerHTML = "Username non disponibile";
      isWorking = false;
	  break;
	  case "disponibile":
	  e.innerHTML = "Username disponibile";
      isWorking = false;
	  break;
	  default:
	  e.innerHTML = "";
      isWorking = false;
	  break;
	  }
	  }
      }
      } 
    }

    // invio richiesta
    oggetto.send(params);
	}
   }//end function 