﻿// JScript File
/*creates a XMLHTTP instance (netscape and IE Friendly)*/

function getXmlHttpInstance() 
{
    /*non-IE*/
	if(window.XMLHttpRequest)
	{
		return new XMLHttpRequest();
	}
	/*IE*/
	else if(window.ActiveXObject)
	{
		return new ActiveXObject("MSXML2.XMLHTTP");
	}
}

function makeAjaxOneWayRequest(url)
{
	//use this function where a callback isn't needed.
	
	//build full url (including url querystring) to pass to ajax server handler. 
	var url = ajaxServerPage + "?header=" + url;
	req = getXmlHttpInstance();	
    var methodName = onResponse;
	
	req.open("GET", url, true);
	req.send(null);
	
}

function makeAjaxRequest(url) 
{
	//build full url (including url querystring) to pass to ajax server handler. 
	var url = ajaxServerPage + "?header=" + url;
	req = getXmlHttpInstance();	
    var methodName = onResponse;
	
	req.onreadystatechange = methodName;
	req.open("GET", url, true);
	req.send(null);
}

function checkReadyState(obj)
{
	if(obj.readyState == 0) { /*window.status = "AJAX: Sending Request...";*/ }
	if(obj.readyState == 1) { /*window.status = "AJAX: Loading Response...";*/ }
	if(obj.readyState == 2) { /*window.status = "AJAX: Response Loaded...";*/ }
	if(obj.readyState == 3) { /*window.status = "AJAX: Response Ready...";*/ }
	if(obj.readyState == 4)
	{
		if(obj.status == 200)
		{
			return true;
		}
		else if(obj.status == 404)
		{
			// Add a custom message or redirect the user to another page
			//window.status = "AJAX: File not found";
		}
		else
		{
			var message = "AJAX: There was a problem retrieving the XML.(Status = " + obj.status + ")";
			//window.status = message;
			alert(message);
		}
	}
}

/*onreadystatechange() method handlers*/

function onResponse() 
{
	if(checkReadyState(req))
	{
		var response = req.responseXML.documentElement;
		var header = response.getElementsByTagName('header')[0].firstChild.data;
		
		//the header text and the name of the javascript function must be the same.
		var method = eval(header);
		method(response);
	}
}
