//JavaScript Document
var preloadImage = null;
var timerInterval = null;
var rawXml = null;

function loadpage(url, elementid)
{
	// if Mozilla, Safari etc
	if (window.XMLHttpRequest)
	{
		page_request = new XMLHttpRequest()
	}
	// if IE
	else if (window.ActiveXObject)
	{
		try
		{
			page_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				page_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	
	page_request.onreadystatechange=function()
	{
		if (page_request.readyState == '4')
		{
			if (page_request.status == '200')
			{
				document.getElementById(elementid).innerHTML = page_request.responseText;
			}
			else if (page_request.status != '200')
			{
				return true;
			}
		}
	}
	
	page_request.open('GET', url, true);
	page_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 
	page_request.send();
	return false;
}

function sendajax(type, postdata)
{
	if(type == 'enquiry')
	{
		var url = '/contact/submit/?type=inline';
	}
	
	// if Mozilla, Safari etc
	if (window.XMLHttpRequest)
	{
		page_request = new XMLHttpRequest()
	}
	// if IE
	else if (window.ActiveXObject)
	{
		try
		{
			page_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				page_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	
	page_request.onreadystatechange=function()
	{
		if(page_request.readyState == '4' && page_request.status == '200')
		{
			document.getElementById('messagearea').innerHTML = page_request.responseText;
			document.getElementById('captcha').src = '/captcha/image/?' + Math.random();
		}
		else if(page_request.readyState == '4' && page_request.status != '200')
		{
			alert('A problem occurred sending your message :(\nPlease use the \'Contact\' page instead');
			return true;
		}
	}
	
	page_request.open('POST', url, true);
	page_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 
	page_request.send(postdata);
	return false;
}

function loadPictureFromID(pictureID)
{
	var url = "/LoadPictureXML.php?picid=" + pictureID;
	document.getElementById('LoadingAnimation').style.display = "block";
	
// if Mozilla, Safari etc
	if (window.XMLHttpRequest)
	{
		page_request = new XMLHttpRequest()
	}
	// if IE
	else if (window.ActiveXObject)
	{
		try
		{
			page_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				page_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	
	page_request.onreadystatechange = function()
	{
		return parseResponse(page_request);
	}
	
	page_request.open('GET', url, true);
	page_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 
	page_request.send();
	
	return false;
}

function loadPicture(albumID, pictureNumber)
{
	var url = "/LoadPictureXML.php?albid=" + albumID + "&picid=" + pictureNumber;
	document.getElementById('ErrorMessage').style.display = "none";
	document.getElementById('LoadingAnimation').style.display = "block";
	
	// if Mozilla, Safari etc
	if (window.XMLHttpRequest)
	{
		page_request = new XMLHttpRequest()
	}
	// if IE
	else if (window.ActiveXObject)
	{
		try
		{
			page_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				page_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	
	page_request.onreadystatechange = function()
	{
		return parseResponse(page_request);
	}
	
	page_request.open('GET', url, true);
	page_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 
	page_request.send();
	
	return false;
}

function parseResponse(page_request)
{
	if (page_request.readyState == '4')
	{
		if (page_request.status == '200')
		{
			var xmlData = page_request.responseXML;
			
			// Error!
			if (xmlData == null)
			{
				document.getElementById('LoadingAnimation').style.display = "none";
				document.getElementById('ErrorMessage').style.display = "block";
				document.getElementById('ErrorMessage').innerHTML = "Error loading the requested picture. (" + page_request.status + ")";
			}
			// Error. 
			else if (xmlData.getElementsByTagName("error")[0] != undefined)
			{
				document.getElementById('LoadingAnimation').style.display = "none";
				document.getElementById('ErrorMessage').style.display = "block";
				document.getElementById('ErrorMessage').innerHTML = xmlData.getElementsByTagName("error")[0].childNodes[0].nodeValue;
			}
			// No Error.
			else
			{
				var pictureUrl = xmlData.getElementsByTagName("url")[0].childNodes[0].nodeValue;
				
				if (pictureUrl != undefined)
				{
					preloadImage = new Image();
					 //preloadImage.onload = renderData(xmlData);
					 preloadImage.src = pictureUrl;
					 
					rawXml = xmlData;
					timerInterval = setInterval("checkPreload()", 50);
				}
			}
		}
		else
		{
			document.getElementById('ErrorMessage').style.display = "block";
		}
		
		return true;
	}
}

function checkPreload()
{
	// If the preload of the image is complete
	if (preloadImage.complete)
	{
		clearInterval(timerInterval);
		renderData(rawXml);
	}
}

function renderData(xmlData)
{
	var pictureID = xmlData.getElementsByTagName("picture")[0].getAttribute("id");
	var picno = xmlData.getElementsByTagName("picture")[0].getAttribute("picno");
	var noofpics = xmlData.getElementsByTagName("picture")[0].getAttribute("noofpics");
	
	var title = xmlData.getElementsByTagName("title")[0].childNodes[0].nodeValue;
	
	if (xmlData.getElementsByTagName("name")[0].childNodes[0] != undefined)
		var name = xmlData.getElementsByTagName("name")[0].childNodes[0].nodeValue;
	else
		var name = "";
	
	var date = xmlData.getElementsByTagName("date")[0].childNodes[0].nodeValue;
	var url = xmlData.getElementsByTagName("url")[0].childNodes[0].nodeValue;
	var width = xmlData.getElementsByTagName("url")[0].getAttribute("width");
	var height = xmlData.getElementsByTagName("url")[0].getAttribute("height");
	
	var info = xmlData.getElementsByTagName("info")[0].childNodes[0].nodeValue;
	var exif = xmlData.getElementsByTagName("exif")[0].childNodes[0].nodeValue;
	var pricing = xmlData.getElementsByTagName("pricing")[0].childNodes[0].nodeValue;
	
	document.title = title;
	
	document.getElementById("picid").value = pictureID;
	document.getElementById("pictureNumber").value = picno;
	
	document.getElementById("crumb_picture").href = "/picture/" + pictureID + "/";
	document.getElementById("crumb_picture").innerText = name;
	
	document.getElementById("picturename").innerText = name;
	document.getElementById("picturedate").innerText = date;
	document.getElementById("albumpicture").src = url;
	document.getElementById("albumpicture").width = width;
	document.getElementById("albumpicture").height = height;
	
	document.getElementById("tabinfo").innerHTML = info;
	document.getElementById("exif").innerHTML = exif;
	document.getElementById("tabpricing").innerHTML = pricing;
	
	BuildPictureNavLinks(picno, noofpics);
	sethashparam("pictureid", pictureID);
	
	document.getElementById('LoadingAnimation').style.display = "none";
}
