/*
 * Componente catalogo
 */
function componenteCatalogo(tabPadre,tipoBusqueda,idSeleccionado,firstTime){
	objetoCatalogo = new objetoCatalogo(tabPadre);
    objetoCatalogo.componenteCatalogo();
}


/**
 * Objeto catalogo
 */
function objetoCatalogo(tabPadre,tipoBusqueda,idSeleccionado,firstTime){
	this.elBusqueda = Ext.get('busqueda');	
	this.htmlInicio = 	'<div class="catalogo">'+
							'<div id="generos" class="elCatalogo" ><a href="javascript:void(0)">'+localize("generos")+'</a></div>'+
			           		'<div id="aplicaciones" class="elCatalogo"><a href="javascript:void(0)">'+localize("aplicaciones")+'</a></div>'+
			           		'<div id="caracteristicas" class="elCatalogo"><a href="javascript:void(0)">'+localize("caracteristicas")+'</a></div>'+
			           		'<div id="instrumentos" class="elCatalogo" ><a href="javascript:void(0)">'+localize("instrumentos")+'</a></div>'+
			           		'<div id="tempo" class="elCatalogo"><a href="javascript:void(0)">'+localize("tempo")+'</a></div>'+
			           		'<div id="duracion" class="elCatalogo"><a href="javascript:void(0)">'+localize("duracion")+'</a></div>'+
			           		'<div id="compositoresCat" class="elCatalogo" ><a href="javascript:void(0)">'+localize("compositores")+'</a></div>'+
			           		'<div id="interpretes" class="elCatalogo" ><a href="javascript:void(0)">'+localize("interpretes")+'</a></div><div class="separador"></div>'+
			           		'<div id="busquedaAvanzada" class="elCatalogo" style="margin-bottom: 3px;"><a href="../portal/BusquedaAvanzada.adl">'+localize('busquedaAvanzada')+'</a></div><div class="separador"></div>'+
			           		'<div class="elCatalogo" >'+localize("buscar")+'<span style="padding-left:5px;"><input type="text" id="textoBusquedaPalabra" name="nombre" size="10"></span><span id="busquedaPalabra" style="padding-left:5px;"><a href="javascript:void(0)"><img src ="../img/lupaBuscar.jpg" width="11" height="11"/></a><span></div>'
		           		'</div>';
	this.elCatalogoGenero0 = new objetoElementoCatalogoArbol(constantsAdl('TIPO_GENERO'),'idGenero','text','../portal/json/GenerosCatalogo.adl','listaGeneros',this.elBusqueda,this,tabPadre);
	this.elCatalogoAplicacion0 = new objetoElementoCatalogoArbol(constantsAdl('TIPO_APLICACION'),'idAplicacion','text','../portal/json/AplicacionesCatalogo.adl','listaAplicaciones',this.elBusqueda,this,tabPadre);
	this.elCatalogoCaracteristica0 = new objetoElementoCatalogo(constantsAdl('TIPO_CARACTERISTICA'),'idCaracteristica','text','../portal/json/CaracteristicasCatalogo.adl','listaCaracteristicas',this.elBusqueda,this,tabPadre);
	
	// Corregimos la búsqueda por pseudónimo. Hay que buscar las obras con ese pseudónimo, no todas las del compositor con ese pseudónimo
	this.elCatalogoCompositores0 = new objetoElementoCatalogo(constantsAdl('TIPO_COMPOSITORES'),'pseudonimo','pseudonimo','../portal/json/CompositoresCatalogo.adl','listaCompositores',this.elBusqueda,this,tabPadre);
	this.elCatalogoInterpretes0 = new objetoElementoCatalogo(constantsAdl('TIPO_INTERPRETES'),'pseudonimo','pseudonimo','../portal/json/InterpretesCatalogo.adl','listaInterpretes',this.elBusqueda,this,tabPadre);
	this.elCatalogoInstrumentos0 = new objetoElementoCatalogo(constantsAdl('TIPO_INSTRUMENTO'),'idInstrumento','text','../portal/json/InstrumentosCatalogo.adl','listaInstrumentos',this.elBusqueda,this,tabPadre);
	this.elCatalogoDuracion0 = new objetoElementoCatalogo(constantsAdl('TIPO_DURACION'),'codigo','texto','../portal/json/DuracionCatalogo.adl','listaDuracion',this.elBusqueda,this,tabPadre);
	this.elCatalogoTempo0 = new objetoElementoCatalogo(constantsAdl('TIPO_TEMPO'),'codigo','texto','../portal/json/TempoCatalogo.adl','listaTempo',this.elBusqueda,this,tabPadre);
	this.tipoBusqueda = tipoBusqueda;
	this.idSeleccionado = idSeleccionado;
	
	/**
	 * 	Inicicializa el componente catalogo
	 */	
	this.componenteCatalogo = function(){	
		Ext.get('pieCatalogo').update();			
		var tplInicio = new Ext.Template(this.htmlInicio);
		tplInicio.compile();	
		tplInicio.append(this.elBusqueda, {});	 
		
			
		
		if(firstTime==true){
			this.marcarCamino(this.tipoBusqueda);	
			firstTime = false;
			// cargamos el elemento catalogo adecuado
			var valueBusqueda = parseInt(this.tipoBusqueda);
			switch(valueBusqueda){
				case constantsAdl("TIPO_GENERO"):
					this.elCatalogoGenero0.init();	
					this.elCatalogoGenero0.cargarNodos();					
				break;   
				case constantsAdl("TIPO_CARACTERISTICA"):
					this.elCatalogoCaracteristica0.init();	
					this.elCatalogoCaracteristica0.cargarNodos();	    				
				break; 
				case constantsAdl("TIPO_APLICACION"):
					this.elCatalogoAplicacion0.init();
					this.elCatalogoAplicacion0.cargarNodos();	    				
				break; 
				case constantsAdl("TIPO_INSTRUMENTO"):
					this.elCatalogoInstrumentos0.init();	 
					this.elCatalogoInstrumentos0.cargarNodos();	   				
				break; 
				case constantsAdl("TIPO_COMPOSITORES"):
					this.elCatalogoCompositores0.init();	
					this.elCatalogoCompositores0.cargarNodos();	    				
				break; 
				case constantsAdl("TIPO_INTERPRETES"):
					this.elCatalogoInterpretes0.init();	
					this.elCatalogoInterpretes0.cargarNodos();    				
				break; 
				case constantsAdl("TIPO_TEMPO"):
					this.elCatalogoTempo0.init();	
					this.elCatalogoTempo0.cargarNodos();    				
				break; 
				case constantsAdl("TIPO_DURACION"):
					this.elCatalogoDuracion0.init();	
					this.elCatalogoDuracion0.cargarNodos();    				
				break; 						
				default :
					this.cargarListeners();  
				break;
			}	
		}else{
			this.cargarListeners(); 
		}	
	}	
	/**
	 * Carga los listeners
	 */		
	this.cargarListeners =function (){
		var padre = this;
		padre.elCatalogoGenero0.init();	
	    Ext.get('generos').on('click', function(){
	    	padre.elCatalogoGenero0.parentNodeId = 0;
	    	padre.elCatalogoGenero0.cargarNodos();
	    	padre.marcarCamino(constantsAdl("TIPO_GENERO"));
	    });
	 
	 	// buscando aplicaciones	
	 	padre.elCatalogoAplicacion0.init();	
	    Ext.get('aplicaciones').on('click', function(){
	    	padre.elCatalogoAplicacion0.parentNodeId = 0;
	    	padre.elCatalogoAplicacion0.cargarNodos();
	    	padre.marcarCamino(constantsAdl("TIPO_APLICACION"));
	    });	 
		
			
	 	// buscando caracteristicas
	 	padre.elCatalogoCaracteristica0.init();	
	    Ext.get('caracteristicas').on('click', function(){
	    	padre.elCatalogoCaracteristica0.cargarNodos();
	    	padre.marcarCamino(constantsAdl("TIPO_CARACTERISTICA"));
	    });
	    	
	 	// buscando instrumentos
	 	padre.elCatalogoInstrumentos0.init();
	    Ext.get('instrumentos').on('click', function(){
	    	padre.elCatalogoInstrumentos0.cargarNodos();
	    	padre.marcarCamino(constantsAdl("TIPO_INSTRUMENTO"));
	    });

		padre.elCatalogoCompositores0.init();	    	
		Ext.get('compositoresCat').on('click', function(){
	    	padre.elCatalogoCompositores0.cargarNodos();
	    	padre.marcarCamino(constantsAdl("TIPO_COMPOSITORES"));
	    });
	    
	    padre.elCatalogoInterpretes0.init();
	    Ext.get('interpretes').on('click', function(){
	    	padre.elCatalogoInterpretes0.cargarNodos();
	    	padre.marcarCamino(constantsAdl("TIPO_INTERPRETES"));
	    });

	   	padre.elCatalogoTempo0.init();
	    Ext.get('tempo').on('click', function(){
	    	padre.elCatalogoTempo0.cargarNodos();
	    	padre.marcarCamino(constantsAdl("TIPO_TEMPO"));
	    });        
	    
	   	padre.elCatalogoDuracion0.init();
	    Ext.get('duracion').on('click', function(){
	    	padre.elCatalogoDuracion0.cargarNodos();
	    	padre.marcarCamino(constantsAdl("TIPO_DURACION"));
	    	
	    });  
	    
	    
	    Ext.get('busquedaPalabra').on('click',function (){
	    	nodosEnlaces(localize("musica"),"../portal/musica-royalty-free-libre-de-derechos.adl",localize("buscar"),"javascript:void(0);");
	    	componenteBusqueda('composicionBusqueda',1,0,tabPadre,-1,Ext.get("textoBusquedaPalabra").dom.value);
	    })
	}	
	
	/**
	 *
	 */
	this.marcarCamino = function(tipoBusqueda){
		tabPadre.actualizaCamino(tipoBusqueda);
	}
}

