// Mögliche XMLHttp-Request-Lieferanten 
// in verschiedenen Browsern
var HTTP_factories = new Array(
    function() { return new XMLHttpRequest(); },
    function() { return new ActiveXObject("Microsoft.XMLHTTP"); },
    function() { return new ActiveXObject("Msxml2.XMLHTTP"); }
);

// Zwischenspeicher für den XMLHttp-Request-Lieferanten 
// in _unserem_ Browser
var HTTP_factory = null;

// Neues XMLHttp-Request-Objekt erstellen,
// Bei ersten Aufruf der Reihe nach durchprobieren,
// funktionierenden Aufruf merken!
HTTP_newRequest = function() {
    if (HTTP_factory != null) return HTTP_factory();
    
    for( var i=0; i<HTTP_factories.length; i++ ) {
        try {
            var factory = HTTP_factories[i];
            var request = factory();
            //alert( request );
            
            if( request != null ) {
                HTTP_factory = factory;
                return request;
            }
        }
        catch(e) {
            continue;
        }
    }
    
    // Wenn wir hier ankommen, hat keine der Methoden funktioniert.
    // Also: Jetzt und bei späteren Aufrufen Fehler !!
    HTTP_factory = function() {
        throw new Error( "XMLHttpRequest vom Browser nicht unterstützt!");
    }
    // ... und 'raus mit dem Fehler
    HTTP_factory();
}
