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)
  {
    // recupera el nombre escrito por el usuario en el formulario
    name = encodeURIComponent(document.getElementById("myName").value);
    // ejecuta la página inicio.php desde el servidor
    http.open("GET", "inicio.php?name=" + name, 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
      xmlResponse = http.responseXML;
      // obtenemos el "document element" (el elemento raíz) de la estructura XML
      xmlDocumentElement = xmlResponse.documentElement;
      // obtenemso el mensaje de texto, que está en el primer hijo de
	  // el "document element"
      helloMessage = xmlDocumentElement.firstChild.data;
      // actualizamos la pantalla del usuario usando los datos recibidos del servidor
      document.getElementById("divMessage").innerHTML = 
                                            '<i>' + helloMessage + '</i>';
      // reiniciar secuencia
      setTimeout('proceso()', 1000);
    } 
    // un estatus HTTP distinto de 200 indica que ha habido un error
    else 
    {
      alert("Ha habido un problema al acceder al servidor: " + http.statusText);
    }
  }
}

