var Desplegador = function() {}

Desplegador.desplegantes = new Array();
Desplegador.desplegados = new Array();

Desplegador.intervalo = null;
Desplegador.incremento = 0.2;
Desplegador.tiempo = 100;

Desplegador.cambiarEstado = function( nombre ) {
	if ( Desplegador.desplegados[nombre] == null ) 
		Desplegador.desplegados[nombre] = false;
	if ( Desplegador.desplegados[nombre] ) {
		Desplegador.replegar( nombre );
		Desplegador.desplegados[nombre] = false;
	}
	else {
		Desplegador.desplegar( nombre );
		Desplegador.desplegados[nombre] = true;
	}
	Desplegador.ponerSigno( nombre );
}

Desplegador.ponerSigno = function( nombre ) {
	var obj = document.getElementById( 'signo_' + nombre );
	if ( obj ) {
		if ( Desplegador.desplegados[nombre] )
			obj.innerHTML = '(-)';
		else
			obj.innerHTML = '(+)';
	}
}

Desplegador.getFinal = function( nombre ) {
	return document.getElementById( "cuerpo" + nombre ).offsetHeight;
}

Desplegador.getIncremento = function( nombre ) {
	return Desplegador.getFinal( nombre ) * Desplegador.incremento;
}

Desplegador.desplegarSiReplegando = function(nombre) {
	if ( !Desplegador.desplegantes[nombre] )
		Desplegador.desplegantes[nombre] = null;
};

Desplegador.desplegarSiActiva = function(nombre) {
    var respuesta = false;
    var nombreBoton = "boton_" + nombre.replace( /.*_/, "" );
    Desplegador.desplegantes[nombre] = null;
    if ( nombreBoton != botonActivo ) {
        Boton.activarYPulsar( nombreBoton );
        respuesta = true;
    }
    else {
        Desplegador.desplegar( nombre );
    }
    return respuesta;
}
Desplegador.desplegar = function(nombre) {
//	if ( "boton_" + nombre.replace( /.*_/, "" ) != botonActivo ) {
		Desplegador.desplegantes[nombre] = true;
		if ( Desplegador.intervalo == null )
			Desplegador.intervalo = setInterval( "Desplegador.actuando()", Desplegador.tiempo );
//	}
};

Desplegador.replegar = function(nombre) {
	Desplegador.desplegantes[nombre] = false;
	if ( Desplegador.intervalo == null )
		Desplegador.intervalo = setInterval( "Desplegador.actuando()", Desplegador.tiempo );
};

Desplegador.actuando = function() {
	var hay = false;
	for ( i in Desplegador.desplegantes ) {
		if ( Desplegador.desplegantes[i] != null ) {
			hay = true;
			if ( Desplegador.desplegantes[i] )
				Desplegador.desplegando( i );
			else
				Desplegador.replegando( i );
		}
	}
	if ( !hay ) {
		clearInterval( Desplegador.intervalo );
		Desplegador.intervalo = null;
	}
}

Desplegador.desplegando = function(nombre) {
	var obj = document.getElementById( nombre );
	var fin = Desplegador.getFinal( nombre );
	var tamano = obj.offsetHeight + Desplegador.getIncremento(nombre);
	if ( tamano > fin ) {
		tamano = fin;
		Desplegador.desplegantes[nombre] = null;
	}
	obj.style.height = tamano + 'px';
}

Desplegador.replegando = function(nombre) {
	var obj = document.getElementById( nombre );
	var tamano = obj.offsetHeight - Desplegador.getIncremento(nombre);
	if ( tamano < 0 ) {
		tamano = 0;
		Desplegador.desplegantes[nombre] = null;
	}
	obj.style.height = tamano + 'px';
}

