/********************************************************
 * @Author mpoisson
 *
 * Estrategia para remover una fila de una tabla (Grilla)
 ********************************************************/

// Constructor de la clase
function GridRemoveStrategy() {
	this._containerID = '';
	this._gridID = '';
	this._rowID = '';
	this._xHttp = new Object();

	this.run = GridRemoveStrategy_run;
	this.deleteRow = GridRemoveStrategy_deleteRow;
	this.setContainerID = GridRemoveStrategy_setContainerID;
	this.getContainerID = GridRemoveStrategy_getContainerID;
	this.setGridID = GridRemoveStrategy_setGridID;
	this.getGridID = GridRemoveStrategy_getGridID;
	this.setRowID = GridRemoveStrategy_setRowID;
	this.getRowID = GridRemoveStrategy_getRowID;
	this.setXHttpRequest = GridRemoveStrategy_setXHttpRequest;
	this.getXHttpRequest = GridRemoveStrategy_getXHttpRequest;
}

// setea el ID del elemento html a usar como contenedor de respuestas
function GridRemoveStrategy_setContainerID(id) {
	this._containerID = id;
}

// devuelve el ID del elemento html a usar como contenedor de respuestas
function GridRemoveStrategy_getContainerID() {
	return this._containerID;
}

// setea el ID del elemento htmlque representa a la grilla
function GridRemoveStrategy_setGridID(id) {
	this._gridID = id;
}

// devuelve el ID del elemento html que representa a la grilla
function GridRemoveStrategy_getGridID() {
	return this._gridID;
}

// setea el ID del elemento htmlque representa a la fila
function GridRemoveStrategy_setRowID(id) {
	this._rowID = id;
}

// devuelve el ID del elemento html que representa a la fila
function GridRemoveStrategy_getRowID() {
	return this._rowID;
}

// setea el objeto xHttpRequest
function GridRemoveStrategy_setXHttpRequest(xHttpRequest) {
	this._xHttp = xHttpRequest;
}

// devuelve el objeto xHttpRequest
function GridRemoveStrategy_getXHttpRequest() {
	return this._xHttp;
}

// Ejecuta la estrategia
function GridRemoveStrategy_run() {
	xHttp = this.getXHttpRequest();
	var response = xHttp.responseText;
	if (parseInt(response) == 1) {
		this.deleteRow();
	}
}

// Elimino una fila de la grilla configurada en la estrategia
function GridRemoveStrategy_deleteRow() {
	var grid = document.getElementById(this.getGridID());
	var rowCount = grid.rows.length;
	for (i=1; i < rowCount; i++) {
		if (grid.rows[i].id == this.getRowID()) {
			grid.deleteRow(i);
			i = rowCount;

		}
	}
	if (grid.rows.length == 1) {
		var container = document.getElementById(this.getContainerID());
		new Effect.Fade(container);
	}
}