/**
* Funciones para la web Clemente Romo
* By Jon Barragan
* Version 1.0
* www.zorraquino.com
**/


// Log de funciones para FireBug
jQuery.fn.log = function (msg) {
	console.log("%s: %o", msg, this);
	return this;
	// Ejemplo: $(this).find('li.source> input:checkbox').log("sources to uncheck").removeAttr("checked");
};

/* CONFRONTA CON EL DESPLAZAMIENTO DE LA GALERIA
// Precarga de Imágenes de la Galería ----------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------
var i = 0;
// Internet Explorer Fix
var int=0;
(function($){	
	$.fn.imagePreLoader = function(options) {
		// Ocultamos todas las imágenes
		$(options.ID+' img').hide();//hide all the images on the page
		
		// El evento load sólo se disparará cuando la página o el documento esté completamente cargada
		$(window).bind("load", function() {
			// Especificamos el intervalo en milisegundos entre la carga de una imagen y otra
			var int = setInterval("$('"+options.ID+"').doThis('"+options.ID+"',"+i+")",0);
		});
		return this; 		
	};	
	$.fn.doThis = function(options,i) {
		var images = $(options.ID+' img').length;
		// Cuando alcanza la última imagen acaba el bucle
		if (i >= images) {
			clearInterval(int);
		}
		// Muestra la imagen una a una
		$('img:hidden').eq(0).fadeIn(500);
		i++;
		return this; 		
	};
})(jQuery);
*/
/*
$(function () {
	$('img').hide();//hide all the images on the page
});

var i = 0;//initialize
var int=0;//Internet Explorer Fix
$(window).bind("load", function() {//The load event will only fire if the entire page or document is fully loaded
	var int = setInterval("doThis(i)",0);//500 is the fade in speed in milliseconds
});

function doThis() {
	var images = $('img').length;//count the number of images on the page
	if (i >= images) {// Loop the images
		clearInterval(int);//When it reaches the last image the loop ends
	}
	$('img:hidden').eq(0).fadeIn(500);//fades in the hidden images one by one
	i++;//add 1 to the count
}
*/



// Iluminación de las Obras ---------------------------------------------------------------------------------------
// Ilumina los elementos de una lista dada como parámetro ---------------------------------------------------------

(function($){	
	$.fn.iluminaGaleria = function(options) {
		if(options.ID === undefined) alert('Por favor, especifique el ID de la galería.');
		var defaults = { ID: '#galeria' };
		var options = $.extend({}, defaults, options);
		$(options.ID+' li').fadeTo(0,'0.2');
		//$(options.ID+' li').css('float','left');
		$(document).ready(function() { $(options.ID).iluminaGaleriaFinal(options);	});
		return this; 		
	};
	
	$.fn.iluminaGaleriaFinal = function(options) {
	
		$(options.ID+' li').mouseenter(function() {
			$(this).stop().fadeTo('fast','1.0');
		});
		$(options.ID+' li').mouseleave(function() {
			$(this).stop().fadeTo('fast','0.2');
		});
		
		return this;
	};
})(jQuery);


// Activa el desplazamiento entre Obras en la Home ----------------------------------------------------------------
// Permite desplazamiento cuando el contenedor sea menor que el ancho total de la Galería -------------------------

var index_obra = 0;

(function($){	
	$.fn.activaGaleria = function(options) {
		if(options.ID === undefined) alert('Por favor, especifique el ID de la galería.');
		var defaults = { bgID: 'galeria' };
		var options = $.extend({}, defaults, options);
		$(document).ready(function() { $(options.ID).activaGaleriaResizer(options);	});
		$(window).bind('resize', function() { $(options.ID).activaGaleriaResizer(options); });		
		return this; 		
	};
		
	$.fn.activaGaleriaResizer = function(options) {
		// Listamos las imágenes de la Galería y calculamos el ancho de cada una
		var lista_obras = $(options.ID+' li');
		var ancho_obra = parseInt($(options.ID+' li:first').width());
		
		// Si existe al menos una imagen en la Galería
		if(lista_obras.length > 0){
			// Ancho total de la Galería y de su Contenedor
			var ancho_galeria = $(options.ID+" li").length*ancho_obra;
			var ancho_galeria_contenedor = $(options.ID).width();
			
			// Reset de los elementos creados dinámicamente
			if ($('#galeria_izq').length) $('#galeria_izq').remove();
			if ($('#galeria_der').length) $('#galeria_der').remove();
			
			// Si existe overflow
			if(ancho_galeria > ancho_galeria_contenedor){
				// Se añaden los controles para avanzar y retroceder en la Galería
				$(options.ID).append('<span id="galeria_izq"></span>');
				$(options.ID).append('<span id="galeria_der"></span>');
				$('#galeria_izq').css('height',$(options.ID+' li:first').height());
				$('#galeria_der').css('height',$(options.ID+' li:first').height());	
			}else{
				index_obra = 0;
				$(options.ID+' ul:first').stop().animate({ left: 0+"px" }, 300 );
			}
			
			if (!$.browser.msie) {
				$(options.ID+' #galeria_izq:first').fadeOut('fast');
				$(options.ID+' #galeria_der:first').fadeTo('fast','0.1');
			
				// Eventos de ratón sobre botones de desplazamiento de Galería
				$(options.ID+' #galeria_izq:first').mouseenter(function () {
					if(index_obra > 0) $(this).stop().fadeTo('fast','0.6');
				});
				$(options.ID+' #galeria_izq:first').mouseleave(function () {
					if(index_obra > 0) {
						$(this).stop().fadeTo('fast','0.1');
					}else{
						$(this).stop().fadeOut('fast');
					}
				});
				$(options.ID+' #galeria_der:first').mouseenter(function () {
					if(index_obra < lista_obras.length-1) $(this).stop().fadeTo('fast','0.6');
				});
				$(options.ID+' #galeria_der:first').mouseleave(function () {
					if(index_obra < lista_obras.length-1) {
						$(this).stop().fadeTo('fast','0.1');
					}else{
						$(this).stop().fadeOut('fast');
					}
				});
				
				$(options.ID+' #galeria_izq:first').click(function () {
					index_obra = index_obra - 3;
					$(options.ID+' #galeria_der:first').fadeTo('fast','0.1');
					var posicion = parseInt($(options.ID+' ul:first').css('left'));
					// Oculta la flecha cuando se muestra la primera obra
					if(index_obra < 1){	$(this).fadeOut('fast');	}
					//if($.browser.msie){$("#contenedor_galeria .flecha_izq:first").fadeIn("slow");}
					// Sale de la funcion si se muestra la primera Obra
					if(index_obra < 0){ index_obra = 0; return;}
					//$("#contenedor_galeria ul:first").animate({ left: ancho_contenedor*index_galeria*-1+"px" }, 300 );
					$(options.ID+' ul:first').stop().animate({ left: -(ancho_obra*index_obra)+"px" }, 300 );
				});
				$(options.ID+' #galeria_der:first').click(function () {
					if ((index_obra+3) < lista_obras.length){
						index_obra = index_obra + 3;
						$(options.ID+' #galeria_izq:first').fadeTo('fast','0.1');
						var posicion = parseInt($(options.ID+' ul:first').css('left'));
						// Oculta la flecha cuando se muestra la última obra
						if(index_obra >= lista_obras.length-1){	$(this).fadeOut('fast');	}
						//if($.browser.msie){$("#contenedor_galeria .flecha_izq:first").fadeIn("slow");}
						// Sale de la funcion si se muestra la última Obra
						if(index_obra >= lista_obras.length){ index_obra=index_obra-1; return;}
						//$("#contenedor_galeria ul:first").animate({ left: ancho_contenedor*index_galeria*-1+"px" }, 300 );
						$(options.ID+' ul:first').stop().animate({ left: -(ancho_obra*index_obra)+"px" }, 300 );
					}
				});
			}
			
			// ToDo:
			//	·Desplazamiento de varias obras
			//	·Una vez se vea la última obra desaparece el desplazamiento
			//	·Una vez desplazado, si se reescala la pantalla, reescalar el desplazamiento
			//	·Testar en Explorer
		}	
			
			
		
		
		
		
		return this;
	};
})(jQuery);



// Activa el pase Obras en el Contenido ----------------------------------------------------------------

var index_obra = 0;

(function($){	
	$.fn.galeriaObra = function(options) {
		if(options.ID === undefined) alert('Por favor, especifique el ID de la galería.');
		var defaults = { bgID: 'galeria' };
		var options = $.extend({}, defaults, options);
		$(document).ready(function() { $(options.ID).activaGaleriaObra(options);	});
		//$(window).bind('resize', function() { $(options.ID).activaGaleriaObra(options); });		
		return this; 		
	};
		
	$.fn.activaGaleriaObra = function(options) {
		// Listamos las imágenes de la Galería y calculamos el ancho de cada una
		var lista_obras = $(options.ID+' li');
		//var ancho_obra = parseInt($(options.ID+' li:first').width());
		
		// Si existe al menos una imagen en la Galería
		if(lista_obras.length > 0){
			lista_obras.css( {'position': 'absolute', 'z-index': '0'} ).hide();
			lista_obras.first().css( {'z-index': '1'} ).show();
			
			// Creamos el paginable de las imágenes
			var paginacion_gal = '';
			for (i=1;i<=lista_obras.length;i++){
				paginacion_gal = paginacion_gal+'<a onclick="showImagen('+i+')"><span id="imagen'+i+'" class="enlace">0'+i+'</span></a><span class="spacer">&nbsp;</span>';
			}
			$('.paginacion_gal').html(paginacion_gal);
			$('.paginacion_gal .enlace:first').addClass('activo');
			
			
			// ToDo:
		}	
		
		
		return this;
	};
})(jQuery);


function showImagen(n_imagen){
	if(!$('#imagen'+n_imagen).hasClass('activo')) {
		// Listamos las imágenes
		var lista_obras = $('#galeria li');
		// Sólo si existe más de una imagen existen más de una imagen
		if (lista_obras.length > 1) {
			// Comprobaciones
			if(n_imagen > lista_obras.length){ n_imagen = 1; }
			if(n_imagen < 0){ n_imagen = lista_obras.length - 1; }
			// Ocultamos toda la galería
			lista_obras.stop().stop().css('z-index',0).removeClass('activo').hide();
			// Mostramos la imagen marcada
			$('#bgimg'+n_imagen).parent().stop().css('z-index',1).addClass('activo').fadeTo('300',1.0);
			// Marcamos la posición en el Paginable
			$(".paginacion_gal .enlace").removeClass('activo');
			var pag = n_imagen-1;
			$(".paginacion_gal span.enlace:eq("+pag+")").addClass('activo');
			if (($('.col2_1b').width()-$('#galeria').width()) < 300) {
				if ($('#galeria').width() < parseInt($('#bgimg'+n_imagen).css('width'))) {
					//if ($('.col2_1b').width()-$('#galeria').width() >= -230){
						$(".paginacion_gal").stop().animate({ right: $('.col2_1b').width()-$('#galeria').width()+"px" }, 300 );
						//$('.paginacion_gal').html($('.col2_1b').width()-$('#galeria').width()+"-1");
					//}else{
						//$(".paginacion_gal").stop().animate({ right: "-230px" }, 300 );
					//}
					
				}else{
					if ($('.col2_1b').width()-parseInt($('#bgimg'+n_imagen).css('width')) >= 300){
						$(".paginacion_gal").stop().animate({ right: "300px" }, 300 );
						//$('.paginacion_gal').html("300-2");
					}else if ($('.col2_1b').width()-parseInt($('#bgimg'+n_imagen).css('width')) >= -230){
						$(".paginacion_gal").stop().animate({ right: $('.col2_1b').width()-parseInt($('#bgimg'+n_imagen).css('width'))+"px" }, 300 );
						//$('.paginacion_gal').html($('.col2_1b').width()-parseInt($('#bgimg'+n_imagen).css('width'))+"-3");
					}else{
						$(".paginacion_gal").stop().animate({ right: $('.col2_1b').width()-parseInt($('#bgimg'+n_imagen).css('width'))+"px" }, 300 );
						//$(".paginacion_gal").stop().animate({ right: "-230px" }, 300 );
						//$('.paginacion_gal').html("-230-4");
					}
				}
				//$('.paginacion_gal').html($('.paginacion_gal').css('right'));

			}
		}
	}	
}

// Al pulsar ESC se cierra el modal
$(document).keyup(function(e) {
	if(e.keyCode == 27) {
		closeWindow();  
	}
});

// Función que cierra el modal
function closeWindow(){
	//$('.msg').remove();
	$('#mask').fadeTo("fast",0,function() {
		$('#mask').hide();
	});
	$('.window').hide();
}

$(document).ready(function(){
	// Lazyload			
	/*$('#galeria img').lazyload({
		threshold : 200,
		effect: "fadeIn"
	});*/
	

	
	// Redimensionado de las Obras - FullScreenr
	//var FullscreenrOptions = { width: 120, height: 870, minwidth: 40, minheight: 290 };
	/*var i = 1;
	$('#galeria li').each(function(index) {
		var bgID = '#bgimg'+i;
		//jQuery.fn.fullscreenr(FullscreenrOptions,bgID);
		jQuery.fn.fullscreenr(bgID);
		i++;
	});*/
	
	// MODALS --------------------------------------
	// Al hacer click en un enlace cuyo name = modal
	$('a[name=modal]').click(function(e) {
		//alert("Hola");
		// Ocultamos todos los modals menos sobre el que hacemos click
		$('#boxes div[class=window][id!='+$(this).attr('href').slice(1)+']').hide();
		// Prevenimos los enlaces de fondo
		e.preventDefault();
		// Obtenemos el destino del enlace pulsado
		var id = $(this).attr('href');
		
		// Alto y Ancho de la pantalla
		var maskHeight = $(document).height();
		var maskWidth = $(window).width();
		
		// Tapamos la pantalla con la máscara
		$('#mask').css({'width':maskWidth,'height':maskHeight});
		
		// Mostramos la máscara
		$('#mask').fadeTo("fast",0.8);
		
		// Alto y Ancho de la ventana
		var winH = $(window).height();
		var winW = $(window).width();
		
		// Ajustamos el Modal al centro
		//$(id).css('top',  winH/2-$(id).height()/2);  
		//$(id).css('left', winW/2-$(id).width()/2);  
		
		// Mostramos el Modal
		$(id).fadeTo("fast",1.0);
	});
	
	// Si pulsamos en Cerrar se cierra el Modal
	$('.window .form_close').click(function (e) {
		// Cancelamos los enlaces de fondo
		e.preventDefault();
		closeWindow();
	});
	
	// Si pulsamos sobre la máscara se cierra el Modal
	$('#mask').click(function () {
		closeWindow();
	});
	
	
	// FORMULARIOS
				
	// Fade the label back when a field gains focus		
	$('.input-text').focus(function() {
		if ($(this).val() == ''){
			$(this).prev().removeClass('hastext').removeClass('overlay').addClass('focus');
		}
	});
	
	// Fade the label back when a field gains focus		
	$('.input-text').blur(function() {
		if ($(this).val() == '' || $(this).val() == ' '){
			$(this).prev().removeClass('hastext').removeClass('focus').addClass('overlay');
		}
	});

	// Fade the label back when the user starts to type
	$('.input-text').keypress(function(e) {
		//var code = (e.keyCode ? e.keyCode : e.which);
		var code = (e.charCode ? e.charCode : e.keyCode);
		//alert("+"+$(this).val()+"+");
		if (($(this).val().length =='1') && (code === 8 || code === 46)) {
			$(this).prev().removeClass('hastext').removeClass('overlay').addClass('focus');
		}else{
			$(this).prev().removeClass('overlay').removeClass('focus').addClass('hastext');
		}
	});
		
});




