
var glbReversAjaxServlet    = "";
var glbAsyncAjaxData      = "";
var glbReversAjaxProjectName= "";


function AsyncAjaxResponse(Action, req){
	if (req.readyState == 4 && (req.status == 200)) {
		try{
			sysCurrentForm = "TestAjax";
			var returnxml = escape(req.responseText);
			//alert(returnxml);
			if(null == returnxml)
				returnxml = "Empty";
			setFormValueOnForm("AjaxDataServer","returnText",returnxml);
		}catch(err){
			alert("[FWAsyncAjax].AsyncAjaxResponse. Call to "+sysCurrentForm+"_Submit_Return failed. "+glbReversAjaxServlet+": ERROR 9500:"+err);
		}
	} else if (req.readyState == 4 && (req.status != 200)) {
		alert("[FWAsyncAjax].AsyncAjaxResponse.: ERROR 9600: Your Async AJAX request may have timed out. Please try again."+req.status);
	}
	
}
function AsyncAjaxGetReturn(req,raProjectName, raServletName, toSend){
	if (req.readyState == 4 && (req.status == 200)) {
		AsyncAjax(glbReversAjaxProjectName, glbReversAjaxServlet, glbAsyncAjaxData);
	} else if (req.readyState == 4 && (req.status != 200)) {
		alert("[FWAsyncAjax].AsyncAjaxPost: ERROR 9800: Your Async AJAX GET request may have timed out. Please try again."+req.status);
	}
}
function AsyncAjax(raProjectName, raServletName, toSend){
	try{
		//ert("Step post");
		glbReversAjaxServlet = raServletName;
		glbReversAjaxProjectName = raProjectName;
		glbAsyncAjaxData = toSend;
		sysAccess = "AsyncAjax";
		sysAction = "AsyncAjax";
		var cmd;
		var method 			= 'POST';
		var val 			= true;
		raServletName 		= "/"+raProjectName+"/"+raServletName;
		var modifiedurl 	= raServletName.replace(/^http:\/\/[^\/]+\//i, "http://"+window.location.hostname+":"+window.location.port+"/");
		var url				= modifiedurl; //replace URL's root domain with dynamic root domain, for ajax security sake
        //alert("Step 1");
		var req = getRequestObj();
		//alert("Step 2");
		if(req){   
			req.onreadystatechange=function(){
				AsyncAjaxResponse(sysAction, req);
			}
			isValid = true;//eval(sysCurrentForm+'_preRequestAction(Action)');
			//alert("Step 3");
			if(isValid){
				sysCurrentForm = glbReversAjaxServlet;
				str = "sysAccess=" 				+ "Page" 				+ 
				"&" + "sysLastForm=" 			+ "" 					+ 
				"&" + "sysCurrentForm=" 		+ raServletName		    +
				"&" + "sysSessionStartDateTime="+ ""					+
				"&" + "sysSessionEndDateTime=" 	+ "" 					+
				"&" + "sysAction=" 				+ "Page" 				+
				"&" + "sysProjectName="			+ "FrameWork";
				var outData = str+"&"+toSend;
				//var outData = "sysAccess=AsyncAjax&"+toSend;
				req.open(method, url, true);
				req.setRequestHeader("Content-length", outData.length);
				req.setRequestHeader("content-type","application/x-www-form-urlencoded");	        
				//document.getElementById("AsyncAjax").innerHTML="<b>Request Sent to Host</b>";
				req.send(outData);
			}
			//alert("Step 4");
		}else{
			alert("[sbGeneral].AjaxRequestData."+glbReversAjaxServlet+": ERROR 9100: Your browser does not seem to support XMLHttpRequest.");
			//document.getElementById("imgPleaseWait").style['visibility']="hidden";
		}
	}catch(err){
		alert("[sbGeneral].AjaxRequestData."+glbReversAjaxServlet+": ERROR 9200:"+err);
		//document.getElementById("imgPleaseWait").style['visibility']="hidden";
	}
}
function AsyncGetAjax(raProjectName, raServletName, toSend){
	try{
		//alert("Step get");
		glbReversAjaxServlet = raServletName;
		glbReversAjaxProjectName = raProjectName;
		glbAsyncAjaxData = toSend;
		sysAccess = "AsyncAjax";
		sysAction = "AsyncAjax";
		var cmd;
		var method 			= 'GET';
		var val 			= true;
		raServletName 		= "/"+raProjectName+"/"+raServletName;
		var modifiedurl 	= raServletName.replace(/^http:\/\/[^\/]+\//i, "http://"+window.location.hostname+":"+window.location.port+"/");
		var url				= modifiedurl; //replace URL's root domain with dynamic root domain, for ajax security sake
        //alert("Step 1");
		var req = getRequestObj();
		//alert("Step 2");
		if(req){   
			req.onreadystatechange=function(){
				AsyncAjaxGetReturn(req,raProjectName, raServletName, toSend);
			}
			isValid = true;//eval(sysCurrentForm+'_preRequestAction(Action)');
			//alert("Step 3");
			if(isValid){
				str = "?sysAccess=" 				+ "Page" 				+ 
				"&" + "sysLastForm=" 			+ "" 					+ 
				"&" + "sysCurrentForm=" 		+ raServletName		    +
				"&" + "sysSessionStartDateTime="+ ""					+
				"&" + "sysSessionEndDateTime=" 	+ "" 					+
				"&" + "sysAction=" 				+ "Page" 				+
				"&" + "sysProjectName="			+ "FrameWork";
				var outData = str+"&"+toSend;
				req.open(method, url+outData, false);
				req.send(null);
			}
			//alert("Step 4");
		}else{
			alert("[sbGeneral].AjaxRequestData."+glbReversAjaxServlet+": ERROR 9100: Your browser does not seem to support XMLHttpRequest.");
			//document.getElementById("imgPleaseWait").style['visibility']="hidden";
		}
	}catch(err){
		alert("[sbGeneral].AjaxRequestData."+glbReversAjaxServlet+": ERROR 9200:"+err);
		//document.getElementById("imgPleaseWait").style['visibility']="hidden";
	}
}
