/*
 * Punto de entrada a la aplicacion
 * componente tabsPrincipal
 */
Ext.onReady(function(){
	var tabPanel = new TabInfo();
	tabPanel.iniciarTabs();
	tabPanel.iniciarComponentes();
	createMenu('idiomas');
	
});

/**
 * Componente Tabs
 */
function TabInfo(){
	
	this.componenteCargado = constantsAdl("COMP_ADDLIBRARY");
    this.objNoticias = new Noticias();
    
    //Componentes del Tab
    
    /**
     * Inicia los tabs del menu
     */
    this.iniciarTabs = function (){
    	// Si está logado cambiamos el texto del tab Mi cuenta
    	var tabActivo = Ext.get('pestanaAcceso');
    	var linkActivo = Ext.get('linkPestanaAcceso');
    	
    	if (this.logado == true){
    		tabActivo.update("<div></div><span>" + localize('miCuenta') + "</span>");
    		if (linkActivo)
    			linkActivo.dom.href = '../portal/TabMiCuenta.adl';
    	} else {
    		tabActivo.update("<div></div><span>" + localize('accesoClientes') + "</span>");
    		if (linkActivo)
    			linkActivo.dom.href= '../portal/acceso-compra-online-musica-royalty-free.adl';
    	}
    	
    	// Activamos el de música
    	var tabActivo = Ext.get('pestanaAyuda');
    	tabActivo.removeClass('tabDesactivado');
    	tabActivo.addClass('tabActivado');
    	
		// parametros 
		if(tabInfoParam1!="null"){
			this.componenteCargado = tabInfoParam1;
		}
    }

    /**
     * Inicia los componenetes de la manera adecuada
     */    
    this.iniciarComponentes = function (){
    	// carga el componente inicial segun parametro
    	this.controlTabInfo(this.componenteCargado);
    	this.actualizaCamino(this.componenteCargado);    	
    	componenteInfo(this);
    	cargarComboIdiomas(); 
		this.loadCarrito();
		this.resumenCarrito();
    }
	
	/**
	 * Crea el menú ayuda
	 */
	this.loadMenuAyuda = function() {
		// Creamos el componente principal de la ayuda, el primer parámetro es el id
		// del div del menu, y el segundo el id del div donde se carga la ayuda
		this.menuAyuda = new ayudaADL('menuAyudaContent', 'contenidoAyuda');
		this.menuAyuda.init();
	}
	
	/**
	 * Carga el elemento correspondiente, por defecto se carga formatos por el ftl
	 */
	this.controlTabInfo = function(componente){
	
		var elIz = Ext.get("tabInfoColumna1_2");	
		if(elIz!=null){
			padre = this;
			var mgrColumnaIz = elIz.getUpdateManager();
			// si el componente a mostrar es carrito
			if(componente==constantsAdl("COMP_ADDLIBRARY")){
				var elAddlibrary = Ext.get("addlibrary");
				elAddlibrary.replaceClass('enlaceInfoMasAyuda','enlaceInfoMasAyudaBold');
		    	mgrColumnaIz.update({url: '../portal/AddlibraryInfo.adl',loadScripts:true});}	
			if(componente==constantsAdl("COMP_LICENCIAS")){
				var elLicencias = Ext.get("licencias");
				elLicencias.replaceClass('enlaceInfoMasAyuda','enlaceInfoMasAyudaBold');
		    	mgrColumnaIz.update({url: '../portal/LicenciasInfo.adl',callback:componenteTabsLicencias,loadScripts:true});}
			if(componente==constantsAdl("COMP_PRECIOS")){
				var elPrecios = Ext.get("precios");
				elPrecios.replaceClass('enlaceInfoMasAyuda','enlaceInfoMasAyudaBold');
		    	mgrColumnaIz.update({url: '../portal/PreciosInfo.adl',callback:componenteTabsPrecios,loadScripts:true});}	
			if(componente==constantsAdl("COMP_FORMATOS")){
				var elPrecios = Ext.get("formatos");
				elPrecios.replaceClass('enlaceInfoMasAyuda','enlaceInfoMasAyudaBold');
		    	mgrColumnaIz.update({url: '../portal/FormatosInfo.adl',loadScripts:true});			}
			if(componente==constantsAdl("COMP_PROMOCIONES")){
				var elPrecios = Ext.get("promociones");
				elPrecios.replaceClass('enlaceInfoMasAyuda','enlaceInfoMasAyudaBold');
		    	mgrColumnaIz.update({url: '../portal/PromocionesInfo.adl',loadScripts:true});	}
			if(componente==constantsAdl("COMP_NOTICIAS")){
				var elPrecios = Ext.get("noticiasenlace");
				elPrecios.replaceClass('enlaceInfoMasAyuda','enlaceInfoMasAyudaBold');
		    	mgrColumnaIz.update({url: '../portal/NoticiasInfo.adl',callback:padre.objNoticias.initGrid,loadScripts:true,scope: padre.objNoticias});
		    }
			if(componente==constantsAdl("COMP_CONTACTO")){
				var elPrecios = Ext.get("contacto");
				elPrecios.replaceClass('enlaceInfoMasAyuda','enlaceInfoMasAyudaBold');
		    	mgrColumnaIz.update({url: '../portal/ContactoInfo.adl',loadScripts:true});}
			if(componente==constantsAdl("COMP_AYUDA")){
				var elPrecios = Ext.get("ayuda");
				elPrecios.replaceClass('enlaceInfoMasAyuda','enlaceInfoMasAyudaBold');
		    	mgrColumnaIz.update({url: '../portal/AyudaInfo.adl',loadScripts:true});
		    	mgrColumnaIz.on("update", this.loadMenuAyuda);
		    }
			if(componente==constantsAdl("COMP_INF_LEGAL")){
				var elLegal= Ext.get("informacionLegal");
				elLegal.replaceClass('enlaceInfoMasAyuda','enlaceInfoMasAyudaBold');
				mgrColumnaIz.update({url: '../portal/LegalInfo.adl',callback:componenteTabsLegal,loadScripts:true});
			}
		}		
	}
	
	/**
	 *
	 */
	this.actualizaCamino = function(componente){
			
		if(componente!="null"){
			nodosEnlaces(localize("infoAyuda"),"../portal/ayuda-comprar-online-musica-royalty-free.adl",localize(infoComponentesArray(componente)),"../portal/ayuda-comprar-online-musica-royalty-free.adl?param1="+componente);
	    }	
	    else{
	    	nodoEnlace(localize("infoAyuda"),"../portal/ayuda-comprar-online-musica-royalty-free.adl");
	    }
	    
	}
	
	this.loadCarrito = function(){
		var elCarrito = Ext.get('carritoresumen');
		var padre = this;
		elCarrito.on('click',function(){
			if(padre.logado==true){
				document.location = '../portal/UsuariosMiCarrito.adl';
			}else{
				document.location = '../portal/AnonimoMiCarrito.adl';
			}
		})
	}
	
	this.resumenCarrito = function(){
		this.storeResumen = new Ext.data.JsonStore({
		    url: '../portal/json/ResumenCarrito.adl',
		    root: 'numeroObras',
		    fields:[],
		    baseParams: {}
		   	}
		);
		this.storeResumen.load();
		padre = this;
		this.storeResumen.on("load",function(){
			padre.numeroObrasMusica = this.reader.jsonData.numeroObras;
			Ext.get("numeroObrasCarrito").dom.firstChild.nodeValue = this.reader.jsonData.numeroObras;
		});
	}
}