// Basic Ajax script used for Computers in Libraries Ajax Example, Sept. 2006

//creates browser specific request using XmlHttpRequest Object
function createRequest(url) 
{
	if(window.XMLHttpRequest)
	{
		request = new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
		request = new ActiveXObject("MSXML2.XMLHTTP");
	}
	else
	{
		alert("Please upgrade to a newer browser to use the full functionality of our site");
	}
	
	makeRequest(url);
}

//makes request using GET HTTP method to grab external data
function makeRequest(url)
{
	request.onreadystatechange = parseData;
	request.open("GET", url, true);
	request.send(null);
}

//checks state of HTTP request and gives brief status note to user
function communicateStatus(obj)
{
	if(obj.readyState == 0) { document.getElementById('content').innerHTML = "Sending Request..."; }
	if(obj.readyState == 1) { document.getElementById('content').innerHTML = "Loading Response..."; }
	if(obj.readyState == 2) { document.getElementById('content').innerHTML = "Response Loaded..."; }
	if(obj.readyState == 3) { document.getElementById('content').innerHTML = "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
			document.getElementById('content').innerHTML = "File not found";
		}
		else
		{
			document.getElementById('content').innerHTML = "There was a problem retrieving the XML.";
		}
	}
}

//loads data from external file into page, breaks out variables from sections of file, and populates html with specific variable values
function parseData() 
{
	if(communicateStatus(request))
	{
		//declare format of the data to be parsed and retrieved
		var response = request.responseXML.documentElement;
		var header = response.getElementsByTagName('header')[0].firstChild.data;
		var description = response.getElementsByTagName('description')[0].firstChild.data;
		var sourceDomain = response.getElementsByTagName('sourceDomain')[0].firstChild.data;
		var sourceUrl = response.getElementsByTagName('sourceUrl')[0].firstChild.data;
		document.getElementById('content').innerHTML = "<h2>" + header + "</h2>\n"
													 + "<p>" + description + "</p>\n"
													 + "<form method=\"get\" action=\"http://www.google.com/search\">\n"
													 + "<fieldset>\n"
													 + "<label>Search Open WorldCat:</label>\n"
													 + "<input type=\"hidden\" name=\"as_sitesearch\" value='" + sourceDomain + "'>\n"
													 + "<input type=\"text\" name=\"q\" size=\"40\" maxlength=\"255\" value=\"\">\n"
													 + "<input class=\"submit\" type=\"submit\" name=\"sa\" value=\"Find Books + More\">\n"
													 + "</fieldset>\n"
													 + "</form>\n"
													 + "<p><a href='" + sourceUrl + "'>View a sample Open WorldCat record</a></p>\n";
	}
}