
// Cargamos las rutas de los banners en dos tablas, una para cada componente
var listaBannersCentro = new Array();


var listaBannersInferior = new Array();
banner = '';banner = new Array('../../img/solpubli/en/5Motivos_EN_01.png', '', '', 'N');
if (banner != null && banner != "") listaBannersInferior.push(banner);
banner = '';banner = new Array('../../img/solpubli/en/5Motivos_EN_02.png', '', '', 'N');
if (banner != null && banner != "") listaBannersInferior.push(banner);
banner = '';banner = new Array('../../img/solpubli/en/5Motivos_EN_03.png', '', '', 'N');
if (banner != null && banner != "") listaBannersInferior.push(banner);
banner = '';banner = new Array('/img/solpubli/en/5Motivos_EN_04_v2.png', '', '', 'N');
if (banner != null && banner != "") listaBannersInferior.push(banner);
banner = '';banner = new Array('../../img/solpubli/en/5Motivos_EN_05.png', '', '', 'N');
if (banner != null && banner != "") listaBannersInferior.push(banner);


// Num. de milisegundos en un dia
var MS_ONE_DAY = 1000 * 60 * 60 * 24;
var urlHotel = '';
var fechaHoy = zeroFill("29",2)+"/"+zeroFill("10",2)+"/2010";
function mycarousel_initCallback(carousel) {
    $('.jcarousel-control a').bind('click', function() {
        carousel.scroll($.jcarousel.intval($(this).text()));
        return false;
    });

    $('.jcarousel-scroll select').bind('change', function() {
        carousel.options.scroll = $.jcarousel.intval(this.options[this.selectedIndex].value);
        return false;
    });

    $('#mycarousel-next').bind('click', function() {
        carousel.next();
        return false;
    });

    $('#mycarousel-prev').bind('click', function() {
        carousel.prev();
        return false;
    });
};

function myCarousel_itemLoadCallback(carousel, state)
{
    for (var i = carousel.first; i <= carousel.last; i++)
    {
        if (carousel.has(i)) continue;
        if (i > listaBannersInferior.length) break;
        carousel.add(i, getHtml(i-1, listaBannersInferior));
    }
};

function bannercarousel_itemLoadCallback(carousel, state)
{
    for (var i = carousel.first; i <= carousel.last; i++)
    {
        if (carousel.has(i)) continue;
        if (i > listaBannersCentro.length) break;
        carousel.add(i, getHtml(i-1, listaBannersCentro));
    }
};

function getHtml(index, tabla)
{
	if (tabla[index][1] == '')	return '<img src="'+tabla[index][0]+'" alt="'+tabla[index][2]+'"/>';
	else
	{
		if (tabla[index][3] == 'Y') return '<a href="'+tabla[index][1]+'" target="_blank"><img src="'+tabla[index][0]+'" alt="'+tabla[index][2]+'"/></a>';
		else return '<a href="'+tabla[index][1]+'"><img src="'+tabla[index][0]+'" alt="'+tabla[index][2]+'"/></a>'; 
	}
}

function bannercarousel_initCallback(carousel) {
	$('.banner_jcarousel-control a').bind('click', function() {
        carousel.scroll($.jcarousel.intval($(this).text()));
        carousel.startAuto(0); /*Para el slide al hacer click sobre los numeros*/
        return false;
    });

    $('.banner_jcarousel-scroll select').bind('change', function() {
        carousel.options.scroll = $.jcarousel.intval(this.options[this.selectedIndex].value);
        return false;
    });

	$('.jcarousel-next').bind('click', function() {
	    carousel.next();
	    carousel.startAuto(0); /*Para el slide al hacer click sobre las flechas*/
	    return false;
     
	});
   
    $('.jcarousel-prev').bind('click', function() {
        carousel.prev();
        carousel.startAuto(0); /*Para el slide al hacer click sobre las flechas*/
        return false;
    });
};

function bannerItemVisibleIn(carousel,li,index,state){
	if (document.getElementById('fotoBanner'+index)){
		document.getElementById('fotoBanner'+index).setAttribute('class','activo');
		document.getElementById('fotoBanner'+index).setAttribute('className','activo');
	}
}

function bannerItemVisibleOut(carousel,li,index,state){
	if (document.getElementById('fotoBanner'+index)){
		document.getElementById('fotoBanner'+index).removeAttribute('class');
		document.getElementById('fotoBanner'+index).removeAttribute('className');
	}
}

function myCarouselItemVisibleIn(carousel,li,index,state){
	if (document.getElementById('fotoMyCarousel'+index)){
		document.getElementById('fotoMyCarousel'+index).setAttribute('class','activo');
		document.getElementById('fotoMyCarousel'+index).setAttribute('className','activo');
	}
}

function myCarouselItemVisibleOut(carousel,li,index,state){
	if (document.getElementById('fotoMyCarousel'+index)){
		document.getElementById('fotoMyCarousel'+index).removeAttribute('class');
		document.getElementById('fotoMyCarousel'+index).removeAttribute('className');
	}
}

function promoItemVisibleIn(carousel,li,index,state){
	if (document.getElementById('fotoPromo'+index)){
		document.getElementById('fotoPromo'+index).setAttribute('class','activo');
		document.getElementById('fotoPromo'+index).setAttribute('className','activo');
	}
}

function promoItemVisibleOut(carousel,li,index,state){
	if (document.getElementById('fotoPromo'+index)){
		document.getElementById('fotoPromo'+index).removeAttribute('class');
		document.getElementById('fotoPromo'+index).removeAttribute('className');
	}
}

function promocarousel_initCallback(carousel) {
 
    $('.promo_jcarousel-control a').bind('click', function() {
        carousel.scroll($.jcarousel.intval($(this).text()));
        return false;
    });

    $('.promo_jcarousel-scroll select').bind('change', function() {
        carousel.options.scroll = $.jcarousel.intval(this.options[this.selectedIndex].value);
        return false;
    });

    $('#promocarousel-next').bind('click', function() {
        carousel.next();
        return false;
    });

    $('#promocarousel-prev').bind('click', function() {
        carousel.prev();
        return false;
    });
};
function muestraOculta(nombre1, nombre2){
    document.getElementById(nombre1).style.display="block";
    document.getElementById(nombre2).style.display="none";
    $.fn.colorbox.close();
}
function showForm() {
    oDiv = document.getElementById('overlay');
    oDiv.style.display='block';
    return false;
}

function hideForm() {
    oDiv = document.getElementById('overlay');
    oDiv.style.display='none';
    return false;
}

function setVisibility(id, visibility) {
    document.getElementById(id).style.display = visibility;
}


function formatItem(row) {
 return row[0];
} 
	
function asignarIdHotel(idSolRes) {
    $("#codigoHotel").val(idSolRes);
}
function calcularNochesEstanciaParam(date1, date2){
    if (date1 != "" && date2 != "") {
        var fecha1 = Date.fromString(date1);
        var fecha2 = Date.fromString(date2);
        var difference_ms = Math.abs(fecha2.getTime() - fecha1.getTime());
        return Math.round(difference_ms/MS_ONE_DAY);
    }
}
function calcularNochesEstancia(){
    $('#nochesEstancia').text("");
    if ($('#date1').val() != "" && $('#date2').val() != "") {
        var fecha1 = Date.fromString($('#date1').val());
        var fecha2 = Date.fromString($('#date2').val());
        var difference_ms = Math.abs(fecha2.getTime() - fecha1.getTime());
        var noches = " nights";
        if (Math.round(difference_ms/MS_ONE_DAY==1)){
        	noches = " night";
        }
        $('#nochesEstancia').text(Math.round(difference_ms/MS_ONE_DAY)+ noches);
        $('#noches').val(Math.round(difference_ms/MS_ONE_DAY));
    }
}

/*
Valida que se rellenen los combos correctamente
*/
function validarNinosSeleccionados() {
	var nHabitaciones = Number($('#numHabitaciones :selected').val());
	var i = 1;
	// Recorremos las habitaciones seleccionadas
	// Desabilitamos los ni�os restantes
	for (i; i<=nHabitaciones; i++) {
		var nNinos = Number($('#childrenRoom'+i+' :selected').val());
		var j = 1;
		// Recorremos los combos de ni�os seleccionados y comprobamos que tengan
		// un valor assignado
		for (j; j<=nNinos; j++) {
			var iValor = Number($('#child'+j+'Room'+i+' :selected').val());
			if (iValor == -1) {
				return false;
			}
		}
	}
	return true;
} 

/*
Desabilita los combos de las habitaciones sobrantes y de los ni�os tambien,
para que no se envien con los formularios.
*/
function limpiarHabitacionesYNinosSobrantes() {
	var nHabitaciones = Number($('#numHabitaciones :selected').val());
	var tHabitaciones = Number($('#numHabitaciones')[0].length);
	var i = 1;
	// Recorremos las habitaciones seleccionadas
	// Desabilitamos los ni�os restantes
	for (i; i<=nHabitaciones; i++) {
		var nNinos = Number($('#childrenRoom'+i+' :selected').val());
		var tNinos = Number($('#childrenRoom'+i)[0].length);
		var j = nNinos+1;
		// Recorremos los combos de ni�os no seleccionados y los desabilitamos
		for (j; j<tNinos; j++) {
			$('#child'+j+'Room'+i).attr('disabled','true');
		}
	}
	// Recorremos las habitaciones no seleccionadas
	// Desabilitamos las habitaciones restantes
	for (i; i<=tHabitaciones; i++) {
		$('#adultsRoom'+i).attr('disabled','true');
		$('#childrenRoom'+i).attr('disabled','true');
		$('#child1Room'+i).attr('disabled','true');
		$('#child2Room'+i).attr('disabled','true');
		$('#child3Room'+i).attr('disabled','true');
		$('#child4Room'+i).attr('disabled','true');
	}
}
function getDiaMesFecha(valor)
{
	if ((parseInt(valor, 10) < 10) && (valor.length == 1)) valor = "0" + valor;
	return valor;
}
function lanzarConsultaDisponibilidad() {
    var hayFechas = false;
    if (($('#date1').val() == "" && $('#date2').val() != "") || ($('#date1').val() != "" && $('#date2').val() == "")) {
        nAlert('Alert.ERROR_FECHAS');
        return false;
    }
    if ($('#date1').val() != "" && $('#date2').val() != "") {
        hayFechas = true;
        var fecIni = Date.fromString($("#date1").val());
		var diaIn = getDiaMesFecha(''+fecIni.getDate());
		var mesIn = getDiaMesFecha(''+(fecIni.getMonth() + 1));
		$("#dia_en").val(diaIn);
		$("#mes_en").val(mesIn);
		$("#anyo_en").val(fecIni.getFullYear());
		$("#dia").val(diaIn);
		$("#mes").val(mesIn);
	    $('#anio').val(fecIni.getFullYear());
	    		
		var fecFin = Date.fromString($("#date2").val());
		var diaOut = getDiaMesFecha(''+fecFin.getDate());
		var mesOut = getDiaMesFecha(''+(fecFin.getMonth() + 1));
		$("#dia_sa").val(diaOut);
		$("#mes_sa").val(mesOut);
		$("#anyo_sa").val(fecFin.getFullYear());

        var fecha1 = Date.fromString($('#date1').val());
		var fecha2 = Date.fromString($('#date2').val());
		var diferencia = fecha1-fecha2; 
		if (diferencia>=0){
			nAlert('Ooops! It seems that the departure date you have given us comes before your arrival date.');
			return false;
		}else{
			var fechaEntradaLimite=fecha1.getTime()+63*24*60*60*1000;
			if(fecha2.getTime() >= fechaEntradaLimite){ // Sobre pasa el rango de 62 dias de reserva
				nAlert('Sorry. Our online booking engine does not accept bookings for periods greater than two months. Please check your dates and try again. If you still have a problem, please send us an e-mail explaining the problem to reservas@solmelia.com or call your nearest Sol Meliá Customer Service centre. We would be delighted to help you. ');
				return false;
			}
		}
    } else {
        $('#dia_en').val("");
        $('#mes_en').val("");
        $('#anyo_en').val("");
        $('#dia_sa').val("");
        $('#mes_sa').val("");
        $('#anyo_sa').val("");
        $('#dia').val("");
        $('#mes').val("");
        $('#anio').val("");
        $('#noches').val("0");
    }
    
    if (document.searchForm.radio[0].checked == true) { // Vamos por destino 
        if ($('#areaone').val() != "") {
            $('#codigoHotel').val("");
            $('#searchForm').attr('action', '/search/available-hotels.htm');
        } else {
            nAlert('It seems that you have not selected a destination to search for hotels.<br>Please check back and make sure you put in a destination for your search.');
            return false;
        }
    } else { // Vamos por hotel
        if ($('#codigoHotel').val() != "") {
            $('#areaone').val("");
            $('#areatwo').val("");
            if (hayFechas) $('#searchForm').attr('action', '/search/rooms-and-rates.htm');
            else {
            	getUrlHotel($('#codigoHotel').val());
            	return;
            }
        } else {
            nAlert('Please indicate the hotel\'s name.');
            return false;
        }
    }
    if (validarNinosSeleccionados()) {
		limpiarHabitacionesYNinosSobrantes();
	} else {
		nAlert('Please, indicate the children\'s age');
		return;
	} 
    $('#searchForm').submit();
}

function getUrlHotel(codigoHotel){
	$.ajax({type: 'GET',
        url: '/nMenus/jsp/E_CargaUrlAmigable.jsp',
        data: 'codigoHotel='+codigoHotel,
        dataType: 'xml',
        success:function(xml){
            	var a = $(xml).find('url');
                if($(xml).find('url').length!=0){
                    urlHotel = $(xml).find('url').text();
                    if (urlHotel == '' || urlHotel == 'undefined' || urlHotel == null){
						urlHotel= '/nHoteles/jsp/C_Hotel_Description.jsp?codigoHotel='+$("#codigoHotel").val();
					}
    	        	document.location = urlHotel;
                }
            },
        error:function(xhr, ajaxOptions, thrownError){
               	document.location = '/nHoteles/jsp/C_Hotel_Description.jsp?codigoHotel='+$("#codigoHotel").val();
            }
        }
    );
}

function seleccionarDestino(areaone, areatwo, indiceLiteral){
    $('#motorDestino').val(nodosBuscador[indiceLiteral][2]);
    $("#areaone").val(areaone);
    $("#areatwo").val(areatwo);
    $.fn.colorbox.close();
}
function mostrarHabitaciones(numHab){
    for (var i=4; i>numHab-1; i--) {
        $('#hab'+i).hide();
        $('#childrenRoom'+(i+1)).val("0");
         mostrarEdades(i+1, 0);
    }
    for (var i=numHab-1; i>=0; i--) {
        $('#hab'+i).show();
    }
    //Escondemos los combos de edades de las habitaciones que acabamos de esconder
}
function mostrarEdades(habitacion, numero){
    var num = parseInt(numero);
    if (num == 0) {
        $("#habChildren"+habitacion).hide();
    } else {
        $("#habChildren"+habitacion).show();
        for (var i=1; i<=num; i++) {
            $('#edad'+i+'hab'+habitacion).show();
        }
        for (var i=num+1; i<=4; i++) {
            $('#edad'+i+'hab'+habitacion).hide();
        }
    }
}
function prepararPromosCentrales() {
    var ofertas = $('#promocarousel ol li');
    var numOfertas = ofertas.length;
    var numFilas = 5;
    var iteraciones = Math.ceil(numOfertas/numFilas);
    for (var i=0; i< iteraciones; i++) {
        $('#promocarousel ul.promosgroup:eq('+ i +')').append($('#promocarousel ol li:lt('+ numFilas +')'));
        $('#promocarouselControl').append('<a id="fotoPromo'+ (i+1) +'" href="#">'+ (i+1) +'</a>');
    }
    for (var i=1; i< iteraciones; i++) {
        var indice = numFilas*i-1;
        $('#promocarousel ul.promosgroup li:eq('+ indice +')').addClass('last');
    }
    $('#promocarousel ul:first>li:gt('+ (iteraciones-1) +')').remove();
    $('#promocarousel ol').remove();
    $("#promocarousel").jcarousel({
        scroll: 1,
        wrap: 'last',
        initCallback: promocarousel_initCallback,
        itemVisibleInCallback: promoItemVisibleIn,
        itemVisibleOutCallback: promoItemVisibleOut
    });
    var a = $('#promocarouselControl a');
    if (a.length==1){
    	$('#promocarouselControl').hide();
    	$('#promocarousel .jcarousel-prev').hide();
    	$('#promocarousel .jcarousel-next').hide();
    }
}
function zeroFill(rellenar, num) {
    var rellenarTRIM = rellenar+"";
    rellenarTRIM = rellenarTRIM.replace(/^\s*|\s*$/g,"");
    while (rellenarTRIM.length < num) { rellenarTRIM = '0'+rellenarTRIM; }
    return rellenarTRIM;
}


function logoutMasHome() {
	try{
		$.ajax({type: 'GET',
				url: '/nMas/jsp/E_Logout.jsp',
				dataType: "text",
				success: function(xml){
                    actualizarLoginHome();
			    },
				error:function (xhr, textStatus, thrownError){
					//CASO DE ERROR
					nAlert("Error en la consulta: "+textStatus);
                    actualizarLoginHome();
				}
			});
	} catch(err){
		nAlert("ERROR");
	}
}

function actualizarLoginHome(){
	$("div#panel").slideUp("slow");
	$.post("/nMenus/jsp/B_masMenuHome.jsp", null, function(data){
		/// Ponemos la respuesta de nuestro script en el DIV recargado
		$("#ProgramaMASLogin").html(data);
	}); 
	$.post("/nMenus/jsp/menuSlideMas.jsp", null, function(data){
		 /// Ponemos la respuesta de nuestro script en el DIV recargado
		$("#slide_login").html(data);
		initSlideHome();
	}); 
}

function initSlideHome(){
	// Expand Panel
	$("#open").click(function(){
		$("div#panel").slideDown("slow");	
	});	
	
	// Collapse Panel
	$("#close").click(function(){
		$("div#panel").slideUp("slow");	
	});		
	
	// Switch buttons from "Log In | Register" to "Close Panel" on click
	$("#toggle a").click(function () {
		$("#toggle a").toggle();
	});		
	$("#olvPasswordFormSlide").colorbox({width:"560", height:"380", resize:false, iframe:true, opacity:"0.25"});	
	$("#olvEmailFormSlide").colorbox({ width:"560", height:"380", resize:false, iframe:true, opacity:"0.25"});
    //Boton login mas
    //$("#botonLoginMas").removeAttr('onclick');
 	//$("#botonLoginMas").click(function(){loginMasHome('formularioMASUp');});
 	if (document.getElementById("aspaLogoutMas"))document.getElementById("aspaLogoutMas").href="javascript:logoutMasHome();";
}

function validarLoginMas(){
    var formulario = "f2";
	$('#emailMas').removeClass('errorForm');
	$('#passMas').removeClass('errorForm');
    $('#errorEmailMas').hide();
    $('#errorPassMas').hide();
	if ($('#emailMas').val() != "" && $('#passMas').val() != "") {
        loginMas(formulario);
	} else {
		if ($('#emailMas').val()== "" ){
	    	$('#emailMas').addClass('errorForm');
	    	$('#errorEmailMas').show();
	    }
	    if ($('#passMas').val()== ""){
	    	$('#passMas').addClass('errorForm');
            $('#errorPassMas').show();
        }
		return (false);
	}
}

function validarEmailNewsletter(){
	$('#suscEmail').removeClass('errorForm');
    $('#errorSuscEmail').hide();
    $('#errorEmail').hide();
    var valor = $("#suscEmail").val();
    var nuevoLink = "/nSubscriber/jsp/C_Subscribe_Newsletter.jsp?email=" + valor;
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)) {
		$.fn.colorbox({width:"610", height:"500", resize:false, open: true, href:nuevoLink, iframe:true, scrolling:"no", scrolling:"noresize", opacity:"0.25"});
		return (true)
	} else {
		$("#suscripcion").attr('href', 'javascript:void(0);');
    	$('#suscEmail').addClass('errorForm');
		$('#errorSuscEmail').show();
		return (false);
	}
}
//
//  INICIALIZACIONES
//
$(document).ready(function() {
	var pos = $('#motorDestino').offset();
	// Declaramos el colorbox para los destinos
	
	$("#motorDestino").colorbox({
		width: "700",
		resize: true,
		inline:true,
        href:"#overlay",
        opacity:"0",
        initialPosTop: pos.top-60,
        initialPosLeft: pos.left-25
    });
 	
	var newHtml = "";
	for (var i=1; i<=listaBannersInferior.length; i++)
	{
		newHtml += '<a id="fotoMyCarousel'+i+'" href="#">'+i+'</a>&nbsp;';
	}
	$("#mycarouselNums").html(newHtml);
		
    $("#mycarousel").jcarousel({
        scroll: 1,
		auto : 7,
        wrap: 'last',
        initCallback: mycarousel_initCallback,
        itemVisibleInCallback: myCarouselItemVisibleIn,
        itemVisibleOutCallback: myCarouselItemVisibleOut,
		size: listaBannersInferior.length,
		itemLoadCallback: {onBeforeAnimation: myCarousel_itemLoadCallback}
    });
});

$().bind('cbox_complete', function(){$("#cboxTitle").hide();});
