var globalIP = "139.142.209.113/";
var globalHost = "www.aptn.ca/";

var i;
var dom;
var blnFound;
var blnError;
var error = "Error Status: ";
var arrRequest = new Array();

function createRequest()
{
	var request = null;

	try
	{
		request = new XMLHttpRequest();
	}
	catch (trymicrosoft)
	{
		try
		{
			request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (othermicrosoft)
		{
			try
			{
				request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (failed)
			{
				request = null;
			}
		}
	}

	if (request == null)
		alert("Error Creating Ajax Object");
	else
		return request;
}

function sendRequest(url, post, callback)
{
	var dateTime = new Date().getTime();

	post = "dateTime=" + dateTime + "&" + post;

	var request = createRequest();

	var index = arrRequest.push(new Array(dateTime, request)) - 1;

	arrRequest[index][1].open("POST", url, true);
	arrRequest[index][1].onreadystatechange = callback;
	arrRequest[index][1].setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	arrRequest[index][1].send(post);
}

//	The same function as 'sendRequest' except the post string is URI encoded
//	within this function instead of being passed as a URI encoded argument
function sendURIEncodedRequest(url, post, callback)
{
	if (document.getElementById("indicator") != null)
		document.getElementById("indicator").setAttribute("style", "visibility: visible;");

	var dateTime = new Date().getTime();

	post = "dateTime=" + dateTime + "&" + post;

	post = encodeURI(post);

	var request = createRequest();

	var index = arrRequest.push(new Array(dateTime, request)) - 1;

	arrRequest[index][1].open("POST", url, true);
	arrRequest[index][1].onreadystatechange = callback;
	arrRequest[index][1].setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	arrRequest[index][1].send(post);
}

function getRequest()
{
	for (i in arrRequest)
	{
		if (arrRequest[i][1].readyState == 4)
		{
			if (arrRequest[i][1].status == 200)
			{
				dom = arrRequest[i][1].responseXML;

				var dateTime = dom.getElementsByTagName("dateTime")[0].firstChild.nodeValue;

				blnFound = (dateTime == arrRequest[i][0]);

				if (blnFound)
					break;
			}
			else if (arrRequest[i][1].status == 400)
			{
				blnError = (arrRequest[i][1].getResponseHeader("Status") == arrRequest[i][0]);

				if (blnError)
					break;
			}
		}
	}
}

function getRequestDOM()
{
	for (var i in arrRequest)
	{
		if (arrRequest[i][1].readyState == 4)
		{
			if (arrRequest[i][1].status == 200)
			{
				dom = arrRequest[i][1].responseXML;

				if (dom != null)
				{
					var dateTime = dom.getElementsByTagName("dateTime")[0].firstChild.nodeValue;

					blnFound = (dateTime == arrRequest[i][0]);

					if (blnFound)
					{
						arrRequest.splice(i, 1);

						return dom;
					}
				}
			}
			else if (arrRequest[i][1].status == 400)
			{
				blnError = (arrRequest[i][1].getResponseHeader("Status") == arrRequest[i][0]);

				if (blnError)
				{
					arrRequest.splice(i, 1);

					return false;
				}
			}
		}
	}
}

function getRequestJSON()
{
	for (i in arrRequest)
	{
		if (arrRequest[i][1].readyState == 4)
		{
			if (arrRequest[i][1].status == 200)
			{
				jsonObject = eval("(" + arrRequest[i][1].responseText + ")");

				var dateTime = dom.getElementsByTagName("dateTime")[0].firstChild.nodeValue;

				blnFound = (dateTime == arrRequest[i][0]);

				if (blnFound)
					break;
			}
			else if (arrRequest[i][1].status == 400)
			{
				blnError = (arrRequest[i][1].getResponseHeader("Status") == arrRequest[i][0]);

				if (blnError)
					break;
			}
		}
	}
}

function turnOffIndicator()
{
	var indicator = document.getElementById("indicator");

	if (indicator != null)
		indicator.className = "off";
}

function turnOnIndicator()
{
	var indicator = document.getElementById("indicator");

	if (indicator != null)
		indicator.className = "on";
}
