function llamarasincrono (url, id_contenedor)
{    
	
	var pagina_requerida = false;    
	if (window.XMLHttpRequest)    
	{        
		// Si es Mozilla, Safari etc        
		pagina_requerida = new XMLHttpRequest ();    
	} else if (window.ActiveXObject)    
	{        
		// pero si es IE        
		try         
		{            
			pagina_requerida = new ActiveXObject ("Msxml2.XMLHTTP");        
		}catch (e){            
		// en caso que sea una versión antigua           
			 try {               
			 	 pagina_requerida = new ActiveXObject ("Microsoft.XMLHTTP");  
			 }catch (e){            
			 }        
		}   
	}else 
	 return false;    
	 pagina_requerida.onreadystatechange = function ()    
	 {        
		// función de respuesta        
		cargarpagina (pagina_requerida, id_contenedor);    
	 }   
	 pagina_requerida.open ('GET', url, true); // asignamos los métodos open y send    
	 pagina_requerida.send (null);



}
 // todo es correcto y ha llegado el momento de poner la información requerida
 // en su sitio en la pagina xhtmlfunction 
function cargarpagina (pagina_requerida, id_contenedor){   
 	 if (pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf ("http") == - 1))   
 	  document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText;
}

/*
Funcion que envia un formulario por post con ajax
*/
function enviaFormAjax(url, id_contenedor, formulario){
	var contenedor;
	contenedor = document.getElementById(id_contenedor);
	ajax=nuevoAjax();
	ajax.open("POST", url,true);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			contenedor.innerHTML = ajax.responseText
	 	}
	}
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.send(creaPost(formulario));
}

/*
Funcion que crea los campos a partir del nombre del formulario
*/
function creaPost(form){
	var Formulario = document.getElementById(form);
	var longitudFormulario = Formulario.elements.length;
	var cadenaFormulario = ""
	var sepCampos
	sepCampos = ""
	for (var i=0; i <= Formulario.elements.length-1;i++) {
		cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+encodeURI(Formulario.elements[i].value);
		sepCampos="&";
	}
	return cadenaFormulario;
}

/*
Funcion básica para obtener el objeto ajax
*/
function nuevoAjax(){
	var xmlhttp=false;
 	try {
 		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 	} catch (e) {
 		try {
 			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 		} catch (E) {
 			xmlhttp = false;
 		}
  	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
 		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}