function xml(archivo)
{
	this.xmlArchivo=archivo;
	this.objXml="";
	this.NombreFuncion="";
	this.Parametros=new Array();
	this.Clase=window;

	this.CreaActiveX = function()
	{		
		var moz = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined');
 		var ie = (typeof window.ActiveXObject != 'undefined'); 

		if (moz)
		{
			this.objXml = document.implementation.createDocument("", "", null)
			var objXml=this;
			this.objXml.onload=function()
			{
				objXml.EjecutaPost();
			}
		}
		else if(ie)
		{
			this.objXml = new ActiveXObject("Microsoft.XMLDOM");
			this.objXml.async = false;
			var Xml=this;
			this.objXml.onreadystatechange=function()
			{
				if (Xml.objXml.readyState == 4)
					Xml.EjecutaPost();
			}
		} 
	}
	
	this.Carga=function()
	{
		this.CreaActiveX();
		try
		{
			this.objXml.load(this.xmlArchivo+"?"+Math.random());
		}
		catch(e){ 
			alert("Este navegador no soporta xml");	
		}
	} 

	//funciones de ejecucion despues de cargar la paginas
	this.EjecutaPost=function()
	{
		if(this.NombreFuncion!="")
		{
			var func;
			func=this.Clase[this.NombreFuncion];
			func.apply(this.Clase,this.Parametros)
		}
	}
	
	this.EjecutaPostNoXMl=function(xmlhttp)
	{
		if(this.NombreFuncion!="")
		{
			if (xmlhttp.readyState == 4 && (xmlhttp.status==200 || window.location.href.indexOf("http")==-1))
			{
				var divXML = document.getElementById('_divPaginas');
				divXML.innerHTML=xmlhttp.responseText;
				this.objXml=divXML;
				var func;
				func=this.Clase[this.NombreFuncion];
				func.apply(this.Clase,this.Parametros)
			}
		}
	}
}







function cargaXML(nmbPag,funcion_ajax)
{
	var pagina_xml = false
	if (window.XMLHttpRequest)
	{// Si es Mozilla, Safari etc
		pagina_xml = new XMLHttpRequest()
	} 
	else if (window.ActiveXObject)
	{
		// pero si es IE
		try 
		{
			pagina_xml = new ActiveXObject ("Msxml2.XMLHTTP");
		}
		catch (e)
		{
		// en caso que sea una versión antigua
			try
			{
				pagina_xml = new ActiveXObject ("Microsoft.XMLHTTP");
			}
			catch (e)
			{}
		}
	}	

	pagina_xml.onreadystatechange=function()
	{ // función de respuesta
		cargarpagina_xml(pagina_xml,funcion_ajax)
	}
	
	pagina_xml.open('GET', nmbPag, true) // asignamos los métodos open y send
	pagina_xml.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	pagina_xml.send("");
}

function cargarpagina_xml(pagina_xml,funcion_ajax)
{
	var cargando=document.getElementById("cargando");
	if (pagina_xml.readyState == 4 && (pagina_xml.status==200 || window.location.href.indexOf("http")==-1))
	{	
		var objXML=document.createElement("div");
		//var objXML.innerHTML=pagina_xml.responseText;

		var divXmlOculto=document.getElementById("divXmlOculto");
		divXmlOculto.innerHTML=pagina_xml.responseText;

		cargando.style.display="none";
		if(funcion_ajax!=null)
		{
			//funcion=dispara_ajax;
			//dispara_ajax=null;
			funcion_ajax();
		}
	}
	else
		cargando.style.display="block";

	if(pagina_xml.readyState==4)
	{
		switch(pagina_xml.status)
		{
			case 403:
				alert("no tiene permisos");
			break;
			case 404:
				alert("Pagina no encontrada");
			break;
			case 500:
				alert("no se encuentra la pagina");
			break;
		}
	}
}


