

            function AjaxObject()
            {
                // Init the HTTPREQUEST
                function funcInitHttpRequest()
                {
                    if(window.XMLHttpRequest) // Mozilla, Safari, etc
                    {
                        try
                        {
                            oHttpRequest = new XMLHttpRequest();
                            if(oHttpRequest.overrideMimeType)
                            {
                                oHttpRequest.overrideMimeType('text/xml');
                            }
                        }
                        catch(e)
                        {
                            oHttpRequest = null;
                        }
                    }
                    else if(window.ActiveXObject) // Internet Explorer
                    {
                        try
                        {
                            oHttpRequest = new ActiveXObject('Msxml2.XMLHTTP');
                        }
                        catch(e)
                        {
                            try
                            {
                                oHttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
                            }
                            catch(e)
                            {
                                oHttpRequest = null;
                            }
                        }
                    }
                }

                // See if AJAX is available
                function funcIsAjaxEnabled()
                {
                    if(oHttpRequest == null)
                    {
                        return false;
                    }

                    return true;
                }

                // See if an error occured
                function funcIsErrorResponse()
                {
                    if(funcIsAjaxEnabled())
                    {
                        if(oHttpRequest.readyState == 4)
                        {
                            if((oHttpRequest.status != 200))
                            {
                                return true;
                            }
                        }
                    }

                    return false;
                }

                // See if a valid response was recieved
                function funcIsValidResponse()
                {
                    if(funcIsAjaxEnabled())
                    {
                        if(oHttpRequest.readyState == 4)
                        {
                            if((oHttpRequest.status == 200))
                            {
                                return true;
                            }
                        }
                    }

                    return false;
                }

                // Return the response as a string
                function funcGetResponseAsText()
                {
                    if(funcIsValidResponse()) // A valid responce was recieved.
                    {
                        return oHttpRequest.responseText;
                    }

                    return '';
                }

                // Get the current state of the AJAX object
                function funcGetState()
                {
                    if(funcIsAjaxEnabled())
                    {
                        return oHttpRequest.readyState;
                    }

                    return 0;
                }

                // Get the current status of the AJAX object
                function funcGetStatus()
                {
                    if(funcIsAjaxEnabled())
                    {
                        return oHttpRequest.status;
                    }

                    return 0; 
                }

                // Try to send a new request (url + return function)
                function funcSendRequest(sUrl, sFunction)
                {
                    if(funcIsAjaxEnabled())
                    {
                        try
                        {
                            oHttpRequest.onreadystatechange = sFunction;
                            oHttpRequest.open('GET', sUrl, true);
                            oHttpRequest.send(null);

                            return true;
                        }
                        catch(e)
                        {
                            alert('Cannot open URL: ' + sUrl);
                        }
                    }
                    else
                    {
                        alert('AJAX not available.');
                    }

                    return false;
                }

                // A reference to the HttpRequest object
                var oHttpRequest = null;

                // Define class methods
                this.enabled = funcIsAjaxEnabled;
                this.error = funcIsErrorResponse;
                this.request = funcSendRequest;
                this.response = funcIsValidResponse;
                this.state = funcGetState;
                this.status = funcGetStatus;
                this.text = funcGetResponseAsText;

                // Init oHttpRequest
                funcInitHttpRequest();
            }
