/*
*
*/
function createXMLHttp() {
	if (typeof XMLHttpRequest != 'undefined') {
		return new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		var aVersions = ['MSXML2.XMLHttp.5.0', 'MSXML2.XMLHttp.4.0', 'MSXML2.XMLHttp.3.0', 'MSXML2.XMLHttp', 'Microsoft.XMLHttp'];
		for (var i=0; i<aVersions.length; i++) {
			try {
				var oXMLHttp = new ActiveXObject(aVersions[i]);
				return oXMLHttp;
			}
			catch (oError) {
			}
		}
	}
	throw new Error('XMLHttp object could be created.');
}

/*
*
*/
function getRequestBody(oForm) {
	var aParams = new Array();
	for (var i=0; i<oForm.elements.length; i++) {
		var oElement = oForm.elements[i];
		var sParam = '';
		if (oElement.type == "checkbox" && oElement.checked) {
			sParam = encodeURIComponent(oForm.elements[i].name);
			sParam += '=';
			sParam += encodeURIComponent(oForm.elements[i].value);
		} else if (oElement.type == "radio" && oElement.checked) {
			sParam = encodeURIComponent(oForm.elements[i].name);
			sParam += '=';
			sParam += encodeURIComponent(oForm.elements[i].value);
		} else if (oElement.type != "checkbox" && oElement.type != "radio" ) {
			sParam = encodeURIComponent(oForm.elements[i].name);
			sParam += '=';
			sParam += encodeURIComponent(oForm.elements[i].value);
		}
		aParams.push(sParam);
	}
	return aParams.join("&");
}

/*
*
*/
function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}
function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

/*
*
*/
function sendAjaxRequest(sRequestType, sURL, sQueryString, oForm, bAsync, sId) {
	try {
		var oXMLHttp = new createXMLHttp();
		if (bAsync == true || bAsync == false) {
			oXMLHttp.open(sRequestType, sURL+sQueryString, true);
		} else {
			throw new Error('Not a valid async value.');
		}
		oXMLHttp.onreadystatechange = function () {
			/*
			if (oXMLHttp.readyState == 0) {}
			if (oXMLHttp.readyState == 1) {}
			if (oXMLHttp.readyState == 2) {}
			if (oXMLHttp.readyState == 3) {}
			//*/
			if (oXMLHttp.readyState == 0 || oXMLHttp.readyState == 1 || oXMLHttp.readyState == 2 || oXMLHttp.readyState == 3) {
			}
			if (oXMLHttp.readyState == 4) {
				if (oXMLHttp.status == 200) {
					setResponseBody(sId, oXMLHttp.responseText);
				}
			} else {
				//setResponseBody(sId, oXMLHttp.statusText);
			}
		}
		if (sRequestType == 'GET') {
			oXMLHttp.send(null);
		} else if (sRequestType == 'POST') {
			oXMLHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
			oXMLHttp.send(getRequestBody(oForm));
		} else {
			throw new Error('Not a valid request type.');
		}
	} catch (oError) {
		//alert(oError.message);
		return;
	}
}

/*
*
*/
function setResponseBody(sId, sResponseBody) {
	alert(sResponseBody);
	document.getElementById(sId).innerHTML = "";
	document.getElementById(sId).innerHTML = sResponseBody;
}
