var EfluxMensajeConfirm = function () {
	/**
	 * Muestra texto a aceptar en pantalla
	 * @param pTexto "texto a mostrar"
	 * @param pImg imagen a mostrar
	 * @param pBotones [ ['nombre', funcion], [...] ] // null = predefinido: 1 boton aceptar
	 */
	this.show = function (pTexto, pImg, pBotones) { show(pTexto, pImg, pBotones); }
	/**
	 * Oculta el texto
	 */
	this.hide = function () { hide(); }
	/**
	 * Establece dimensiones
	 * @param pW ancho
	 * @param pH alto
	 */
	this.setSize = function (pW, pH) { setSize(pW, pH); }
	/**
	 * Establece id
	 * @param pId Id
	 */
	this.setId = function (pId) { setId(pId); }

	// ================ //

	var cCentrado = null;
	var cBloqueo = null;
	var cOpts = null;
	var cOptsdata = null;
	var cBotones = null;
	var cId = 'mensajeConfirm';

	var initObjs = function () {
		if (cBloqueo==null) {
			cBloqueo = new EfluxBloquearContenido();
			cBloqueo.setId(cId +'Bloqueo');
		}
		if (cCentrado==null) {
			cCentrado = new EfluxMensajeCentrado();
			cCentrado.setSize(64, 64);
			cCentrado.setId(cId +'Centrado');
		}
	}
	var getCentrado = function () {
		if (cCentrado==null) { initObjs(); }
		return cCentrado;
	}
	var getBloqueo = function () {
		if (cBloqueo==null) { initObjs(); }
		return cBloqueo;
	}
	var styleBtn = function (pObj, pPulsado) {
		pObj.style.padding = '3px';
		pObj.style.cursor = 'pointer';
		if (pPulsado == false) {
			pObj.style.border = 'solid 2px #fff';
			pObj.style.borderRight =  'solid 2px #000';
			pObj.style.borderBottom = 'solid 2px #000';
		} else {
			pObj.style.border = 'solid 2px #000';
			pObj.style.borderRight =  'solid 2px #fff';
			pObj.style.borderBottom = 'solid 2px #fff';
		}
	}
	var newImg = function (pImg) {
		var img = new Image();
		img.src = pImg;
		img.setAttribute('align', 'left');
		return img;
	}
	var newLabel = function (pTexto) {
		var div = document.createElement('DIV');
		div.setAttribute('id', cId +'Label');
		if (typeof(pTexto)=="string") {
			div.innerHTML = pTexto;
		} else {
			div.appendChild(pTexto);
		}
		return div;
	}
	var newBotones = function (pBotones) {
		cOptsdata = new EfluxDataTable();
		cOpts = new EfluxTable(cOptsdata);
		cOpts.setId(cId +'Opts');
		cOpts.setOnCellClickEvt(onClickBtn);
		var row = new EfluxDataTableRow();
		for (i=0; i<pBotones.length; ++i) {
			row.addCell(pBotones[i][0]);
		}
		cOptsdata.addRow(row);
		cOpts.refresh();
		return cOpts.getElement();
	}
	var onClickBtn = function (pEvt, pObj, pX, pY) {
		pObj.className += ' pressed';
		setTimeout(function() {
			getBloqueo().hide();
			getCentrado().hide();
		}, 100);

		var f = cBotones[pX][1];
		if (f) { f(); }
	}
	var getContenido = function (pTexto, pImg, pBotones) {
		var div = document.createElement('DIV');
		div.setAttribute('id', cId +'Container');
		
		if (pBotones==null) { cBotones = [[ 'OK', null ]]; }
		else { cBotones = pBotones; }

		if (pImg!=null) { div.appendChild(newImg(pImg)); }
		div.appendChild(newLabel(pTexto));
		div.appendChild(newBotones(cBotones));
		return div;
	}

	/**
	 * @param pTexto "texto a mostrar"
	 * @param pImg imagen a mostrar
	 * @param pBotones [ ['nombre', funcion], [...] ] // null = predefinido: 1 boton aceptar
	 */
	var show = function (pTexto, pImg, pBotones) {
		getBloqueo().reshow();
		getCentrado().reshow(getContenido(pTexto, pImg, pBotones));
	}
	var hide = function () {
		getBloqueo().hide();
		getCentrado().hide();
	}
	var setSize = function (pW, pH) {
		getCentrado().setSize(pW, pH);
	}
	var setId = function (pId) {
		cId = pId;
	}
}

// AUTOCARGA DE DEPENDENCIAS
new function () {
	var DEPENDENCIAS = [
		'EfluxTable',
		'EfluxBloquearContenido',
		'EfluxMensajeCentrado'
		];
	var dir = 'js';
	if (typeof EFLUX_JS_DIR != 'undefined') { dir = EFLUX_JS_DIR; }

	for (var i=0; i<DEPENDENCIAS.length; ++i) {
		var d = DEPENDENCIAS[i];
		var js = dir +'/'+ d +'/'+ d +'.js';
		try { eval ('new '+ d +'()'); }
		catch (e) {
			document.writeln('<SCRIPT src="'+ js +'"></SCRIPT>');
		}
	}
}

