// JavaScript Document
function getRequestBody(oForm) {
	//array to hold params
	var aParams = new Array();
	//get reference to form
	var oForm = document.forms[0];
	//iterate over each element of form
	for (var i=0; i < oForm.elements.length; i++) {
		//get references to field
		var oField = oForm.elements[i];
		//different behaviors based upon type of field
		switch (oField.type) {
			//buttons - we don't care
			case "button":
			case "submit":
			case "reset":
				break;
			//checkboxes/radio buttons - on return if checked
			case "checkbox":
			case "radio":
				if (!oField.checked) {
					break;
				}
			//text/hidden/password all return the value
			case "text":
			case "hidden":
			case "password":
				aParams.push(encodeNameAndValue(oField.name, oField.value));
				break;
			//everything else
			default:
				switch(oField.tagName.toLowerCase()) {
					case "select":
						aParams.push(encodeNameAndValue(oField.name, oField.options[oField.selectedindex].value));
						break;
					default:
						aParams.push(encodeNameAndValue(oField.name, oField.value));
					}
			}
			
		}
		return aParams.join("&");
}
function createXHR() {
	if (typeof XMLHttpRequest != "undefined") {
		return new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		var aVersions = [ "MSXML2.XMLHttp.3.0", "MSXMLS2.HMLHttp.6.0"];
		for (var i = 0; i < aVersions.length; i++) {
			try {
				var oXHR = new ActiveXObject(aVersions[i]);
				return oXHR;
			} catch (oError) {
				//Do nothing
			}
		}
	}
	alert("No object created");
	throw new Error("XMLHttp object could not be created.");
}
function encodeNameAndValue(sName, sValue) {
	var sParam = encodeURIComponent(sName);
	sParam += "=";
	sParam += encodeURIComponent(sValue);
	return sParam;
}