
var request = null;

function ajax_request(reqType,url,asynch,respHandle) {
	if(window.XMLHttpRequest) {
		request = new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		request = new ActiveXObject("Msxml2.XMLHTTP");
		if(! request) {
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	if(request) {
		if(reqType.toLowerCase() != "post") {
			ajax_send_request(reqType,url,asynch,respHandle);
		} else {
			var postargs = arguments[4];
			if(postargs != null && postargs.length > 0) {
				ajax_send_request(reqType,url,asynch,respHandle,postargs);
			}
		}
	} else {
		alert("Unfortunately your web browser does not support " +
			"the technologies required by this site.  Please upgrade " +
			"to the latest version of Firefox or Internet Explorer " +
			"to use this feature.");
	}
}

function ajax_send_request(reqType,url,bool,respHandle) {
	try {
		request.onreadystatechange = respHandle;
		request.open(reqType,url,bool);

		if(reqType.toLowerCase() == "post") {
			request.setRequestHeader("Content-Type",
			  "application/x-www-form-urlencoded; charset=UTF-8");
			request.send(arguments[4]);
		} else {
			request.send(null);
		}
	} catch(errv) {
		alert("The server is currently not available " +
			"to receive data.  Please try again in " +
			"a few minutes.\n\n" +
			errv.message);
	}
}

function ajax_create_post_string(formObj) {
	queryString="";
	if(formObj) {
		numFields = formObj.elements.length;
		for(var i = 0; i < numFields; i++) {
			queryString += formObj.elements[i].name+"="+
				encodeURIComponent(formObj.elements[i].value);
			if(i < numFields-1) {
				queryString += "&";
			}
		}
	}
	return(queryString);
}

function update_element_contents(divname,newcontent) {
	try {
		replacediv = document.getElementById(divname);
	} catch(e) {
		alert("Internal error. Failed to find DIV for content update.");
		replacediv = false;
	}

	if(replacediv) {
		replacediv.innerHTML = newcontent;
	}
}

