function changeImage(newImage, album) {
	if (document.getElementById("imageImage").src.match(/\/([^/]+)$/)[1] != newImage) {
		ajaxRequest("images/" + album + "/" + newImage +"&json", updateImage);
	}
	return false;
}
	
function updateImage(response) {
	var newData = eval('(' + response + ')');
	document.getElementById("imageTitle").firstChild.nodeValue = newData.title;
	document.getElementById("imagePostDate").firstChild.nodeValue = newData.postDate;
	var description = document.getElementById("imageDescription");
	if (!description.firstChild) {
		var newNode = document.createTextNode(newData.description);
		description.appendChild(newNode);
	} else {
		description.innerHTML = newData.description;
	}
	switchImage(document.getElementById("imageImage"), "media/images/" + newData.album + "/images/" + newData.filename, newData.width, newData.height);
	
	if (iconLink = document.getElementById("adminIconLink")) {
		document.getElementById("adminEditLink").href = "images/" + newData.album + "/" + newData.filename + "/edit";
		iconLink.href = "albums/" + newData.album + "/setIcon/" + newData.filename;
		iconLink.onclick = function () {ajaxRequest(iconLink.href+"&json", null); return false;};
	}
}

function switchImage(image, newImage, newWidth, newHeight) {
	if (!image.resizer) image.resizer = new Resizer(image);
	if (!image.fader) image.fader = new Fader(image);
	
	if (!(loadingImg = document.getElementById(image.id + "_loader"))) {
		loadingImg = document.createElement("img");
		loadingImg.id = image.id + "_loader";
		loadingImg.resizer = new Resizer(loadingImg);
		loadingImg.fader = new Fader(loadingImg);
		loadingImg.style.position = "absolute";
		loadingImg.style.zIndex = -1;
		image.parentNode.insertBefore(loadingImg, image);
	}
	loadingImg.fader.setOpacity(0);
	loadingImg.src = "";	
	loadingImg.onload = function() { switchImage_crossFade(image, loadingImg, newWidth, newHeight) };
	loadingImg.src = newImage;
}

function switchImage_crossFade(image, loadingImg, newWidth, newHeight) {
		newImage = loadingImg.src;
		loadingImg.onload = null;
		loadingImg.src = image.src;
		loadingImg.fader.setOpacity(100);
		image.fader.setOpacity(0);
		image.src = newImage;
		image.fader.fadeTo(100);
		image.resizer.resizeTo(newWidth, newHeight, 10);
		loadingImg.resizer.resizeTo(newWidth, newHeight, 10);
}
