function sendGetRequestText(url, callback, targetElement) {	
	//First, put up loading screen	
	handleAjaxLoadWait(targetElement);
	
	//Create XMLHttpRequestObject
	var XMLHttpRequestObject = getXMLHttpRequestObject();  

	//If XMLHttpRequestObject did not come back false 
	if (XMLHttpRequestObject) {
		//Open URL using Get method 
		XMLHttpRequestObject.open("GET", url);
		
		//Determine if response was successful 
		XMLHttpRequestObject.onreadystatechange = function() {		
			//If response is OK
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
				callback(XMLHttpRequestObject.responseText, targetElement); 
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
			} 
			//If there was an error			
			else if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status != 200) {
				handleAjaxLoadError(targetElement); 
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
			} 
		}
		XMLHttpRequestObject.send(null);  
	} else {
		handleAjaxLoadError(targetElement); 
	}
}

function sendPostRequestText(url, data, callback, targetElement) {	
	//First, put up loading screen	
	handleAjaxLoadWait(targetElement);
	
	//Create XMLHttpRequestObject
	var XMLHttpRequestObject = getXMLHttpRequestObject();  

	//If XMLHttpRequestObject did not come back false 
	if (XMLHttpRequestObject) {
		//Open URL using Post method and encode data 
		XMLHttpRequestObject.open("POST", url); 
		XMLHttpRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
		
		//Determine if response was successful 
		XMLHttpRequestObject.onreadystatechange = function() {		
			//If response is OK
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
				callback(XMLHttpRequestObject.responseText, targetElement); 
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
			} 
			//If there was an error 
			else if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status != 200) {
				handleAjaxLoadError(targetElement); 
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
			} 
		}
		//Send the post data 
		XMLHttpRequestObject.send(data);  
	} else {
		handleAjaxLoadError(targetElement); 
	}
}

function sendGetRequestXMLandXSL(xmlURL, xslURL, targetElement) {
	//First, put up loading screen	
	handleAjaxLoadWait(targetElement);	
	
	//Get XML Document 
	var xmlDoc = loadXMLDocument(xmlURL);
	
	//Get XSL Document
	var xslDoc = loadXMLDocument(xslURL);
	
	//Now that we have both responses, start processing document
	var processor = new XSLTProcessor();
	
	//Import the sylesheet to the processor
	processor.importStylesheet(xslDoc);
	
	//Create obj to put XML data in 
	var obj = document.getElementById(targetElement);
	var objStr;
	
	//Transform the Document
	//Internet Explorer
	if (window.ActiveXObject) {
		objStr = xmlDoc.transformNode(xslDoc);
	} 
	//Mozilla, Firefox, Opera
	else if(document.implementation && document.implementation.createDocument) {
		var newDocument = processor.transformToDocument(xmlDoc);
		objStr = new XMLSerializer().serializeToString(newDocument);
	}
	
	//Place document into target object
	obj.innerHTML = objStr;
}

function handleAjaxLoadWait(targetElement) {
	var obj 			= 	document.getElementById(targetElement);
	var loadMsg 	=	"Loading, please wait...";
	obj.innerHTML 	=	"<div id='loading' style='font-size:7.5pt;font-weight:bold;text-transform:uppercase;'>"
							+ "<img src='/graphics/ajax-loader.gif' alt=''/>"
							+ "<br/>" 
							+ '<div style="margin:5px;">'+loadMsg+'</div>'
							+ "</div>";
}

function handleAjaxLoadError(targetElement) {
	var obj 			=	document.getElementById(targetElement);
	var errorMsg 	= 	"There has been an error.  Please try again.";		
	obj.innerHTML 	= 	errorMsg;
}

function getXMLHttpRequestObject() {
	//Instantiate XMLHttpRequestObject 
	var XMLHttpRequestObject = false;
	
	//Mozilla, Firefox, Opera, Safari
	if(window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	} 
	
	//Internet Explorer	
	else if(window.ActiveXObject) {
		//Create array of possible XML objects
		var MSXMLS = new Array( "MSXML2.XMLHTTP.5.0",
										"MSXML2.XMLHTTP.4.0",
										"MSXML2.XMLHTTP.3.0",
										"MSXML2.XMLHTTP",
										"Microsoft.XMLHTTP" );
		//Loop through objects and try each 
		for(var i=0; i<MSXMLS.length; i++) {
			try {
				XMLHttpRequestObject = new ActiveXObject(MSXMLS[i]);
			} catch(e) {
				XMLHttpRequestObject = false;
			}
		}
	} 
	//If anything else	
	else {
		return false;
	}

	//Return Object 
	return XMLHttpRequestObject;
}
