function objetoElementoCatalogo(tipo,codigo,texto,action,listado,elBusqueda,catalogo,tabPadre){
	this.tipo = tipo;
	this.catalogo = catalogo;
	this.elBusqueda = elBusqueda;
	this.action = action;
	this.codigo = codigo;
	this.listado = this.listado;
	this.parentNodeId = 0;
	this.texto = texto;
  	this.store;
	this.htmlListado = 	'<div class="elCatalogo"><a href="javascript:void(0)">{texto}</a></div>';
	this.htmlPie	 = 	'<div class="separador"></div>'+
						'<div style="padding-bottom:20px;">'+
							'<div class="navegacionCatalogo">'+
								'<span id="inicio" class="inicioCatalogo"><a href="javascript:void(0)"><img src="../img/inicio.gif" width="10" height="10"/></a></span>'+
								'<span class="barraCatalogo"><a href="javascript:void(0)"><img src="../img/barraCatalogo.gif" width="2" height="10"/></a></span>'+
								'<span id="atras" class="atrasCatalogo"><a href="javascript:void(0)"><img src="../img/atras.gif" width="6" height="10"/></a></span>'+
							'</div>'+
						'</div>';
	this.htmlCabecera = '<div>'+
							'<div class="navegacionCatalogo">'+
								'<span id="inicioCabecera" class="inicioCatalogo"><a href="javascript:void(0)"><img src="../img/inicio.gif" width="10" height="10"/></a></span>'+
								'<span class="barraCatalogo"><a href="javascript:void(0)"><img src="../img/barraCatalogo.gif" width="2" height="10"/></a></span>'+
								'<span id="atrasCabecera" class="atrasCatalogo"><a href="javascript:void(0)"><img src="../img/atras.gif" width="6" height="10"/></a></span>'+
							'</div>'+
						'</div>'+
						'<div class="separador"></div>';					
	this.tplListado = null;
	this.tplPie = null;		
	this.tplCabecera = null;		
	this.elementoAnterior = null;
	
								
	this.init = function(){
		// compilar templates
		this.tplListado = new Ext.Template(this.htmlListado);
		this.tplListado.compile();		
		this.tplPie = new Ext.Template(this.htmlPie);
		this.tplPie.compile();
		this.tplCabecera = new Ext.Template(this.htmlCabecera);
		this.tplCabecera.compile();
	}
	this.cargarNodos = function(){
		var padre = this;
		//cargamos el store necesario
		this.store = new Ext.data.StoreCatalogo(this.codigo,this.texto,this.action,listado,this.parentNodeId);	
		this.store.load();
		this.store.on('load',function(){
			padre.pintarNodos();			
		});			
	}	
	this.pintarNodos = function(){
			
		var htmlComposiciones	 = 	'<div class="composicionBusqueda" id="composicionBusqueda">'+
									'<div id="composicionMask" style="padding-top:150px;"></div>'+
									'</div>';					
		var tplComposiciones = new Ext.Template(htmlComposiciones);
		tplComposiciones.compile();		
		
		padre = this;	
		// pintamos los nodos
		this.elBusqueda.update();
		
		padre.pintarCabecera();	
		for(i=0;i<this.store.getCount();i++){
			var record = this.store.getAt(i);
			var elementoDiv = this.tplListado.append('busqueda', {
				texto: record.get(this.texto)},true);
			elementoDiv.idSub = record.get(this.codigo);
			elementoDiv.texto = record.get(this.texto);		
			elementoDiv.on('click', function(){
				// cargamos el componente grid de busqueda
				// ponemos el elemento clickado en negrita y el anterior normal
				
				if(padre.elementoAnterior!=null){
					padre.elementoAnterior.replaceClass('elCatalogoNegrita','elCatalogo');
				}
				padre.elementoAnterior = this;
				this.replaceClass('elCatalogo','elCatalogoNegrita');
				var composiciones = Ext.get('composicionBusqueda')
				if(composiciones!=null){
					composiciones.remove();
				}
				tplComposiciones.append('composiciones', {});
				var compContenido = Ext.get('composicionBusqueda');
				if(compContenido!=null){
					Ext.get('composicionBusqueda');
					componenteBusqueda('composicionBusqueda',padre.tipo,this.idSub,tabPadre);
				}
				
				padre.actualizaCaminoBotones(this.texto);
			});					
		}
		padre.pintarPie();
	}
	// pie de pagina y botones
	this.pintarPie = function(){
		Ext.get('pieCatalogo').update();	
		this.tplPie.append('pieCatalogo', {});
	    var botonInicio =  Ext.get('inicio');
		var padre = this;
		if(botonInicio!=null){
			botonInicio.on('click', function(){
				padre.elBusqueda.update();
				padre.catalogo.componenteCatalogo();	
			});
		}
	    var botonAtras =  Ext.get('atras');
		if(botonAtras!=null){
			botonAtras.on('click', function(){
				padre.elBusqueda.update();
				padre.catalogo.componenteCatalogo();	
			});
		}	
	}
	
	// pie de pagina y botones
	this.pintarCabecera = function(){	
		this.tplCabecera.append(this.elBusqueda, {});
	    var botonInicio =  Ext.get('inicioCabecera');
		var padre = this;
		if(botonInicio!=null){
			botonInicio.on('click', function(){
				padre.elBusqueda.update();
				padre.catalogo.componenteCatalogo();	
			});
		}
	    var botonAtras =  Ext.get('atrasCabecera');
		if(botonAtras!=null){
			botonAtras.on('click', function(){
				padre.elBusqueda.update();
				padre.catalogo.componenteCatalogo();	
			});
		}	
	}
	
	this.actualizaCaminoBotones = function(textoElemento){
		
		var arrayCamino = new Array();
		 
		var arrayPaso1 = new Array(2);
		arrayPaso1[0] = localize("musica");
		arrayPaso1[1] = "../portal/musica-royalty-free-libre-de-derechos.adl";
		arrayPaso1[2] = false;
		arrayCamino[0] = arrayPaso1;
	
		var arrayPaso2 = new Array(2);
		arrayPaso2[0] = localize(musicaTipoBusquedaArray(tipo));
		arrayPaso2[1] = "../portal/musica-royalty-free-libre-de-derechos.adl?param1="+tipo+"&param2=0";
		arrayPaso2[2] = false;
		arrayCamino[1] = arrayPaso2;	
		
		// El enlace del elemento actual (no hará nada)
		var arrayPasofinal = new Array(2);
		arrayPasofinal[0] = textoElemento;
		arrayPasofinal[1] = "javascript:void(0);";
		arrayPasofinal[2] = false;
		arrayCamino[2] = arrayPasofinal;
		
		escribeCamino(arrayCamino);
	}
}