var AjaxFactory = {};
AjaxFactory._factories = [
    function() 
    {
        return new XMLHttpRequest();
    },
    function() 
    {
        return new ActiveXObject('Msxml2.XMLHTTP');
    },
    function() 
    {
        return new ActiveXObject('Microsoft.XMLHTTP');
    }
];

AjaxFactory._factory = null;

AjaxFactory.newRequest = function ()
{
    if (AjaxFactory._factory != null)
    {
        return AjaxFactory._factory();
    }
    for (var i = 0; i < AjaxFactory._factories.length; i++)
    {
        try
        {
            var factory = AjaxFactory._factories[i];
            var request = factory();
            if (request != null)
            {
                AjaxFactory._factory = factory;
                return request;
            }
        }
        catch(ex)
        {
            continue;
        }
    }
    AjaxFactory._factory = function()
    {
        throw new Exception('XMLHttpRequest wird nicht unterstützt!');
    };
    AjaxFactory._factory();
};

function ajaxRequest( link, target_id )
{
    var R = AjaxFactory.newRequest();
    R.open('GET', link, true);
    R.onreadystatechange = function()
    {
        if (R.readyState == 4)
        {
            var updateElement = window.document.getElementById(target_id);
            if (R.status == 200)
            {
                updateElement.innerHTML=R.responseText;
            }
            else
            {
                updateElement.innerHTML='<div class="errorcontent">Es ist ein Fehler aufgetreten - Statuscode: '+R.status+'</div>';
            }
        }
        return;
    };
    R.send(null);
}

