/* Eventoclick
// Kike Valdenebro - 26.06.2008
// Redbility
*/

// Libreria basica de funciones para la dinamica de interfaz.  Hace uso de Mootools 1.11

// Variables globales
var filtroScroll = 0;  // Efecto scroll horizontal en el filtro
var filtroNum = 1;     // Numero de filtros
var filtroActual = 1;  // Filtro visible a la izquierda

var tabsAccordion = 0;
var drawersAccordion = 0;

var moveContent = 0;  // Efecto de movimiento de la capa "content"
var contentTopIni = 0;   // Propiedad "top" inicial de la capa "content"
var contentDesplazamiento = 0;  // Desplazamiento total de la capa "content" en pixels
var moveFooter = 0;   // Efecto de movimiento de la capa "footer"
var contentFooterIni = 0;   // Propiedad "top" inicial de la capa "footer"


// Inicializacion de la pagina
window.addEvent('domready', function(){
	
	// Ocultacion de elementos "hidden" (accesibilidad)
	$$('.hidden').setStyle('display','none');
	
	if($('modulofiltro')) {  // Si la pagina tiene filtro
	
		// Calcula el numero total del filtros
		var filtros = $('filtros').getElements('.filtro');
		var filtroNum = filtros.length;
		var masopciones = $$(".filtro a.masopciones");
		var selectcapas = $$(".filtro .selectcapa");
		
		masopciones.removeProperty('href');

		
		// Efecto scroll horizontal en el filtro
		filtroScroll = new Fx.Scroll('clip', {
			wait: false,
			duration: 500,
			offset: {'x': 0, 'y': 0},
			transition: Fx.Transitions.Quad.easeInOut
		});
		
		$('filtro-izq').addEvent('click', function(event) {
			event = new Event(event).stop();
			if(filtroActual>1) {
				filtroActual -= 1;
				var j = filtroActual;
				var target = toString(j);
				if (j<10) {
					target = '0'+j;
				}
				target = 'filtro'+target;
				actualizaFiltros();
				filtroScroll.toElement(target);
			}
		});
	
		$('filtro-der').addEvent('click', function(event) {
			event = new Event(event).stop();
			moverFiltroDerecha();
		});
		
		function actualizaFiltros() {
			// Cierra todos los paneles desplegables de los filtros y actualiza el estado de los botones
			selectcapas.setStyle('display','none');
			masopciones.removeClass('activo');
			if(filtroActual==1) {
				$('filtro-izq').addClass('off');
			}
			else {
				$('filtro-izq').removeClass('off');
			}
			if(filtroActual==filtroNum-3) {
				$('filtro-der').addClass('off');
			}
			else {
				$('filtro-der').removeClass('off');
			}

		}
	
		function moverFiltroDerecha() {
			if(filtroActual<filtroNum-3) {
				filtroActual += 1;
				var j = filtroActual;
				var target = toString(j);
				if (j<10) {
					target = '0'+j;
				}
				target = 'filtro'+target;
				actualizaFiltros();
				filtroScroll.toElement(target);
			}
		}
	
		masopciones.each(function(boton, i) {
			boton.addEvent('click', function(event) {
				var selectcapa = this.getNext();
				if(this.hasClass('activo')) {
					this.removeClass('activo');
					selectcapa.setStyle('display','none');

				}
				else {
					actualizaFiltros();
					this.addClass('activo');
					selectcapa.setStyle('display','block');
				}
			});
		});
		
		// Cierra todos los paneles desplegables de los filtros con cualquier clic
		$$(".filtro ul li a").addEvent('click', function(event) {
			actualizaFiltros();
		});
		
		filtroScroll.toElement('filtro01');
		actualizaFiltros();
		moverFiltroDerecha();
		
	}	// End if($('modulofiltro'))

	if($('contpestanas')) {  // Si la pagina tiene pestanas
	
		var ulpestanas = $$("#contpestanas ul.ulpestanas li");
		var pestanascontenido = $$("#contpestanas .pestanas-contenido");
		
		$('pest01').setStyle('display','block');  // Muestra el contenido de la primera pestana si es clase 'hidden'
		
		ulpestanas.each(function(pestana, i) {
			pestana.addEvent('click', function(event) {
				ulpestanas.removeClass('activo');
				this.addClass('activo');
				pestanascontenido.setStyle('display','none');
				var enlace = this.getElement('a');
				enlace.removeProperty('href');
				var idcapa = enlace.getProperty('id');
				idcapa = idcapa.substring(1);
				$(idcapa).setStyle('display', 'block');
			});
		});

	}  // End if($('contpestanas'))

	if($('tabs')) {  // Si la pagina tiene modulo "tabs"

		var ultabs = $$("#tabs .btn");
		var tabscontenido = $$("#tabs .tab");

		tabsAccordion = new Accordion('#tabs .btn', '#tabs .tab',	{
			show: -1,
			onActive: function(titulo, contenido)
			{
				titulo.addClass('on');
			},
			onBackground: function(titulo, contenido)
			{
				titulo.removeClass('on');
			}
		});
		
		ultabs.each(function(tab, i) {
			tab.addEvent('mouseover', function(event) {
				tabsAccordion.display(i);
			});
		});
		
		$('tabs').addEvent('mouseleave', function(event) {
			tabsAccordion.display.delay(3000, tabsAccordion, -1);
		});

	}  // End if($('tabs'))

	if($('drawers')) {  // Si la pagina tiene modulo "drawers"

		var botonesdrawers = $$("#drawers .btn");
		var drawerscontenido = $$("#drawers .drawer");

			drawersAccordion = new Accordion('#drawers .btn', '#drawers .drawer',	{
			onActive: function(titulo, contenido)
			{
				titulo.addClass('on');
			},
			onBackground: function(titulo, contenido)
			{
				titulo.removeClass('on');
			}
		});
		
	}  // End if($('drawers'))
	
	if($('plegarflash') && $('flash')) {  // Si la pagina tiene boton "plegarflash" y flash de cabecera
	
		contentTopIni = parseInt($('content').getStyle('top'));
		footerTopIni = parseInt($('footer').getStyle('top'));
		contentDesplazamiento = 260 + contentTopIni;

		moveContent = new Fx.Style('content', 'top', {duration: 500, transition: Fx.Transitions.Quad.easeInOut});
		moveFooter = new Fx.Style('footer', 'top', {duration: 500, transition: Fx.Transitions.Quad.easeInOut});
		
		$('plegarflash').addEvent('click', function(event) {
			if($('flash').getStyle('display') != 'none') {  // Ocultar flash y subir contenido
				plegarFlash();
			}
			else {  // Mostrar flash y bajar contenido
				var contentTop = parseInt($('content').getStyle('top'));
				var footerTop = parseInt($('footer').getStyle('top'));
				$('plegarflash').removeClass('plegado');
				$('plegarflash').addClass('desplegado');
				moveContent.start(contentTop, contentTopIni);
				moveFooter.start(footerTop, footerTopIni);
				$('flash').setStyle('display', 'block');
			}
																  
																  
		});
		
		function plegarFlash() {
			$('plegarflash').removeClass('desplegado');
			$('plegarflash').addClass('plegado');
			$('flash').setStyle('display', 'none');
			moveContent.start(contentTopIni, contentTopIni-contentDesplazamiento);
			moveFooter.start(footerTopIni, footerTopIni-contentDesplazamiento);
		}
		
		if (evExisteSeccion && evExistePlanta) {
			plegarFlash();
		}

	}  // End if($('plegarflash') && $('flashhome'))

}); 

