function getHTTPObject ()
{
	var xhr = false;
	if (window.XMLHttpRequest) 
	{
		xhr = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		try 
		{
			xhr = new ActiveXObject('Msxml2.XMLHTTP');
		} catch (e) {
			try 
			{
				xhr = new ActiveXObject('Microsoft.XMLHTTP');
			} catch (e) {
				xhr = false;
			}
		}
	}
	return xhr;
}

function displayLoading (element)
{
	while (element.hasChildNodes())
	{
		element.removeChild(element.lastChild);
	}
	var image = document.createElement('img');
	image.setAttribute('src', 'images/loading.gif');
	image.setAttribute('id', 'loading');
	image.setAttribute('alt', 'Loading...');
	element.appendChild(image);
}

function parseResponse (request, element)
{
	//Function takes a request object
	if (request.readyState == 4) //If the request has been completed
	{
		if (request.status == 200 || request.status == 304) //If the request has gone as we want it to
		{
			var display = document.getElementById('gallery-container');
			//Insert into display div
			display.innerHTML = request.responseText;
			prepareLinks();
		}
	}
}

function grabFile (file)
{
	var request = getHTTPObject();	//Assign an xhr object to this local variable
	if (request) //If the xhr object was successfully created
	{
		// displayLoading(document.getElementById('gallery-container'));
		request.onreadystatechange = function() //At each stage of the ajax process
		{
			parseResponse(request);	//Do this function
		}
		request.open('GET', file, true);	//Open the xhr request to the file supplied to the grabFile function
		request.send(null);	//Send the xhr request without any data (it's a get)
		return true;
	}
	else
	{
		return false;
	}
}

function prepareLinks ()
{
	if (!document.getElementById || !document.getElementsByTagName) 
	{
		return;
	}
	if (!document.getElementById('gallery-container')) 
	{
		return;
	}
	var links = document.getElementById('gallery-container').getElementsByTagName('a');
	for (var i=0; i < links.length; i++) 
	{
		links[i].onclick = function() 
		{
			var query = this.getAttribute('href').split('?')[1];
			var url = 'includes/displayPhoto.php?'+query;
			return !grabFile(url);
		}
	}
}

window.onload = prepareLinks;