/* Method is either "POST" or "GET".
   URL is self explanatory
   Parameters are post parameters to send when using POST, ie. firstname=Nathan&lastname=Kunicki&isawesome=true
   Callback is a function to call when the server responds*/
 
/*  Example:
	ajaxRequest("http://www.adobe.com/", "POST", null, alertIt);
	function alertIt(alertThis) {
		alert(alertThis);
	} */
	
// Function by Nathan Kunicki, optimised by Daniel Mason
 
/*
function ajaxRequest(url, method, parameters, onCallback) {
	if (typeof parameters == "undefined" || parameters == "")
		parameters = null;
	if (typeof onCallback == "undefined" || onCallback == "")
		onCallback = null;
	if (typeof method == "undefined" || method == "")
		method = null;
 
	var httpObject = "";

	try {
		httpObject = new XMLHttpRequest();
	}
	catch(error) {
		try {
			httpObject = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (error) {
			try {
				httpObject = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (error) {
				return false;
			}
		}
	}

	httpObject.open(method, url, true);
	httpObject.onreadystatechange = function () {
		if ((httpObject.readyState == 4) && (onCallback != null)) {
				onCallback(httpObject.responseText);
		}
	}
	if ((method == "POST") && (parameters != null))
		httpObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");   
	httpObject.send(parameters);
	return true;
}
*/

/* Method is either "POST" or "GET".
   URL is self explanatory
   Parameters are post parameters to send when using POST, ie. firstname=Nathan&lastname=Kunicki&isawesome=true
   Callback is a function to call when the server responds*/
 
/* Example:
 
   doStuff();
   ajaxRequest("POST", "http://www.adobe.com/", null, function (returnedData) {
   
      alert(returnedData);
   
   });*/
 
var ajaxRequest = function (url, method, parameters, callback) {
 
 if (typeof parameters == "undefined" || parameters == "") parameters = null;
 
 var httpResponse = "";
 var httpObject = "";
 
 try {
 
  httpObject = new XMLHttpRequest();
 
 } catch (error) {
 
  try {
 
   httpObject = new ActiveXObject("Msxml2.XMLHTTP");
 
  } catch (error) {
 
   httpObject = new ActiveXObject("Microsoft.XMLHTTP");
 
  }
 
 }
 
 httpObject.open(method, url, true);
 httpObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");   
 httpObject.onreadystatechange = function () {
 
  if (httpObject.readyState == 4) {
 
   httpResponse = httpObject.responseText;
   callback(httpResponse);
   
  }
 
 }   
 httpObject.send(parameters);
 
}
