/*
*	Version 1.0 con comentarios (para mi amigo Joaquín)
*/


jQuery(function(){	
	
		$("body").addClass("jsactive");
		// LOGO SUBTITULO ---------------------------------------------------------------------------------
		$("#cabecera .logo").bind("mouseenter", function() {
			$("#cabecera .logo .subtitulo").animate({ marginTop: -20 }, 1200,"easeOutElastic");
		}).bind("mouseleave", function() {
			$("#cabecera .logo .subtitulo").animate({ marginTop: 4 },800,"easeInExpo");
		});
		
		$("#cabecera li.current img").css("opacity", 0.3 );
		
		// MENU FONDO ---------------------------------------------------------------------------------
		var menuLi = $('#cabecera .menu li');
		var menuA = $("#cabecera .menu li a");
		
		menuA.attr("title","");
		
		menuLi.css({backgroundPosition: '-135px 0px'});
		menuA.hover(
		 function() {
		 	$(this).parent().animate({ backgroundPosition: '(0px 0px)' },{queue:false, easing:"easeOutExpo", duration:1000});
		 },
		 function() {
		 	$(this).parent().animate({ backgroundPosition: '(-135px 0px)' },{queue:false, easing:"easeOutExpo", duration:1000});
		 }
		);
		// Direccion y gmap rollOver ---------------------------------------------------------------------------------
		$("#cabecera .direccion a,#cabecera .gmap a").hover(
		 function() {
		 	$("#cabecera .direccion a,#cabecera .gmap a").addClass("over");
		 },
		 function() {
		 	$("#cabecera .direccion a,#cabecera .gmap a").removeClass("over");
		 }
		);
		
		// RESIZE & TAMAÑO VENTANA ---------------------------------------------------------------------------------
		function initWindowSize() {
			// if (!$("body#admin").length) {
				var windowHeight = $(window).height();
				var cabeceraHeight = $("#cabecera").height();
				//$("#cabecera").height(cabeceraHeight);
				if (windowHeight < cabeceraHeight+50) {
					$("#cabecera .logo").animate({ height: 130 },700, "easeOutExpo" );
					$("#cabecera h1 a").animate({ height: 130 },700, "easeOutExpo" );
				} else {
					$("#cabecera .logo").animate({ height: 200 },700, "easeOutExpo" );
					$("#cabecera h1 a").animate({ height: 200 },700, "easeOutExpo" );
				}
			//}
		}
		$(window).resize(function(){
		  initWindowSize();
		});
		initWindowSize();
		
		
		//// MENU MOSTRAR/ESCONDER ---------------------------------------------------------------------------------
		var menuUl = $("#cabecera .menu ul, #cabecera .admin_menu ul");
		var botanicoMenu = "";
		botanicoMenu = $.cookie('botanico_menu');
		//
		////console.log("botanicoMenu pre: "+botanicoMenu);
		if (botanicoMenu == null || botanicoMenu == undefined) {
		  $.cookie('botanico_menu', 'on', { path: '/', expires: 7 });
		  botanicoMenu = "on";
		}
		//
		//
		//
		var actualOpacity = function() {
		  var op = 0;
		  if (menuUl.hasClass("off")) {
		  	$.cookie('botanico_menu', 'off', { path: '/', expires: 14 });
		  } else {
		  	$.cookie('botanico_menu', 'on', { path: '/', expires: 14 });
		  	op=1;
		  }
		  return op;
		};
		//
		if (botanicoMenu == "off") {
		  $("#menu-showhide").addClass("onoff");
		  menuUl.addClass("off");
		}
		
		$("#menu-showhide").click(function(){
		  $(this).toggleClass("onoff");
		  //menuFade();
		  menuUl.toggleClass("off").animate({ opacity: actualOpacity() },2000, "easeOutExpo" );
		});
		$("#cabecera").bind("mouseenter", function(){
		  if (menuUl.hasClass("off")) {
		  	menuUl.css("opacity", 1);
		  }
		});
		$("#cabecera").bind("mouseleave", function(){
		  if (menuUl.hasClass("off")) {
		  	menuUl.css("opacity", 0);
		  }
		});
		
		menuLi.bind("mouseenter", function(){ $(this).addClass("on"); });
		menuLi.bind("mouseleave", function(){ $(this).removeClass("on"); });
		
		
		// CABECERA PASARELLA ---------------------------------------------------------------------------------

		var galeriaCounter = 0;
		var imagenesCabeceraPaquetes = new Array();
		var paquetesAmount;
		var intervalID;
		var isRunning;
		var paqPorCargar = 0;
		var cargarEnPaquetesDe = 4;
		
				// Play/pause---------------------------------------------------------------------------------
				var botanicoPlayPause = "";
				botanicoPlayPause = $.cookie('botanico_fotopasarela');
				
				//console.log("botanicoPlayPause pre: "+botanicoPlayPause);
				if (botanicoPlayPause == null || botanicoPlayPause == undefined) {
					$.cookie('botanico_fotopasarela', 'play', { path: '/', expires: 7 });
					botanicoPlayPause = "play";
					isRunning = true;
				}
				
				if (botanicoPlayPause == "pause") {
					$("#playpause").toggleClass("pause");
					clearInterval(intervalID);
					isRunning = false;	
				} else {
					isRunning = true;
				}
				
					
				$("#playpause").click(function() {
					$(this).toggleClass("pause");
					if(isRunning) {
						$.cookie('botanico_fotopasarela', 'pause', { path: '/', expires: 7 });
						clearInterval(intervalID);
						isRunning = false;				
					} else {
						isRunning = true;
						$.cookie('botanico_fotopasarela', 'play', { path: '/', expires: 7 });
						galeriaCabeceraSwitch();
						startIntervall();
					}
					
				});
		var galeriaCabeceraSwitch = function() {
			//console.log(galeriaCounter);
			var $active = $('.fotopanel div span.active');
		    if ( $active.length == 0 ) $active = $('.fotopanel div span:first');
			
		    var $next =  $active.next().length ? $active.next() : $('.fotopanel div span:first');
		    galeriaCounter++;

		    $active.addClass('last-active');
		    $next.css({ opacity: 0, top:0}).addClass('active').animate({ opacity: 1, top: -22 }, 1000, function() { 
		    	$active.removeClass('active last-active'); });
		    //console.log("galeriaCounter: "+galeriaCounter);
		    //console.log("paqPorCargar: "+paqPorCargar);
		    if (galeriaCounter == ((cargarEnPaquetesDe*paqPorCargar)-2) && paqPorCargar < paquetesAmount) {
		    	//console.log("nuevo paquete");
		    	//galeriaCounter = 0;
		    	cargaAleatEnPaq();
		    }
		}
		
	
		var startIntervall = function() {
			if (isRunning){
				intervalID = window.setInterval(galeriaCabeceraSwitch, 5000);
			}
		}
		
		var startIntervallOnlyOnce =  true;
		var cargaAleatEnPaq = function() {
			//console.log("paqPorCargar: "+paqPorCargar);
			var checkIfSpan = $("#cabecera .fotopanel div span").length;
			//console.log("checkIfSpan: "+checkIfSpan);
			//console.log("imagenesCabeceraPaquetes[paqPorCargar].length: "+imagenesCabeceraPaquetes[paqPorCargar].length);
			for(var i=0; i < imagenesCabeceraPaquetes[paqPorCargar].length; i++) {
				if (i==0 && checkIfSpan==0 ) {
					$("#cabecera .fotopanel div").append("<span class='active'></span>");
				} else {
					$("#cabecera .fotopanel div").append("<span></span>");
				}
				//console.log("imagenesCabeceraPaquetes[paqPorCargar][i]: "+imagenesCabeceraPaquetes[paqPorCargar][i]);
				$("#cabecera .fotopanel div span:last").loadImage({
					 src: imagenesCabeceraPaquetes[paqPorCargar][i],
					 bulk: imagenesCabeceraPaquetes[paqPorCargar].length,
					 onLoadFinish : function() {
					 	//console.log("loaded");
					 	$("#cabecera .fotopanel div").addClass("activate");
					 	if (startIntervallOnlyOnce) {
					 		startIntervall();
					 		startIntervallOnlyOnce = false;
					 	}
					 }
				 });
			}
			paqPorCargar++;
		}
		function randOrd(){
			return (Math.round(Math.random())-0.5); 
		}		 
		var galeriaCabeceraInit = function() {
			
			// Preprocesado 1: preferentes
			// para evitar multiples <p> del editor extreamos todas las imágenes y las copiamos a un duevo div.fotowrapper
			$("#cabecera .fotopanel div").after("<div class='fotowrapper'></div>");
			var hayPreferentes = false;
			if ( $("#cabecera .fotopanel div img").length > 0 ) {
				hayPreferentes = true;
			}
	
			if ( hayPreferentes ) {
				$("#cabecera .fotopanel div img").each(function(){
					$(".fotopanel div.fotowrapper").append($(this));
				});
			}	
			// Borramos antiguo div
			$("#cabecera .fotopanel div").eq(0).remove();
			// empezamos a crear siempre un span antes de cargar la imagen dentro del span con el resultado de que las imagenes se cargan en el mismo orden en que les ordenamos cargarse. 
			// Si introducíamos directamente las imágenes sucedía de que las imágenes preferentes por estar ya cargadas desde el inicio se andelantaban en cargar e introducirce
			// y aunque el orden de carga estuviese bien finalmente sucedía de que preferentes iguales estuvíesen de forma consecutiva.
			if ($("#cabecera .fotopanel div img").length != 0 ){
				$("#cabecera .fotopanel div img").wrap("<span></span>");
				// Declaramos la primera imagen como active para que comience todo por esta (preferente)
				$("#cabecera .fotopanel div span").eq(0).addClass("active");
			}
			
				
			//$("#cabecera .fotopanel div img:last").addClass("ultima-preferente");
			
			// Preprocesado 2: preferentes
			// con esta clase creamos al orden basado en z-index y no por float (default en styles.css)
			//$("#cabecera .fotopanel div").addClass("activate");
			var imgPrefHref = new Array();
			// cojemos las urls de las imágenes preferentes para introducirlas en el Array de las aleatorias
			$("#cabecera .fotopanel div img").each(function(i) {
				imgPrefHref[i] = $(this).attr("src");
			});
			
			// Preprocesado 3: preferentes a aleatorias
			// introducimos unas urls más de las fotos preferentes considerando la logitud de imagenes de Cabecera
			
			var proportionalPushItems = Math.round(imagenesCabecera.length/frecuenciaFotoPreferente);
			if (imgPrefHref.length > 0) {
				for (var i=0; i<proportionalPushItems; i++) {
					imagenesCabecera = imagenesCabecera.concat(imgPrefHref);
				}
				//console.log("imgPrefHref: "+imgPrefHref);
			}
			
			
			
			// Preprocesado 4: aleatorias
			// ahora mezclamos las aleatorias con las nuevas preferentes introducidas en el paquete de aleatorias

			imagenesCabecera.sort(randOrd);
			//console.log("imagenesCabecera"+imagenesCabecera);
			// chequeamos que entre el nuevo set de aleatorias no haya dos consecutivas iguales (de las preferentes repetidas) y las quitamos del array
			var imagenAnterior;
			if ( hayPreferentes ) {
				for (var i=0; i<= imagenesCabecera.length ; i++) {
						//console.log("i: "+i);
					if (imagenAnterior == imagenesCabecera[i]) {
						//console.log(imagenesCabecera);
						//console.log(i+": imagenesCabecera: "+imagenesCabecera);
						var removed = imagenesCabecera.splice(i,1);
						//console.log("removed: "+removed);
						// Empezamos otra vez desde 0 para a	segurar que al quitar un item no se junten otras dos iguales
						i = 0;
					}
					imagenAnterior = imagenesCabecera[i];
				}
			}
			// Preprocesado 5: preferentes & aleatorias
			// Si la primera foto del set de las aleatoriasla es igual que la última de las preferentes, fuera.
			var ultimaImagenPref = $("#cabecera .fotopanel div img:last").attr("src");
			var primeraImagenAleat = imagenesCabecera[0];
			
			if ( ultimaImagenPref == primeraImagenAleat) {
				//console.log("removed por repetirse al principio: "+primeraImagenAleat);
				imagenesCabecera.splice(0,1);
			}
			// y para rematar: si la última de las aleatorias es igual que la primera de las preferentes… que en paz descanse!
			var primeraImagenPref = $("#cabecera .fotopanel div img:first").attr("src");
			var ultimaImagenAleat = imagenesCabecera[imagenesCabecera.length-1];
			//console.log("primeraImagenPref: "+primeraImagenPref);
			//console.log("ultimaImagenAleat: "+ultimaImagenAleat);
			if ( primeraImagenPref == ultimaImagenAleat) {
				//console.log("removed por repetirse al final: "+ultimaImagenAleat);
				imagenesCabecera.splice(imagenesCabecera[imagenesCabecera.length-1],1);
			}
			//console.log("imagenesCabecera"+imagenesCabecera);
			// Preprocesado 6: 
			// Hacemos paquetes de 6 para disminur la carga innecesaria del servidor y mejorar el fluido de las fotos en los “descansos” de carga.

			if (imagenesCabecera.length > cargarEnPaquetesDe) {
				paquetesAmount = Math.ceil(imagenesCabecera.length/cargarEnPaquetesDe);
				//console.log("paquetesAmount: "+paquetesAmount);
				
				for (var i=0; i< paquetesAmount; i++ ) {
					imagenesCabeceraPaquetes[i] = new Array();
					for (var j=1; j <= cargarEnPaquetesDe; j++ ) {
						//
						if (imagenesCabecera[ ((i*cargarEnPaquetesDe)+j)-1 ] != undefined ) {
							//console.log( ((i*cargarEnPaquetesDe)+j)-1 );
							imagenesCabeceraPaquetes[i][j-1] =  imagenesCabecera[((i*cargarEnPaquetesDe)+j)-1 ];
						}
					}
				}
			}
			// Cargamos el 1º paquete de aleatorias
			cargaAleatEnPaq();						
		}
		
		$(window).load(function() {
			if (imagenesCabecera[0] != "none" ) galeriaCabeceraInit();
		});
			

		// Cabecera Texto rotativo ---------------------------------------------------------------------------------
		var rotativoSwitch = function() {
			var $active = $('#cabecera .texto-rotativo div.active');
		    if ( $active.length == 0 ) $active = $('#cabecera .texto-rotativo div:first');
		    var $next =  $active.next().length ? $active.next() : $('#cabecera .texto-rotativo div:first');
		    $active.addClass('last-active').animate({ top: -25, opacity:0 }, 1500, "easeOutElastic");
		    $next.css({ top:25, opacity:1 })
		    .addClass('active')
		    .animate({ top: 0 }, 1500, "easeOutElastic", function() {
		    	$active.removeClass('active last-active');
		    });
		}
		
		var rotativoInit = function() {
			var textoRotativo = $("#cabecera .texto-rotativo");
			textoRotativo.html("");
			var rotativoArr = new Array();
			rotativoArr = rotativoString.split(",");
			rotativoArr.sort(randOrd);
			for (var i=0; i< rotativoArr.length; i++) {
				if (i==0) textoRotativo.append("<div class='active'>"+rotativoArr[i]+"</div>");
				else textoRotativo.append("<div>"+rotativoArr[i]+"</div>");
			}
			
			intervalIDrotativo = window.setInterval(rotativoSwitch, 4500);
		}
		
		rotativoInit();
		
		// EXPOSICIONES LATERAL ROLLOVER ---------------------------------------------------------------------------------
		$("#lateral .exposicion li").hover(
			function(){
				$(this).addClass("hover").find("div img").animate({top: -14}, 700,"easeOutExpo");
			},
			function(){
				$(this).removeClass("hover").find("div img").animate({top: 0}, 700, "easeOutExpo");
			});
		
		// GRUPOS PDF REPOSITION
		 
		$("#contenido .entrada a").each(function() {
			var contenidoLinksHref = $(this).attr("href");
			var contenidoLinkPDFSearch = contenidoLinksHref.search(".pdf");
			if (contenidoLinkPDFSearch != -1) {
				$(this).parent("p").remove();
				$("#contenido h2").append('<span class="pdf"><a href="'+contenidoLinksHref+'">[PDF]</a></span>')
			} 
		});
		
		// Print test
		$(".imprimir a").click(function(){
			window.print();
		});
			
});
