HTTP = {};

HTTP._factories = [
    function () { return new XMLHttpRequest (); },
    function () { return new ActiveXObject ("Msxml2.XMLHTTP"); },
    function () { return new ActiveXObject ("Microsoft.XMLHTTP"); }
]

HTTP._factory = null;

HTTP.newRequest = function ()
{
    if (HTTP._factory)
	return HTTP._factory ();

    for (var i = 0; i < HTTP._factories.length; ++i) {
	try {
	    var factory = HTTP._factories[i];
	    var request = factory ();
	    if (request) {
		HTTP._factory = factory;
		return request;
	    }
	} catch (e) {
	    continue;
	}
    }
    HTTP._factory = function () {
	throw new Error ("XMLHttpRequest not supported by browser");
    }
    HTTP._factory();	// Throw an error
}

HTTP.getText = function (element)
{
    if (element.textContent)
	return element.textContent;	// standards-compliant
    else
	return element.text;		// IE
}
