/*
	Roku.Query
*/

if(typeof(Roku) == "undefined")
    Roku = { classes : [] };

Roku.Query = { url : "query.php" };

Roku.classes.push(Roku.Query);

Roku.Query.createRequest = function()
{
	var request;

	if (window.XMLHttpRequest)
	{
		request = new XMLHttpRequest();
		// branch for IE/Windows ActiveX version
	}
	else if (window.ActiveXObject)
	{
		request = new ActiveXObject("Microsoft.XMLHTTP");
		if (!request)
			request = null;
	}
/*  
	var request;
	if(window.ActiveXObject)
	{
		request = new ActiveXObject("Msxml2.XMLHTTP");
		if(!request)
			request = new ActiveXObject("Microsoft.XMLHTTP")
	}
	else if(window.XMLHttpRequest)
		request = new XMLHttpRequest;
*/		
	return request;
}


Roku.Query.invoke = function(param, result_handler, custom_data)
{
	var request = this.createRequest();
	if(!request)
		return;
	
	try
	{
		request.onreadystatechange = function(ev)
		{
			if((request.readyState == 4) && result_handler)
			{
				result_handler(request.responseText, custom_data);
			}
		}

		request.open("POST", this.url, true);
		request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		request.setRequestHeader("Content-length", param.length);
		request.setRequestHeader("Connection", "close");
		
		request.send(param);
	}
	catch(e) { }
};

Roku.Query.invoke_sync = function(param)
{
	var request = this.createRequest();
	if(!request)
		return "";
	
	try
	{
		request.open("POST", this.url, false);
		request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		request.setRequestHeader("Content-length", param.length);
		request.setRequestHeader("Connection", "close");
		
		request.send(param);
		return request.responseText;
	}
	catch(e) { }
	return "";
};


