function CrearREQ() {
try {
     req = new XMLHttpRequest(); /* p.e. Firefox */
     } catch(err1) {
       try {
       req = new ActiveXObject('Msxml2.XMLHTTP'); /* algunas versiones IE */
       } catch (err2) {
         try {
         req = new ActiveXObject("Microsoft.XMLHTTP"); /* algunas versiones IE */
         } catch (err3) {
          req = false;
         }
       }
     }
     return req;
}

function req_GET(url, datos, req) {
	mi_Rand=parseInt(Math.random()*99999999);
	//ruta=url+'?'+datos+'&rand='+mi_Rand;
	// alert("entro a get "+datos);
	ruta=url+'?'+datos;
	req.open("GET",ruta,true);
	req.send(null);
}

function req_POST(url, datos, req) {	// alert("entro a post "+datos);
	req.open("POST", url,true);
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	req.send(datos);
}

function doFuncion(Funcion,item,NombreCapa) {
	eval(Funcion + '(item,NombreCapa)');
}

function doAjax(url,datos,Funcion,tipo_req,getxml,elementoPag){
	/*
		url  	:  Direccion del scrip php para procesar los datos
		datos	:  Cadena de datos que se enviaran
		Funcion :  Nombre de la funcion que se llamara para manipular los datos devueltos
		tipo_req:  Tipo de peticion GET o POST
		getxml  :  Bandera para indicar tipo de resultado  (0: Texto ó 1: XML)
		elementoPag	: Nombre de la capa que mostrara  los datos devueltos
	*/
	// crea la instancia del objeto XMLHTTPRequest
	var mi_req = CrearREQ();
    mi_req.onreadystatechange = function() {		if(mi_req.readyState == 4) {
		   if(mi_req.status == 200) {
		      if(getxml==1) {
		         var item = mi_req.responseXML;
		      }
		      else{		      	 var item = mi_req.responseText;		      }
		      doFuncion(Funcion, item,elementoPag);
		   }
		   // un estatus HTTP distinto de 200 indica que ha habido un error
    	   else{
      		 alert("Ha habido un problema al acceder al servidor: " + mi_req.statusText);
    	   }
		}
		else {			MensajeDeEspera='<table align="Center"><tr><td align="Center">';
			MensajeDeEspera+='Procesando...';
			MensajeDeEspera+='<img src="../images/cargarlogoazul.gif">';
			MensajeDeEspera+='</td></tr></table>';
  			document.getElementById(elementoPag).innerHTML =MensajeDeEspera ;
  		}

	}

	if(tipo_req=='post') {
		req_POST(url,datos,mi_req);
	}
	else{
		req_GET(url,datos,mi_req);
	}
}


