function AJAX(url, divID) {
	
    var ajaxTimer;
    
	var req = getXmlHttp();
    if (req) {
        req.onreadystatechange = processRequest;
    } else {
        noAJAX();
    }
    
    this.setTimer = function(time) {
        if (req)
            ajaxTimer = setTimeout("errorAJAX('" + divID + "')", time);
    }

    function getXmlHttp() {
	    if (window.XMLHttpRequest) {
		    xmlhttp = new XMLHttpRequest();
	    } else if (window.ActiveXObject) {
		    try {
			    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		    } catch (e) {
			    try {
				    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			    } catch (E) {
				    xmlhttp = false;
			    }
		    }
	    } else {
		    xmlhttp = false;
	    }
	    return xmlhttp;
    }
    
    function processRequest() {
        if (req.readyState == 4) {
            clearTimeout(ajaxTimer);
            if (req.status == 200) {
                afterAJAX(divID, req.responseText);
            } else {
                errorAJAX(divID);
            }
        }
    }

    this.doGet = function() {
        if (req) {
            req.open("GET", url, true);
            req.send(null);
        }
    }

    this.doPost = function(body) {
        if (req) {
            req.open("POST", url, true);
            req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            req.send(body);
        }
    }
}