function getData(dataSource, callback)
{
	/* create a new XMLHttpRequest each time to cater for multiple requests.*/
	var XMLHttpRequestObject = false;


	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		try {
			XMLHttpRequestObject = new ActiveXObject("MSXML2.XMLHTTP");
		}
		catch (exception1) {
			try {
				XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (exception2) {
				XMLHttpRequestObject = false;
			}
		}
		
		if (!XMLHttpRequestObject && window.XMLHttpRequest) {
			XMLHttpRequestObject = new XMLHttpRequest();
		}
	}
	
	if (XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET", dataSource);
		
		/* inner function */
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if (XMLHttpRequestObject.readyState == 4 && 
				XMLHttpRequestObject.status == 200) 
			{
				callback(XMLHttpRequestObject.responseText);
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
			}
		}

		XMLHttpRequestObject.send(null);
	}
}

function getDataReturnXML(dataSource, callback)
{
	/* create a new XMLHttpRequest each time to cater for multiple requests.*/
	var XMLHttpRequestObject = false;


	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		try {
			XMLHttpRequestObject = new ActiveXObject("MSXML2.XMLHTTP");
		}
		catch (exception1) {
			try {
				XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (exception2) {
				XMLHttpRequestObject = false;
			}
		}
		
		if (!XMLHttpRequestObject && window.XMLHttpRequest) {
			XMLHttpRequestObject = new XMLHttpRequest();
		}
	}
	
	if (XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET", dataSource);
		
		/* inner function */
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if (XMLHttpRequestObject.readyState == 4 && 
				XMLHttpRequestObject.status == 200) 
			{
				callback(XMLHttpRequestObject.responseXML);
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
			}
		}

		XMLHttpRequestObject.send(null);
	}
}


/* outer function */
function postDataReturnXML(dataSource, data, callback)
{
	/* create a new XMLHttpRequest each time to cater for multiple requests.*/
	var XMLHttpRequestObject = false;


	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		try {
			XMLHttpRequestObject = new ActiveXObject("MSXML2.XMLHTTP");
		}
		catch (exception1) {
			try {
				XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (exception2) {
				XMLHttpRequestObject = false;
			}
		}
		
		if (!XMLHttpRequestObject && window.XMLHttpRequest) {
			XMLHttpRequestObject = new XMLHttpRequest();
		}
	}
	
	if (XMLHttpRequestObject) {
		XMLHttpRequestObject.open("POST", dataSource);
		XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		
		/* inner function */
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if (XMLHttpRequestObject.readyState == 4 && 
				XMLHttpRequestObject.status == 200) 
			{
				
				var xmlDocument=XMLHttpRequestObject.responseXML;
				callback(xmlDocument);
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
			}
		}
		
		XMLHttpRequestObject.send(data);
	}
}

function postDataReturnText(dataSource, data, callback)
{
	/* create a new XMLHttpRequest each time to cater for multiple requests.*/
	var XMLHttpRequestObject = false;


	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		try {
			XMLHttpRequestObject = new ActiveXObject("MSXML2.XMLHTTP");
		}
		catch (exception1) {
			try {
				XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (exception2) {
				XMLHttpRequestObject = false;
			}
		}
		
		if (!XMLHttpRequestObject && window.XMLHttpRequest) {
			XMLHttpRequestObject = new XMLHttpRequest();
		}
	}
	
	if (XMLHttpRequestObject) {
		XMLHttpRequestObject.open("POST", dataSource);
		XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		
		/* inner function */
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if (XMLHttpRequestObject.readyState == 4 && 
				XMLHttpRequestObject.status == 200) 
			{
				callback(XMLHttpRequestObject.responseText);
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
			}
		}
		
		XMLHttpRequestObject.send(data);
	}
}

/* outer function */
function postData(dataSource, data)
{
	/* create a new XMLHttpRequest each time to cater for multiple requests.*/
	var XMLHttpRequestObject = false;


	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		try {
			XMLHttpRequestObject = new ActiveXObject("MSXML2.XMLHTTP");
		}
		catch (exception1) {
			try {
				XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (exception2) {
				XMLHttpRequestObject = false;
			}
		}
		
		if (!XMLHttpRequestObject && window.XMLHttpRequest) {
			XMLHttpRequestObject = new XMLHttpRequest();
		}
	}
	
	if (XMLHttpRequestObject) {
		XMLHttpRequestObject.open("POST", dataSource);
		XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		
		/* inner function */
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if (XMLHttpRequestObject.readyState == 4 && 
				XMLHttpRequestObject.status == 200) 
			{
				//var xmlDocument=XMLHttpRequestObject.responseXML;
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
			}
		}
		
		XMLHttpRequestObject.send(data);
	}
}

function getDataForPaging(dataSource, callback)
{
	/* create a new XMLHttpRequest each time to cater for multiple requests.*/
	var XMLHttpRequestObject = false;


	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		try {
			XMLHttpRequestObject = new ActiveXObject("MSXML2.XMLHTTP");
		}
		catch (exception1) {
			try {
				XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (exception2) {
				XMLHttpRequestObject = false;
			}
		}
		
		if (!XMLHttpRequestObject && window.XMLHttpRequest) {
			XMLHttpRequestObject = new XMLHttpRequest();
		}
	}
	
	if (XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET", dataSource);
		
		/* inner function */
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if (XMLHttpRequestObject.readyState == 4 && 
				XMLHttpRequestObject.status == 200) 
			{
				callback(XMLHttpRequestObject.responseXML);
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
			}
		}

		XMLHttpRequestObject.send(null);
	}
}




