/* functions to handle Ajax gallery */

function loadDirectoryListing(directory, target)
{
   removeAllChildren(target);
   var loadingElement = document.createElement('p');
   loadingElement.innerHTML = 'Loading, please wait...';
   target.appendChild(loadingElement);
   var params = 'dir=' + directory + "&id=" + target.id;
   var request = new Ajax.Request(
			'getdir.php', 
			{
				method: 'get', 
				parameters: params,
				onComplete: handleResponse
			});

}

function getChildText(element)
{
	for (var j = 0; j < element.childNodes.length; j++) {
		var node = element.childNodes[j];
		if (node.nodeType == 3) {
		  if ((node.nodeValue != null) && (node.nodeValue.length != 0)) {
			return node.nodeValue;
		  }
		}
	}
	return '';
}

function removeAllChildren(element)
{
	while (element.firstChild) {
		element.removeChild(element.firstChild);
	}

}

// handleResponse is a member of the Ajax.Request
function handleResponse(request)
{
	var responseDoc = request.responseXML;
	var dirListing = responseDoc.getElementsByTagName('directory-listing')[0];

	if (dirListing == null) {
		removeAllChildren(target);
		var error = responseDoc.getElementsByTagName('error')[0];
		var target = document.getElementById(error.getAttribute('id'));
		var errorElement = document.createElement('p');
		errorElement.innerHtml = 'An error occurred: ' + getChildText(error);
		tagret.appendChild(errorElement);
		return;
	}

	var target = document.getElementById(dirListing.getAttribute('id'));
	var dir = dirListing.getAttribute('dir');
	removeAllChildren(target);

	var pictures = dirListing.getElementsByTagName('picture');
	for (var i = 0; i < pictures.length; i++) {
		var picNode = pictures[i];
		var urlText = getChildText(picNode.getElementsByTagName('url')[0]);
		urlText = "image.php?dir=" + dir + "&file=" + urlText;
		var thumbUrlText = getChildText(picNode.getElementsByTagName('thumbnailurl')[0]);

		var divElement = document.createElement('div');
		divElement.className = 'thumbnail';

		var aElement = document.createElement('a');
		aElement.href = urlText;

		var imgElement = document.createElement('img');
		imgElement.src = thumbUrlText;

		aElement.appendChild(imgElement);
		divElement.appendChild(aElement);
		target.appendChild(divElement);
	}
}

function directoryClicked(element, directory)
{
	var targetBlock = document.getElementsByClassName('thumbnailgroup', element.parentNode)[0];
	var c = targetBlock.style.display;
	if ((c == "none") || (c == "")) {
		targetBlock.style.display = "block";
		loadDirectoryListing(directory, targetBlock);
	} else if (c == "block") {
		targetBlock.style.display = "none";
	}
	return false;
}

