
// Esta función carga asíncronamente el recurso solicitado
function cargarAsincrono(url)
{
    var conector = obtenerConector();
    if (conector == null) return false;
    conector.onreadystatechange = function() { cargarRecurso(conector); };
    conector.open('GET', url, true);
    conector.send(null);
}

// Esta función cargará el contenido de una dirección en un contenedor
function cargarContenedor(url, idContenedor)
{
    var conector = obtenerConector();
    if (conector == null) return false;
    conector.onreadystatechange = function() { cargarPagina(conector, idContenedor); };
    conector.open('GET', url, true);
    conector.send(null);
}

// Si todo es correcto, regarga el recurso solicitado
function cargarRecurso(conector)
{
	var recurso = null;
    if ((conector.readyState == 4) &&
		(conector.status == 200 || window.location.href.indexOf("http") == - 1))
	{
        recurso = conector.responseText;
	}
	return recurso;
}

// Si todo es correcto, regarga el contenedor con el contenido de la respuesta
function cargarPagina(conector, idContenedor)
{
	var contenido = cargarRecurso(conector);
	if (contenido != null)
	{
        document.getElementById(idContenedor).innerHTML = contenido;
	}
}

// Obtiene el conector asíncrono, según el navegador
function obtenerConector()
{
    var conector = null;
    if (window.XMLHttpRequest)
    {
        // Si es Mozilla, Safari etc
        conector = new XMLHttpRequest();
    }
	else if (window.ActiveXObject)
    {
        // pero si es IE
        try 
        {
            conector = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            // en caso que sea una versión antigua
            conector = new ActiveXObject("Microsoft.XMLHTTP");
        }
    } 
	return conector;
}
