/* Este fichero contiene los MesssageBox, que son mensajes de texto como los alerts,
 * pero que no interrumpen la ejecución del programa y que - en definitiva - son más bonitos.
 */


/* Se trata de un cuadro de text que permite Aceptar y Cancelar
 *
 * data:		Configuración (tamaño, posicion...)
 * title:		Título
 * text:		Texto que contiene
 * func_y:		Función que tiene que llamar si acepta. (Sí).
 * func_n:		Función que tiene que llamar si no acepta (No).
 */
function MessageBoxYesNo(data, title, text, func_y, func_n)
{
	// Inicializa datos.
	var main_div = document.createElement("div");
	var xobj = new XObject(main_div);
	this.xobj = xobj;
	var fifo = new xFuncFIFO;

	var bar0_div = document.createElement("div");
	var bar1_div = document.createElement("div");

	var bord00_div = document.createElement("div");
	var bord10_div = document.createElement("div");
	var bord01_div = document.createElement("div");
	var bord11_div = document.createElement("div");

	var bg_div = document.createElement("div");
	var cont_div = document.createElement("div");

	var text_h = document.createElement("h3");
	var text_p = document.createElement("p");

	var input_y = document.createElement("input");
	var input_n = document.createElement("input");

	this.input_y = input_y;
	this.input_n = input_n;

	var self = this;

	if(data.className)
		main_div.className = data.className;

	if(navigator.userAgent.toLowerCase().indexOf('msie') != -1)
		main_div.style.position = "absolute";
	else
		main_div.style.position = "fixed";

	if(data.top)
		main_div.style.top = data.top

	if(data.left)
		main_div.style.left = data.left;

	main_div.style.width = data.width ? data.width : "300px";
	main_div.style.height = data.height ? data.height : "auto";


	// Crea los bordes
	bar0_div.className = "member_bar bar11";
	bord00_div.className = "member_border bord00";
	bord10_div.className = "member_border bord10";

	bar1_div.className = "member_bar bar11";
	bord01_div.className = "member_border bord01";
	bord11_div.className = "member_border bord11";

	bg_div.className = "member_bord_cont";
	text_h.className = "header";
	text_h.appendChild(document.createTextNode(title));
	bg_div.appendChild(text_h);

	cont_div.className = "member_cont";
	text_p.appendChild(document.createTextNode(text));
	cont_div.appendChild(text_p);

	// Botón SÍ
	input_y.className = "vdA";
	input_y.setAttribute("type", "button")
	input_y.value = "Sí";

	// Llamara a la función asociada y destruir el MessageBox
	EH.addEventHandler(input_y, "click", function()
	{
		xobj.destroy();

		if(func_y)
			func_y.call(self, EH.getEvent());
	}, 1000);

	// Botón NO
	input_n.className = "vdB"
	input_n.setAttribute("type", "button")
	input_n.value = "No";

	// Llamara a la función asociada y destruir el MessageBox
	EH.addEventHandler(input_n, "click", function()
	{
		xobj.destroy();

		if(func_n)
			func_n.call(self, EH.getEvent())
	}, 1000);

	cont_div.appendChild(input_y);
	cont_div.appendChild(input_n);
	cont_div.appendChild(document.createElement("br"));

	bg_div.appendChild(cont_div);

	main_div.appendChild(bord01_div);
	main_div.appendChild(bord11_div);
	main_div.appendChild(bar1_div);

	main_div.appendChild(bg_div);

	main_div.appendChild(bord00_div);
	main_div.appendChild(bord10_div);
	main_div.appendChild(bar0_div);

	document.getElementById("content").appendChild(main_div);

	xobj.setStyle("opacity", 0);

	if(!data.left && !data.top)
	{
		if(!data.align_pos)
			xobj.align("center", 15, 0);
		else
			xobj.align(data.align_pos, data.align_scale, 0);

	}

	fifo.add(function() { xobj.setOpacity(100, 20, false, false); });
	fifo.next();


}

/* Se trata de un cuadro de text que permite Aceptar
 *
 * data:		Configuración (tamaño, posicion...)
 * title:		Título
 * text:		Texto que contiene
 * func:		Función que tiene que llamar si acepta.
 */
function MessageBox(data, title, text, func)
{
	var main_div = document.createElement("div");
	var xobj = new XObject(main_div);
	this.xobj = xobj;
	var fifo = new xFuncFIFO;

	var bar0_div = document.createElement("div");
	var bar1_div = document.createElement("div");

	var bord00_div = document.createElement("div");
	var bord10_div = document.createElement("div");
	var bord01_div = document.createElement("div");
	var bord11_div = document.createElement("div");

	var bg_div = document.createElement("div");
	var cont_div = document.createElement("div");

	var text_h = document.createElement("h3");
	var text_p = document.createElement("p");

	var input = document.createElement("input");
	this.input = document.createElement("input");

	var self = this;

	if(data.className)
		main_div.className = data.className;

	if(navigator.userAgent.toLowerCase().indexOf('msie') != -1)
		main_div.style.position = "absolute";
	else
		main_div.style.position = "fixed";

	if(data.top)
		main_div.style.top = data.top

	if(data.left)
		main_div.style.left = data.left;

	if(data.destroy)
		setTimeout(function() { xobj.destroy(); }, data.destroy);

	main_div.style.width = data.width ? data.width : "300px";
	main_div.style.height = data.height ? data.height : "auto";


	//Bordes
	bar0_div.className = "member_bar bar11";
	bord00_div.className = "member_border bord00";
	bord10_div.className = "member_border bord10";

	bar1_div.className = "member_bar bar11";
	bord01_div.className = "member_border bord01";
	bord11_div.className = "member_border bord11";

	bg_div.className = "member_bord_cont";
	text_h.className = "header";
	text_h.appendChild(document.createTextNode(title));
	bg_div.appendChild(text_h);

	cont_div.className = "member_cont";

	if(navigator.userAgent.toLowerCase().indexOf('msie') != -1)
		text_p.appendChild(document.createTextNode(text));
	else
		text_p.innerHTML = text;

	cont_div.appendChild(text_p);

	// Aceptar
	input.className = "simple_column";
	input.setAttribute("type", "button")
	input.value = "Aceptar";
	
	// Función que se ejecuta cuando aceptas + destruir.
	EH.addEventHandler(input, "click", function()
	{
		xobj.destroy();

		if(func)
			func.call(self, EH.getEvent());
	}, 1000);

	cont_div.appendChild(input);
	cont_div.appendChild(document.createElement("br"));

	bg_div.appendChild(cont_div);

	main_div.appendChild(bord01_div);
	main_div.appendChild(bord11_div);
	main_div.appendChild(bar1_div);

	main_div.appendChild(bg_div);


	main_div.appendChild(bord00_div);
	main_div.appendChild(bord10_div);
	main_div.appendChild(bar0_div);

	document.getElementById("content").appendChild(main_div);


	xobj.setStyle("opacity", 0);

	if(!data.left && !data.top)
	{
		if(!data.align_pos)
			xobj.align("center", 15, 0);
		else
			xobj.align(data.align_pos, data.align_scale, 0);

	}

	fifo.add(function() { xobj.setOpacity(100, 20, false, false); });
	fifo.next();

}
