<!--

/*
//*******
//  filename: xml_http_request.js
//  author:   Zack Brown
//  date:     23rd April 2007
//  comments:
//
//	Javascript functions for sending and receiving xml http requests.
*/

var c_DebugMode = false;
var c_RequestObject = null;
var c_TargetID = null;
var c_OnLoad = new Array();

window.onload = function()
{
		Debug('Running onload events');
		
		for(i = 0; i < c_OnLoad.length; i++)
		{
				Debug('Running function: ' + c_OnLoad[i]);
				
				try
				{
						eval(c_OnLoad[i]);
				}
				catch(e){}
		}
}

function Debug(p_String)
{
	if(c_DebugMode)
	{
		alert(p_String);
	}
}

function AppendOnLoad(p_Function)
{
		Debug('Appending function: ' + p_Function);
		
		c_OnLoad[c_OnLoad.length] = p_Function;
}

function LoadURL(p_URL)
{
	Debug('Creating Request Object.');

	if(window.XMLHttpRequest)
	{
		c_RequestObject = new XMLHttpRequest();
		c_RequestObject.onreadystatechange = ProcessRequestChange;
		c_RequestObject.open('GET', p_URL, true);
		c_RequestObject.send(null);
	}
	else if(window.ActiveXObject)
	{
		c_RequestObject = new ActiveXObject('Microsoft.XMLHTTP');

		if(c_RequestObject)
		{
			c_RequestObject.onreadystatechange = ProcessRequestChange;
			c_RequestObject.open('GET', p_URL, true);
			c_RequestObject.send();
		}
		else
		{
			HandleError();
		}
	}
	else
	{
		HandleError();
	}
}

function ProcessRequestChange()
{
	if(c_RequestObject.readyState == 4)
	{
		if(c_RequestObject.status == 200)
		{
			Debug('Processing Request Change.');
			ProcessRequestResponse(c_RequestObject.responseText);
		}
		else
		{
			HandleError();
		}
	}
}

function ProcessRequestResponse(p_ResponseText)
{
	Debug('Processing Request Response:' + p_ResponseText);

	if(c_TargetID != null)
	{
		c_TargetID.innerHTML = p_ResponseText;
		c_TargetID = '';
	}
}

function HandleError()
{
	if(c_TargetID != null)
	{
		c_TargetID.innerHTML = '<p>Unable to complete Ajax Request.</p>';
		c_TargetID = '';
	}
	else
	{
		Debug('Unable to complete Ajax Request.');
	}
}

function RunRequest(p_URL, p_TargetID)
{
	t_URLTest = 'localhost';
	if(t_URLTest.search(document.domain) == -1)
	{
		p_URL = 'http://' + document.domain + '/' + p_URL.toLowerCase();
	}
	
	Debug('Running Request. URL: ' + p_URL);

	if(p_TargetID.length > 0)
	{
		c_TargetID = document.getElementById(p_TargetID);
	}

	LoadURL(p_URL);
}

//-->
