var AJAX = {
    XmlHttp: null,
    create: function () {
        try {
            if (window.XMLHttpRequest) {
                    AJAX.XmlHttp = new XMLHttpRequest();
                    if (this.XmlHttp.readyState == null) {
                            this.XmlHttp.readyState = 1;
                            this.XmlHttp.addEventListener("load", function () {
                                    this.XmlHttp.readyState = 4;
                                    if (typeof this.XmlHttp.onreadystatechange == "function")
                                            tmpXmlHtp.onreadystatechange();
                            }, false);
                    }
            } else {
                    AJAX.XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
        catch (e) {
                alert("Your browser does not support XmlHttp objects");
                //throw new Error("Your browser does not support XmlHttp objects");
        }
    }
}

AJAX.openXML =  function (method, url, async, uname, pswd) {

		AJAX.create();

		if (AJAX.XmlHttp != null) {
                if (uname == undefined) {
                        AJAX.XmlHttp.open(method, url, async, uname, pswd);
                } else {
                        AJAX.XmlHttp.open(method, url, async);
                }
			if(method.toUpperCase() == 'POST'){
				AJAX.XmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
			}
				AJAX.XmlHttp.onreadystatechange = function () {
                        if (AJAX.XmlHttp.readyState == 4) {
                                if (AJAX.XmlHttp.status == 200) {
                                        AJAX.statusSuccessHandler(AJAX.XmlHttp.responseXML.xml);
                                } else {
                                        AJAX.statusErrorHandler();
                                        alert(AJAX.XmlHttp.status + '- Error while loading!');
                                }
                        }
                }
        } else {
                alert ("need to create xmlhttp object");
        }
}

AJAX.openText =  function (method, url, async, uname, pswd) {

		AJAX.create();

        if (AJAX.XmlHttp != null) {
                if (uname == undefined) {
                        AJAX.XmlHttp.open(method, url, async, uname, pswd);
                } else {
                        AJAX.XmlHttp.open(method, url, async);
                }
				if(method.toUpperCase() == 'POST'){
					AJAX.XmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
				}
				AJAX.XmlHttp.onreadystatechange = function () {
                        if (AJAX.XmlHttp.readyState == 4) {
                                if (AJAX.XmlHttp.status == 200) {
                                        AJAX.statusSuccessHandler(AJAX.XmlHttp.responseText);
                                } else {
                                        AJAX.statusErrorHandler();
                                        alert(AJAX.XmlHttp.status + '- Error while loading!');
                                }
                        }
                }
        } else {
                alert ("need to create xmlhttp object");
        }
}

AJAX.send = function (content) {
                if (content == undefined)
                        AJAX.XmlHttp.send(null);
                else
                        AJAX.XmlHttp.send(content);
}

AJAX.setOnReadyStateChange = function (funcname) {
                if (AJAX.XmlHttp) {
                        AJAX.XmlHttp.onreadystatechange = funcname;
                } else {
                        alert ("need to create xmlhttp object");
                }
}



AJAX.setStatusSuccessHandler = function (funcname) {
                AJAX.statusSuccessHandler = funcname;
}

AJAX.statusErrorHandler = function (status) {
                AJAX.rtnText = AJAX.XmlHttp.responseText;
}

AJAX.setStatusSuccessHandler = function (funcname) {
                AJAX.statusSuccessHandler = funcname
}

AJAX.setStatusErrorHandler = function (funcname) {
                AJAX.statusErrorHandler = funcname
}

AJAX.setRequestHeader = function (label, value)
{
        AJAX.XmlHttp.setRequestHeader(label, value);
}