// ---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O
//
// OBJETO: DescripSuelos
//
// DESCRIPCION: descripciones de los grupos de suelos CONEAT tomados de la tabla SDE.INDPROD.
//
// PROPIEDADES:
//		tot_elem    (number) - mantiene la cantidad existente de correspondencias suelo-descripcion.
//		
// METODOS: 
//		Cant			- total de elementos suelo-color.
//		NuevoElem		- agregar un nuevo elemento copn info relacionando suelo-descripcion.
//		DescripDeSuelo  - retornar la descripcion para un suelo dado.
//		VaciarObjeto    - reinicializar el objeto a un estado 'vacio' (sin datos).
//
// FECHA: 21/01/2002
//
// ---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O---O


// ---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M
// METODO: Cant
//
// DESCRIPCION: retornar la cantidad de correspondencias suelo-descrip.
//
// PARAMETROS: ninguno.
//
// RETORNO: (integer) - cantidad de elemetntos.
// ---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M
DescripSuelos.prototype.Cant = function()
{
	return this.tot_elem;	
}


// ---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M
// METODO: NuevoElem
//
// DESCRIPCION: agregar una nueva correspondencia suelo-descripcion.
//
// PARAMETROS: 
//		strSC 		(string)  - identificador de suelo (segun campo SC de tabla SDE.INDPROD).
//		strDescrip	(string)  - texto (max. 4000 caracteres) con la descripcion del grupo de suelo.
//
// RETORNO: nada.
// ---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M
DescripSuelos.prototype.NuevoElem = function(strSC, strDescrip)
{
	var i;
	
	for (i = 0; i < this.Cant(); i++) {
		if (this.arrSC[i] == strSC) {
			// Encontro el suelo... ya esta dado de alta. SALIR.
			return;
		}
	}
	
	// No encontro el suelo... dar de alta la correspondencia suelo-descripcion.	
	this.arrSC[i] = strSC;
	this.arrDescrip[i] = strDescrip;
	
	this.tot_elem++;   // Seria lo mismo que: this.tot_elem = i + 1
}


// ---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M
// METODO: DescripDeSuelo
//
// DESCRIPCION: obtener la descripcion de un suelo dado. 
//				Si no se encuentra se devuelve un string descriptivo de tal situacion.
//
// PARAMETROS: 
//		strSC 		(string)  - identificador de suelo (segun campo SC de tabla SDE.INDPROD).
//
// RETORNO: strDescrip	(string)  - descripcion del grupo de suelo Coneat.
// ---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M
DescripSuelos.prototype.DescripDeSuelo = function(strSC)
{
	for (var i = 0; i < this.Cant(); i++) {
		if (this.arrSC[i] == strSC) {
			return this.arrDescrip[i];
		}
	}
	
	// No encontro el suelo strSC... retornar un texto descriptivo.
	return "No se dispone de la descripcion del suelo.";
}

// ---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M
// METODO: VaciarObjeto
//
// DESCRIPCION: reinicializar el objeto DescripSuelos a un estado 'vacio' (sin valores almacenar).
//				Deja el objeto al mismo estado que si se hubiera hecho un new del objeto.
//
// PARAMETROS: ninguno.
//
// RETORNO: nada.
// ---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M---M
DescripSuelos.prototype.VaciarObjeto = function()
{
	// Eliminar los objetos arrays...
	delete this.arrDescrip;
	delete this.arrSC;
	// ... crear de nuevo los arrays.
	this.arrDescrip = new Array();
	this.arrSC      = new Array();
	
	this.tot_elem = 0;
}

// -----------------------------------------------------------------------------------------------------
// CONSTRUCTOR: DescripSuelos
//
// PARAMETROS: ninguno.
//
// USO: var objDescripSue = new DescripSuelos();
//
// -----------------------------------------------------------------------------------------------------
function DescripSuelos()
{
	// Arrays paralelos que mantienen la correspondencia suelo-color.
	this.arrSC      = new Array();	// Array de identificadores de suelos.
	this.arrDescrip = new Array();	// Array de descripciones de suelos.
	
	// PROPIEDADES.
	this.tot_elem = 0;				// Contador de cantidad de elementos. Iniciar en cero.
}

