function GetXmlHttpObject(handler) { 
	var objXmlHttp = null;
	if (!window.XMLHttpRequest) {
			// Microsoft
			objXmlHttp = GetMSXmlHttp();
			if (objXmlHttp != null) {
					objXmlHttp.onreadystatechange = handler;
			}
	} else {
			// IE7 | Mozilla | Netscape | Safari
			objXmlHttp = new XMLHttpRequest();
			if (objXmlHttp != null) {
					objXmlHttp.onload = handler;
					objXmlHttp.onerror = handler;
					objXmlHttp.onreadystatechange = handler;
			}
	} 
	return objXmlHttp; 
} 

function GetMSXmlHttp() {
    var xmlHttp = null;
    var clsids = ["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0",
                 "Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0", 
                 "Msxml2.XMLHTTP.2.6","Microsoft.XMLHTTP.1.0", 
                 "Microsoft.XMLHTTP.1","Microsoft.XMLHTTP"];
    for(var i=0; i<clsids.length && xmlHttp == null; i++) {
        xmlHttp = CreateXmlHttp(clsids[i]);
    }
    return xmlHttp;
}

function CreateXmlHttp(clsid) {
    var xmlHttp = null;
    try {
        xmlHttp = new ActiveXObject(clsid);
        lastclsid = clsid;
        return xmlHttp;
    }
    catch(e) {}
}

function SendXmlHttpRequest(xmlhttp, url) { 
    xmlhttp.open('GET', url, true); 
    xmlhttp.send(null); 
}