/********************************************
* AJAX support functions
**********************************************/
var http_request =false;
var ajaxDefaultFailureMsg="<p>We're sorry, but the system was unable to process your request.</p>";
var ajax_DisplayArea ="";

function getXMLHttpRequest(){
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
	    request = new XMLHttpRequest();
	} else if (window.ActiveXObject) { // IE
	   try{
			request = new ActiveXObject("Msxml2.XMLHTTP");
		}catch (err){
			try{
				request = new ActiveXObject("Microsoft.XMLHTTP");
			}catch (err2){
				alert("Microsoft.XMLHTTP: " + err2.name + "-" + err2.message);
			}
		}
	}
	return request;

}

function AJAXGet(requestURL, async){
	http_request.open('GET', requestURL, async);
	http_request.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" ); // disable caching
	http_request.send(null);
}

function outputToElelment(elementName, content){
	try{
		document.getElementById(elementName).innerHTML=content;
	}catch(e){
		document[elementName].innerHTML=content;
	}
}
function submitAjaxForHTML_worker(async_flag, commandName, displayArea, fieldArray, message){
	ajax_DisplayArea = displayArea;
	if(message){
		outputToElelment(displayArea, message);
	}
	var url = commandName;
	var parms = buildAjaxParms(fieldArray);
	url = url + parms;
	http_request = getXMLHttpRequest();
	if(async_flag == true){
		http_request.onreadystatechange = ajaxUpdateHTML;
	}
	AJAXGet(url, async_flag);
	if(async_flag == false){
		ajaxUpdateHTML(); // synchronous	
	}

	
}
function submitAjaxForHTML(commandName, displayArea, fieldArray, message){
	submitAjaxForHTML_worker(false,commandName, displayArea, fieldArray, message)
}
function submitAjaxForHTMLAsync(commandName, displayArea, fieldArray, message){
	submitAjaxForHTML_worker(true,commandName, displayArea, fieldArray, message)

}
function buildAjaxParms(fieldArrayParm){
	var myParms = "";
	if(fieldArrayParm && fieldArrayParm.length > 0){
		var accessMethod = 0;
		var myField;
		try{
			myField = document.getElementById(fieldArrayParm[0]);
			var test = myField.name
		}catch(e){
			try{
			myField = document[fieldArrayParm[0]];
			accessMethod = 1;
				var test = myField.name
			}catch(e2){
				//within a form
				accessMethod = 2;
		}
		}

   		for(i=0;i<fieldArrayParm.length;i++){
  			if(accessMethod == 0){
  				myField = document.getElementById(fieldArrayParm[i]);
  			}else if(accessMethod == 1){
				myField = document[fieldArrayParm[i]];
  			}else if(accessMethod == 2){
				myField = document.UIservletForm[fieldArrayParm[i]];
  			}
  			myParms = myParms + "&" + myField.name + "=";
  			if (myField.type == "checkbox") {
  				myParms = myParms + escape(myField.checked ? "Y" : "N");
  			} else {
     			myParms = myParms + escape(myField.value);
			}
  		}
  	}
	return myParms;

}
function ajaxUpdateHTML(){
	try{
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
        	outputToElelment(ajax_DisplayArea,http_request.responseText);
        } else {
             outputToElelment(ajax_DisplayArea,ajaxDefaultFailureMsg);
		}
    }
    }catch(e){
				alert("ajaxUpdateHTML: " + e.name + "-" + e.message);
    
    }
}


