//funcion comprobar nombres en la bbdd
function getXMLHTTPRequest() {
try {
req = new XMLHttpRequest();
} catch(err1) {
  try {
  req = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (err2) {
    try {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (err3) {
      req = false;
    }
  }
}
return req;
}

var http = getXMLHTTPRequest();

function proceso()
{
  // Procede sólo si el objeto http no está ocupado
  if (http.readyState == 4 || http.readyState == 0)
  {
    var miAleatorio=parseInt(Math.random()*99999999);
	// recupera el nombre escrito por el usuario
    name = encodeURIComponent(document.getElementById("nick").value);
    email = encodeURIComponent(document.getElementById("email").value);
	// ejecuta la página comprobar_nombre desde el servidor
    http.open("GET", "comprobar_nombre.asp?nick=" + name + "&email=" + email + "&rand=" + miAleatorio, true);  
    // define la función para manejar las respuestas del servidor
    http.onreadystatechange = useHttpResponse;
    // haz la petición al servidor
    http.send(null);
  }
  else
    // si la conexión está ocupada, prueba de nuevo después de un segundo  
    setTimeout('proceso()', 1000);
}

// ejecutado automáticamente cuando un mensaje es recibido desde el servidor
function useHttpResponse() 
{
  // se ejecuta sólo si la transacción se ha completado
  if (http.readyState == 4) 
  {
    // estatus de 200 indica que la transacción se ha completado correctamente
    if (http.status == 200) 
    {
      // extraemos el XML recuperado del servidor
      respuesta = http.responseText;
      // obtenemos el "document element" (el elemento raíz) de la estructura XML
      // actualizamos la pantalla del usuario usando los datos recibidos del servidor
      var mensaje = respuesta.split(",");
	  document.form1.ocupado.value = mensaje[1]
	  document.getElementById("divMensaje").innerHTML = 
                                            '<i>' + mensaje[0] + '</i>';
      // reiniciar secuencia
      setTimeout('proceso()', 500);
    } 
    // un estatus HTTP distinto de 200 indica que ha habido un error
    else 
    {
      alert("Ha habido un problema al acceder al servidor: " + http.statusText);
    }
  }
}
