//MiramapaTipos			

			function MiramapaTipos(param,nombre,lista,arrTiposEstablecimientos,tiposEstablecimientos,todos,tope,literalTodos){
					this.nombre = nombre;
					this.intFaderAltura = 10;
					this.resFaderAltura = 8;
					this.titulo = new Array();
					this.contenedor = new Array();
					this.seleccionado = null;
					this.botonSeleccionado = null;
					this.botonTodos = document.getElementById(todos);
					this.tiposCheck = document.getElementsByName(tiposEstablecimientos);
					this.lista = document.getElementById(lista);
					this.arrTiposEstablecimientos = arrTiposEstablecimientos;
					this.separacion = ", ";
					this.tope = (tope + 1);
					this.literalTodos = literalTodos;
					this.isTodos = false;
					
					for(var i=0;i < param.length;i++){
						
						this.titulo[i] = document.getElementById(param[i][0]);
						this.contenedor[i] = document.getElementById(param[i][1]);
						this.contenedor[i].altura = this.getAltura(this.contenedor[i]);
						this.contenedor[i].timer = null;
						this.contenedor[i].a = 0;
						this.contenedor[i].i = i;
						this.contenedor[i].indice = param[i][2];
						
					} 
					
					
			}
			MiramapaTipos.prototype.setTodos = function(check){
				
				if(check.checked){
					for(var i=0;i < this.tiposCheck.length;i++){
						this.tiposCheck[i].checked = false;
						this.arrTiposEstablecimientos[i][0] = false;
					}
					this.lista.innerHTML = this.literalTodos;
					this.isTodos = true;
				} else {
					for(var i=0;i < this.tiposCheck.length;i++){
						this.tiposCheck[i].checked = false;
						this.arrTiposEstablecimientos[i][0] = false;
					}
					this.lista.innerHTML = this.getLiteralesLista();
					this.isTodos = false;
				}
				
			}
			
			MiramapaTipos.prototype.setLiteralLista = function(check,indice){
				
				if(check.checked){
					this.arrTiposEstablecimientos[indice][0] = true;
					this.lista.innerHTML = this.getLiteralesLista();
				} else {
					this.arrTiposEstablecimientos[indice][0] = false;
					this.lista.innerHTML = this.getLiteralesLista();
				}	
			}
			MiramapaTipos.prototype.getLiteralesLista = function(){
				var aux = "";
				var sw = false;
				var conta = 0;			
				for(var i = 0; i < this.arrTiposEstablecimientos.length;i++){
					
					if(this.arrTiposEstablecimientos[i][0]){
						aux += (sw)?  this.separacion +  this.arrTiposEstablecimientos[i][1] : this.arrTiposEstablecimientos[i][1]; 
						 sw = true;
						 if(this.tiposCheck[i].checked)conta++;
					}
					
				}
				if(conta >= this.tope || conta == 0){
					
					this.botonTodos.checked = true;
					this.botonTodos.onclick();
					return this.literalTodos;
					
				} else {
					this.botonTodos.checked = false;
					return aux;
				}	
			}
			MiramapaTipos.prototype.getAltura = function(obj){
				return obj.offsetHeight;
			}
			MiramapaTipos.prototype.setAltura = function(obj,h){
				obj.style.height = h;
			}
			
			MiramapaTipos.prototype.getAnchura = function(obj){
				return obj.offsetWidth;
			}
			
			MiramapaTipos.prototype.setAnchura = function(obj,w){
				obj.style.width = w;
			}
			
			MiramapaTipos.prototype.setVisible = function(obj){
				obj.style.display = "block";
			}
			
			MiramapaTipos.prototype.setOculto = function(obj){
				obj.style.display = "none";
			}
			
			MiramapaTipos.prototype.initFaderAltura = function(obj,boton,p){
				
				if(this.seleccionado != null){
					miramapaTipos.initUnFaderAltura(miramapaTipos.contenedor[this.seleccionado],this.botonSeleccionado,this.seleccionado);
					
					eval("this.botonSeleccionado.onclick=function(){miramapaTipos.initFaderAltura(miramapaTipos.contenedor[" + this.seleccionado + "],this," + this.seleccionado + ");}");
					
				}
				
				this.botonSeleccionado = boton;
				this.seleccionado = p;
				
				var aux = eval(this.nombre + ".contenedor["+obj.i+"].indice");
				boton.className = estiloTitulo + " color_" + aux;
				
				boton.onclick = function(){
					miramapaTipos.initUnFaderAltura(miramapaTipos.contenedor[p],this,p);
				}
				
				clearTimeout(obj.timer);
				this.setAltura(obj,"0px");
				this.setVisible(obj);
				obj.timer = setTimeout(this.nombre + ".faderAltura(" + this.nombre + ".contenedor["+obj.i+"])", this.intFaderAltura);
			
			}
			MiramapaTipos.prototype.faderAltura = function(obj){
				
				obj.a = obj.a + this.resFaderAltura;
				if(obj.a > obj.altura){
				
					clearTimeout(obj.timer);
					
				} else {	
					
					this.setAltura(obj, obj.a+"px");
					obj.timer = setTimeout(this.nombre + ".faderAltura(" + this.nombre + ".contenedor["+obj.i+"])", this.intFaderAltura);
				}	
					
			}
			MiramapaTipos.prototype.initUnFaderAltura = function(obj,boton,p){
				
				boton.className = estiloTitulo;
				
				boton.onclick = function(){
					miramapaTipos.initFaderAltura(miramapaTipos.contenedor[p],this,p);
				}
			
				clearTimeout(obj.timer);
				this.setAltura(obj,"0px");
				this.setVisible(obj);
				obj.timer = setTimeout(this.nombre + ".unFaderAltura(" + this.nombre + ".contenedor["+obj.i+"])", this.intFaderAltura);
			
			}
			MiramapaTipos.prototype.unFaderAltura = function(obj){
				obj.a = obj.a - this.resFaderAltura;
				if(obj.a <= 0){
				
					clearTimeout(obj.timer);
					
				} else {	
					
					this.setAltura(obj, obj.a+"px");
					obj.timer = setTimeout(this.nombre + ".unFaderAltura(" + this.nombre + ".contenedor["+obj.i+"])", this.intFaderAltura);
				}	
					
			}
			MiramapaTipos.prototype.init = function(){
			
				for(var i = 0;i < this.contenedor.length;i++){
					this.setOculto(this.contenedor[i]);
				}
				this.botonTodos.checked = true;
				this.setTodos(this.botonTodos);
				
			}
