/*****************************************************************************/
/*                                2010 Shio2e                                */
/*                            SISTEMA DE VENTANAS                            */
/*****************************************************************************/

// Parametros de configuracion
var svZIndexInicial = 100;
var svID = 'svID_';
var svClassCSS = 'svVentana';
var svTituloPorDefecto = 'shio2e';

// Plantilla de la ventana
var svPlantillaVentana = new Template(
	'<div class="svCabecera">'+
	'	<p class="svCerrar"><a href="javascript:void(0);" onclick="javascript:svCerrar(#{id_ventana});">X</a></p>'+
	'	<p>#{titulo}</p>'+
	'</div>'+
	'<div class="svContenido">#{contenido}</div>'
);

// Class
var svGestionVentanas = Class.create();
svGestionVentanas.prototype = {
	initialize: function () {
		this.listado = new Array();
	},

	add: function( titulo, contenido ) {
		var nueva_pos = this.listado.length;
		this.listado[nueva_pos] = new Array(titulo, contenido);
		return nueva_pos;
	},

	get: function( id_ventana )	{
		return this.listado[id_ventana];
	},

	del: function( id_ventana ) {
		this.listado[id_ventana] = null;
	}
};
var svGVentanas = new svGestionVentanas();

// Funciones
function svCrear(titulo, contenido){
	var id_ventana = svGVentanas.add(titulo, contenido);
	var idDiv = svID+id_ventana;
	var zIndex = svZIndexInicial + id_ventana;

	// Crear el DIV
	$$('body')[0].appendChild(new Element('div', {'id': idDiv, 'class': svClassCSS, 'style': 'z-index: '+zIndex+';'}));
	$(idDiv).update(svPlantillaVentana.evaluate({ id_ventana: id_ventana, titulo: titulo, contenido: contenido }));

	// Posicionarlo
	svPosicionCentrada(id_ventana);

	return id_ventana;
}

function svCerrar(id_ventana){
	svGVentanas.del(id_ventana);
	$(svID+id_ventana).remove();
}

var svIdCargando = 0;

function svVentanaCargandoAbrir(){
	svIdCargando = svCrear(svTituloPorDefecto, '<p style="width: 400px; padding: 5px; text-align: center;">Cargando...</p>');
	svPosicionCentrada(svIdCargando);
}

function svVentanaCargandoCerrar(){
	svCerrar(svIdCargando);
	svIdCargando = 0;
}

function svPosicionCentrada(id_ventana){
	var idDiv = svID+id_ventana;
	var ancho = Math.floor($(idDiv).getWidth()/2);
	var altura = Math.floor($(idDiv).getHeight()/2);
	$(idDiv).setStyle({ marginTop: (-1*altura)+'px', marginLeft: (-1*ancho)+'px' });
}
