﻿// Archivo JScript
var http_request= false;
var objetoReceptor = null;
function BuscarHijo(Node,NombreTAG)
{
   for(i=0;Node.childNodes.length>0;i++)
   {
        hijo=Node.childNodes[i];
        if(hijo.nodeName==NombreTAG)
        {
            return hijo;
        }
        else
        {
            hijo=BuscarHijo(hijo,NombreTAG);
            if(hijo)
            {
                return hijo;
            }
        }
   }
   return null;
}

function BuscarPadre(Node,controlID)
{
   var padre=Node.parentNode;
   for(;padre!=null && padre.id.search(controlID)<0;)
   {
        padre=padre.parentNode;
   }
   return padre;
}

function DarNombreControl(strControl,cantidad)
{
    return strControl.split("_").reverse()[cantidad-1];//-1 por que quiero la posicion, no la cantidad
}

///Da el objeto calculado ya instanciado.
function DarObjetoCalculado(IDControl)
{
    if(IDControl)
        try
        {
            return eval("".concat("obj",IDControl));
        }
        catch(ex)
        {
            return null;
        }
    else
        return null;
}

function EsIE()
{
    return navigator.appName=="Microsoft Internet Explorer";
}
function DarValorXML(objXML)
{
    if (EsIE())
        return objXML.text;
    else
        return objXML.textContent;
}
///este makeRequest es SINCRONICO
function makeRequest(url,objeto) 
{
    try
    {

        http_request = false;
        if (window.XMLHttpRequest) 
        { // Mozilla, Safari,...
           http_request = new XMLHttpRequest();
           if (http_request.overrideMimeType) {
               http_request.overrideMimeType('text/xml');
           }
       } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            //alert('Ups... problemas con la solicitud de datos');
            return false;
        }
        objetoReceptor=objeto;
	    //http_request.onreadystatechange = handler;
	    http_request.open('GET', url, false);
        http_request.send(null);
        objeto.ArmarDatos(http_request.responseXML);
     }
     catch(ex)
     {
        //alert(ex.Message);
     }

}
///este makeRequest es ASINCRONICO
function makeRequestAsync(url,objeto) 
{
    try
    {

        http_request = false;
        if (window.XMLHttpRequest) 
        { // Mozilla, Safari,...
           http_request = new XMLHttpRequest();
           if (http_request.overrideMimeType) {
               http_request.overrideMimeType('text/xml');
           }
       } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            //alert('Ups... problemas con la solicitud de datos');
            return false;
        }
        objetoReceptor=objeto;
	    http_request.onreadystatechange = handler;
	    http_request.open('GET', url, false);
        http_request.send(null);
     }
     catch(ex)
     {
        //alert(ex.Message);
     }

}
///El Handler se utiliza con el makeRequest ASICNCRONICO
function handler() 
{
    try
    {
         if(http_request.readyState == 4 && http_request.status == 200) 
         {
            if(http_request.responseXML != null)
            {
                objetoReceptor.ArmarDatos(http_request.responseXML);
            }
            else
            {
                objetoReceptor=null;
                //alert("Error");
            }
         } 
         else 
         if (http_request.readyState == 4 && http_request.status != 200) 
         {
             objetoReceptor=null;
             //alert("Error");
         }
     }
     catch(ex)
     {
        //alert(ex.Message);
     }
}
