// JavaScript Document
function objeto_ajax() {
        objeto = false; 
        try {
                 objeto = new ActiveXObject('Msxml2.XMLHTTP'); /* algunas versiones IE */
        } catch (err1) {
                 try { 
                         objeto = new ActiveXObject("Microsoft.XMLHTTP"); /* algunas versiones IE */
                 } catch (err2) {
                          try {
                                 objeto = new XMLHttpRequest(); /* p.e. Firefox */
                          } catch (err3) {
                                 objeto = false; 
                          }
                } 
        }
        return objeto;
}

function motor_ajax_get(url, qry, http){  
          var aleatorio = new Date().getTime(); /*Evitar Cache*/
          http.open("GET", url+'?rand='+aleatorio+qry, true);
          http.send(null);
         /*Que se espere 1 seg si esta ocupada la conexion*/
         /* setTimeout(motor_ajax(), 1000); */
}

function motor_ajax_post(url, qry, http){  
          http.open("POST", url, true);
		  http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
          http.send(qry);
         /*Que se espere 1 seg si esta ocupada la conexion*/
         /* setTimeout(motor_ajax(), 1000); */
}

function doCallback(callback,item) {
       eval(callback + '(item)');
}

function compilar(url, qry, callback, metodo, getxml_txt, id_objeto, loading){
	
	var http = objeto_ajax();
	
	http.onreadystatechange = function(){
   	   if(http.readyState==4){
          if(http.status==200){
			  
                var item = http.responseText;
                if(getxml_txt==1) {
                      item = http.responseXML;
                }
                doCallback(callback, item);
				
          }else{
                alert("Ha ocurrido un problema: "+http.statusText);
          }
       }else{
             if(id_objeto)
			 {
			 	document.getElementById(id_objeto).innerHTML=loading; 
			 }
       }
	}
	if(metodo=='post') {
		motor_ajax_post(url, qry, http);
	}else{
		motor_ajax_get(url, qry, http);
	}
}
