	var paginaDestino = "";
	var pruebas = false;
	var destino = "";		
	var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
	var prefixIE = ""
	var xmlObj;
	
	var strUrl = ""

	strNIE = navigator.appName
	if(strNIE.toUpperCase().indexOf("MICROSOFT")!=-1){
		strNIE="<script language='javascript'>"
    	strNIE+= "for(var i=0;i<prefixes.length;i++)"
    	strNIE+="try {"
		strNIE+="xmlDXML = new ActiveXObject(prefixes[i] + '.XMLDOM');"
		strNIE+="prefixIE = prefixes[i];"
		strNIE+="break;"
	 	strNIE+="} catch (e) {"
  		strNIE+="}"
  		strNIE+="</script>"
  		document.write(strNIE);
	 }

	function iXML(paginaXML, param, dest){
		paramFinal = ""
		destino = dest;						
		if(this.xmlLoadXML)return
		this.xmlLoadXML = true;
		clearTimeout(this.idoutConXML);				
		if(!this.creado){
			this.gDomXML() 			
		}				
	 	if(pruebas || !this.creado){
	 		if(param!="")
		 		if(paginaXML.indexOf("?")!=-1)
					paramFinal = "&" + param;
				else
					paramFinal = "?" + param;
			paginaDestino	= paginaXML + paramFinal
			document.location.href = paginaDestino;
		}else{														
			//this.idoutConXML = setTimeout("this.connectionTimeOut()",10000);	
			var dia = new Date()				
			this.xmlhXML.open("POST",paginaXML);
			this.xmlhXML.setRequestHeader('Content-Type','application/x-www-form-urlencoded;');					
			this.xmlhXML.send("xmlHttp=1&" + param + "&x=" + dia.getTime());
		}
	}
	
	function cargaXML(paginaXML){									
		if(this.xmlLoadXML)return
		this.xmlLoadXML = true;			
		clearTimeout(this.idoutConXML);		
		if(!this.creado){			
			this.gDomXML() 			
		}
	 	if(pruebas || !this.creado){
	 		if(param!="")
		 		if(paginaXML.indexOf("?")!=-1)
					paramFinal = "&" + param;
				else
					paramFinal = "?" + param;
			paginaDestino	= paginaXML + paramFinal
			document.location.href = paginaDestino;
		}else{												
			//this.idoutConXML = setTimeout("this.connectionTimeOut()",10000);
			var dia = new Date()			
			if(paginaXML.indexOf("?")!=-1)
				paginaXML += ("&x=" + dia.getTime());
			else
				paginaXML += ("?x=" + dia.getTime());				
			this.xmlhXML.open("GET",paginaXML);			
			this.xmlhXML.setRequestHeader('Content-Type','application/x-www-form-urlencoded;');						
			this.xmlhXML.send(null);				
		}
	}

	function gDomXML(){				
		if (document.implementation && document.implementation.createDocument){			
			this.xmlhXML = new XMLHttpRequest();					
			this.xmlhXML.onload = this.procesaFireFox;			
	    	this.creado = true	    
		}else
			if (window.ActiveXObject && prefixIE!=""){
				this.xmlhXML = new ActiveXObject(prefixIE + ".XmlHttp");		
				clearInterval(this.idTimeOut)
				this.idTimeOut = setInterval("compruebaXMLCargado()",100)		        
        		this.creado = true        
	 		}else
	    		this.creado = false
	}

	function gestionaContenido(){				
		clearTimeout(this.idoutConXML);
 		var divCONTENIDO = new div (destino, "")
 		this.xmlLoadXML = false;
 		divCONTENIDO.escribeDiv(this.xmlhXML.responseText);
	}	
	
	function compruebaXMLCargado(nombre){										
		if(xmlObj.xmlhXML.readyState==4){				
			clearInterval(xmlObj.idTimeOut)
			xmlObj.cargado = true;						
			clearTimeout(xmlObj.idoutConXML); 								 	
			xmlObj.resultado = xmlObj.xmlhXML.responseText;			 				 						
			xmlObj.gestionaContenido();													
		}								
	}
	function procesaFireFox(){				
		xmlObj.cargado = true;						
		clearTimeout(xmlObj.idoutConXML); 				
		xmlObj.xmlLoadXML = false;
		var domParser = new DOMParser();		
		xmlObj.resultado = xmlObj.xmlhXML.responseText;
		xmlObj.gestionaContenido()
	}

	function connectionTimeOut(){
		clearTimeout(this.idoutConXML);
		this.xmlLoadXML=false;
	}
		
	function generaXML(formName, pagina, dest){
		var formu = document.forms[formName]
		destino = dest;						
		var str = generaParametros(formName)	
		this.iXML(pagina, str, dest)										
	}

	function generaParametros(formName){
		var str = ""
		var formu = document.forms[formName]					
		for(i=0;i<formu.length;i++){				
			switch(formu[i].type){
				case "text":
					str += "&" + formu.elements[i].name + "=" + formu.elements[i].value
					break;
				case "password":
					if(formu.elements[i].name != 'codigo')
						str += "&" + formu.elements[i].name + "=" + formu.elements[i].value
					break;
				case "radio":
					if(formu.elements[i].checked)
						str += "&" + formu.elements[i].name + "=" + formu.elements[i].value
					break;
				case "select-one":				
					if(formu.elements[i].selectedIndex!=-1) 
						str += "&" + formu.elements[i].name + "=" + formu.elements[i].options[formu.elements[i].selectedIndex].value
					break;
				case "select-multiple":
					selOpt = ""
					for(j=0;j<formu.elements[i].options.length;j++){
						if(formu.elements[i].options[j].selected)
							selOpt += formu.elements[i].options[j].value + ", "
					}
					if(selOpt != "")
						str += "&" + formu.elements[i].name + "=" + selOpt;
					break;
				case "hidden":
					str += "&" + formu.elements[i].name + "=" + formu.elements[i].value
					break;
				case "textarea":
					str += "&" + formu.elements[i].name + "=" + formu.elements[i].value
					break;
				case "checkbox":
					if(formu[i].checked){
						str += "&" + formu.elements[i].name + "=" + formu.elements[i].value
					}
			}
		}									
		return str
	}

	function objXML(name, persistencia){	
		this.name = name;	
		this.cargado = false;				
		this.resultado = null
		this.xmlhXML = null;
		this.gDomXML = gDomXML;		
		this.iXML = iXML;				
		this.xmlLoadXML = false;
		this.idoutConXML = null;
		this.creado = false;
		this.cargaUrlXML = cargaXML;		
		this.cargaTxtXML = null;	
		this.gestionaContenido = gestionaContenido;
		this.procesaFireFox = procesaFireFox
		this.idTimeOut = null;	
		this.inicializa = inicializa			
		this.persistencia = persistencia						
	}
	
	function Transforma(xmlTmp, xslTmp) {   		
		if (document.implementation && document.implementation.createDocument){
			var xsltProcessor = new XSLTProcessor();			
			xsltProcessor.importStylesheet(xslTmp)		
			return xsltProcessor.transformToDocument (xmlTmp);
		}else if (window.ActiveXObject){			
			return xmlTmp.transformNode(xslTmp);
		}
	}
	
	function importXML(urlXML){		
		var xmlDoc
		if (document.implementation && document.implementation.createDocument){
			xmlDoc = document.implementation.createDocument("", "", null);			
		}
		else if (window.ActiveXObject){
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");			
	 	}else{
			alert('Tu navegador no soporta esta funcionalidad.');
			return false;
		}	
		xmlDoc.async = 0
		xmlDoc.load(urlXML);	
		return xmlDoc
	}
	
	function borraEleArray(cad){
 		for(i=0;i<arrayObj.length;i++){ 			
			if(cad == arrayObj[i]){
				for(j=i+1;j<arrayObj.length;j++){																		
					arrayObj[j-1] = arrayObj[j]									
				}
			}
		}	
		if(arrayObj.length!=0)
			arrayObj.length=arrayObj.length-1;
 	} 	 
 	
 	function refrescar(){}
 	
 	function inicializa(){
 		if(!this.persistencia){
 			this.cargado = false;								
			this.xmlLoadXML = false;
			this.idoutConXML = null;											
		}
 	}		