var ora_agent = null;
var ora_url = "/web/testAction.do?actionCommand=test";
var ora_call_count = 0;

function ora_init()
{
	if (ora_agent == null) ora_agent = new ActiveXObject('MSXML2.XMLHTTP');	
}

function ora_close()
{
	ora_agent = null;
}

function ora_call(ora_object)
{
	ora_agent.open("POST", ora_url, false); 
	try
	{
		ora_agent.send(ora_object.toXML()); 
	}
	catch(e)
	{
		ora_object.OperationStatus = -2;
		ora_object.OperationStatusDesc = e.description;
		return ora_object;
	} 
	ora_call_count++;
	var s = ora_agent.responseText;
	alert(s);
	var bo_name = 'T' + GetInnerObjectClass(DelBadChar(s));
	if (bo_name == 'T')
	{
		ora_object.OperationStatus = -1;
		ora_object.OperationStatusDesc = s;
		return ora_object;
	}
	else
	{
		var bo = eval('new ' + bo_name + '()');
		bo.LoadFromXML(s);	
		return bo;
	}
}

function ora_call_fast(ora_object)
{
	var oReq = new ActiveXObject("MSXML2.XMLHTTP"); 
	oReq.open("POST", ora_url, false); 
	try
	{
		oReq.send(ora_object.toXML()); 
	}
	catch(e)
	{
		ora_object.OperationStatus = -2;
		ora_object.OperationStatusDesc = e.description;
		return ora_object;
	}
	ora_call_count++;
	var s = oReq.responseText;
	//die(s);
	var bo_name = 'T' + GetInnerObjectClass(DelBadChar(s));
	if (bo_name == 'T')
	{
		ora_object.OperationStatus = -1;
		ora_object.OperationStatusDesc = s;
		return ora_object;
	}
	else
	{
		try
		{
			var bo = eval('new ' + bo_name + '()');
			bo.LoadFromXML(s);
			return bo;
		}
		catch(e)
		{
			ora_object.OperationStatus = -2;
			ora_object.OperationStatusDesc = 'Returned data cannot be recognized: ' + s;
			return ora_object;
		}				
	}
}