if (typeof(com) == 'undefined') {
    com = {};
}
if (typeof(com.is_a) == 'undefined') {
    com.is_a = {};
}

com.is_a.AJAX = function(requestUrl, responseCallback, mimeType)
{
    this.GET = 'GET';
    this.POST = 'POST';
    this.xmlHttpRequest = null;
    this.requestUrl = requestUrl;
    this.responseCallback = responseCallback;
    this.mimeType = mimeType;
    this.mozilla = false;
    
    this.call = function(method)
    {
        if (this.xmlHttpRequest != null) {
            this.xmlHttpRequest.onreadystatechange = this.responseCallback;
            this.xmlHttpRequest.open(method, this.requestUrl, true);
            if (this.mimeType != null && this.mozilla) {
                this.xmlHttpRequest.overrideMimeType(this.mimeType);
            }
            this.xmlHttpRequest.send(null);
        }
    }
    
    this.postCall = function()
    {
        this.call(this.POST);
    }
    
    this.getCall = function()
    {
        this.call(this.GET);
    }
    
    this.readyState = function() 
    {
        if (this.xmlHttpRequest != null) {
            return this.xmlHttpRequest.readyState;
        }
        return null;
    }
    
    this.status = function()
    {
        if (this.xmlHttpRequest != null) {
            return this.xmlHttpRequest.status;
        }
        return null;
    }
    
    this.responseXML = function()
    {
        if (this.xmlHttpRequest != null) {
            return this.xmlHttpRequest.responseXML;
        }
        return null;
    }
    
    this.responseText = function()
    {
        if (this.xmlHttpRequest != null) {
            return this.xmlHttpRequest.responseText;
        }
        return null;
    }
    
    this.newXmlHttpRequest = function()
    {
        try {
            this.xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                this.xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e2) {
                this.xmlHttpRequest = null;
            }
        }
        if (this.xmlHttpRequest == null && typeof(XMLHttpRequest) != 'undefined') {
            this.mozilla = true;
            this.xmlHttpRequest = new XMLHttpRequest();
        }
        return this.xmlHttpRequest;
    }
    
    this.xmlHttpRequest = this.newXmlHttpRequest();
}
