
/*@cc_on @if (@_win32 && @_jscript_version >= 5) if (!window.XMLHttpRequest)
function XMLHttpRequest() { return new ActiveXObject('Microsoft.XMLHTTP') }
@end @*/

var gCmps = new Object();
var gVars = new Object();
/*
function
TextFiles(filenames) {
	this.load_file =
	function (filename,caller) {
		caller.req_count++;
		XRequest(srvcall("xml","mod=search&file="+filename),function(ret) {
			caller.[filename] = ret;
			caller.req_count--;
		});
	};

	for(i=0;filenames[i];i++)
			this.load_file(filenames[i],this);

	return this;
}*/

function
srvcall (action, param) {
	if (!gVars.sna)
		gVars.sna = "";
	if (!param)
		param = "";
	else
		param = "&"+param;
		
	return 	"server.php5?action="+action+param;
}

function
cnf (name, file, ext) {
	return "components/"+name+"/"+file+"."+ext;
}

function
InsertIn (param, parent, replace) {
	if (!document.getElementById(parent)) {
		return;
	}
	if (replace )
		document.getElementById(parent).innerHTML = param;
	else
		document.getElementById(parent).innerHTML += param;
}

function
ValueOf (str) {
	if(!document.getElementById(str))
		return 0;
	return document.getElementById(str).value;	
}

function
GetWindowHeight () {
	if (window.innerHeight)
		return window.innerHeight;
	else return 600;
}

function
XRequest (file, handler) {
	var xreq = new XMLHttpRequest();
	xreq.open("GET", file+"&rand="+Math.random(), true );
	xreq.onreadystatechange =
	function() {
		if (xreq.readyState != 4)
			return;
		handler(xreq.responseText);
	}
	xreq.send(0);
}

function
XExec (obj, method, param) {
	if (!method)
		method = "Construct";

	if (gCmps[obj])	{
		exfunc = new Function("cl","param","cl."+method+"(param)");
		exfunc(gCmps[obj],param);
		return;
	}

	var file = srvcall("code","mod="+obj+"&file=code");

	XRequest(file,function(ret)	{
		gCmps[obj] = eval("("+ret+")");
		exfunc = new Function("cl","param","cl."+method+"(param)");
		exfunc(gCmps[obj],param);
	});
}

function
XGetJSON (file, func, param) {
	var xreq = new XMLHttpRequest();
	xreq.open("GET", file+"&rand="+Math.random(), true );
	xreq.onreadystatechange =
	function() {
		if (xreq.readyState == 4) {
			var ret = xreq.responseText;

			if (func)
				ret = func(ret.parseJSON(),param);
		}
	}
	xreq.send(0);
}


