var flagTira = false;
$(function() {
	var animSpeed = $.browser.msie ? false : 'fast';
	$('#tiraMascara a>img').mouseover(function() {
		// reseteamos los estilos inline que pudiese tener cada uno de los span
		// pero en IE dejamos la opacidad tranquilita, so pena de que se vea el borde-negro-de-la-muerte
		var $t  =$(this),
			modelo=$t.parent().fadeTo('fast',1).next().html(),
			bocadillo;
		$('#bocadilloTira').remove();
		bocadillo=$('<div id="bocadilloTira"></div>').css({
			visibility:'hidden',
			display:'block'
		}).html(modelo).appendTo('body');
		bocadillo.css({
			top:$t.offset().top-bocadillo.height()+'px',
			left:$t.offset().left+10+'px'
		}).css({
			display:'none',
			visibility:'visible'
		}).show(animSpeed);
	}).mouseout(function(){
		$(this).parent().fadeTo('fast',0.4);
		$('#bocadilloTira').hide(animSpeed);
	}).closest('li').each(function(indice) {
		// cargaremos las imagenes a partir del valor del <input type="hidden"/>
		var $this = $(this);
		$this.click(function(evento) {
			// controlamos si es necesario o posible hacer la actuacion
			var $li    =$this.siblings(), banner={}, funcionCierre;
			if ($this.hasClass('activo') || flagTira) return false;
			flagTira = true;
			// si se ha pinchado sobre una imagen anulamos el temporizador tempBannerPrincipal
			if ('img'==evento.target.tagName.toLowerCase()) {
				tempBannerPrincipal=false;
			}
			$li.removeClass('activo');
			$this.addClass('activo');
			// preparamos la funcion para ocultar uno, mostrar el otro
			funcionCierre = function(entrada, salida) {
				salida.find('h2').fadeOut(1000,function() {
					entrada.css('z-index', parseInt(salida.css('z-index'))-1).find('h2').show();
					salida.fadeOut(1500,function(){
						entrada.addClass('activo').css('z-index','');
						salida.removeClass('activo').show();
						flagTira = false;
					});
				});
			}
			// localizamos el entrante y saliente y comprobamos si es necesario cargar la imagen
			banner.entrante=$('div.bannerPrincipal').eq(indice);
			banner.saliente=$('div.bannerPrincipal.activo');
			if (0 == $('img',banner.entrante).length) {
				// mostramos la mascara
				$('div.galeria div.ajaxLoader').css({
					opacity:0,
					display:'block'
				}).fadeTo('slow',0.4);
				// creamos el elemento imagen y le asignamos un evento al cargar
				$('<img sr'+'c="'+$('input',banner.entrante).val()+'"/>').load(function() {
					// hay que volver a comprobar si la imagen ya ha sido insertada
					if (!$('img',banner.entrante).length){
						$(this).appendTo(banner.entrante);
					}
					$('div.galeria div.ajaxLoader').stop().fadeOut('fast');
					$('input',banner.entrante).remove();
					funcionCierre(banner.entrante, banner.saliente);
				});
			} else {
				funcionCierre(banner.entrante, banner.saliente)	;
			}
		});
		
	});
	
	// controles flechisticos
	if ($('li','#tiraMascara').length < 9) {
		$('div.tira a.nav').css('visibility','hidden');
	}
	$('div.tira a.nav').click(function(){
		// en primer lugar calculamos las variables necesarias para la animacion
		// se tiene que hacer en este momento porque de estar las capas ocultas
		// no podemos obtener ni el offset ni la anchura de los elementos contenidos
		var desplaz, destino;
		var $t=$(this);
		var $carru = $('#tiraMascara');
		var carru  = $carru.get(0);
		var $ul    = $carru.find('ul');
		var $li    = $carru.find('li');
		
		if ($ul.is(':animated')) return false;
		
		if (!carru.difLi) {
			carru.difLi = $li.eq(1).offset().left-$li.eq(0).offset().left; // separacion entre inicios de cada li
			$ul.width(carru.difLi * $li.length + 'px'); // forzamos la anchura de la lista
			carru.limiteIzq = 0;
			carru.limiteDer = $carru.width()-$ul.width();
		}
		desplaz = carru.difLi * 4;
		if ($t.hasClass('siguientes')) desplaz= (-desplaz);
		
		destino = desplaz + parseInt($ul.css('margin-left'));
		if (destino<carru.limiteDer) {
			destino=carru.limiteDer;
		} else if (destino>carru.limiteIzq) {
			destino=carru.limiteIzq;
		}
		$ul.animate({marginLeft:destino+'px'},400)
		return false;
	});
});

// automatizador para la cabecera
var tempBannerPrincipal;
function cambiarBannerPrincipal() {
	var tiempo    = false,
		imagen    = false,
		$targetLi = $('#tiraMascara li.activo').next().length ? $('#tiraMascara li.activo').next() :$('#tiraMascara li:first'),
		$banner   = $('div.bannerPrincipal.activo'),
		banner = new Object;
	banner    = {
		saliente:$banner,
		entrante:$banner.next('.bannerPrincipal').length?$banner.next():$('div.bannerPrincipal:first')
	}
	if ($('img',banner.entrante).length) {
		imagen=true;
	} else {
		$('<img sr'+'c="'+$('input',banner.entrante).val()+'"/>').load(function() {
			// hay que volver a comprobar si la imagen ya ha sido insertada
			if (!$('img',banner.entrante).length){
				$(this).appendTo(banner.entrante);
			}
			$('input',banner.entrante).remove();
			if (tiempo) {
				if (tempBannerPrincipal!=false) {
					$targetLi.click();
					cambiarBannerPrincipal()
				}
			} else {
				imagen = true;
			}
		});
	}
	tempBannerPrincipal = setTimeout(function() {
		if (imagen) {
			if (tempBannerPrincipal!=false) {
				$targetLi.click();
				cambiarBannerPrincipal()
			}
		} else {
			tiempo = true;
		}
	},10000);
}
// iniciamos la funcion
$(cambiarBannerPrincipal);

function mostrarTooltip(elemento) {
	var $e = $(elemento);
	$('#bocadilloTira').remove();
	$('body').append('<div id="bocadilloTira"><span>'+ elemento.alt +'</span><div id="decoBocadillo"></div></div>');
	$('#bocadilloTira').show().css({
		left: $e.offset().left+15,
		top: $e.offset().top - $('#bocadilloTira').height()
	});
}
function ocultarTooltip() {
	$('#bocadilloTira').hide('fast');
}

$(function() {
	$('ul.icoServicios img').mouseover(function() {
		mostrarTooltip(this);
	}).mouseout(function() {
		ocultarTooltip();
	});
});

// galerias multimedia (similar a flagTira)
$(function() {
	if ('function' == typeof flowplayer) {
		flowplayer("a.flowplayer", "swf/flowplayer-3.1.0.swf"); 
	}
	
	$('div.galeriaMultimedia').each( function() {
		var c = this,
			a = $('div.mascara a', c);
		if ($('div.tiraMultimedia li', c).length < 6) {
			$('a.nav', c).css('visibility','hidden');
		}
		$('a.nav', c).click(function(){
			// en primer lugar calculamos las variables necesarias para la animacion
			// se tiene que hacer en este momento porque de estar las capas ocultas
			// no podemos obtener ni el offset ni la anchura de los elementos contenidos
			var desplaz, destino;
			var $t=$(this);
			var $carru = $('div.mascara', c);
			var carru  = $carru.get(0);
			var $ul    = $carru.find('ul');
			var $li    = $carru.find('li');
			
			if ($ul.is(':animated')) return false;
			
			if (!carru.difLi) {
				carru.difLi = $li.eq(1).offset().left-$li.eq(0).offset().left; // separacion entre inicios de cada li
				$ul.width(carru.difLi * $li.length + 'px'); // forzamos la anchura de la lista
				carru.limiteIzq = 0;
				carru.limiteDer = $carru.width()-$ul.width();
			}
			desplaz = carru.difLi * 4;
			if ($t.hasClass('siguientes')) desplaz= (-desplaz);
			
			destino = desplaz + parseInt($ul.css('margin-left'));
			if (destino<carru.limiteDer) {
				destino=carru.limiteDer;
			} else if (destino>carru.limiteIzq) {
				destino=carru.limiteIzq;
			}
			$ul.animate({marginLeft:destino+'px'},400)
			return false;
		});
		
		// eventos para cada uno de los enlaces
		// en funcion del contenido identificaremos si vamos a usar el Flowplayer o un cargador de imagenes
		if (a.filter('[href*=.jpg]').length) {
			a.click(function() {
				a.removeClass('active');
				$(this).addClass('active');
				$('div.imagen img',c).attr('src',this.href);
				return false;
			});
		} else {
		// get all links that are inside div#clips 
			a.click(function() {
				var $t = $(this);
				 var reproductor = $t.closest('.galeriaMultimedia').find('a.flowplayer').get(0);
				a.removeClass('active');
				$t.addClass('active');
				// play the clip specified in href- attribute with Flowplayer 
				$f(reproductor).play(this.getAttribute("href", 2)); 
				return false; 
			});
		}
	});
});
function modificarHotelSite(){
 var path = $('#path').val();
 if (path == undefined){
	 path = "";
 }
 $.getJSON( path+'/ProcesoReserva/SiteHandler', { action: "modificarHotelMicroSite", destino: $('#location').val(), categoria: $('#category').val(), valuetype: $('#valuetype').val(), language: $('#language').val() },
   function(data){
    $("select[name='hotel']").removeOption(/./);     
               $.each(data, function(i,objeto){  
                 $("select[name='hotel']").addOption(objeto.backCode, objeto.name );  
               });  
               $("select[name='hotel']").selectOptions( "" );  
   });
}
function validarDates(){
                var path = "";
                var pageLang = $("input[name='language']").val();
	var hotel = $("select[name='hotel']").val();
	var location = $("select[name='location']").val();
	var fechallegada = $("#fechallegada").val();
	var fechasalida = $("#fechasalida").val();
	if((hotel != null && hotel != '') || (location != null  && location != '0')){
		if(fechallegada != null && fechallegada != '' && fechasalida != null && fechasalida != ''){
			if(compruebaFechas(fechallegada, fechasalida)){
				return true;
			}else{
				$.getJSON( path+"/ProcesoReserva/UtilsServlet", { action: "getMessage", messageKey: "FechaSalidaPosterior", lang: pageLang},
				function(data){
				alert(data.message);
				})
				return false;
			}
		}else if((fechallegada == null || fechallegada == '') && (fechasalida == null || fechasalida == '')){
			return true;
		}else{
			$.getJSON( path+"/ProcesoReserva/UtilsServlet", { action: "getMessage", messageKey: "FechasObligatorias", lang: pageLang},
			function(data){
				alert(data.message);
			})
			return false;
		}
	}else{
		$.getJSON( path+"/ProcesoReserva/UtilsServlet", { action: "getMessage", messageKey: "DestinoHotelObligatorias",  lang: pageLang},
		function(data){
			alert(data.message);
		})		
		return false;
	}
}
function modificarNumPersones(code,idForm){
	var i = 0;
	var formularis = document.forms[i];
	
	var adultValFormCanvi = $("#"+idForm+" select[name='adults']").val();
	var kidValFormCanvi = $("#"+idForm+" select[name='kids']").val();
	var babieValFormCanvi = $("#"+idForm+" select[name='babies']").val();
	
	while(formularis != null){
		var selectadult = "#"+formularis.id+" select[name='adults']";
		var selectkid = "#"+formularis.id+" select[name='kids']";
		var selectbabie = "#"+formularis.id+" select[name='babies']";
		
		var adultSelect = $(selectadult).val();
		var kidSelect = $(selectkid).val();
		var babieSelect = $(selectbabie).val();
		
		if(code == 'adultos'){
			$(selectkid).removeOption(/./);  
	        $(selectbabie).removeOption(/./); 
	        $(selectkid).addOption("0", "0" );   
	        $(selectbabie).addOption("0", "0" );
	        if(adultValFormCanvi == '1'){
	        	$(selectkid).addOption("1", "1" );
	        	$(selectkid).addOption("2", "2" );   
	        	$(selectbabie).addOption("1", "1" );
	        	if(kidValFormCanvi == '2'){
	        		babieValFormCanvi = '0';
	        	}
	        }else if(adultValFormCanvi == '2'){
	       		$(selectkid).addOption("1", "1" );
	       		$(selectbabie).addOption("1", "1" );
	       		if(kidValFormCanvi == '1'){
	        		babieValFormCanvi = '0';
	        	}
	        }  
		}else if(code == 'kids'){
	        $(selectadult).removeOption(/./);  
	        $(selectbabie).removeOption(/./);  
	        $(selectbabie).addOption("0", "0" );
	        if(kidValFormCanvi == '1'){
	    		$(selectadult).addOption("1", "1" );   
	       		$(selectadult).addOption("2", "2" );   
	       		$(selectbabie).addOption("1", "1" );
	       		if(adultValFormCanvi == '2'){
	       			babieValFormCanvi = '0';
	       		}
	        }else if(kidValFormCanvi == '2'){
	       		$(selectadult).addOption("1", "1" );   
	       		if(adultValFormCanvi == '1'){
	       			babieValFormCanvi = '0';
	       		}
	        }else if(kidValFormCanvi == '0'){
	       		$(selectadult).addOption("1", "1" );
	      		$(selectadult).addOption("2", "2" );   
	    		$(selectadult).addOption("3", "3" );
	    		$(selectbabie).addOption("1", "1" );
	    		if(adultValFormCanvi == '3'){
	       			babieValFormCanvi = '0';
	       		}
	        }
		}else{
			$(selectkid).removeOption(/./);  
	        $(selectadult).removeOption(/./);  
	        $(selectkid).addOption("0", "0" );   
	        if(babieValFormCanvi == '1'){
	       	   	$(selectadult).addOption("1", "1" );
	    		$(selectadult).addOption("2", "2" );   
	    		$(selectkid).addOption("1", "1" ); 
	    		if(adultValFormCanvi == '2'){
	   				kidValFormCanvi = '0';
	   			}
	        }else if(babieValFormCanvi == '0'){
	        	$(selectadult).addOption("1", "1" );   
	   	    	$(selectadult).addOption("2", "2" );   
	   	    	$(selectadult).addOption("3", "3" );
	   	    	$(selectkid).addOption("1", "1" ); 
	   	    	$(selectkid).addOption("2", "2" );
	   	    	if(adultValFormCanvi == '3'){
	       			kidValFormCanvi = '0';
	       		}   
	        } 
		}
	    $(selectadult).selectOptions( adultValFormCanvi );
	    $(selectkid).selectOptions( kidValFormCanvi );
	    $(selectbabie).selectOptions( babieValFormCanvi );
	    i = i+1;
	    formularis = document.forms[i];
	}
}
