// =============== MOTORES AJAX DEL FRAMEWORK-ERP CANAIMA ====================
// Funcionalidades Generales:
// 1 Recuperación de Datos desde el Servidor por diversas modalidades:
//          (1)POST-HTML (2)POST-XML (3)GET-HTML (4)GET-XML
// 2 Reemplazo de respuesta HTML en TAG DESTINO (innerHTML)
// 3 Otras Funciones CallBack para tareas específicas

function ObtenerDatos(destino, urlDatos) {
    var XMLHttpRequestObject = false;
  if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
  }

  if (XMLHttpRequestObject) {
    XMLHttpRequestObject.open("GET", urlDatos);
    XMLHttpRequestObject.onreadystatechange = function() {
      if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
        {
          var respHTML = XMLHttpRequestObject.responseText;
         // alert(respHTML);
          document.getElementById(destino).innerHTML = respHTML;
          delete XMLHttpRequestObject;
          XMLHttpRequestObject = null;
        }
    }
    XMLHttpRequestObject.send(null);
  }
}


function ObtenerDatosPorPOST(destino, url, Datos) {
  var XMLHttpRequestObject = false;
  if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
  }

  if (XMLHttpRequestObject) {
    XMLHttpRequestObject.open("POST", url);
    XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
    XMLHttpRequestObject.onreadystatechange = function() {
      if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
        {
          var respPostHTML = XMLHttpRequestObject.responseText;
          document.getElementById(destino).innerHTML = respPostHTML;
          delete XMLHttpRequestObject;
          XMLHttpRequestObject = null;
        }
    }
    XMLHttpRequestObject.send(Datos);
  }
}



function ObtenerPorGETDatosHTML(retorno, urlDatos) {
  //1.- Inicializa el objeto de requisiciones XMLHttp para hablar con Apache
  var XMLHttpRequestObject = false;
  //2.- Identifica si el objeto es Microsoft Internet Explorer o Mozilla Firefox
  if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
  }

  //3.- Si se crea el objeto, solicita ejecutar el archivo PHP (url) via metodo GET
  if (XMLHttpRequestObject) {
    XMLHttpRequestObject.open("GET", urlDatos);
    XMLHttpRequestObject.onreadystatechange = function() {
      //alert('State:' + XMLHttpRequestObject.readyState + ' - Status:' + XMLHttpRequestObject.status);
      if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
        {
          var respGetHTML = XMLHttpRequestObject.responseText;
          retorno(respGetHTML);
          //alert('Valor de Retorno luego de Callback: ' + valorRetorno);
          delete XMLHttpRequestObject;
          //alert('Valor de Retorno luego de delete: ' + valorRetorno);
          XMLHttpRequestObject = null;
          //alert('Valor de Retorno luego de null: ' + valorRetorno);
        }
    }
    //alert('Valor de Retorno fuera de function: ' + valorRetorno);
    XMLHttpRequestObject.send(null);
  }
  //alert('Fin de la funcion ObtenerPorGETDatosHTML');
}

function ObtenerPorGETDatosXML(retorno, urlDatos) {
  var XMLHttpRequestObject = false;
  if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
  }

  if (XMLHttpRequestObject) {
    XMLHttpRequestObject.open("GET", urlDatos);
    XMLHttpRequestObject.onreadystatechange = function() {
      if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
        {
          var respGetXML = XMLHttpRequestObject.responseXML;
          retorno(respGetXML);
          delete XMLHttpRequestObject;
          XMLHttpRequestObject = null;
        }
    }
    XMLHttpRequestObject.send(null);
  }
}

function ObtenerPorPOSTDatosHTML(retorno, url, Datos) {
  var XMLHttpRequestObject = false;
  if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
  }

  if (XMLHttpRequestObject) {
    XMLHttpRequestObject.open("POST", url);
    XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
    XMLHttpRequestObject.onreadystatechange = function() {
      if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
        {
          var respPostHTML = XMLHttpRequestObject.responseText;
          retorno(respPostHTML);
          delete XMLHttpRequestObject;
          XMLHttpRequestObject = null;
        }
    }
    XMLHttpRequestObject.send(Datos);
  }
}

function ObtenerPorPOSTDatosXML(retorno, url, Datos) {
  var XMLHttpRequestObject = false;
  if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
  }

  if (XMLHttpRequestObject) {
    XMLHttpRequestObject.open("POST", url);
    XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
    XMLHttpRequestObject.onreadystatechange = function() {
      if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
        {
          var respPostXML = XMLHttpRequestObject.responseXML;
          retorno(respPostXML);
          delete XMLHttpRequestObject;
          XMLHttpRequestObject = null;
        }
    }
    XMLHttpRequestObject.send(Datos);
  }
}


