// Returns a http request object
function getHTTPRequest()
{
        var xmlhttp = false;
        /*@cc_on @*/
        /*@if (@_jscript_version >= 5)
        // JScript gives us Conditional compilation, we can cope with old IE versions.
        // and security blocked creation of the objects.
        try
        {
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
                try
                {
                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (E)
                {
                        xmlhttp = false;
                }
        }
        @end @*/
        if(!xmlhttp && typeof XMLHttpRequest != 'undefined')
        {
                try
                {
                        xmlhttp = new XMLHttpRequest();
                }
                catch(e)
                {
                        xmlhttp = false;
                }
        }
        if(!xmlhttp && window.createRequest)
        {
                try
                {
                        xmlhttp = window.createRequest();
                }
                catch(e)
                {
                        xmlhttp = false;
                }
        }
        return xmlhttp;
}

// Performs an ajax call, putting the resulting HTML in destElement.innerHTML
function ajaxPageLoad(url, destElement, args)
{
        destElement.innerHTML = 'Waiting...';

        var xmlhttp = getHTTPRequest();
        xmlhttp.open("POST", url, true);
        xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xmlhttp.onreadystatechange = function()
        {
                if(xmlhttp.readyState == 4)
                {
                        if(xmlhttp.status == 200)
                {
                                destElement.innerHTML = xmlhttp.responseText;
                        }
                        else
                        {
                                destElement.innerHTML = 'Error ' + xmlhttp.status;
                }
                }
                else
                {
                        destElement.innerHTML = 'Loading data...';
                }
        }

        var d = '';
        if(args != null)
        {
                for(i = 0; i < args.length; i += 2)
                {
                        var n = escape(args[i]);
                        var v = '';
                        if(i + 1 < args.length)
                        {
                                v = escape(args[i + 1]);
                        }
                        if(i > 0)
                        {
                                d += '&';
                        }
                        d += (n + '=' + v);
                }
        }
        xmlhttp.send(d);
}


