var http_request = false;

function makePOSTRequest(url, parameters) {
  http_request = false;
  
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 http_request = new XMLHttpRequest();
	 if (http_request.overrideMimeType) {
		http_request.overrideMimeType('text/xml');
	 }
  } else if (window.ActiveXObject) { // IE
	 try {
		http_request = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
  }
  if (!http_request) {
	 alert('Cannot create XMLHTTP instance');
	 return false;
  }
  
	http_request.onreadystatechange = alertContents;
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);
}


function alertContents() {
  if (http_request.readyState == 4) {
	 if (http_request.status == 200) {
		eval(http_request.responseText);
	 }
  }
}

var http_request2 = false;

function makePOSTRequest2(url, parameters) {
  http_request2 = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 http_request2 = new XMLHttpRequest();
	 if (http_request2.overrideMimeType) {
		http_request2.overrideMimeType('text/xml');
	 }
  } else if (window.ActiveXObject) { // IE
	 try {
		http_request2 = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   http_request2 = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
  }
  if (!http_request2) {
	 alert('Cannot create XMLHTTP instance');
	 return false;
  }
  http_request2.onreadystatechange = alertContents2;
  http_request2.open('POST', url, true);
  http_request2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request2.setRequestHeader("Content-length", parameters.length);
  http_request2.setRequestHeader("Connection", "close");
  http_request2.send(parameters);
}

function alertContents2() {
  if (http_request2.readyState == 4) {
	 if (http_request2.status == 200) {
		eval(http_request2.responseText);
	 }
  }
}

//------------------------------------------------------------------------------
// Ajax implemention V2.00
// - This solves ability to carry out more than 1 ajax requests at a time
//------------------------------------------------------------------------------

		//Sample implementation:
		/*

			//Make RPC Call (this method allows for multiple ajax requests)
			var ajaxUrl = '/rpc/myAjaxFile.php?action=toggleOfferSelect&id='+id+'&string='+encodeURIComponent(string);
			var ajaxPOST = "post=true";
			var ajaxRequestKey = createAjaxRequest('html');
			requestArray[ajaxRequestKey].open("POST", ajaxUrl, true);
			requestArray[ajaxRequestKey].setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			requestArray[ajaxRequestKey].setRequestHeader("Content-length", ajaxPOST.length);
			requestArray[ajaxRequestKey].setRequestHeader("Connection", "close");
			requestArray[ajaxRequestKey].send(ajaxPOST);
			requestArray[ajaxRequestKey].onreadystatechange = function () {
				if (requestArray[ajaxRequestKey].readyState == 4 && requestArray[ajaxRequestKey].status == 200) {
					eval(requestArray[ajaxRequestKey].responseText);
				}
			};

		*/

		//Store Multiple XMLHttpRequest objects in array
		var requestArray = new Array();

		//Create Ajax Request, return key for your callback function to access requestArray
		function createAjaxRequest(type) {
			
			var request = null;
			var type = (!type ? "html" : type); //Specify type, eg, xml, html (gets read as text/xml  or  text/html etc...)

			if (window.XMLHttpRequest) { // Mozilla, Safari,...
				request = new XMLHttpRequest();
				if (request.overrideMimeType) {
					request.overrideMimeType('text/'+type);
				}
			} else if (window.ActiveXObject) { // IE
				try {
					request = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (e) {
					try {
					request = new ActiveXObject("Microsoft.XMLHTTP");
					} catch (e) {}
				}
			}

			if (request == null) {
				alert("Error creating request object!");
			} else {
				var nextArrayID = requestArray.length + 1;
				requestArray[nextArrayID] = request;
				return nextArrayID;
			}

		}
