//Aqui empieza la funcionalidad ajax, para su utilizacion, hay ciertos comentarios en lo que sirve cada funcionalidad de ajax
// here we define global variable
var ajaxdestination="";

// creamos la funcion getXMLHTTPRequest que identifica al navegador y crea el objeto para la coneccion con ajax
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;
}

//almacenamos la funcion getXMLHTTPRequest en la variable http para usarla en todo el script ajax
var http = getXMLHTTPRequest();

//la funcion enviarHTTP envia los datos al servidor
function enviarHTTP (pagina, contenedor, valores) 
{
	var rand = parseInt(Math.random()*99999999); //se usa para que la pagina no se cargue del cache del explorador, colocando un n&#250;mero aleatorio en la url nunca se usar&#225; la del cache
	
	http.open ("POST", pagina, true); // abrimos la coneccion indicando el m&#233;todo (GET), la url y si queremos una peticion asincr&#243;nica
	
	ajaxdestination = contenedor;
	http.onreadystatechange = respuestaHTTP; //cuando la respuesta del servidor cambie de estado llamamos a la funcion que creamos abajo que devuelve los datos del servidor
	//Ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	if(valores!="")
	{
		http.send(valores); // se envia la petici&#243;n
	}
	else
	{
		http.send(null); // se envia la petici&#243;n
	}
}

//cuando la respuesta del servidor este completa esta funcion muestra los datos devueltosservidor
function respuestaHTTP () 
{
	if (http.readyState == 4) 
	{  // el numero 4 significa que la peticion ha sido completada
		if (http.status == 200) 
		{ // el 200 significa que la petici&#243;n fue completada correctamente
			var respuesta_php = http.responseText; //almacenamos la respuesta del servidor en una variable
			document.getElementById(ajaxdestination).innerHTML = respuesta_php; //insertamos el contenido que nos devolvi&#243; el servidor en el <div> de HTML
		}
		else
		{
			//si hay algun error lo muestra y detiene la petici&#243;n
			alert("Ha habido un problema al acceder al servidor: " + http.statusText);
			//setTimeout('Proceso()', 1000);
		}
	}
	if (http.readyState < 4) 
	{
		//esto es para que muestre un mensaje mientras se realiza el proceso
		document.getElementById(ajaxdestination).innerHTML = 'Cargando...';
	}
}

//AJAX auxiliar para recargar mas de dos veces ala vez una pagina
var ajaxdestinationaux="";
//almacenamos la funcion getXMLHTTPRequest en la variable http para usarla en todo el script ajax
var httpaux = getXMLHTTPRequest();

//la funcion enviarHTTP envia los datos al servidor
function enviarHTTPaux (peticion) 
{
	var rand = parseInt(Math.random()*99999999); //se usa para que la pagina no se cargue del cache del explorador, colocando un n&#250;mero aleatorio en la url nunca se usar&#225; la del cache
	
	httpaux.open ("GET", "peticion.php"+"?q="+peticion, true); // abrimos la coneccion indicando el m&#233;todo (GET), la url y si queremos una peticion asincr&#243;nica
	
	httpaux.onreadystatechange = respuestaHTTPaux; //cuando la respuesta del servidor cambie de estado llamamos a la funcion que creamos abajo que devuelve los datos del servidor
	//Ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	httpaux.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	httpaux.send(null); // se envia la petici&#243;n
}

//cuando la respuesta del servidor este completa esta funcion muestra los datos devueltosservidor
function respuestaHTTPaux () 
{
	if (httpaux.readyState == 4) 
	{  // el numero 4 significa que la peticion ha sido completada
		if (httpaux.status == 200) 
		{ // el 200 significa que la petici&#243;n fue completada correctamente
			var respuesta_phpaux = httpaux.responseText; //almacenamos la respuesta del servidor en una variable
			document.getElementById('txtHint').innerHTML = respuesta_phpaux; //insertamos el contenido que nos devolvi&#243; el servidor en el <div> de HTML
		}
		else
		{
			//si hay algun error lo muestra y detiene la petici&#243;n
			alert("Ha habido un problema al acceder al servidor: " + httpaux.statusText);
			//setTimeout('Proceso()', 1000);
		}
	}
	if (httpaux.readyState < 4) 
	{
		document.getElementById("txtHint").innerHTML="cargando...";
		//esto es para que muestre un mensaje mientras se realiza el proceso
		//document.getElementById("div_usuario").innerHTML = 'Cargando...';
	}
}
