var JSONRequest=false; var JSONRequestHandler;
function LoadJSONResult(URL, StateHandler) {
	if (JSONRequest!==false) {
		JSONRequest.abort();
	// branch for native XMLHttpRequest object
	} else if (window.XMLHttpRequest) {
		JSONRequest=new XMLHttpRequest();
	// branch for IE/Windows ActiveX version
	} else if (window.ActiveXObject) {
		JSONRequest=new ActiveXObject('Microsoft.XMLHTTP');
	} else {
		return false;
	};

	if (JSONRequest) {
if (ThemeURL==undefined) {
	ThemeURL='';
};
		JSONRequest.onreadystatechange=ProcessXMLResult;
		JSONRequest.open('GET', ThemeURL+'/scripts/json.php?action='+URL, true);
		JSONRequest.send(null);
		if (StateHandler) {
			JSONRequestHandler=StateHandler;
		};
	};
};

function ProcessXMLResult() {
	if (JSONRequest.readyState==4) {	// only if "OK"
		if (JSONRequest.status==200) {
			var JSONObject=JSON.parse(JSONRequest.responseText);
			if (JSONRequestHandler) eval(JSONRequestHandler+'('+JSONObject.result+', JSONObject);');
		} else {
			if (JSONRequestHandler) eval(JSONRequestHandler+'(2);');
		};
	};
};

function GetJSON(Action, VarName) {
	if (window.XMLHttpRequest) {
		JSONRequest=new XMLHttpRequest();
	// branch for IE/Windows ActiveX version
	} else if (window.ActiveXObject) {
		JSONRequest=new ActiveXObject('Microsoft.XMLHTTP');
	} else {
		return false;
	};
	JSONRequest.open('GET', 'scripts/json.php?action='+Action, false);
	JSONRequest.send(null);
	var JSONObject=JSON.parse(JSONRequest.responseText);
	if (VarName!=undefined && VarName!='JSONObject') {
		eval('var Return=JSONObject.'+VarName+';');
		return Return;
	} else {
		return JSONObject;
	};
};
