﻿//Se crea el objeto ajax para poder leer los xml
function fn_ajax() 
{
        try { // Esto es para IExplorer
                ajax = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
                try {
                        ajax= new ActiveXObject("Microsoft.XMLHTTP");
                } catch (E) {
                        ajax= false;
                }
        }
        if (!ajax && typeof XMLHttpRequest!='undefined') { // y para Mozilla o Safari
                ajax = new XMLHttpRequest();
        }
        return ajax
}

function fn_procesar(xmlDoc, combo, estext)
{
	var value, texto;
	var maxelement = xmlDoc.responseXML.getElementsByTagName('item').length;

	for(i = 0; i < maxelement; i++) { //iniciamos un ciclo para movernos entre los nodos
		// Obtener el valor del nodo.
		value = xmlDoc.responseXML.getElementsByTagName('value')[i].firstChild.nodeValue;
		texto = xmlDoc.responseXML.getElementsByTagName('texto')[i].firstChild.nodeValue;
		
		if( !estext ) {
			// Crear un nuevo item en el objeto "select" (equivalente a un ComboBox en Windows)
			opcion = new Option(texto, value); 
			
			// Agregar item al objeto "select".
			document.getElementById(combo).options[i+1] = opcion; 
		} else {
			document.getElementById(combo).value = texto;
		}
	}	// fin for
}

function xml_valorflexible(tipo, combo, es_vf, tabla, nombre ,campo, valor, esiframe, estext, path)
{
try{
	var root;
	var i, value, texto, opcion;

	// Cargar ruta y pasar filtro (tipo de valor flexible o tabla directamente).
//	sreq = "form/xml_valorflexible.php";

	if (esiframe == true)
		sreq = "xml_valorflexible.php";
	else
		sreq = "xml_valorflexible.php";
	
	//alert(sreq);
	
	if(path) {
		sreq = path + sreq;
	}
		
	sreq = sreq + (es_vf == true ? "?tipo="+tipo : "?tabla="+tabla+"&nombre="+nombre+"&campo="+campo+"&valor="+valor);

	// Limpiar el objeto "select", dejar sin elementos.
	if(!estext) {
		document.getElementById(combo).options.length = 0;
	}

	if( document.getElementById(combo).type=="select-one" ) {
			
			document.getElementById(combo).options[0] = new Option("");
			document.getElementById(combo).options[0].selected = true;
			document.getElementById(combo).options[0].value = "";
	}
			
	xmlDoc = fn_ajax();
	xmlDoc.open("GET",sreq,false); //Abrimos la conexion
	xmlDoc.send(null);	// Para que se puede ejecutar, con parámetros (ya fueron pasados los parámetros en en el método open).
	
	switch(xmlDoc.status){
      case 200:
        fn_procesar(xmlDoc, combo, estext);
        return true;
      break;
      case 404:
        alert("NO se pude encontrar la url.");
        return false;
      break;
      case 414:
       alert("Los valores enviados por GET superan los 512 bytes.");
       return false;
      break;
    }	
}
catch(e){
	alert('ERROR xml_valorflexible: ' + e+ "   "+sreq);
}
}	// fin function xml_valorflexible(tipo, combo, es_vf, tabla, nombre ,campo, valor, esiframe, estext, path)

/*
FUNCION ANTIGUA
function xmlgetdata(sreq){
	var root;
	xmlDoc = Sarissa.getDomDocument();
	xmlDoc.async = false;
	xmlDoc.load( sreq );
	// Obtener la Etiqueta padre (tabla)
	// Nota el nombre de las eqtiquetas no da lo mismo mayÃºsculas y minÃ­sculas.
	root = xmlDoc.getElementsByTagName("ROOT")[0];	// Obtener el primer nodo de la raÃ­z.	
	if (root.tagName == "OK")
	{
		alert('VACIO');	
	}
	else
	{
		
		return root;	
	}
}
*/
function xmlgetdata(sreq)
{
	var root;
	xmlDoc = fn_ajax();
	xmlDoc.open("GET",sreq,false); //Abrimos la conexion
	xmlDoc.send(null);
	
	// Obtener la Etiqueta padre (tabla)
	// Nota el nombre de las etiquetas no da lo mismo mayusculas y minusculas.
	if(xmlDoc.status!=200)
	{
	  alert("Error: "+xmlDoc.status+" - No se puede obtener el nodo raiz -")
	}
	else
	{
	  	root = xmlDoc.responseXML.getElementsByTagName('ROOT')[0];// Obtener el primer nodo de la raiz.	
		if (root.tagName == "OK")
		{
			alert('VACIO');	
		}
		else
		{
			
			return root;	
		}
	}	
}