// ---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: ColoresSuelos
//
// DESCRIPCION: correspondencia de colores RGB con los suelos. Esta info se extrae de la tabla
//				SDE.INDPROD (campos SC, RGB). Se utiliza para colocar los colores correctos en el 
//				croquis.
//
// PROPIEDADES:
//		tot_elem    (number) - mantiene la cantidad existente de correspondencias suelo-color.
//		
// METODOS: 
//		Cant			- total de elementos suelo-color.
//		NuevoElem		- agregar un nuevo elemento con info de suelo-color.
//		ColorDeSuelo    - retorna el color RGB para un suelo dado.
//		VaciarObjeto    - reinicializar el objeto a un estado 'vacio' (sin datos).
//
// FECHA: 21/09/2001
//
// ---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-color.
//
// 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
ColoresSuelos.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-color.
//
// PARAMETROS: 
//		strSC 		(string)  - identificador de suelo (segun campo SC de tabla SDE.INDPROD).
//		strColor	(string)  - color RGB con formato "nnn,nnn,nnn"
//
// 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
ColoresSuelos.prototype.NuevoElem = function(strSC, strColor)
{
	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-color.	
	this.arrSC[i] = strSC;
	this.arrColores[i] = strColor;
	
	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: ColorDeSuelo
//
// DESCRIPCION: obtener el color RGB para un suelo dado. 
//				Si no se encuentra (lo cual podria pasar en caso de que no esten actualizados los colores
//				a partir de nuevo axl generado), se regresa el color "128,128,128".
//
// PARAMETROS: 
//		strSC 		(string)  - identificador de suelo (segun campo SC de tabla SDE.INDPROD).
//
// RETORNO: strColor	(string)  - color RGB con formato "nnn,nnn,nnn"
// ---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
ColoresSuelos.prototype.ColorDeSuelo = function(strSC)
{
	for (var i = 0; i < this.Cant(); i++) {
		if (this.arrSC[i] == strSC) {
			return this.arrColores[i];
		}
	}
	
	// No encontro el suelo strSC... retornar "128,128,128".
	return "128,128,128";
}

// ---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 ColoresSuelos 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
ColoresSuelos.prototype.VaciarObjeto = function()
{
	// Eliminar los objetos arrays...
	delete this.arrColores;
	delete this.arrSC;
	// ... crear de nuevo los arrays.
	this.arrColores = new Array();
	this.arrSC      = new Array();
	
	this.tot_elem = 0;
}

// -----------------------------------------------------------------------------------------------------
// CONSTRUCTOR: ColoresSuelos
//
// PARAMETROS: ninguno.
//
// USO: var objColores = new ColoresSuelos();
//
// -----------------------------------------------------------------------------------------------------
function ColoresSuelos()
{
	// Arrays paralelos que mantienen la correspondencia suelo-color.
	this.arrSC      = new Array();	// Array de identificadores de suelos.
	this.arrColores = new Array();	// Array de colores RGB.
	
	// PROPIEDADES.
	this.tot_elem = 0;				// Contador de cantidad de elementos. Iniciar en cero.
}

