/**
 * Returns an XMLHttpRequest object based on the client platform
 */
function getXMLHttpRequest() {
	var newRequest = null;
	if (window.XMLHttpRequest) {
		// Non-IE browsers
		newRequest = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		// IE
		newRequest = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return newRequest;
}
/**
 * Indicates if the request is of a ready state
 */
function isResponseReady() {
	return request.readyState == 4;
}

function ifHttpStatusOK() {
	return request.status == 200;
}

function getResponseText() {
	return request.responseText;
}

function getResponseXML() {
	return request.responseXML;
}

function getResponseStatusText() {
	return request.statusText;
}

/**
 * The global variable request object
 */
var request = null;

/**
 * Returns a response for the requested url.
 */
function getResponseForRequestUrl(url, method) {

	request = getXMLHttpRequest();
	request.onreadystatechange = method;
	request.open("GET", url, true);
	if (window.ActiveXObject) {
		// IE
    	request.send();
	} else if (window.XMLHttpRequest) {
		// Non-IE browsers
		request.send(null);
	}
	return request;
}

/**
 * Posts a request url.
 */
function postRequestUrl(url) {
	request = getXMLHttpRequest();
	request.open("POST", url, true);
	if (window.ActiveXObject) {
		// IE
    	request.send();
	} else if (window.XMLHttpRequest) {
		// Non-IE browsers
		request.send(null);
	}
}

function invokeRequestUrl(url) {
	getResponseForRequestUrl(url, function() {});
}