/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

function $(id){
    var obj = document.getElementById(id);
    return obj;
}

function $N(name){
    var obj = document.getElementsByName(name);
    return obj;
}


function obtenerDatos(responseText,delimitadorInicio,delimitadorFin) {
   var datos="";
   if (delimitadorInicio==''||delimitadorInicio==null) delimitadorInicio="(#";
   if (delimitadorFin==''||delimitadorFin==null) delimitadorFin="#)";
   var inicio = responseText.indexOf(delimitadorInicio);
   var fin = responseText.lastIndexOf(delimitadorFin);
   datos=responseText.substring(inicio+delimitadorInicio.length, fin );
   return datos;
}

function cargaDocumento(txt)
{
    xmlDoc=document.implementation.createDocument("","",null);
    var oParser = new DOMParser();
    xmlDoc = oParser.parseFromString(txt,"text/xml");
    return xmlDoc;
}

 function convertXML(xml,tabla)
{
    var xmlDoc = null;
    var inicio = xml.indexOf("<data>");
    var fin = xml.lastIndexOf("</data>");
    xmlDoc=new XMLHttpRequest();
    if (xmlDoc!=null) {
        xml=xml.substring(inicio, fin + 7 );
        if (tabla!=null)    {
            inicio=xml.indexOf("<" + tabla + ">");
            fin=xml.lastIndexOf("</" + tabla + ">");
            xml="<data>\n" + xml.substring(inicio, fin + ("</" + tabla + ">").length ) + "\n</data>";
        }
        xmlDoc=cargaDocumento(xml);
    }
    return xmlDoc;
}

function createXMLHTTP()
{
    oRequest=new XMLHttpRequest();
    return oRequest;
}

function builRequestAjax(metodo,pagina)
{
    //<% Response.Expires = 0 %> IMPORTANTE AGREGAR A LAS PANTALLAS PARA QUE GUARDEN EN CACHE
    //btnProgress AGREGAR UN BOTON DE TIPO IMAGEN CON EL NOMBRE ANTERIOR PARA MANEJAR EL PROGRESS BAR
    //si retorna nulo no se tuvo ningun dato de retorno
    var oRequest=null;
    oRequest=createXMLHTTP();
    if(oRequest!=null)
     {
        oRequest.open(metodo,pagina,false);
        if(oRequest.readyState==4 && oRequest.responseText)
        {

        }
     }
     oRequest.send(null);
     return oRequest;
}


function builRequestAjaxXML(xml,pagina,funcion) {
    reqPost = createXMLHTTP();
    if(reqPost) {
        reqPost.open("POST", pagina , true);
        reqPost.setRequestHeader("Content-Type", "text/xml");
        reqPost.onreadystatechange = funcion;
        reqPost.send(xml);
    }
}

function buildXML(xml,nodoName,nodoValue)
{
    var nodo=xml.createElement(nodoName);
    nodo.appendChild(xmlDoc.createTextNode(nodoValue));
    xml.documentElement.appendChild(nodo);
}


function getValueXml(pXML,Fila,key)
{
    var valor="";
    var filasXML=0;
    if (pXML.documentElement!=null)  filasXML=pXML.getElementsByTagName(key).length-1;
    if (filasXML>-1)
    {
        if (filasXML>=Fila) {
            var objeto=pXML.getElementsByTagName(key)[Fila];
            if (objeto!=null) {
                if (objeto.text!=null) {
                    valor=objeto.text;
                }else {
                    valor=objeto.firstChild.data;
                }
            }
        }
    }
    return valor;
}


//************************************ COMBOS ***********************************************/
function FillCombo(cmbName,valueName,textName,opcion,addCampoNulo,textCampoNulo,link,campos) {
    if (campos==null) campos="";
    var parametros=link + "?opcion=" + opcion + campos;
    var req =   builRequestAjax("GET", parametros);
    if (req != null )
    {
       var vXML = convertXML(req.responseText);
       var combo =new ClassCombo();
       combo.Llenar(cmbName,vXML,valueName,textName,addCampoNulo,textCampoNulo);
    }
}

function CreaOpcion(value,text){
    var op=document.createElement('OPTION');
    op.value=value;
    op.text=text;
    return op;
}

function AgregarOption(id,value,text){
    var cmb=document.getElementById(id);
    cmb.options.add(this.CreaOpcion(value,text));
}

function Limpiar(pNombreControl)
{
    var cmb=document.getElementById(pNombreControl);
    var contDatos=cmb.childNodes.length;
    for (i=contDatos-1;i>=0;i--) {
        cmb.remove(i);
    }
}

function Llenar(pNombreControl,pXML,pNombreValor,pNombreTexto,agregaNulo,TextoNulo)
{
    var filasXML= 0;
    if (pXML.documentElement!=null)  filasXML=pXML.getElementsByTagName(pNombreTexto).length-1;
    this.Limpiar(pNombreControl);
    if (agregaNulo) {
         this.AgregarOption(pNombreControl,"",TextoNulo);
    }
    for (i=0;i<=filasXML;i++) {
        var valor=getValueXml(pXML,i,pNombreValor);
        var Texto=getValueXml(pXML,i,pNombreTexto);
        this.AgregarOption(pNombreControl,valor,Texto);
    }
}

function ClassCombo()
{
    this.Llenar=Llenar;
    this.CreaOpcion=CreaOpcion;
    this.AgregarOption=AgregarOption;
    this.Limpiar=Limpiar;
}







