function loadModule(xml_str, xsl_str, div_str, type)
{
	if (window.XSLTProcessor)
	{	
		var xslStylesheet;
		var xsltProcessor = new XSLTProcessor();		
		var xmlDoc;
		
		// load the xslt file
		var myXMLHTTPRequest = new XMLHttpRequest();
		myXMLHTTPRequest.open("GET", xsl_str, false);
		myXMLHTTPRequest.send(null);
		
		xslStylesheet = myXMLHTTPRequest.responseXML;
		xsltProcessor.importStylesheet(xslStylesheet);
		
		
		// load the xml file
		myXMLHTTPRequest = new XMLHttpRequest();
		myXMLHTTPRequest.open("GET", xml_str, false);
		myXMLHTTPRequest.send(null);
		
		if (type=="text")
		{
			xmlString = myXMLHTTPRequest.responseText;  				
			var xmlDoc = (new DOMParser()).parseFromString(xmlString, "text/xml");	
		}
		else if(type == "xml")
		{
			xmlDoc = myXMLHTTPRequest.responseXML;
		}

		var fragment = xsltProcessor.transformToFragment(xmlDoc, document);		
		document.getElementById(div_str).innerHTML = "";
		document.getElementById(div_str).appendChild(fragment);
		
	}
	else if (window.ActiveXObject)
	{	
		// Load XML
		var xml = new ActiveXObject("Microsoft.XMLDOM")
		xml.async = false
		xml.load(xml_str)
		//alert(xml);
		
		// Load XSL
		var xsl = new ActiveXObject("Microsoft.XMLDOM")
		xsl.async = false
		xsl.load(xsl_str)
				
		//Transform
		document.getElementById(div_str).innerHTML = "";
		document.getElementById(div_str).innerHTML = xml.transformNode(xsl);
	}
}

/*function loadModuleAsync(xml_str, xsl_str, div_destino, type, callBackFunc)
{
	var div_destino_obj = document.getElementById(div_destino);
	if (window.XSLTProcessor)
	{	
		var xslStylesheet;
		var xsltProcessor = new XSLTProcessor();		
		var xmlDoc;
		
		// load the xslt file
		var myXMLHTTPRequest = new XMLHttpRequest();
		myXMLHTTPRequest.open("GET", xsl_str, false);
		myXMLHTTPRequest.send(null);
		
		xslStylesheet = myXMLHTTPRequest.responseXML;
		xsltProcessor.importStylesheet(xslStylesheet);
		
		
		// load the xml file
		myXMLHTTPRequest = new XMLHttpRequest();
		myXMLHTTPRequest.open("GET", xml_str, true);


		
		if (callBackFunc)
		{			
			function callBackWrapper()
			{						
				callBackFunc(myHTTPRequest);			
			}			
			myHTTPRequest.onreadystatechange = callBackWrapper;
		}
		else
		{
			myHTTPRequest.onreadystatechange = function()
			{
				if (myHTTPRequest.readyState==4)
				{
					if(myHTTPRequest.status==200)
					{
						if (div_destino)
						{
							if (type=="text")
							{
								xmlString = myXMLHTTPRequest.responseText;  				
								var xmlDoc = (new DOMParser()).parseFromString(xmlString, "text/xml");	
							}
							else if(type == "xml")
							{
								xmlDoc = myXMLHTTPRequest.responseXML;
							}
					
							var fragment = xsltProcessor.transformToFragment(xmlDoc, document);		
							document.getElementById(div_destino).innerHTML = "";
							document.getElementById(div_destino).appendChild(fragment);
						}
						else
						{
							return myHTTPRequest.responseText;
						}
					}
					else if(myHTTPRequest.status==404)
					{				
						div_destino_obj.innerHTML = "La direccion no existe";					
					}
					else
					{
						div_destino_obj.innerHTML = "Error: ".myHTTPRequest.status;
					}
				}
			}
		}
		
		myXMLHTTPRequest.send(null);
		
		
		
	}
	else if (window.ActiveXObject)
	{	
		// Load XML
		var xml = new ActiveXObject("Microsoft.XMLDOM")
		xml.async = false
		xml.load(xml_str)
		//alert(xml);
		
		// Load XSL
		var xsl = new ActiveXObject("Microsoft.XMLDOM")
		xsl.async = true;
		
		if (callBackFunc)
		{			
			function callBackWrapper()
			{						
				callBackFunc(myHTTPRequest);			
			}			
			myHTTPRequest.onreadystatechange = callBackWrapper;
		}
		else
		{
			myHTTPRequest.onreadystatechange = function()
			{
				if (myHTTPRequest.readyState==4)
				{
					if(myHTTPRequest.status==200)
					{
						if (div_destino)
						{
							if (type=="text")
							{
								xmlString = myXMLHTTPRequest.responseText;  				
								var xmlDoc = (new DOMParser()).parseFromString(xmlString, "text/xml");	
							}
							else if(type == "xml")
							{
								xmlDoc = myXMLHTTPRequest.responseXML;
							}
					
							var fragment = xsltProcessor.transformToFragment(xmlDoc, document);		
							document.getElementById(div_destino).innerHTML = "";
							document.getElementById(div_destino).appendChild(fragment);
						}
						else
						{
							return myHTTPRequest.responseText;
						}
					}
					else if(myHTTPRequest.status==404)
					{				
						div_destino_obj.innerHTML = "La direccion no existe";					
					}
					else
					{
						div_destino_obj.innerHTML = "Error: ".myHTTPRequest.status;
					}
				}
			}
		}
		
		
		
		
		
		
		
		xsl.load(xsl_str);
				
		//Transform
		document.getElementById(div_str).innerHTML = "";
		document.getElementById(div_str).innerHTML = xml.transformNode(xsl);
	}
}*/


function loadHTML(ruta,div_destino)
{
	var div_destino_obj = document.getElementById(div_destino);
	
	if (window.XMLHttpRequest)
	{
		var myHTTPRequest = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		var myHTTPRequest = new ActiveXObject('Microsoft.XMLHTTP');
	}
	
	myHTTPRequest.open('GET', ruta, false);
	myHTTPRequest.send(null);
	
	if (div_destino)
	{
		div_destino_obj.innerHTML = '';
		div_destino_obj.innerHTML = myHTTPRequest.responseText;
	}
	else
	{
		return myHTTPRequest.responseText;
	}
}

function loadHTMLAsync(ruta,div_destino,callBackFunc)
{
	var div_destino_obj = document.getElementById(div_destino);
	
	if (window.XMLHttpRequest)
	{
		var myHTTPRequest = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		var myHTTPRequest = new ActiveXObject('Microsoft.XMLHTTP');
	}
	
	myHTTPRequest.open('GET', ruta, true);
	
	if (callBackFunc)
	{			
		function callBackWrapper()
		{						
			callBackFunc(myHTTPRequest);			
		}			
		myHTTPRequest.onreadystatechange = callBackWrapper;
	}
	else
	{
		myHTTPRequest.onreadystatechange = function()
		{
			if (myHTTPRequest.readyState==4)
			{
				if(myHTTPRequest.status==200)
				{
					if (div_destino_obj)
					{
						div_destino_obj.innerHTML = '';
						div_destino_obj.innerHTML = myHTTPRequest.responseText;
					}
					else
					{
						return myHTTPRequest.responseText;
					}
				}
				else if(myHTTPRequest.status==404)
				{				
					div_destino_obj.innerHTML = "La direccion no existe";					
				}
				else
				{
					div_destino_obj.innerHTML = "Error: ".myHTTPRequest.status;
				}
			}
		}
	}
	
	myHTTPRequest.send(null);	
}

function cargarCamposFormulario(formId)
{		
	var formulario=document.getElementById(formId);
	var query = "";
    for (var i = 0; i < formulario.elements.length; i++)
	 {
        query += (i > 0 ? "&" : "") + escape(formulario.elements[i].name) + "=" + escape(formulario.elements[i].value);
    }
	
    return query;
}

function sendForm(url, formulario, capa, metodo, callBackFunc)
{
	var myHTTPRequest=false;
	var capaContenedora = document.getElementById(capa);
	
	if (window.XMLHttpRequest)
	{
		  myHTTPRequest = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{		 
		//alert("hola");
		myHTTPRequest = new ActiveXObject("MSXML2.XMLHTTP.3.0");
	}	
	if (!myHTTPRequest && typeof XMLHttpRequest!='undefined') 
	{
          myHTTPRequest = new XMLHttpRequest();
	}

/*Creamos y ejecutamos la instancia si el metodo elegido es POST*/
	if(metodo.toUpperCase()=='POST')
	{
		myHTTPRequest.open ('POST', url, true);		
		if (callBackFunc)
		{			
			function callBackWrapper()
			{						
				callBackFunc(myHTTPRequest);			
			}			
			myHTTPRequest.onreadystatechange = callBackWrapper;
		}
		else
		{
			myHTTPRequest.onreadystatechange = function()
			{
				if (myHTTPRequest.readyState==1)
				{
				 capaContenedora.innerHTML="Cargando.......";
				}
				else if (myHTTPRequest.readyState==4)
				{
					if(myHTTPRequest.status==200)
					{
						capa_obj.innerHTML=myHTTPRequest.responseText;
					}
					else if(myHTTPRequest.status==404)
					{				
						capa_obj.innerHTML = "La direccion no existe";					
					}
					else
					{
						capa_obj.innerHTML = "Error: ".myHTTPRequest.status;
					}
				}
			}
		}
	}
	  
	valores= cargarCamposFormulario(formulario);
	myHTTPRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	myHTTPRequest.send(valores);
	return;
}

// JavaScript Document