/** 
*
* Function to create a new request
*
* @author Keith Gloster
*
* @date 2010-04-18
*
*/
var db_page = "db_query";

if (document.getElementById("jsRequest"))
{
	var src_params = document.getElementById("jsRequest").src.toLowerCase();
	var search_str = src_params.substr(src_params.indexOf("?")+1)
	var search_arr = search_str.split("&");
	for (i=0; i < search_arr.length; i++)
	{
		var tmp_arr = search_arr[i].split("=");
		if (tmp_arr[0] == "db_page") db_page = tmp_arr[1];
	}
}


function newRequest() {
	if (factory != null) return factory();
	for (var i=0; i < factories_array.length; i++) 
	{
		try 
		{
			var factory_tmp = factories_array[i];
			var request = factory_tmp();
			if (request != null) 
			{
				factory = factory_tmp;
				return request;
			}
		}
		catch(e) 
		{
			continue;
		}
	}
	factory = function() 
	{
		throw new Error("XMLHttpRequest not supported");
	}
	factory();
}


/** 
*
* Function to create a new request
*
* @author Keith Gloster
*
* @date 2010-04-18
*
*/
function DBQuery(query_str, callback) 
{
	
	var request = newRequest();

	request.onreadystatechange = function() 
	{
		if (request.readyState == 4)  
		{
			if (request.status == 200) 
			{
				if (callback == "return")
				{
					return request.responseText;
				}
				else
				{
					callback(request.responseText);
				}
			}
		}
	}

	request.open("GET", db_page+".php?"+query_str);
	request.setRequestHeader("User-Agent", "XMLHttpRequest");
	request.setRequestHeader("Content-Type", "text/html");
	request.setRequestHeader('X-Referer', document.location);
	request.send(null);

}


// Create an array to hold our factories
var factories_array = new Array();
factories_array[0] = function() { return new XMLHttpRequest(); };
factories_array[1] = function() { return new ActiveXObject("Msxml2.XMLHTTP"); };
factories_array[2] = function() { return new ActiveXObject("Microsoft.XMLHTTP"); };

var factory = null;

