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 banners()

{

  // Procede sólo si el objeto http no está ocupado

  if (http.readyState == 4 || http.readyState == 0)

  {

    myRand = parseInt(Math.random()*999999999999999);

    // ejecuta la página inicio.php desde el servidor

    http.open("GET", "ads/banner_rotate.php?rand="+myRand, 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('banners()', 5000);

}



// 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) 

    {

 	var miTexto = http.responseText;

	document.getElementById('banners_random').innerHTML = miTexto;

      // reiniciar secuencia

      setTimeout('banners()', 5000);

    } 

    // un estatus HTTP distinto de 200 indica que ha habido un error

    else 

    {

      alert("Ha habido un problema al acceder al servidor: " + http.statusText);

    }

  }

}

