
function AjaxObject()
{
    AjaxObject.prototype.getRequest = _getRequest;
    AjaxObject.prototype.postRequest = _postRequest;
    AjaxObject.prototype.getResponse = _getResponse;
    AjaxObject.prototype.getState = _getState;
    AjaxObject.prototype.isPending = _isPending;
    AjaxObject.prototype.isOK = _isOK;
    AjaxObject.prototype.isError = _isError;
    AjaxObject.prototype.setId = _setId;
    AjaxObject.prototype.getId = _getId;

    var AJAXRequest = null;
    var sId = "-1";

    function _getRequest(url, callbackMethod)
    {
        AJAXRequest = createXMLHttp();

        if( AJAXRequest == null )
        {
            return;
        }
        AJAXRequest.onreadystatechange = callbackMethod;
        AJAXRequest.open('GET', url, true);
        AJAXRequest.send(url);
    }

    function createXMLHttp() 
    {
        var ajaxRequest = null;

        if (window.XMLHttpRequest)
       {
           ajaxRequest = new XMLHttpRequest();
       } 
       else if (window.ActiveXObject) 
       {
            var aVersions = [ "MSXML2.XMLHttp.5.0",
                              "MSXML2.XMLHttp.4.0",
                              "MSXML2.XMLHttp.3.0",
                              "MSXML2.XMLHttp",
                             "Microsoft.XMLHttp"];

            for (var i = 0; i < aVersions.length; i++) 
            {
                try 
                {
                    ajaxRequest = new ActiveXObject(aVersions[i]);
                } 
                catch (oError) 
                {
                    //Do nothing
                }        
            }
       }
       return(ajaxRequest);
    }
    function _postRequest(url,parms,callbackMethod)
    {
        AJAXRequest = (window.XMLHttpRequest)? new XMLHttpRequest(): new ActiveXObject("MSXML2.XMLHTTP"); 
	    
        AJAXRequest.onreadystatechange = callbackMethod;
        AJAXRequest.open('POST', url, true);

        //Send the proper header information along with the request
        AJAXRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        AJAXRequest.setRequestHeader("Content-length", parms.length);
        AJAXRequest.setRequestHeader("Connection", "close");

        AJAXRequest.send(parms);
    }

    function _isPending()
    {
        if( AJAXRequest == null )
        {
            return( false );
        }
    
        return( AJAXRequest.readyState != 4 );
    }

    function _isOK()
    {
        if( (_isPending() == false) && (AJAXRequest.status == 200) )
        {
            return true;
        }
        return false;
    }

    function _isError()
    {
        if( (_isPending() == false) && (AJAXRequest.status != 200) )
        {
            return true;
        }
        return false;
    }

    function _getResponse()
    {
	    if( AJAXRequest.getResponseHeader('Content-Type').indexOf('xml') != -1)
	    {
		    return (AJAXRequest.responseXML.documentElement);
	    }
	    else
	    {
		    return (AJAXRequest.responseText);
	    }
    }

    function _getState()
    {
        var sState = '';
        
        if( AJAXRequest == null )
        {
            return( 'Not initialized' );
        }

        switch( AJAXRequest.readyState)
        {
                case 1:
                    sState = 'Loading 1 ...';
                        break;
                case 2:
                    sState = 'Loading 2 ...';
                        break;
                case 3:
                    sState = 'Loading 3 ...';
                        break;
                case 4:
                    sState = AJAXRequest.status;
                    break;
                default:
                    sState = 'An unexpected error has occurred.';
                    break;
        }
        return( sState );
    }
    
    function _setId(sid)
    {
        sId = sid;
    }

    function _getId()
    {
        return(sId);
    }
    
}
	
