/* Variable global con la lista de aeropuertos origen*/
var cities;

/* Numero de habitaciones seleccionadas*/
var roomtotal=1;

/* Variables para formatos calendarios */
var jqfday;
var jqdformat;
var lang; 	

/* Variables para calendario de precios */
var clofrtImportes = new Array();
var clofrtSelectFromDate='';
var clofrtCallbackObject;
var clofrtMonth;
var clofrtYear;
var clofrtMonthCurrent;
var clofrtYearCurrent;
var clofrtControlAjax;
var clofrtControlCalendar;	//Indica que datepicker está seleccionado
var posibleCambiarMes = true;
var origenPorDefecto = "MAD";

/* Fin variables para calendario de precios*/

/* Bindings para los eventos generados por los
controles del cajetines de reserva. */
$(document).ready(function(){  
	if( mercado == "PT" )
	{
		origenPorDefecto = "LIS";
	}

	//Para la página de "Ficha Habitación" al pulsar el boton de "Quiero esta habitacion"
    $(".reservarButton").click(function(){    	
    	$(".semitransparent").fadeIn();
    	$(".reservaHabitacion").slideDown();
    
    });
    $(".closeReservaHabitacion").click(function(){
    	$(".semitransparent").fadeOut();
    	$(".reservaHabitacion").slideUp();
    });
		
	
	/* Capa de seleccion de destino o resort*/
	$(".todos").click(
		function(){
			$(".cerrarAeropuertos").click();
			$(".cerrarCalendar").click();	

			
			if($(this).hasClass("vertical")){				
				if ($.browser.msie){
					$(".submenu_header_reserva").css({"left":"+500px", "top":"-200px"});	
				}
				else{
					$(".submenu_header_reserva").css({"margin-left":"300px", "margin-top":"80px"});
				}
			}
			
			$(".submenu_header_reserva").fadeIn();
			
			var numColumnas = $(".submenu_header_reserva .column_left").length;
			if( numColumnas < 3 )
			{
				if($(this).hasClass("vertical")){
					$(".submenu_header_reserva").css("left", ($(".todos").offset().left + $(".todos").width() - $(".submenu_header_reserva").width() ) + "px" );
					$(".submenu_header_reserva").css("margin-left", "0px").css("margin-right", "0px");
				}else{
					$(".submenu_header_reserva").css("left", $(".todos").offset().left + "px" );
					$(".submenu_header_reserva").css("margin-left", "0px");
				}
			}
		}
	);	
	$(".cerrarReserva").click(function(){
		$(".submenu_header_reserva").fadeOut();
	});
	
	/* Acciones cuando se selecciona un destino */
	$(".dst", ".submenu_header_reserva").live( "click", function(){
		$(".cerrarAeropuertos").click();
		$(".cerrarCalendar").click();
	
		$(".todos").attr("codigo", $(this).attr("codigo") );
		$(".todos").attr("codigodestino",$(this).attr("codigo") );
		$(".todos").attr("tipo", "destino" );
		$(".todos").attr("value", $(this).attr("label") );			
		$(".todos").val( $(this).attr("label") );				
		$(".todos").css({"background-color":""});	
		clofrtInit();
		$(".cerrarReserva").click();
	});
	
	/* Acciones cuando se selecciona un resort */
	$("li", ".submenu_header_reserva").live( "click", function(){		
		$(".cerrarAeropuertos").click();
		$(".cerrarCalendar").click();		
		$(".todos").attr("codigo", $(this).attr("codigo") );
		$(".todos").attr("tipo", "hotel" );
		$(".todos").attr("value", $(this).attr("label") );			
		
		/* Guardamos el código de destino para poder consultar el calendario de
		 precios en función del destino. El codigo destino lo tiene el <ul>, padre
		 de este <li> */
		var codigodestino = $(this).parent().attr("codigo");
		$(".todos").attr("codigodestino",codigodestino);
		
		$(".todos").val( $(this).attr("label") );				
		$(".todos").css({"background-color":""});
		clofrtInit();
		$(".cerrarReserva").click();		
	});
	
	/* Capa de aeropuertos */
	$(".origen").click(function(){		
		$(".cerrarReserva").click();
		$(".cerrarCalendar").click();
		//$(".submenu_header_aeropuertos").fadeIn();
	});
	$(".cerrarAeropuertos").click(function(){
		/*		
		$(".ac_airports").slideUp(400,function(){		
			$(".submenu_header_aeropuertos").delay(400).fadeOut();		
		});*/
	});
	
	
	/* Añadir nuevas habitaciones: Se clona el objeto i se le 
	cambia el campo con classe "room_number" con el #de habitacion 
	[roomtotal] y el boton que permita elimarlo.*/
	$(".addroom").change(		
		function(){		
			var literal="Hab. ";
			if(idioma==3){ literal="Room "; }
			if(idioma==4){ literal="Qrt. "; }
			if(idioma==5){ literal="Zi. "; }
			//Si seleccionamos más habitaciones de las que hay actualmente
			if($(this).val()>roomtotal){
				//alert("actual:"+$(this).val()+" roomtotal:"+roomtotal+" accion:mas");	
				for(var i=roomtotal; i<$(this).val(); i++){							
					var clonated_object= $(".room:first").clone();		
					
					// Si estamos en la home
					if($(".roomsContainerNew").hasClass("roomHome")){							
						clonated_object.css({"height": "55px"}).hide();					
						var h= roomtotal*55;
						h=h+"px";
						clonated_object.fadeIn().animate({"top": h});
					}					
					
					$(".roomsContainerNew").append(clonated_object);
					roomtotal++;					
					$(".hab:eq("+(roomtotal-1)+")").html(literal+roomtotal);						
				}				
			}
						
			//Si seleccionamos menos habitaciones de las que hay actualmente
			if($(this).val()<roomtotal){
				//alert("actual:"+$(this).val()+" roomtotal:"+roomtotal+" accion:menos");		
				for(var i=roomtotal-1; i>=$(this).val(); i--){											
					$(".room:eq("+i+")").fadeOut().remove();
					roomtotal--;									
				}
			}									
		}
	);	
	
	
	/* Si la opción seleccionada en el input de Tipo de reserva corresponde con la opción 2
	(solo hotel) se oculta el input de origen. Para comparar el texto de la segunda opción con 
	la selección actual, se debe detectar por motivos de multilanguage */
	$("#reserva_tipo").change(function(){
		value=$(this).val();
		option0 = "P"; // $("option:eq(0)", "#reserva_tipo").val();
		option1 = "V"; // $("option:eq(1)", "#reserva_tipo").val();
		option2 = "E"; // $("option:eq(2)", "#reserva_tipo").val();
		
		
		/*Bestday Mexico*/
		/*if( !isEmpty( BESTDAY_ACTIVO ) && value == option1 )
		{
			$(".fleft").hide();
			$("#reserva_button").hide();
			$("#extra").show();
		}
		else
		{
			$("#extra").hide();*/
			$(".fleft").show();
			$("#reserva_button").show();
			/* Selección de opcion 2: Sólo Hotel */
			if(value==option2){
				
				if( typeof(BESTDAY_ACTIVO) != "undefined" && !isEmpty( BESTDAY_ACTIVO ) )
				{
					var numHab = $("select.addroom").val();
					$("select.addroom").html( "<option selected='selected'>1</option><option>2</option><option>3</option><option>4</option>" );
					$("select.addroom").val( numHab );
					
					$("select.adulto, select.nino, select.bebe").each(function(){
						var num = $(this).val();
						$(this).html( ( !$(this).hasClass("adulto") ? "<option selected='selected'>0</option>" : "" ) + "<option>1</option><option " + ( $(this).hasClass("adulto") ? " selected='selected'" : "" ) + ">2</option><option>3</option><option>4</option>" );
						$(this).val(num);
					});
					
					$("#submenu_header_reserva_bestday" + BESTDAY_ACTIVO).hide();
					$("#submenu_header_reserva_bestday" + BESTDAY_ACTIVO).removeClass("submenu_header_reserva");
					
					$("#submenu_header_reserva_NOTbestday").addClass("submenu_header_reserva");
				}
				
				$("#reservaBox_origen").hide(); // fadeOut();
				$("#reservaBox_fecha1 > span").html(literal_Entrada);
				$("#reservaBox_fecha2 > span").html(literal_Salida);
				
				//Fijamos las fechas			
				var Calendar = new Date();								
				putDate(Calendar, 1);
				putDate(toDate(Calendar,7), 2);			
				
			}
			
			/* Selección de opción 0 ó 1: Vacaciones ó Hotel+Vuelo */
			else{			
				
				if( typeof(BESTDAY_ACTIVO) != "undefined" && !isEmpty( BESTDAY_ACTIVO ) )
				{
					var numHab = $("select.addroom").val();
					$("select.addroom").html( "<option selected='selected'>1</option><option>2</option>" );
					
					if( numHab > 2 )
					{
						$("select.addroom").val( "2" );
					}
					else
					{
						$("select.addroom").val( numHab );
					}
					$("select.addroom").change();
					
					$("select.adulto, select.nino, select.bebe").each(function(){
						var num = $(this).val();
						$(this).html( ( !$(this).hasClass("adulto") ? "<option selected='selected'>0</option>" : "" ) + "<option>1</option><option " + ( $(this).hasClass("adulto") ? " selected='selected'" : "" ) + ">2</option><option>3</option>" );
						$(this).val( (num > 3 ? 3 : num ) );
					});
					
					$("#submenu_header_reserva_NOTbestday").hide();
					$("#submenu_header_reserva_NOTbestday").removeClass("submenu_header_reserva");
					
					$("#submenu_header_reserva_bestday" + BESTDAY_ACTIVO).addClass("submenu_header_reserva");
					if( BESTDAY_ACTIVO == "MX" && $(".todos").attr("codigoDestino") != "CUN" )
					{
						$(".todos").attr("codigoDestino", "");
						$(".todos").attr("codigo", "-1");
						$(".todos").val($("#textoElegirDestino").val());
					}
					if( ( BESTDAY_ACTIVO == "USA" || BESTDAY_ACTIVO == "LAT" || BESTDAY_ACTIVO == "BR" ) && ( $(".todos").attr("codigoDestino") == "PMI" || $(".todos").attr("codigoDestino") == "TCI" ) )
					{
						$(".todos").attr("codigoDestino", "");
						$(".todos").attr("codigo", "-1");
						$(".todos").val($("#textoElegirDestino").val());
					}
				}
				
				// if( !$(".origen").is(":visible") ){
					$("#reservaBox_origen").show(); // fadeIn();
				// }			
				$("#reservaBox_fecha1 > span").html(literal_FechaIda);
				$("#reservaBox_fecha2 > span").html(literal_FechaVuelta);
	
				//Fijamos las fechas
				if( mercado == "WBP_ES" || mercado == "PT" )
				{
					$(".origen option[value='" + origenPorDefecto + "']").attr('selected', 'selected');	//Seleccionamos origen "Origen". (Peticion 12/08/2010)
				}
				
				var Calendar = new Date();								
				putDate(toDate(Calendar,3), 1);
				putDate(toDate(Calendar,10), 2);						
			}	
		//}
		clofrtInit();
	});
	
	
	/* Sidebar de seleccion de producto en la Home */
	$(".sidebar_top > div").click(function(){
		if( posibleCambiarMes )
		{
			$(".sidebar_top > div").removeClass("active");
			$(this).addClass("active");
			var value = $(this).attr("data");		
			$("#reserva_tipo option[value='"+value+"']").attr('selected', 'selected');
			$("#reserva_tipo").change();				
		}
	});
	
	
	$(".botonReserva").click(function(){
		/* ¿Se ha seleccionado destino? */
		if($(".todos").attr("codigo")==-1){
			$(".todos").css({"background-color":"#DB5C65"});	
			$("#reserva_button").attr("href","#");
			return -1;
		}
		
		/* ¿Se ha seleccionado una fecha? */
		if($("#datepicker1").val().indexOf("/")==-1){
			$("#datepicker1").css({"background-color":"#DB5C65"});	
			$("#reserva_button").attr("href","#");
			return -1;
		}
		
		/* Montamos la cadena para booking */
		var cadena_reserva="";
		cadena_reserva+="tipoReserva="  + $("#reserva_tipo").val();					
		cadena_reserva+="&"+$(".todos").attr("tipo")+"="+$(".todos").attr("codigo");	
				
		//Parseamos $(".origen").val() para extraer el codigo de aeropuerto entre []
		cadena_reserva+="&origen=" + $(".origen").val().substring($(".origen").val().indexOf('[') + 1,$(".origen").val().indexOf(']')); 
		cadena_reserva+="&fechaSalida=" + ConvertDate(getDate(1));
				
		if(	$(".numNoches").is(":visible") ){	cadena_reserva+="&noches="+ $(".numNoches").val();}
		else{									cadena_reserva+="&noches="+ DiferenciaDias(getDate(1), getDate(2) );}
		
		try{ cadena_reserva+="&habitacion="+codhab; } catch(err){ };
		cadena_habitaciones = calculaHabitaciones();				
		
		/*Bestday Mexico*/
		if( typeof(BESTDAY_ACTIVO) != "undefined" && !isEmpty(BESTDAY_ACTIVO) && value == option1 )
		{
			$("#fad").val( getDate(1).getFullYear() );
			$("#fmd").val( getDate(1).getMonth()+1 );
			$("#fdd").val( getDate(1).getDate() );
			
			$("#fah").val( getDate(2).getFullYear() );
			$("#fmh").val( getDate(2).getMonth()+1 );
			$("#fdh").val( getDate(2).getDate() );
			
			var codDestino = $(".todos").attr("codigo");
			var hotel = "";

			/***************/			
			$("#num_cuartos").val( $("select.addroom").val() );
			$("#num_adultos").val( $("select.adulto option:selected" , ".room:eq(0)" ).val() );
			$("#num_adultos_2").val( $("select.adulto option:selected" , ".room:eq(1)" ).val() );
			
			var ninos1 = Number( $("select.nino option:selected" , ".room:eq(0)" ).val() );
			var bebes1 = Number( $("select.bebe option:selected" , ".room:eq(0)" ).val() );
			$("#num_ninos").val( ninos1 + bebes1 );
			for( var i = 0; i < ( ninos1 + bebes1 ); i++)
			{
				if( ( i ) < ninos1 )
				{
					$("#EdadNino" + (i + 1) ).val("6");
				}
				else
				{
					$("#EdadNino" + (i + 1) ).val("1");
				}
			}
			
			var ninos2 = 0;
			var bebes2 = 0;
			if( Number($("#num_cuartos").val()) > 1 )
			{
				ninos2 = Number( $("select.nino option:selected" , ".room:eq(1)" ).val() );
				bebes2 = Number( $("select.bebe option:selected" , ".room:eq(1)" ).val() );
			}
			$("#num_ninos_2").val( ninos2 + bebes2 );
			for( var i = 0; i < ( ninos2 + bebes2 ); i++)
			{
				if( ( i ) < ninos2 )
				{
					$("#EdadNino" + (i + 1) + "_2").val("6");
				}
				else
				{
					$("#EdadNino" + (i + 1) + "_2").val("1");
				}
			}
			
			var idHotel = "";
			
			if( $(".todos").attr("tipo") == "destino" )
			{
				switch( codDestino )
				{
					case "AZS":
						$("#Destino").val("127");
					break;
					case "PUJ":
						$("#Destino").val("123");
					break;
					case "LRM":
						$("#Destino").val("122");
					break;
					case "POP":
						$("#Destino").val("124");
					break;
					case "CUN":
						$("#Destino").val("13");
					break;
					case "MBJ":
						$("#Destino").val("296");
					break;
				}
				$("#ciudades").val( $("input.todos").val() );
				$("#formapackage").attr( "action", urlDestinoBestday );
			}
			else
			{
				switch( codDestino )
				{
					case "CayoLevantado":
						$("#Destino").val("127");
						idHotel = "&ID=2106";//$("#ID").val("2106");
					break;
					case "Cayacoa":
						$("#Destino").val("127");
						idHotel = "&ID=2126";//$("#ID").val("2126");
					break;
					case "Portillo":
						$("#Destino").val("127");
						idHotel = "&ID=2110";//$("#ID").val("2110");
					break;
					case "Samana":
						$("#Destino").val("127");
						idHotel = "&ID=127";//$("#ID").val("127");
					break;
					case "Esmeralda":
						$("#Destino").val("123");
						idHotel = "&ID=2701";//$("#ID").val("2701");
					break;
					case "Bavaro":
						$("#Destino").val("123");
						idHotel = "&ID=2125";//$("#ID").val("2125");
					break;
					case "PuntaCana":
						$("#Destino").val("123");
						idHotel = "&ID=2702";//$("#ID").val("2702");
					break;
					case "Ambar":
						$("#Destino").val("123");
						idHotel = "&ID=2104";//$("#ID").val("2104");
					break;
					case "LaRomana":
						$("#Destino").val("122");
						idHotel = "&ID=2105";//$("#ID").val("2105");
					break;
					case "SanJuan":
						$("#Destino").val("124");
						idHotel = "&ID=2698";//$("#ID").val("2698");
					break;
					case "Tulum":
						$("#Destino").val("13");
						idHotel = "&ID=1972";//$("#ID").val("1972");
					break;
					case "Akumal":
						$("#Destino").val("13");
						idHotel = "&ID=410";//$("#ID").val("410");
					break;
					case "Coba":
						$("#Destino").val("13");
						idHotel = "&ID=1975";//$("#ID").val("1975");
					break;
					case "SianKan":
						$("#Destino").val("13");
						idHotel = "&ID=2510";//$("#ID").val("2510");
					break;
					case "Jamaica":
						$("#Destino").val("296");
						idHotel = "&ID=2699";//$("#ID").val("2699");
					break;
				}		
				urlHotelBestday += idHotel;
				$("#formapackage").attr( "action", urlHotelBestday );
			}
			//alert("destino: " + $("#Destino").val() + ", id: " + $("#ID").val() );
			$("#formapackage").submit();
			return false;
		}
		else
		{
			$("#reserva_button").attr("href", "/booking/booking/Busqueda?"+cadena_reserva+cadena_habitaciones);	
		}
	});
	
	
	//Desactivo option
	$("nino").live("change",function(){		
		//Inicializo la cadena y las opciones del objeto que añado.
		var opciones="";
		for(var i=2; i<=14; i++){opciones+="<option>"+i+"</option>";}		
		edadObject=$("<select>").html(opciones);
		
		//Calculo a qué habitación corresponde el cambio
		num = $(".room").index($(this).parent().parent());
		
		//Reset de lo que exista en edades y añado objeto tantas veces como niños.
		$("div.room:eq("+num+") > div.edades").html("");
		
		for(i=0;i<$(this).val();i++){
			$("div.room:eq("+num+") > div.edades").append('<div class="nofloat"></div>')
			labelObject=$("<label>").html("Edad nin. "+(i+1));			
			//$("div.room:eq("+num+") > div.edades").append(labelObject);
			$("div.room:eq("+num+") > div.edades").append(edadObject);
		}			
	});
	
		
	/* Acciones a realizar cuando la carga de Ajax/Json está completa: */
	$('#clofrtContainer').ajaxComplete(function(e, xhr, settings) {			
		/* En carga completa del listado de precios de calendario -> inicialización calendario */
		if(clofrtControlAjax=="calendario"){				
			clofrtControlAjax="";
			$("#clofrtLoading").remove();				
			clofrtChange('');			
		}
		
		/* En carga completa del listado de aeropuertos -> inicialización del input de origen */
		if( mercado != "UK" && ( typeof(BESTDAY_ACTIVO) == "undefined" || isEmpty( BESTDAY_ACTIVO ) ) )
		{
			if(clofrtControlAjax=="airports"){	
				clofrtControlAjax="";
				$("#origenSelec").autocomplete(cities, {
        			matchContains: true,
        			minChars: 1,
        			width:350
    			});
    			$("#origenSelec").result(function(){
					clofrtImportes = new Array();
					clofrtChange();
					clofrtInit();
				});
    			$("#origenSelec").click(function(){
        			$("#origenSelec").select();
    			});		
    			try{
    				for( var i = 0; i < cities.length; i++ ){
           				if( cities[i].indexOf( '[' + origenPorDefecto + ']' ) != -1 ){
               				$("#origenSelec").val( cities[i] );
           				}
        			}	
        		}catch(err){}
    		}
    	}
	});		
		
	
	//Bindings para el calendario de precios (mes alante y atrás).
	$('#clofrtPrev').click( function (e) { clofrtPrev();} );
	$('#clofrtNext').click( function (e) { clofrtNext();} );
	
	$(".cerrarCalendar").click(function(e){ 
		$("#datepicker1").css("background-color","");
		$("#datepicker2").css("background-color","");
		$("#clofrtContainer").fadeOut();
	});
	
	/*ORIGINAL
	Init();
	// Cargamos el listado de aeropuertos disponibles
	if( mercado != "UK" && ( typeof(BESTDAY_ACTIVO) == "undefined" || isEmpty( BESTDAY_ACTIVO ) ) )
	{
		loadAirports();	
	}
	
	if( mercado == "WBP_ES" || mercado == "PT" ) 
    {
        seleccionaTipoReservaHome( "P" );
    }
			
	*/
	//MODIFICADO
	if( mercado != "UK" && ( typeof(BESTDAY_ACTIVO) == "undefined" || isEmpty( BESTDAY_ACTIVO ) ) )
	{
		loadAirports();	
	}
	if( mercado == "WBP_ES" || mercado == "PT" ) 
    {
        Init( "P" );
    }
    else
    {
    	Init( "E" );
    }
});	

/* Carga la lista de aeropuertos cercanos en la variable cities*/
function loadAirports(){
	var url ="/booking/booking/AeropuertosOrigen?operacion=consulta";
	var origen = "";
	var aeropuerto = "";
	var cadena = "";
	$.getJSON(url,function(data){
		clofrtControlAjax="airports";
		cities = data;			
	})	
}

/* Función que pone la fecha en el datepicker. Recibe como parámetros una fecha y el NUM de datepicker (1|2) */
function putDate(date, num){
	var y = date.getFullYear();
	var m = date.getMonth()+1;
	var d = date.getDate();
	if ( m<10 ) m='0'+m;
	if ( d<10 ) d='0'+d;

	//Formato español o portugues.
		if(idioma==1 || idioma == 4 || idioma == 5 ){ $("#datepicker"+num).val(d+'/'+m+'/'+y);}
	//Formato americano
		else{			$("#datepicker"+num).val(m+'/'+d+'/'+y);}
	return 1;
}

/* Función que retorna la fecha del datepicker. Recibe como parámetros el NUM de datepicker (1|2) */
function getDate(num){	
	date1_array = $("#datepicker"+num).val().split("/");	
	//Formato español
	if(idioma==1 || idioma==4 || idioma==5 ){ 	date =  new Date(date1_array[2],date1_array[1]-1,date1_array[0]); }
	//Formato americano
	else{			date = new Date(date1_array[2],date1_array[0]-1,date1_array[1]); }	
	return date;
}


/* Funcion que trata el string de fecha de un datepicker y calcula la siguiente fecha para 
el otro datepicker. La funcion se llama desed los beforeShow de respectivos datepickers. */
function toDate(sel_date,desfase){			
		var dia = sel_date.getDate()+desfase;
		var mes = sel_date.getMonth();
		var year = sel_date.getFullYear();					
		var data = new Date(year,mes,dia);						
		return data;
}

/* Función que convierte la fecha de los datepickers a AA/MM/DD*/
function ConvertDate(date){	
	var y = date.getFullYear();
	var m = date.getMonth()+1;
	var d = date.getDate();
	if ( m<10 ) m='0'+m;
	if ( d<10 ) d='0'+d;
	
	return y+"-"+m+"-"+d;	
}	

/* Función que calcula el numero de noches entre dos fechas */
function DiferenciaDias (date1, date2){	
 	return (date2-date1)/1000/3600/24;
}

/* Función que calcula la cadena para las habitaciones */
function calculaHabitaciones(){
	var cadena = "";
	var ninos = 0;
		
	cadena+= "&num_habs="+roomtotal;
	for(var i=0; i<roomtotal; i++){		
		cadena+="&num_adultos_"+(i+1)+"="+$("select.adulto option:selected" , ".room:eq("+i+")" ).val();
		cadena+="&num_ninos_"+(i+1)+"="+$("select.nino option:selected" , ".room:eq("+i+")" ).val();
		cadena+="&num_bebes_"+(i+1)+"="+$("select.bebe option:selected" , ".room:eq("+i+")" ).val();			

		ninos=$("select.nino option:selected" , ".room:eq("+i+")" ).val();
		for(var j=1; j<=ninos; j++){
			cadena+="&edad_"+(i+1)+"_"+j+"=8";
		}
	}		
	return cadena;
}

/* Funcion que muestra una notificación a pie de calendario y oculta el resto. */
function muestraNotificacion(num){
	$(".calendarNotification").hide();
	$("#calendarNotification"+num).show();
	if(num == -1){
		$(".calendarNotification").hide();
	}
}

/* ----------------------- ----------------------- -----------------------*/
/* ----------------------- CALENDARIO CON PRECIOS  -----------------------*/
/* ----------------------- ----------------------- -----------------------*/
function clofrtConfig(fromDate,callbackObject) {
	clofrtSelectFromDate= fromDate;
	clofrtCallbackObject= callbackObject;
}

function clofrtSelectDay(y,m,d) {
	if ( m<10 ) m='0'+m;
	if ( d<10 ) d='0'+d;
	switch(clofrtControlCalendar){
		case 1:			
			$("#datepicker1").css("background-color","");
			
			/* Pone la fecha en el datepicker1 y esconde el calendario*/
			var date = new Date(y,m-1,d);
			putDate(date, 1);
			clofrtHide();
						
			if ( $("#datepicker2").is(':visible') ) {
					/* Configuramos el datepicker 2*/
					clofrtConfig(y+'-'+m+'-'+d, 2);										
					
					/* Seleccionamos la fecha del datepicker1, le sumamos 7 y la ponemos en el datepicker 2*/
					putDate(toDate(getDate(1),7),2);											
					
					if ($("#reserva_tipo").val() == $("option:eq(0)", "#reserva_tipo").val() ){
						/* Caso de vacaciones, option[0]*/					
					}
					else{
						$("#datepicker2").css("background-color","#C4E3EE");
						setTimeout(function(){	clofrtShow(2); }, 200);			
					}											
			}
			//Eliminem el color vermell si anteriorment hi havia "error"
			$("#datepicker1").css({"background-color":""});	
			break;
		case 2:
			$("#datepicker2").css("background-color","");
			var date = new Date(y,m-1,d);
			putDate(date, 2);
			clofrtHide();
			break;
	}
}

function clofrtInitCalVars(datepicker_num) {
	
	var clofrtCal = new Date();
	clofrtMonth = clofrtCal.getMonth();
	clofrtYear = clofrtCal.getFullYear? clofrtCal.getFullYear(): clofrtCal.getYear()+1900;
	
	if( typeof(clofrtMonthCurrent) == "undefined" )
	{
		//alert("clofrtMonthCurrent undefined");
		clofrtMonthCurrent= clofrtMonth;
		clofrtYearCurrent= clofrtYear;
	}
	if( typeof( datepicker_num ) != "" && datepicker_num == 1)
	{
		var date = getDate( 1 );
		clofrtMonthCurrent = date.getMonth();
		clofrtYearCurrent = date.getFullYear? date.getFullYear(): date.getYear()+1900;
	}
	else if(clofrtSelectFromDate!=''){		
		var fromDateArray = clofrtSelectFromDate.split('-');
		clofrtMonthCurrent= fromDateArray[1]-1; 
		clofrtYearCurrent= fromDateArray[0];		
		
		var date = getDate( 2 );
		var mes = date.getMonth();
		var anyo = date.getFullYear? date.getFullYear(): date.getYear()+1900;
		if( anyo > clofrtYearCurrent )
		{
			clofrtMonthCurrent= mes;
			clofrtYearCurrent= anyo;
		}
		else if( mes > clofrtMonthCurrent )
		{
			clofrtMonthCurrent= mes;
		}
	}
	
	/* Si hi ha una data mínima marcada, mostrem el calendari a partir d'aquesta data*/	
	/*if(clofrtSelectFromDate!=''){		
		var fromDateArray = clofrtSelectFromDate.split('-');
		clofrtMonthCurrent= fromDateArray[1]-1; 
		clofrtYearCurrent= fromDateArray[0];		
	}*/
}

/* datepicker_num indica el datepicker pel que treballem en el moment de desplegar el calendari */
function clofrtShow(datepicker_num) {
	$("#datepicker1").css("background-color","");
	$("#datepicker2").css("background-color","");
	$(".cerrarAeropuertos").click();
	$(".cerrarReserva").click();
	clofrtControlCalendar=datepicker_num;
	if(clofrtControlCalendar==1){
		$("#datepicker1").css("background-color","#C4E3EE");	
		var Calendar = new Date();
		var d = Calendar.getDate();    // Returns day (1-31)
		var m= parseInt(Calendar.getMonth())+1;
		var y = Calendar.getFullYear? Calendar.getFullYear(): Calendar.getYear()+1900;
		if ( m<10 ) m='0'+m;
		if ( d<10 ) d='0'+d;
		clofrtConfig(y+'-'+m+'-'+d, 1);
	}
	if(clofrtControlCalendar==2){
		$('#clofrtContainer').hide();
		$("#datepicker2").css("background-color","#C4E3EE");				
	}
	$('#clofrtContainer').fadeIn();	
	clofrtInitCalVars(datepicker_num);
	clofrtChange(true);
	if(clofrtControlCalendar==1 || $("#reserva_tipo").val() == "E" ){
		clofrtInit();//#@#-#@#
	}
}

function clofrtHide() {
	$("#datepicker1").css("background-color","");
	$("#datepicker2").css("background-color","");
	$('#clofrtContainer').hide();
}

function clofrtInit() {	
	/* Notificaciones a pie de calendario */
	if($("#reserva_tipo").val() == $("option:eq(0)", "#reserva_tipo").val())
	{
		muestraNotificacion(0);
	}
	else if($("#reserva_tipo").val() == $("option:eq(2)", "#reserva_tipo").val())
	{
		muestraNotificacion(2);
	}
	else
	{
		muestraNotificacion(-1);
	}	
	var tipo = $("#reserva_tipo").val();
	if( tipo == "V" || $(".todos").attr("codigo")==-1 )
	{
		clofrtChange(true);
		return;
	}
	var codigo = $(".todos").attr("codigo");
	var hoteldestino = $(".todos").attr("tipo");
	var codigodestino = $(".todos").attr("codigodestino");
	var codigoorigen = $("#origenSelec").val();
	if(hoteldestino == "destino"){
		var url='/booking/booking/OfertasGenerales?operacion=calendario&tipo='+tipo+'&'+hoteldestino+'='+codigodestino;
	}
	else{
		var url='/booking/booking/OfertasGenerales?operacion=calendario&tipo='+tipo+'&'+hoteldestino+'='+codigo;
	}
	
	var fecha1 = getDate(1);
	var fecha1mes = "";
	var fecha1anyo = "";
	if( $("#clofrtContainer").css("display") != "none" )
	{
		fecha1mes = clofrtMonthCurrent;
		fecha1anyo = clofrtYearCurrent;
	}
	else if( typeof(fecha1) != "undefined" && fecha1 != null )
	{
		fecha1mes = fecha1.getMonth();
		fecha1anyo = fecha1.getFullYear ? fecha1.getFullYear(): fecha1.getYear()+1900;
	}
	url += "&origen=" + codigoorigen + "&anyo=" + fecha1anyo + "&mes=" + (Number(fecha1mes) + 1);
	/*var loading='<img src="/idc/recursos_web/images/content/loading.gif" />';
	$('#clofrtMes1').html(loading + $('#clofrtMes1').html());*/
	//$('#clofrtMes2').html(loading);
	clofrtImportes=[];
	$(".precio").html("&nbsp;");
	bloqueaCamposCalendarioDinamico(true);
	$.ajax({
  		url: url,
  		dataType: 'json',
  		success: function(data){
			if( data != null )
			{
				clofrtControlAjax="calendario";
				$.each(data, 
					function(i,item){				
						imp = item.importeDivisa;				
						clofrtImportes[item.dia]= imp;								
					}
				);
				/*if( $("#clofrtContainer").css("display") != "none" )#@#-#@#
				{*/
					//clofrtShow(1);//***//
					clofrtChange();// 
				//}
			}
			bloqueaCamposCalendarioDinamico(false);
		},
	   error: function() { bloqueaCamposCalendarioDinamico(false); }
	});
	/*$.getJSON(url,
		function(data){
			if( data != null )
			{
				clofrtControlAjax="calendario";
				$.each(data, 
					function(i,item){				
						imp = item.importeDivisa;				
						clofrtImportes[item.dia]= imp;								
					}
				);
				/*if( $("#clofrtContainer").css("display") != "none" )#@#-#@#
				{* /
					//clofrtShow(1);//*** //
					clofrtChange();// 
				//}
			}
			bloqueaCamposCalendarioDinamico(false);
		}
	).error(function() { alert("cccccc"); bloqueaCamposCalendarioDinamico(false); });*/
}

function clofrtPrev( numMeses ) {
	if( posibleCambiarMes )
	{
		if ( clofrtMonthCurrent<=clofrtMonth && clofrtYearCurrent<=clofrtYear )
			return;
		
		if( typeof(numMeses) != "undefined" && numMeses != null && !isNaN(parseInt(numMeses)) )
		{
			clofrtMonthCurrent = clofrtMonthCurrent - numMeses;
			if ( clofrtMonthCurrent < 0 ) {
				clofrtMonthCurrent = clofrtMonthCurrent + 12;
				clofrtYearCurrent--;
			}			
		}
		else
		{
			clofrtMonthCurrent--;
			if ( clofrtMonthCurrent<0 ) {
				clofrtMonthCurrent=11;
				clofrtYearCurrent--;
			}
		}
		clofrtChange(true);
		if( clofrtControlCalendar == 1 || $("#reserva_tipo").val() == "E" )
		{
			clofrtInit();
			//clofrtShow(1);
		}
	}
}
function clofrtNext( numMeses ) {
	if( posibleCambiarMes )
	{
		if( typeof(numMeses) != "undefined" && numMeses != null && !isNaN(parseInt(numMeses)) )
		{
			clofrtMonthCurrent = clofrtMonthCurrent + numMeses;
			if ( clofrtMonthCurrent>=12 ) {
				clofrtMonthCurrent = clofrtMonthCurrent - 12;
				clofrtYearCurrent++;
			}			
		}
		else
		{
			clofrtMonthCurrent++;
			if ( clofrtMonthCurrent>=12 ) {
				clofrtMonthCurrent=0;
				clofrtYearCurrent++;
			}
		}
		clofrtChange(true);
		if( clofrtControlCalendar == 1 || $("#reserva_tipo").val() == "E" )
		{
			//"mes posterior - clofrtInit");
			clofrtInit();
			/*alert("2");
			clofrtShow(1);
			alert("3");*/
		}
	}
}

function clofrtChange(noPrecios) {
	if( $("#reserva_tipo").val() == "V" || $(".todos").attr("codigo")==-1 )
	{
		noPrecios = true;
	}
	var calendarioSinPrecios = false;
	if( typeof(noPrecios) != "undefined" && noPrecios != null && noPrecios )
	{
		calendarioSinPrecios = true;
	}
	if( clofrtControlCalendar == 2 )
	{
		if( $("#reserva_tipo").val() == "E" )
		{
			calendarioSinPrecios = false;
		}
		else
		{
			calendarioSinPrecios = true;
		}
		var date = getDate( 1 );
		var anyo = date.getFullYear? date.getFullYear(): date.getYear()+1900;
		var viewPrev=( (clofrtYearCurrent==clofrtYear && clofrtMonthCurrent>date.getMonth()) || clofrtYearCurrent>anyo );
	}
	else
	{
		var viewPrev=( (clofrtYearCurrent==clofrtYear && clofrtMonthCurrent>clofrtMonth) || clofrtYearCurrent>clofrtYear );
	}
	/*var clofrtYearNext=clofrtYearCurrent;
	var clofrtMonthNext=clofrtMonthCurrent+1;

	if ( clofrtMonthNext>=12 ) {
		clofrtYearNext++;
		clofrtMonthNext=0;
	}*/
	
	var mes1= printOffersCalendar(clofrtYearCurrent,clofrtMonthCurrent,viewPrev,true,calendarioSinPrecios);
	//var mes2= printOffersCalendar(clofrtYearNext,clofrtMonthNext,false,true);
		
	$('#clofrtMes1').html(mes1);
	//$('#clofrtMes2').html(mes2);

}

function printOffersCalendar(year,month,viewPrev,viewNext,calendarioSinPrecios) {
	//0=Semana a partir de diumenge, 1= a partir de dilluns
	var weekStart=1;
	var day_of_week = new Array('Dom','Lun','Mar','Mi&eacute;','Jue','Vie','S&aacute;b');
	var month_of_year = new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
	var month_of_year_abr = new Array('Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic');

	if(idioma==3){	
		weekStart=0;
		day_of_week = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
		month_of_year = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
		month_of_year_abr = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
	}

	if(idioma==4){
		weekStart=1;
		day_of_week = new Array('Dom','2&ordf;F','3&ordf;F','4&ordf;F.','5&ordf;F','6&ordf;F','Sab');
		month_of_year = new Array( 'Janeiro', 'Fevereiro', 'Mar&ccedil;o', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezeembro' );
		month_of_year_abr = new Array( 'Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez' );
	}
	
	if(idioma==5)
	{
		weekStart=1;
		day_of_week = new Array( 'Son', 'Mon', 'Die', 'Mit', 'Don', 'Fre', 'Sam' );
		month_of_year = new Array( 'Januar', 'Februar', 'M&auml;rz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember' );
		month_of_year_abr = new Array( 'Jan', 'Feb', 'M&auml;r', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez' );
	}

	if(idioma==6)
	{
		weekStart=1;
		day_of_week = new Array( 'Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab' );
		month_of_year = new Array( 'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre' );
		month_of_year_abr = new Array( 'Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu', 'Lug', 'Ago', 'Set', 'Ott', 'Nov', 'Dic' );
	}

	if(idioma==7)
	{
		weekStart=1;
		day_of_week = new Array( 'Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam' );
		month_of_year = new Array( 'Janvier', 'F&eacute;vrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Ao&ucirc;t', 'Septembre', 'Octobre', 'Novembre', 'D&eacute;cembre' );
		month_of_year_abr = new Array( 'Jan', 'F&eacute;v', 'Mar', 'Avr', 'Mai', 'Jun', 'Jui', 'Ao&ucirc;', 'Sep', 'Oct', 'Nov', 'D&eacute;c' );
	}
	
	var Calendar = new Date();
	var today = Calendar.getDate();    // Returns day (1-31)
	var todayMonth= Calendar.getMonth();
	var todayYear = Calendar.getFullYear? Calendar.getFullYear(): Calendar.getYear()+1900;
	
	var DAYS_OF_WEEK = 7;    	// "constant" for number of days in a week
	var DAYS_OF_MONTH = 31;     // "constant" for number of days in a month
	var cal;

	Calendar.setDate(1);
	Calendar.setMonth(month);
	Calendar.setYear(year);
	
	var dateDiaSeleccionado = getDate(1);
	var seleccionadoDay = dateDiaSeleccionado.getDate();    // Returns day (1-31)
	var seleccionadoMonth= dateDiaSeleccionado.getMonth();
	var seleccionadoYear = dateDiaSeleccionado.getFullYear? dateDiaSeleccionado.getFullYear(): dateDiaSeleccionado.getYear()+1900;
	var diaSeleccionado = "";
	
	try{
		diaSeleccionado=seleccionadoYear+'-';
		if ( seleccionadoMonth+1<10 )
			diaSeleccionado+= '0';
		diaSeleccionado+= (seleccionadoMonth+1)+'-';
		if ( seleccionadoDay <10 )
			diaSeleccionado+= '0';
		diaSeleccionado+= seleccionadoDay;
	}catch(error){
		diaSeleccionado = "";
	}
	
	var fromDate= "";
	if( diaSeleccionado != "" && clofrtControlCalendar == 2 )
	{
		fromDate = diaSeleccionado;
		diaSeleccionado = "";
	}
	else if( clofrtSelectFromDate != "" )
	{
		fromDate= clofrtSelectFromDate;
	}
	
	if ( fromDate=='' ) {
		fromDate=todayYear+'-';
		if ( todayMonth+1<10 )
			fromDate+= '0';
		fromDate+= (todayMonth+1)+'-';
		if ( today <10 )
			fromDate+= '0';
		fromDate+= today;
	}
	
	/*if(clofrtControlCalendar != 1) {
		diaSeleccionado = "";
	}*/
	
	cal='<table cellspacing="0" cellpadding="0">';
	for ( var cw=0;cw<7;cw++)
		cal+='<col width="62px">';
	cal+='<thead style="border-bottom:#CCCCCC;">';

	cal+='<tr class="nombre_mes" id="nombre_mes_2010-08">';
	
	cal+='<td class="mes_anterior">';
	if ( viewPrev ) {
		cal+='<img src="/bookingwww/img/botones/mes_anterior.jpg" onClick="javascript:clofrtPrev();"/>';
	}
	cal+='</td><td colspan="5" class="mes">';
	cal+='<div style="float:left;width:95px;text-align:left;">';
	var hayMesesPrevios = false;
	for( var i = 3; i > 0; i-- )
	{
		var tempMonth = month - i;
		var tempYear = year;
		if( tempMonth < 0 )
		{
			tempMonth = tempMonth + 12;
			tempYear--;
		}
		if( ( clofrtControlCalendar != 2 && tempYear >= todayYear && tempMonth >= todayMonth ) || ( clofrtControlCalendar == 2 && tempYear >= seleccionadoYear && tempMonth >= seleccionadoMonth) )
		{
			cal+='<a href="#" onclick="javascript:clofrtPrev(' + i + ');return false;" class="" style="color:grey;font:8px;margin-right:10px;">' + month_of_year_abr[tempMonth] + '</a>';
			hayMesesPrevios = true;
		}
	}
	if( !hayMesesPrevios )
	{
		cal+='&nbsp;';
	}
	cal+='</div>';
	cal+='<div style="float:left;width:130px">' + month_of_year[month]  + '   ' + year + '</div>';
	cal+='<div style="float:left;width:95px;text-align:right;">';
	for( var i = 1; i < 4; i++ )
	{
		var tempMonth = month + i;
		if( tempMonth > 11 )
		{
			tempMonth = tempMonth - 12;
		}
		cal+='<a href="#" onclick="javascript:clofrtNext(' + i + ');return false;" class="" style="color:grey;font:8px;margin-left:10px;">' + month_of_year_abr[tempMonth] + '</a>';
	}
	cal+='</div>';
	cal+='</td><td class="mes_siguiente" >';
	if ( viewNext ) {
		cal+='<img src="/bookingwww/img/botones/mes_siguiente.jpg" onClick="javascript:clofrtNext()"/>';
	}
	cal+='</td></tr>';


	
	cal+='<tr class="nombres_semana" valign="middle">';
	cal+='<td class="primero"><span class="lunes">'+ day_of_week[(weekStart)%DAYS_OF_WEEK] +'</span></td>';
	for(index=1; index < DAYS_OF_WEEK-1; index++) {
		cal+='<td ><span class="sep" style="">|</span> <span >'+ day_of_week[(weekStart+index)%DAYS_OF_WEEK] +'</span></td>';
	}
	cal+='<td class="ultimo"><span class="sep" style="">|</span> <span >'+ day_of_week[(weekStart+DAYS_OF_WEEK-1)%DAYS_OF_WEEK] +'</span></td>';
	cal+='</tr>';
	cal+='</thead>'
	cal+='<tbody>';

	// Primers dies en blanc
	var t=Calendar.getDay();
	if ( t<weekStart )
		t+=DAYS_OF_WEEK;
	for(index=weekStart; index < t; index++) {
		if ( index==weekStart ) {
			cal += '<tr valign="top">';
			cal += '<td class="primero">' + ' ' + '</td>'; 
		} else {
			cal += '<td>' + ' ' + '</td>'; 
		}
	}

	var from=100*fromDate.substring(0,4)+1*fromDate.substring(5,7);
	var current=100*year+month+1;
	var esClicable=(current>from)

	// Pateja els fins 31 dies del mes
	var tdClass='';
	for(index=0; index < DAYS_OF_MONTH; index++)
	{
		// TODO controla sow dins de tot el if
		if( Calendar.getDate() > index )
		{
			var week_day =Calendar.getDay();

			if(week_day == weekStart) {
				cal += '<tr valign="top">';
				tdClass+=' primero';
			}

			var eow= (week_day==DAYS_OF_WEEK-1 & weekStart==0);
			eow = eow | (week_day==0 & weekStart==1);
			if ( eow ) {
				tdClass+=' ultimo';
			}

			if(week_day != DAYS_OF_WEEK)
			{
				var day  = Calendar.getDate();
				
				var y=(Calendar.getFullYear? Calendar.getFullYear(): Calendar.getYear()+1900);
				var clau = y+'-';
				var m = Calendar.getMonth()+1;
				if ( m<10 )
					clau=clau+'0';
				clau=clau+m+'-';
				if ( day<10 )
					clau=clau+'0';
				clau=clau+day;

				var onClick='';
				var importe='';
				var daySpan='';
				
							
				if ( clau==fromDate ) {
					esClicable= true;
					tdClass+=' fechaSeleccionada';
				}
				
				if( clau == diaSeleccionado ) {
					tdClass+=' fechaSeleccionada';
				}
				
				var preu = clofrtImportes[clau];
				if( typeof(calendarioSinPrecios) != "undefined" && calendarioSinPrecios != null && calendarioSinPrecios )
				{
					importe='<div  class="precio">&nbsp;</div>';
					tdClass+=' diaConPrecio diaProducto';
					daySpan='<span class="fecha">'+day+'</span>';
				}
				else if (typeof(preu)!='undefined' && preu != null && preu != "")
				{
					importe='<div  class="precio">'+preu+'</div>';
					tdClass+=' diaConPrecio diaProducto';
					daySpan='<span class="fecha"><b>'+day+'</b></span>';
				}
				else
				{
					importe='<div  class="precio">&nbsp;</div>';
					daySpan='<span class="fecha">'+day+'</span>';
					if(clau>fromDate){	
						importe='<div  class="precio" style="background-color: #DDDDDD; color: red">N/D</div>';
					}
				}
				
				/* Notificaciones a pie de calendario */
				/*if($("#reserva_tipo").val() == $("option:eq(0)", "#reserva_tipo").val()){ muestraNotificacion(0);}
				if($("#reserva_tipo").val() == $("option:eq(2)", "#reserva_tipo").val()){ muestraNotificacion(2);}*/
				
				/* Si estamos en la opción sólo hotel, no mostramos precios*/
				/* Si estamos en la opción de fecha Vuelta y Vacaciones no mostramos precios */
				if ( /*($("#reserva_tipo").val() == $("option:eq(1)", "#reserva_tipo").val()) || ( ($("#reserva_tipo").val() == $("option:eq(0)", "#reserva_tipo").val()) &&*/ clofrtControlCalendar == 2 && $("#reserva_tipo").val() != "E"/*)*/ ){
					importe='<div  class="precio">&nbsp;</div>';
					daySpan='<span class="fecha">'+day+'</span>';
					muestraNotificacion(-1);
				}				
				
				if ( esClicable ) {
					onClick=' onclick="javascript:clofrtSelectDay('+y+','+m+','+day+')" ';
					tdClass+=' diaClicable';
				}
				else
				{
					tdClass = '';
				}

				if( today==Calendar.getDate() && todayMonth==Calendar.getMonth() && year==todayYear ) {
					tdClass+=' fechaHoy';
				} 
				
				cal += '<td class="'+tdClass+'" '+onClick+'>' +daySpan+ importe + '</td>';
			}

			if ( eow ) {
				cal += '</tr>';
			}
		}

		Calendar.setDate(Calendar.getDate()+1);
		tdClass='';
	}

	if ( weekStart==0 ) {
		for ( index=week_day; index<DAYS_OF_WEEK-2; index++ )
			cal+='<td></td>';
		if ( week_day<DAYS_OF_WEEK-1 )
			cal+='<td class="ultimo"></td>';
	} 
	
	if ( weekStart==1 ) {
		if ( week_day==DAYS_OF_WEEK-1 ) {
			cal+='<td class="ultimo"> </td>';
		} 

		else if ( week_day>0 ) {
			for ( index=week_day; index<DAYS_OF_WEEK-1; index++ )
				cal+='<td> </td>';
			cal+='<td class="ultimo"> </td>';
		}
	}
	cal+='</tbody>';
	cal+='</table>';
	return cal;
}
function bloqueaCamposCalendarioDinamico( bloquear )
{
	//$("#tipoReserva").attr( "disabled", ( bloquear ? "disabled" : "" ) );//pestanyas, que hacer?
	$("#origenSelec").attr( "disabled", ( bloquear ? "disabled" : "" ) );
	$(".todos").attr( "disabled", ( bloquear ? "disabled" : "" ) );//destino
	//$("#nochesSelec").attr( "disabled", ( bloquear ? "disabled" : "" ) );
	if( bloquear )
	{
		//$("#loadingImg").show();
		if( $("#loadingImg").length == 0 && $("#clofrtContainer").css("display") != "none" )
		{
			var textoLoading = "Cargando precios...";
			if(idioma==3){
				textoLoading = "Loading prices...";
			}
			if(idioma==4){
				textoLoading = "A carregar preços...";
			}			
			if(idioma==5){
				textoLoading = "Die Preise werden geladen ...";
			}		
			if(idioma==6){
				textoLoading = "Caricamento prezzi in corso...";
			}
			if(idioma==7){
				textoLoading = "Chargement des prix en cours...";
			}
	
			var htmlLoading = "" +
				"<div id='loadingImg' style='background-color:white;z-index:200;position:absolute;top:" +
				$("#clofrtMes1 table tbody").position().top + "px;left:" +
				$("#clofrtMes1 table tbody").position().left + "px;height:" +
				$("#clofrtMes1 table tbody").height() + "px;width:" +
				$("#clofrtMes1 table tbody").width() + "px;text-align:center;'>" +
					"<div style='padding-top:25px;margin-bottom:25px;'>" + textoLoading + "</div>" +
					"<object width='35' height='35' codebase='https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0'>" +
						"<param value='/bookingwww/img/preloader_bp.swf' name='movie'>" +
						"<param value='transparent' name='wmode'>" +
						"<param value='high' name='quality'>" +
						"<embed width='35' height='35' type='application/x-shockwave-flash' pluginspage='https://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' quality='high' wmode='transparent' src='/bookingwww/img/preloader_bp.swf'>" +
					"</object>" +
				"</div>";
			$("#clofrtMes1").append( htmlLoading );
		} 
		//$("td.mes").append('<img id="loadingImg" style="margin-left:5px;" src="/bookingwww/img/loading10.gif">');
		posibleCambiarMes = false;
	}
	else
	{
		//$("#loadingImg").hide();
		$("#loadingImg").remove();
		posibleCambiarMes = true;
	}
}
/* ---------------------------------------- */
/* Final calendario de reservas con precios */
/* ---------------------------------------- */

/*ORIGINAL
function Init(){			
	try{
		// En el caso de la home, marcamos algunas opciones al inicializar
		if(home==1){			
			// $(".todos").val(literal_ElegirDestino);		//Limpiamos cajetin de seleccion de destino
			$("#reserva_tipo option[value='E']").attr('selected', 'selected');	//Seleccionamos opcion reserva "Solo Hotel". (Peticion 12/08/2010)
			try{
				$(".sidebar_top > div:eq(2)").addClass("active"); //Marcamos la pestaña de "Solo Hotel".
			}catch(err){var noop="noop";}
			
			// Preselección del destino
			try{				
				$("#default_destination_spain").click();	//Clicamos en default destination spain												
			}catch(err){var noop="noop";}
		}		
	}
	catch(err){}	
	
	//Provocamos el cambio en la reserva para mostrar/ocultar campos del cajetín de reserva.
	$("#reserva_tipo").change();			

	/*En función del lenguaje detectamos parámetros de la fecha. Se controlan dos parámetros: 
	[jqdformat]: indica el formato de la fecha.
	[jqfday]: indica el primer dia de la semana, 
	siendo 0=Domingo* /			
	lang = (navigator.language) ? navigator.language : navigator.userLanguage; 	
	if(lang == 'en') {				
		jqdformat = 'mm/dd/yy';
		jqfday = 0;				
	} else {									
		jqdformat = 'dd/mm/yy';
		jqfday = 1;			
	}  
		
	try{		
		$.datepicker.setDefaults( {
			firstDay: jqfday,
			yearRange :'-1:+1',			
			changeFirstDay :false,
			minDate :'+0',
			numberOfMonths: 2,						
			dateFormat : jqdformat		
		});
	}catch(err){}	
}*/

//MODIFICADO
function Init( tipoReserva ){
	
	var value = "E";
	if( typeof(tipoReserva) != "undefined" && tipoReserva != null )
	{
		value = tipoReserva;
	}
	try{
		// En el caso de la home, marcamos algunas opciones al inicializar
		if(home==1){			
			// $(".todos").val(literal_ElegirDestino);		//Limpiamos cajetin de seleccion de destino
			/*$("#reserva_tipo option[value='E']").attr('selected', 'selected');	//Seleccionamos opcion reserva "Solo Hotel". (Peticion 12/08/2010)
			try{
				$(".sidebar_top > div:eq(2)").addClass("active"); //Marcamos la pestaña de "Solo Hotel".
			}catch(err){var noop="noop";}
			
			// Preselección del destino
			try{				
				$("#default_destination_spain").click();	//Clicamos en default destination spain												
			}catch(err){var noop="noop";}*/
			
			$(".sidebar_top > div" ).removeClass("active");
			$("#pestanyaHome" + value ).addClass("active");
			$("#reserva_tipo option[value='"+value+"']").attr('selected', 'selected');
			//$("#reserva_tipo").change();
			try{				
				$("#default_destination_spain").click();	//Clicamos en default destination spain												
			}catch(err){var noop="noop";}
		}		
	}
	catch(err){}	
	
	//Provocamos el cambio en la reserva para mostrar/ocultar campos del cajetín de reserva.
	$("#reserva_tipo").change();			

	/*En función del lenguaje detectamos parámetros de la fecha. Se controlan dos parámetros: 
	[jqdformat]: indica el formato de la fecha.
	[jqfday]: indica el primer dia de la semana, 
	siendo 0=Domingo*/			
	lang = (navigator.language) ? navigator.language : navigator.userLanguage; 	
	if(lang == 'en') {				
		jqdformat = 'mm/dd/yy';
		jqfday = 0;				
	} else {									
		jqdformat = 'dd/mm/yy';
		jqfday = 1;			
	}  
		
	try{		
		$.datepicker.setDefaults( {
			firstDay: jqfday,
			yearRange :'-1:+1',			
			changeFirstDay :false,
			minDate :'+0',
			numberOfMonths: 2,						
			dateFormat : jqdformat		
		});
	}catch(err){}	
}

function seleccionaTipoReservaHome( value )
{
		$(".sidebar_top > div" ).removeClass("active");
		$("#pestanyaHome" + value ).addClass("active");
		$("#reserva_tipo option[value='"+value+"']").attr('selected', 'selected');
		$("#reserva_tipo").change();				
}

function isEmpty( str )
{
	if( null == str || "" == str )
	{
		return true;
	}
	else
	{
		return false;
	}
}
