/*
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ---- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
   AHDSS - Temas de paginas.
   Namespace org.mendezmende.general
   version:  d014-m04-a07
//  -- -- -- -- -- -- -- -- --
//  Mauricio F. Tolezano (www.acuataller.com)
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ---- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
// 
//
*/


org.mendezmende.general.TemasAHDSS = {
	
	activo 				: false,
	precargaImagen		: false,
	
	imagen1				: { imagen: false, contenedor:false, animacion:false },
	imagen2				: { imagen: false, contenedor:false, animacion:false },
	
	dirImagenes1 		: '/_img/general/interfaz/temas/contenidos/seccion1/',
	dirImagenes2		: '/_img/general/interfaz/temas/contenidos/seccion2/',
		
	preferencias		: { cookie: 'AHDSS_tema' },
	
	secuenciaImagenes	: null, // Objeto SecuenciaImagenes
	secuenciaTemas		: [],
	
	temas 		: 	{
						quienes_somos 	: {	
											quienes_somos 			: 'pergaminio-1.jpg'		,
											historia_archivo 		: 'librero-1.jpg'			,
											areas_trabajo 			: 'pergaminio-6.jpg'		,
											localizacion 			: 'edificio-1.jpg'			,
											mapa_localizacion 		: 'registros-2.jpg'			,
											formulario_contacto 	: 'librero-4.jpg'			,
											formulario_contacto_enviado : 'librero-4.jpg'			
										  },
						servicios 		: { 
											inicio_servicios 		: 'sala-1.jpg'				,
											sala_consulta 			: 'microfilm-1.jpg'			,
											biblioteca 				: 'librero-3.jpg'			,
											reprografia 			: 'libros-antiguos-4.jpg'	,
											divulgacion 			: 'sala-2.jpg'				,
											actividades 			: 'sala-5.jpg'
										  },
						fondos 			: { 
											fondos 					: 'deposito-2.jpg'			,
											organizacion 			: 'deposito-1.jpg'			,
											guias 					: 'libros-antiguos-5.jpg'	,
											fondos_parroquiales 	: 'pergaminio-3.jpg'		,
											fondos_no_parroquiales 	: 'registros-1.jpg'			,
											parroguias 				: 'pergaminio-2.jpg'		,
											jurisdiccion_episcopal 	: 'registros-3.jpg'
										  },				  
						// Para paginas unicas	(no contenidas en una seccion)			  	
						proyectos 		: {
											proyectos 				: 'pergaminio-7.jpg'		,
											a 						: 'libros-antiguos-1.jpg'	,
											b 						: 'registros-4.jpg'			,
											c 						: 'librero-2.jpg'			,
											d 						: 'sala-3.jpg'				,
											e 						: 'microfilm-2.jpg'
										  },
						mapa_web 		: {
											mapa_web 				: 'pergaminio-4.jpg'		,
											a 						: 'libros-antiguos-1.jpg'	,
											b 						: 'registros-4.jpg'			,
											c 						: 'librero-2.jpg'			,
											d 						: 'sala-3.jpg'				,
											e 						: 'microfilm-2.jpg'
										  },
						enlaces 		: {
											enlaces 				: 'libros-antiguos-3.jpg'	,
											a 						: 'libros-antiguos-1.jpg'	,
											b 						: 'registros-4.jpg'			,
											c 						: 'librero-2.jpg'			,
											d 						: 'sala-3.jpg'				,
											e 						: 'microfilm-2.jpg'
											},
						normativas 		: {
											normativa_funcionamiento: 'sala-3.jpg'				,
											normativa_indizado 		: 'registros-2.jpg'			,
											normativa_reprografia 	: 'registros-4.jpg'			,
											normativa_prestamo 		: 'librero-2.jpg'
											}
										  	  
					},
	
	

	
	
	iniciar : function() 
	{	 				
		if(	!document.getElementById
		   	||
			!document.createElement
		   ) return false;
		
		// Comprobando que la pagina tenga un tema asignado.
		if ( !this.temas[ this.getIdSeccion() ][ this.getIdpagina() ] ) return;

		// Este fondo esta "sobre" la animaccion, hay que quitarlo para que se pueda ver la aniamcion.
		document.getElementById('cabecera').style.backgroundImage = 'none';
		document.getElementById('cabecera').style.backgroundColor = 'transparent';
		
		this.crearHTML();
		this.animar();
	},
	
	
	animar : function() 
	{	 				
		var urlImagenes = this.prepararSecuencia();	
		
		var primerTema = this.secuenciaTemas[0];
		this.setTema( this.temas[primerTema.seccion][primerTema.id] );			
			
		var preferencias1 = { rondas:1, vista : { vistaCambioDeImagen : this.vistaCambioDeImagen1, scope : this } };		
		this.secuenciaImagenes = new com.acuataller.ui.SecuenciaImagenes( this.imagen1.imagen.id, 7000, urlImagenes[0], preferencias1);		

		var preferencias2 = { rondas:1, vista : { vistaCambioDeImagen : this.vistaCambioDeImagen2, scope : this } };		
		new com.acuataller.ui.SecuenciaImagenes( this.imagen2.imagen.id, 7000, urlImagenes[1], preferencias2 );		
	},
	

	vistaCambioDeImagen1 : function() 
	{			
		this.imagen1.animacion = new Animator({	duration: 3000,
									   		onComplete: this.finalTransicionImagen1()
										});		
		this.imagen1.animacion.addSubject(
			new CSSStyleSubject(this.imagen1.imagen , 'opacity: 0.0;','opacity: 0.99;')
			);				
		this.imagen1.animacion.seekTo(1);	
		this.imagen1.imagen.style.display='block';
		
		// Guardando el nuevo tema para mostrarlo como el inicial cuando se cambie de pagina.
		var temaActual = this.secuenciaTemas[ this.secuenciaImagenes.getIndiceSiguiente() ];
		if(temaActual) 
			this.guardarTema( temaActual.id, temaActual.seccion );
	},	
	
	
	finalTransicionImagen1 : function() 
	{			
		this.imagen1.contenedor.style.backgroundImage  = "url('"+ this.imagen1.imagen.src +"')";
		this.imagen1.contenedor.style.backgroundRepeat = 'no-repeat';
		this.imagen1.imagen.style.display='none';
	},
	
	
	
	vistaCambioDeImagen2 : function() 
	{	
		this.imagen2.animacion = new Animator({	duration: 3000,
									   		onComplete: this.finalTransicionImagen2()
										});			
		this.imagen2.animacion.addSubject(
			new CSSStyleSubject(this.imagen2.imagen , 'opacity: 0.0;','opacity: 0.99;')
			);				
		this.imagen2.animacion.seekTo(1);	
		this.imagen2.imagen.style.display='block';
	},	
	
	finalTransicionImagen2 : function() 
	{			
		this.imagen2.contenedor.style.backgroundImage  = "url('"+ this.imagen2.imagen.src +"')";
		this.imagen2.contenedor.style.backgroundRepeat = 'no-repeat';
		this.imagen2.imagen.style.display='none';
	},
	
	
	
	prepararSecuencia : function() 
	{							
		var temasAleatorios  	= [];	
		var secuenciaTemas  	= [];			
		
		var idPaginaActiva  	= this.getIdpagina();
		var idSeccion 			= this.getIdSeccion();
		var ultimaPagina 		= this.getUltimaPagina();
		
		
		// Si no se refresca la misma pagina.
		if( ultimaPagina && idPaginaActiva != ultimaPagina.idPagina) 
		{						
			// Temas aleatorios tomados de los temas correspondientes a la seccion a la que pertenece la pagina activa.
			for ( idPag in this.temas[idSeccion] ) 
			{
				// Se exluye la pagina activa y la ultima.
				if( idPag!=idPaginaActiva && idPag!=ultimaPagina.idPagina ) 
				{
					temasAleatorios.push( {id:idPag, seccion:idSeccion} );
				}
			}	
			// Orden aleatorio
			var randOrd = function(){return (Math.round(Math.random())-0.5); }	
			temasAleatorios.sort(randOrd);		
		}
		
		// Maximo de temas aleatorios en la secuencia: (1).
		secuenciaTemas = temasAleatorios.slice(0,1);


		
		// Primer tema.
		var primerTema;
		if(ultimaPagina)
		{	// La secuancia comienza con el tema correspondiente a la pagina anterior.	
			primerTema = { id: ultimaPagina.idPagina, seccion: ultimaPagina.idSeccion };
			
				
		}else if (temasAleatorios.length>0){
			// Si no existe pagina anterior, se uiliza un tema aleatorio.
			primerTema = temasAleatorios[temasAleatorios.length-1];
		}
		
		if(primerTema) 
			secuenciaTemas.unshift( primerTema );

		
		// Ultimo tema el correspondiente a la pagina activa.
		secuenciaTemas.push( {id:idPaginaActiva, seccion:idSeccion} );
		
		
		// URLs de imagenes.				
		var urlImagenes1 = [];
		var urlImagenes2 = [];
		for(i=0; tema=secuenciaTemas[i]; i++)
		{			
			urlImagenes1.push( this.dirImagenes1 + this.temas[tema.seccion][tema.id] );
			urlImagenes2.push( this.dirImagenes2 + this.temas[tema.seccion][tema.id] );	
		}			

		this.secuenciaTemas = secuenciaTemas;
		
		return [urlImagenes1, urlImagenes2];
	},
	
	
	
	setTema : function( imagen ) 
	{
		document.getElementById('contenidos'  ).style.backgroundImage = "url('"+ this.dirImagenes1 + imagen +"')";
		document.getElementById('animacion-2' ).style.backgroundImage = "url('"+ this.dirImagenes2 + imagen +"')";
	},
	
	
	
	getIdpagina : function() 
	{
		return this.formatoID( document.getElementsByTagName('body')[0].id );
	},
	
	
	
	getIdSeccion : function() 
	{
		return this.formatoID( document.getElementsByTagName('body')[0].className );
	},
	
	
	formatoID : function(id) 
	{
		while( id.indexOf('-')!=-1 ){
			id = id.replace(/-/,'_');
		}		
		return id;
	},
	
	
	crearHTML : function() 
	{	 
		var u = new com.acuataller.utiles.Utiles();
		
		var animaciones = u.createElement('div'); // Contenedor para IE
		
		// Imagen 1
		this.imagen1.contenedor 	= u.createElement('div');
		this.imagen1.contenedor.id  = 'animacion-1';
		this.imagen1.imagen 	 	= u.createElement('img');
		this.imagen1.imagen.id 		= 'animacion-1-imagen';
		
		this.imagen1.contenedor.appendChild( this.imagen1.imagen);
		animaciones.appendChild( this.imagen1.contenedor );


		// Imagen 2
		this.imagen2.contenedor 	= u.createElement('div');
		this.imagen2.contenedor.id  = 'animacion-2';
		this.imagen2.imagen 	 	= u.createElement('img');
		this.imagen2.imagen.id 		= 'animacion-2-imagen';
		
		this.imagen2.contenedor.appendChild( this.imagen2.imagen);		
		animaciones.appendChild( this.imagen2.contenedor );
		
		document.getElementById('contenidos').appendChild(animaciones);	
	
	},
	
	
	getUltimaPagina : function () 
	{
		var tema = this.getCookie();
		if (tema)
		{
			var sep = tema.indexOf(',');
			return { 	idPagina  : tema.substring(0, sep) ,
						idSeccion : tema.substring(sep+1,tema.length)
					};
		}else{
			// Si no existe pagina guardada, se guarda la actual.
			this.guardarTema( this.getIdpagina(), this.getIdSeccion() );
			return null;
		}
	},
	
	
	guardarTema : function( idPagina, idSeccion ) 
	{
		this.setCookie( [ idPagina,idSeccion ].toString() );
	},
	
	
	setCookie : function (value) 
	{
		document.cookie = this.preferencias.cookie +'='+value+'; path=/';
	},


	getCookie : function () 
	{
		var nameEQ = this.preferencias.cookie + '=';
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	}

}

ELO.functionsToCallOnload.push('org.mendezmende.general.TemasAHDSS.iniciar()');

