/*
*Esta libreria es una libreria AJAX creada por Javier Mellado con la inestimable
*colaboracion de Beatriz Gonzalez.
*descargada del portal AJAX Hispano http://www.ajaxhispano.com
*contacto javiermellado@gmail.com
*
*Puede ser utilizada, pasada, modificada pero no olvides mantener 
*el espiritu del software libre y respeta GNU-GPL
MODIFICADO POR JOHN CAMPOS T.
-- PARA CARGAR OBJETOS DE TIPO SELECT,INPUT Y EJECUTAR FUNCIONES JAVASCRIPT LUEGO 
DE LA CARGA DEL DIV - DESDE EL PHP INVOCAR DE LA SIGUIENTE MANERA:
HACER SOLO UN ECO DE - echo "[JAVASCRIPT_FUNCION|nombre funcion1();nombre funcion2();....]";
-- SE AGREOGO FUNCION PARA ESCAPAR CARACTERES ESPECIALES DE URL EN LAS PETICIONES 
*/
function FUrlCodificar(url){   
   url = escape(url);
   url = url.replace("+",'%2B');
   return url;
}

function creaAjax(){
   var objetoAjax=false;
   try{
      objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
   }
   catch(e){
      try{
         objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(E){
         objetoAjax = false;
      }
   }   
   if(!objetoAjax && typeof XMLHttpRequest!='undefined'){
      objetoAjax = new XMLHttpRequest();
   }
   return objetoAjax;
}
function EjecutarFuncion(strFuncion){
   var js_function = new Function(strFuncion);
   js_function();
}
function FAjax (url,capa,valores,metodo,modoEspera,ExecFuncion){   
   var ajax=creaAjax();
   var capaContenedora = document.getElementById(capa);
   var esperaCarga = "<img src='imagenes/loading.gif'>";
   var strFuncion = ExecFuncion;
   
   if(modoEspera != null && modoEspera != 'undefined'){
      if(modoEspera.toUpperCase() == 'PUNTO'){
         esperaCarga = '.......';
      }      
      else if(modoEspera.toUpperCase() == 'NINGUNO'){
         esperaCarga = '';
      }
      else{
         esperaCarga = modoEspera + "&nbsp;" + esperaCarga;
      }       
   }
   
   if(metodo.toUpperCase()=='POST'){      
      ajax.open ('POST', url, true);
      ajax.onreadystatechange = function(){
         if(ajax.readyState==1){
            if(esperaCarga != ""){
               capaContenedora.innerHTML=esperaCarga;
            }
         }
            else if (ajax.readyState==4){
               if(ajax.status==200){                  
                  if(ajax.responseText.indexOf("[JAVASCRIPT_FUNCION|") > -1){
                     capaContenedora.innerHTML = "";
                     if(strFuncion != 'undefined'){
                        EjecutarFuncion(strFuncion);                                      
                     }
                     strFuncion = ajax.responseText.substring(ajax.responseText.indexOf('|')+1,ajax.responseText.length -1);                     
                     EjecutarFuncion(strFuncion);
                     return;
                  }
                  else{
                     capaContenedora.innerHTML = ajax.responseText;                     
                     if(strFuncion != 'undefined'){
                        EjecutarFuncion(strFuncion);                                      
                     }
                  }
               }
               else if(ajax.status==404){
                  capaContenedora.innerHTML = "HTTP 404";
               }
               else{
                  capaContenedora.innerHTML = "Error: ".ajax.status;
               }
            }
      }      
      ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      ajax.send(valores);
      return;
   }
}
