function Ajax (url, parameters, loadFunc, readyFunc)
{
    var request = false;
    this.url = webroot+url;
    this.parameters = parameters;

    var loadFunc = loadFunc;
    var readyFunc = readyFunc;

    this.makeRequest = function (loadArgs, readyArgs)
    {
        request = false;
        if (window.XMLHttpRequest)
        {
            request = new XMLHttpRequest();

            if (request.overrideMimeType)
            {
                request.overrideMimeType('text/xml');
            }
        }
        else if (window.ActiveXObject)
        {
            try
            {
                request = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e)
            {
                try
                {
                    request = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e)
                {
                    alert ('Error in MS.XMLHTTP: ' + e);
                }
            }
        }

        if (!request)
        {
            alert('Cannot create XMLHTTP instance');
            return false;
        }

        request.onreadystatechange = function ()
        {
            if (request.readyState == 1)
            {
                loadFunc(loadArgs);
            }
            else if (request.readyState == 4)
            {
                if (request.status == 200 || request.status == 302 || request.status == 304)
                {
                	readyFunc(request.responseXML.documentElement, readyArgs);
                }
                else
                {
                    alert ('There was a problem with the request.');
                }
            }
        }

        request.open('POST', this.url, true);
        request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        request.setRequestHeader("Content-length", this.parameters.length);
        request.setRequestHeader("Connection", "close");
        request.send(parameters);
    }
}

