// Encoding: UTF-8 w/o BOM - °°°°°

function ShowPicture(file, w, h, shadow)
{
	if (!isSet(shadow)) shadow = true;

	var layer = DOM.createBlendLayer("black", 0);
	if (!isSet(layer)) return true;

	var x = DOM.width(layer) / 2 - w / 2;
	var y = DOM.height(layer) / 2 - h / 2;
	if (w <= 0 || h <= 0) return true;

	var picture = document.createElement("img");
	picture.style.position = "fixed";
	picture.style.top = (y - 10) + "px";
	picture.style.left = x + "px";
	picture.style.width = w + "px";
	picture.style.height = h + "px";
	if (!shadow)
		picture.style.border = "solid 1px white";
	picture.setAttribute("src", file);
	DOM.hide(picture);
	//DOM.setOpacity(picture, 0);
	elBody().appendChild(picture);

	var div = document.createElement("div");
	div.style.position = "fixed";
	div.style.top = (y + h - (shadow ? 25 : 0)) + "px";
	div.style.left = "0px";
	div.style.width = "100%";
	div.style.textAlign = "center";
	div.style.color = "white";
	div.style.fontSize = "1.3em";
	div.appendChild(document.createTextNode(getConfigValue("clicktoclosetext", "Click or press ‹Esc› to close")));
	DOM.hide(div);
	//DOM.setOpacity(div, 0);
	elBody().appendChild(div);

	var finishHandler = function(e)
	{
		DOM.show(picture);
		DOM.show(div);
	}
	var anim1 = new Animation(layer, "opacity", 0, 0.6);
	anim1.setDuration(100);
	anim1.setMovement("smooth", 1);
	anim1.setFinishedHandler(finishHandler);

	//var anim1a = new Animation([picture, div], "opacity", 0, 1);
	//anim1a.setDuration(100);
	//anim1a.setMovement("smooth", 1);

	var clickHandler = function(e)
	{
		if (!DOM.visible(div)) return;   // Nothing to do here

		anim1.halt();
		//anim1a.halt();

		DOM.hide(div);
		elBody().removeChild(picture);
		elBody().removeChild(div);

		var finishHandler2 = function(e)
		{
			elBody().removeChild(layer);
			//elBody().removeChild(picture);
			//elBody().removeChild(div);
		}
		var anim2 = new Animation(layer, "opacity", 0.6, 0);
		anim2.setDuration(100);
		anim2.setMovement("smooth", 1);
		anim2.setFinishedHandler(finishHandler2);
		anim2.play();

		//var anim2a = new Animation([picture, div], "opacity", 1, 0);
		//anim2a.setDuration(100);
		//anim2a.setMovement("smooth", 1);
		//anim2a.play();
	}
	DOM.addEvent(layer, "click", clickHandler);
	DOM.addEvent(picture, "click", clickHandler);
	DOM.addEvent(div, "click", clickHandler);
	DOM.addKeyEvent("Escape", clickHandler);

	anim1.play();
	//anim1a.play();

	return false;
}

function MessageBox(msg)
{
	var dark = false;

	var layer = DOM.createBlendLayer(dark ? "black" : "white", 0);
	if (!isSet(layer))
	{
		alert(msg);
		return;
	}

	var x = DOM.width(layer) / 2 * 0.5;
	var y = DOM.height(layer) / 2 * 0.8;
	var w = DOM.width(layer) * 0.4;

	msg += "<br /><br /><small>" + getConfigValue("clicktoclosetext", "Click or press ‹Esc› to close") + "</small>";

	var div = document.createElement("div");
	//div.setAttribute("style", "position: fixed; top: " + y + "px; left: " + x + "px; width: " + w + "px; text-align: center; background: #F8EEEE; padding: 1em 1em; border: solid 1px #CC0000; color: black; white-space: pre;");
	div.style.position = "fixed";
	div.style.top = y + "px";
	div.style.left = x + "px";
	div.style.width = w + "px";
	div.style.textAlign = "center";
	div.style.background = "#F8EEEE";
	div.style.padding = "1em 1em";
	div.style.border = "solid 1px #CC0000";
	div.style.color = "black";
	//div.style.whiteSpace = "pre";
	//div.appendChild(document.createTextNode(msg));
	div.appendChild(document.createTextNode(""));
	div.innerHTML = msg;

	//DOM.hide(div);
	DOM.setOpacity(div, 0);
	elBody().appendChild(div);

	var finishHandler = function(e)
	{
		DOM.show(div);
	}
	var anim1 = new Animation(layer, "opacity", 0, dark ? 0.6 : 0.7);
	anim1.setDuration(100);
	anim1.setMovement("smooth", 1);
	anim1.setFinishedHandler(finishHandler);

	var anim1a = new Animation(div, "opacity", 0, 1);
	anim1a.setDuration(100);
	anim1a.setMovement("smooth", 1);

	var clickHandler = function(e)
	{
		if (!DOM.visible(div)) return;   // Nothing to do here

		anim1.halt();
		anim1a.halt();

		//DOM.hide(div);
		//elBody().removeChild(div);

		var finishHandler2 = function(e)
		{
			elBody().removeChild(layer);
			elBody().removeChild(div);
		}
		var anim2 = new Animation(layer, "opacity", dark ? 0.6 : 0.7, 0);
		anim2.setDuration(100);
		anim2.setMovement("smooth", 1);
		anim2.setFinishedHandler(finishHandler2);
		anim2.play();

		var anim2a = new Animation(div, "opacity", 1, 0);
		anim2a.setDuration(100);
		anim2a.setMovement("smooth", 1);
		anim2a.play();
	}
	DOM.addEvent(layer, "click", clickHandler);
	DOM.addEvent(div, "click", clickHandler);
	DOM.addKeyEvent("Escape", clickHandler);

	anim1.play();
	anim1a.play();
}

function PreloadImages(url_str)
{
	var container = $("#preloadContainer");
	var urls = url_str.split(" ");
	for (var x = 0; x < urls.length; x++)
	{
		var img = document.createElement("img");
		img.setAttribute("src", urls[x]);
		img.setAttribute("width", "20");
		img.setAttribute("height", "20");
		container.appendChild(img);
	}
}

