	///// -- GLOBAL AJAX FORM SUBMISSION SCRIPT -- /////
	///// -- DOCUMENTATION AVAILABLE AT: \\raven\Departments\Sales & Marketing\Tech Production\docs\JavaScript Library\ebates.js.form_ajax.doc -- /////
	
	/////BASELINE AJAX SERVER REQUEST - FOR USE WITH AND WITHOUT THE 'SUBMITFORM' FUNCTION (BELOW)
	var request = null;
	function createRequest() {
		try {
			request = new XMLHttpRequest();
		}
		catch (trymicrosoft) {
			try {
				request = new ActiveXObject("Msxm12.XMLHTTP");
			}
			catch (othermicrosoft) {
				try {
					request = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (failed) {
					request = null;
				}
			}
		}
		if(request == null) {
			
		}
	}
	
	
	/////COLLECT DATA FROM CALLING FORM AND SEND IT TO ACTION PAGE
	function submitForm(target,actionURL) {
		//DETERMINE FORM OF TARGET REFERENCE: A) STRING REFERENCE TO FORM NAME, OR B) OBJECT REFERENCE TO FORM ELEMENT FROM WHICH FUNCTION CALL WAS MADE
		if(typeof(target) == 'string') {
			var formObj = document.forms[target];
		}
		else {
			var formObj = target.form;
		}
		
		//PARSE AND PACKAGE FORM DATA
		var urlParams = '';
		for(i=0;i<formObj.length;i++) {
			if(formObj[i].type != 'button' && formObj[i].type != 'image') {	
				if(formObj[i].type == 'radio' || formObj[i].type == 'checkbox') {
					if(formObj[i].checked) {
						insertDelimiter = true;
						if(urlParams != '') {
							urlParams += '&';
						}

						if(formObj[i].name) {
							urlParams += formObj[i].name+'='+formObj[i].value;
						}
						else {
							urlParams += formObj[i].id+'='+formObj[i].value;
						}
					}
				}
				else {
					if(urlParams != '') {
						urlParams += '&';
					}

					if(formObj[i].name) {
						urlParams += formObj[i].name+'='+formObj[i].value;
					}
					else {
						urlParams += formObj[i].id+'='+formObj[i].value;
					}
				}
			}
		}
		
		//CREATE, PACKAGE, AND SEND REQUEST
		if(actionURL && actionURL != '') {
			createRequest();
			var url = actionURL;
			request.open("post",url,true);
			request.onreadystatechange = formResponse;
			request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			request.send(urlParams);
		}
		else {
			alert('Unable to send Ajax request - a valid URL is missing from the argument list. Please ensure that a URL is specified in the function call');
		}
	}
	
	
	/////RETRIEVE SERVER RESPONSE AND PASS RESPONSE TEXT (EITHER AS A JSON OBJECT OR PLAIN TEXT) TO USER-DEFINED FUNCTION ON CALLING PAGE
	function formResponse() {
		if(request.readyState == 4) {
			if(request.status == 200) {
				if(request.responseText.match(/(\[|\{)/g)) {
					var responseText = request.responseText;
				}
				else {
					var responseText = request.responseText.replace(/[^0-9|A-z|" "|\-|\||\%|\$|\.|\:|\&|/\\]/g,"");
				}
				if(ajaxResponseFunc) {
					ajaxResponseFunc(responseText);
				}
			}
		}
	}