
var g_requestUrl = null;

function createRequest() {	
	var xmlhttp;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = null;
		}
	}
	@end @*/
	if (!this.xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function callFunction(component, func, callback) {
	wait();
	var xmlhttp = createRequest();
	if (xmlhttp) {
		if (xmlhttp.readyState != 4) {
			xmlhttp.abort();
		}
		
		var callerInfo = new Array(3);
		callerInfo['component'] = component;
		callerInfo['function'] = func;
		callerInfo['parameters'] = new Array();
		
		var queryString = "";
		var argArray = arguments[3];		
		for (var i in argArray) {
			argName = i;			
			queryString += "&"+argName+"="+argArray[i];
			callerInfo['parameters'][argName] =argArray[i];
		}
		var url = urlbase+component;
		queryString = "module="+component+"&resultLayout=2&action="+func+queryString;
		
		xmlhttp.open("POST", url, true);
		//alert(url)
		//alert(queryString)
		xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=iso-8859-1');
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp) {
				//alert(xmlhttp.responseText);
				if (xmlhttp.readyState==4) {					
					var isError = false;
					var xmldoc = xmlhttp.responseXML;	
					if (xmldoc) {
						var result = xml2Js(xmldoc, null);						
						if (result) {
							if (result['errors']) {
								isError = true;	
							}
						}
						if (callback) {							
							callback(result, isError, callerInfo);
							finished();
						}				
					} else {
					  if (callback) {
						result = xmlhttp.responseText;
						callback(result,true, callerInfo);
						finished();
					  }
	 				}
				}
			}
		};
		xmlhttp.send(queryString);
	}
}
function callFunctionFrame (component, func, resultId, param) {
	wait();
	var frame = document.getElementById('fAction');
	if (frame) {
		fade(resultId,true,1,1);
		var url = urlbase+component+ '?action='+func+'&resultID='+resultId+'&resultLayout=1&'+param;	
		//alert(url);	
		//var windowS =  window.open(url,'janelinha');				
		frame.src = url;			
	} else {
		alert('No funcition frame available!');
	}
}
/** Transferido para o BASE.JS
function xml2Js(xmldoc, node) {}
*/
