function createRequestObject(){

var req;

if(window.XMLHttpRequest){
//For Firefox, Safari, Opera
req = new XMLHttpRequest();
}
else if(window.ActiveXObject){
//For IE 5+
req = new ActiveXObject("Microsoft.XMLHTTP");
}
else{
//Error for an old browser
alert('Your browser is not IE 5 or higher, or Firefox or Safari or Opera');
}

return req;
}

//Make the XMLHttpRequest Object
var http = createRequestObject();

function sendRequest(method, url){
if(method == 'get' || method == 'GET'){
http.open(method,url);
http.onreadystatechange = handleResponse;
http.send(null);
}
}

function handleResponse(){
if(http.readyState == 4 && http.status == 200){
var response = http.responseText;
if(response){
document.getElementById("ajax_res").innerHTML = response;
}
}      
}

/*==============================================================
	Copyright 2006
	Dynamic-Tools.net
	Do not remove this header.

Script:			Dynamic-Tools AJAX Toolkit

Description:	This script simplifies sending AJAX requests and
				handling the responses to those requests.  The 
				requests are threadsafe so you can send off as
				many at a time as you like.

Author:			Peter Wilkinson

==============================================================*/

// send a threadsafe XMLHTTPRequest
function ajaxSend(method, url, parameters, responseHandler, asynchronous, errorHandler)
{
	if (typeof method != 'string')
	{
		alert("Invalid request method.");
		return false;
	}
	method = method.toUpperCase();
	if (method != 'POST' && method != 'GET')
	{
		alert("Invalid request method.");
		return false;
	}

	if (typeof parameters != 'string') parameters = '';

	if (typeof asynchronous == 'undefined') asynchronous = true;

	// build the request
	var ajaxRequest = null;
	if (window.XMLHttpRequest) ajaxRequest = new XMLHttpRequest();
	else if (window.ActiveXObject) ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");

	// bind the callback.
	function ajaxBindCallback()
	{
		if (ajaxRequest.readyState == 4)
		{
			if (ajaxRequest.status == 200 || ajaxRequest.status == 0) // is either valid XML or no
			{
				if (responseHandler) responseHandler(ajaxRequest);
			}
			else
			{
				if (errorHandler) errorHandler(ajaxRequest);
				else defaultErrorHandler(ajaxRequest);				
			}
		}
	}		

	// send the request
	if (ajaxRequest)
	{
		if (asynchronous) ajaxRequest.onreadystatechange = ajaxBindCallback;
		if (method == "GET")
		{
			url = url + '?' + parameters
			parameters = null;
		}
		ajaxRequest.open(method, url, asynchronous);
		if (method == 'POST')
		{
			ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
		}
		ajaxRequest.send(parameters);

		if (!asynchronous) ajaxBindCallback();
	}
	else alert("Unable to build XMLHttpRequest");
}

function defaultErrorHandler(ajaxRequest)
{
	if (ajaxRequest.status == 404)
	{
		alert("The requested service could not be found.");
	}
	else
	{
		alert("There was a problem retrieving the xml data:\n" + ajaxRequest.status + ":\t" + ajaxRequest.statusText + "\n" + ajaxRequest.responseText);
	}
}

function getXMLEntries(xmlBranch, tagName)
{
	var tagList = xmlBranch.getElementsByTagName(tagName);
	var results = [];
	var length = tagList.length;
	for (var i=0; i < length; i++)
	{
		results.push(getXMLData(tagList[i]));
	}
	return results;
}

function getXMLData(xmlNode)
{
  return xmlNode.firstChild ? xmlNode.firstChild.data : '';
}

