
ei_cuadro.prototype = new ei();
ei_cuadro.prototype.constructor = ei_cuadro;

/**
 * @class Un ei_cuadro es una grilla de registros.
 * @constructor
 * @phpdoc Componentes/Eis/toba_ei_cuadro toba_ei_cuadro
 */
function ei_cuadro(id, instancia, input_submit) {
	this._id = id;
	this._instancia = instancia;				//Nombre de la instancia del objeto, permite asociar al objeto con el arbol DOM
	this._input_submit = input_submit;			//Campo que se setea en el submit del form
}
	
	//---Submit 
	ei_cuadro.prototype.submit = function() {
		if (this.controlador && !this.controlador.en_submit()) {
			return this.controlador.submit();
		}
		if (this._evento) {
			switch (this._evento.id) {
				case 'cambiar_pagina':
					document.getElementById(this._input_submit + '__pagina_actual').value = this._evento.parametros;
					break;
				case 'ordenar':
					document.getElementById(this._input_submit + '__orden_columna').value = this._evento.parametros.orden_columna;
					document.getElementById(this._input_submit + '__orden_sentido').value = this._evento.parametros.orden_sentido;
					break;
				default:
					if (this._evento.parametros) {
						document.getElementById(this._input_submit + '__seleccion').value = this._evento.parametros;
					}
					break;				
			}
			//Marco la ejecucion del evento para que la clase PHP lo reconozca
			document.getElementById(this._input_submit).value = this._evento.id;
		}
	};

	//Chequea si es posible realiza el submit de todos los objetos asociados	
	ei_cuadro.prototype.puede_submit = function() {
		if(this._evento) { //Si hay un evento seteado...
			//- 1 - Hay que llamar a una ventana de control especifica para este evento?
			if(existe_funcion(this, "evt__" + this._evento.id)){
				var res = this["evt__" + this._evento.id](this._evento.parametros);
				if(typeof res != 'undefined' && !res ){
					this.reset_evento();
					return false;
				}
			}		
			//- 2 - Hay que confirmar la ejecucion del evento?
			//La confirmacion se solicita escribiendo el texto de la misma
			if (trim(this._evento.confirmar) !== "") {
				if (!this._silencioso && !(confirm(this._evento.confirmar))){
					this.reset_evento();
					return false;
				}
			}
		}
		return true;
	};
	
	ei_cuadro.prototype.colapsar_corte = function(corte)
	{
		var objeto = document.getElementById(corte);
		toggle_nodo(objeto);
	};
	
	ei_cuadro.prototype.exportar_pdf = function()
	{
		var url = vinculador.crear(toba_hilo_item, 'vista_pdf', null, [this._id]);
		document.location.href = url;
	};

	ei_cuadro.prototype.exportar_excel = function()
	{
		var url = vinculador.crear(toba_hilo_item, 'vista_excel', null, [this._id]);
		document.location.href = url;
	};	
	
toba.confirmar_inclusion('componentes/ei_cuadro');

