var req;

function loadXMLDoc(url, cback) {
	req = false;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest) {
    	try {
			req = new XMLHttpRequest();
        } catch(e) {
			req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
    }
	if(req) {
		req.onreadystatechange = cback;
		req.open("GET", url, true);
		req.send("");
	}
}

// example callback
// in this example the url you requested is expected to return
// an object id (string) for the object that should be hidden
function hideit() {
	if (req.readyState == 4 && req.status == 200 && req.responseText != "error") {
		var myobject = document.getElementById(req.responseText);
		if (myobject) myobject.style.display = 'none';
	}
}

// xmldata is a string containing the XML data to be posted
function postXMLReq(url, formdata, cback) {
	req = false;

	// branch for native XMLHttpRequest object
	if(window.XMLHttpRequest) {
    		try {
			req = new XMLHttpRequest();
	        } catch(e) {
			req = false;
	        }

	// branch for IE/Windows ActiveX version
	} else if(window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
      		} catch(e) {
        		try {
          			req = new ActiveXObject("Microsoft.XMLHTTP");
        		} catch(e) {
          			req = false;
        		}
		}
	}

	if(req) {
		req.onreadystatechange = cback;
		req.open("POST", url, true);
		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		req.send(formdata);
	}
}
