function createREQ() {
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 requestGET(url, query, req) {
myRand=parseInt(Math.random()*99999999);
if(query == ''){query='no=no';}
req.open("GET",url+'?'+query+'&rand='+myRand,true);
req.send(null);
}
function requestPOST(url, query, req) {
req.open("POST", url,true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(query);
}
function doCallback(callback,item) {
eval(callback + '(item)');
}
//funcion principal (doAjax) los parametros son 
//*****url:Direccion pagina de proceso ejemplo pagina.php
//*****query:Envio de datos por parametros a la pagina si es metodo get se envia cedula=885930
//*****callback:Devolucion de llamada aqui define quien recibe los datos respondido mostrar(texto)
//*****reqtype:Metodo de trabajo get o post Por Defecto es get
//*****getxml: Metodo de envio respuesta reponseText(0) ó responseXML (1) recive 1 y 0 Por defecto es reponseText
//*****contenedor_espera:Div donde muestra una image de cargando si no se quiere utilizar colocar '' 
function doAjax(url,query,callback,reqtype,getxml,contenedor_espera) {
// crea la instancia del objeto XMLHTTPRequest 
var myreq = createREQ();
myreq.onreadystatechange = function() {//function()
if(myreq.readyState == 4) {//1
	if(contenedor_espera != '' ){document.getElementById(contenedor_espera).innerHTML ='';}
	if(myreq.status == 200) {//2
      	var item = myreq.responseText;
    	if(getxml==1) {//3
         item = myreq.responseXML;
    	}//3
      doCallback(callback, item);
    }//2
}//1
  else
     {//4
	   if(contenedor_espera != '' ){document.getElementById(contenedor_espera).innerHTML ='<img src="anim.gif" width="70" height="70">';}
     }//4
}//function()
	if(reqtype=='post') {//5
		requestPOST(url,query,myreq);
		}else{
		requestGET(url,query,myreq);
	}//5
}//***************fin de createREQ*****************


