var flowplayer_key="#@77da14f1f33c7deaec4";

$(document).ready(
    function()
    {
        // Establecemos el click para todos los reproductores de vídeo de la página
        $("a.videoplayer").click(function() {
           $(this).flowplayer("/swf/flowplayer.swf",{ key: flowplayer_key });
           return false;
        });
        $("a.videoplayer_playlist").each(function() {
            $.ajax({
                async:true,
                dataType:'script',
                url: "/videos/load_playlist/" + $(this).attr("id").split("_")[1]
            });

        });
        // Cargamos todos los flash de la página
        $("div.flash_container").each(function() {
            var flashvars = {};
            var params = {
                wmode: "transparent"
            };
            var attributes = {
                wmode: "transparent"
            };
            id = $(this).attr("id").split("_")[1];
            width = $(this).attr("width");
            height = $(this).attr("height");
            file = $(this).attr("file");
            div_id = "flash_replace_" + id;
            swfobject.embedSWF(file, div_id, width, height, "8.0.0","",flashvars,params,attributes);

        });
        // Todos los enlaces de tipo nicedit_external_link han de abrirse en una ventana nueva
        $("a[rel='external']").click(function() {
            window.open($(this).attr("href"));
            return false;
        });
                //Ocultamos los divs vacíos
        $(".botones-cms").each(function() {
            if ($(this).children().length==0) {
                $(this).hide();
            }
        });
        $(".gmap").each(function() {
            if ($(this).children().length==0) {
                $(this).hide();
            }
        });
        $(".galeria").each(function() {
            if ($(this).children().length==0) {
                $(this).hide();
            }
        });

    }
    );

function load_videos_from_folder(folder,videos,width,height) {
    var pl = [];
    for(var i=0;i<videos.length;i++) {
       pl.push({url: videos[i]});
    }
    $("a.videoplayer_playlist[id=videos_" + folder + "]").click(function() {
        $(this).flowplayer("/swf/flowplayer.swf",{ key: flowplayer_key,  playlist: pl, plugins: {controls: {playlist: true }} });
        return false;
    });
}

function load_videos_from_folder_and_start(folder,videos,width,height) {
    alert(folder);
    alert(videos[0]);
    var pl = [];
    for(var i=0;i<videos.length;i++) {
       pl.push({url: videos[i]});
    }
    $("a.videoplayer_playlist[id=videos_" + folder + "]").flowplayer("/swf/flowplayer.swf",{ key: flowplayer_key, playlist: pl, plugins: {controls: {playlist: true }} });
}

function addCodeToFunction(func,code){
    if(func == undefined)
	return code;
    else{
	return function(){
	    func();
	    code();
	}
    }
}

//Ir a un ancla
function goToAnchor(elemID){
	var offsetTrail = document.getElementById(elemID);
    var offsetLeft = 0;
    var offsetTop = 0;
    while (offsetTrail) {
        offsetLeft += offsetTrail.offsetLeft;
        offsetTop += offsetTrail.offsetTop;
        offsetTrail = offsetTrail.offsetParent;
    }
    if (navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined" && navigator.appName == "Microsoft Internet Explorer") {
        offsetLeft += parseInt(document.body.leftMargin);
        offsetTop += parseInt(document.body.topMargin);
    }
    window.scrollTo(offsetLeft, offsetTop)
}

function show_habitacion(id,cat){
	$("#categoria_"+cat).hide();
	$('#habitacion_b_'+id).show();
}

function hide_habitacion(id,cat){
	$("#categoria_"+cat).show();
	$('#habitacion_b_'+id).hide();
}


function iniciar_aleatorio(cat){
	//var timeout_hab = 
	setInterval("cambiar_habitacion("+cat+")", 4 * 1000)
}

function cambiar_habitacion(cat){
	//alert("Paso por aki "+cat);
	a = $("#categoria_"+cat+" .aleatorias.mostrandose");
	a.removeClass("mostrandose");
	a.hide();
	b = a.next();
	
	ultima = $("#categoria_"+cat+" .aleatorias:last");
	primera = $("#categoria_"+cat+" .aleatorias:first");
	if(a.attr("id") == ultima.attr("id")){
		primera.show();
		primera.addClass("mostrandose");
	}else{
		b.show();
		b.addClass("mostrandose");
	}
}


function aleatorio_evento_noticia(solo_noticia){
	if(solo_noticia == 1){
		$("#evento_portada").hide();
	}else{
		if(Math.ceil(Math.random()*10) % 2 == 0){
			$("#noticia_portada").hide();
		}else{
			$("#evento_portada").hide();
		}
	}
}





/*
 * Valida el formulario general para la reserva online, tanto la parte izquierda como la parte derecha.
 * Si hay algún error por datos incompletos se mostrarán ALERTS indicando el error.
 */
function valida_formulario_reserva_online(){
	//return true;
	var bValido = true;
	var sMsg = "";
	
	//Controlo que haya seleccionado fecha de llegada, fecha de salida y numero de habitaciones que desea reservar
	//fEntrada = document.getElementById("entrada").value;
	// los 3 input para fecha de llegada
	fecha_llegada_dd = $("#reserva_fecha_llegada-dd").attr("value");
	fecha_llegada_mm = $("#reserva_fecha_llegada-mm").attr("value");
	fecha_llegada_yyyy = $("#reserva_fecha_llegada").attr("value");
	
	
	if(fecha_llegada_dd=='' || fecha_llegada_mm=='' || fecha_llegada_yyyy=='') {
		alert(t("central_reservas.fecha_llegada_incompleta"));
		return false;
	}
	
	
	// los 3 input para la fecha de salida
	fecha_salida_dd = $("#reserva_fecha_salida-dd").attr("value");
	fecha_salida_mm = $("#reserva_fecha_salida-mm").attr("value");
	fecha_salida_yyyy = $("#reserva_fecha_salida").attr("value");
	
	if(fecha_salida_dd=='' || fecha_salida_mm=='' || fecha_salida_yyyy=='') {
		alert(t("central_reservas.fecha_salida_incompleta"));
		return false;
	}
	
	// se obtiene la fecha actual (devuelve también la hora)
	fechaActual = new Date();
	dia = fechaActual.getDate();
	mes = fechaActual.getMonth();
    ano = fechaActual.getYear();
	// como queremos que la hora, minutos y segundos sean 00:00:00, hay que crear la fecha actual 'a mano' para sólo inicializar el año, mes y día
	fecha_actual = new Date(ano, mes, dia);
	
	
	// ahora se ha de comprobar que la fecha de llegada sea menor que la fecha de salida
	// ATENCION!!!: al mes hay que restar 1 porque los meses en javascript empiezan en 0
	fecha_llegada = new Date(fecha_llegada_yyyy, fecha_llegada_mm-1, fecha_llegada_dd);
	fecha_salida = new Date(fecha_salida_yyyy, fecha_salida_mm-1, fecha_salida_dd);
	

	// se comprueba que la fecha de llegada sea posterior a la actual
	if(fecha_llegada < fecha_actual) {
		alert(t("central_reservas.fecha_llegada_no_menor_fecha_actual"));
		return false;
	}
	
	// se comprueba que la fecha de entrada sea anterior a la de salida
	if(fecha_llegada >= fecha_salida) {
		alert(t("central_reservas.fecha_llegada_no_menor_fecha_salida"));
		return false;
	}
	
	
	//fSalida  = document.getElementById("salida").value;
	numero_habitaciones= $("#numero_habitaciones").attr("value");
	
	if (numero_habitaciones=='--' && numero_habitaciones==0) {
		alert(t("central_reservas.seleccionar_minimo_habitacion"))
		return false;
	}

	
	// se ha de controlar que las habitaciones que se hayan reservado no haya ninguna de ellas que no esté disponible
	disponible = 1

	switch (parseInt(numero_habitaciones)) {
		case 1: valido1 = $("#disponibilidad_habitacion_0").attr("value");
				if (valido1 == '')	{
					disponible = 0
				}		   
			    break 
		case 2: valido1 = $("#disponibilidad_habitacion_0").attr("value");
				valido2 = $("#disponibilidad_habitacion_1").attr("value");
				if (valido1 =='' || valido2 == '')	{
					disponible = 0
				}		   
			    break 
		case 3: valido1 = $("#disponibilidad_habitacion_0").attr("value");
				valido2 = $("#disponibilidad_habitacion_1").attr("value");
				valido3 = $("#disponibilidad_habitacion_2").attr("value");
				if (valido1=='' || valido2=='' || valido3==''){
					disponible = 0
				}		   
			    break 
		case 4: valido1 = $("#disponibilidad_habitacion_0").attr("value");
				valido2 = $("#disponibilidad_habitacion_1").attr("value");
				valido3 = $("#disponibilidad_habitacion_2").attr("value");
				valido4 = $("#disponibilidad_habitacion_3").attr("value");
				if (valido1=='' || valido2=='' || valido3=='' || valido4==''){
					disponible = 0
				}		   
			    break 
		case 5: valido1 = $("#disponibilidad_habitacion_0").attr("value");
				valido2 = $("#disponibilidad_habitacion_1").attr("value");
				valido3 = $("#disponibilidad_habitacion_2").attr("value");
				valido4 = $("#disponibilidad_habitacion_3").attr("value");
				valido5 = $("#disponibilidad_habitacion_4").attr("value");
				if (valido1=='' || valido2=='' || valido3=='' || valido4=='' || valido5==''){
					disponible = 0
				}		   
			    break 		   
	} 

	if (disponible == 0){
		alert(t("central_reservas.seleccionar_habitaciones_disponibles"));
		return false;
	}
	
	
	// se comprueba ahora que los datos personales del formulario estén completos cuando estos son requeridos
	// además se validarán algunos campos tales como el email para comprobar su correcta sintaxis
	if (document.formulario_reserva.elements.length !=0 ){ 
		var nombre = document.formulario_reserva.reserva_nombre.value;
		var apellido1 = document.formulario_reserva.reserva_apellido1.value;
		var apellido2 = document.formulario_reserva.reserva_apellido2.value;
		var nif = document.formulario_reserva.reserva_nif.value;
		var direccion = document.formulario_reserva.reserva_direccion.value;
		var codigo_postal = document.formulario_reserva.reserva_codigo_postal.value;
		var localidad = document.formulario_reserva.reserva_localidad.value;
		var provincia = document.formulario_reserva.reserva_provincia.value;
		var comunidad = document.formulario_reserva.reserva_comunidad.value;
		var email = document.formulario_reserva.reserva_email.value;
		var telefono = document.formulario_reserva.reserva_telefono.value;
		var nacion_id = document.formulario_reserva.reserva_nacion_id.value;
		var legal_check = document.formulario_reserva.reserva_legal_check.value;
		var numero_tarjeta = document.formulario_reserva.reserva_numero_tarjeta.value;
		var codigo_tarjeta = document.formulario_reserva.reserva_codigo.value;


		if(nombre == ''){
			sMsg = sMsg + t("central_reservas.nombre_requerido");
			bValido = false;
		}		
		
		if(apellido1 == ''){
			sMsg = sMsg + t("central_reservas.apellido1_requerido");
			bValido = false;
		}			
		if(nif == '')
                {
                        sMsg = sMsg + t("central_reservas.nif_requerido");
			bValido = false;
                }
		if(direccion == ''){
			sMsg = sMsg + t("central_reservas.direccion_requerido");
			bValido = false;
		}		
		
		if(codigo_postal == ''){
			sMsg = sMsg + t("central_reservas.codigo_postal_requerido");
			bValido = false;
		}		
		
		if(localidad == ''){
			sMsg = sMsg + t("central_reservas.localidad_requerido");
			bValido = false;
		}				
		
		if(nacion_id == ''){
			sMsg = sMsg + t("central_reservas.pais_requerido");
			bValido = false;
		}
		
		if(telefono == ''){
			sMsg = sMsg + t("central_reservas.telefono_requerido");
			bValido = false;
		}
		
		if(nif != ''){
			if(!nif_valido(nif)){
				sMsg = sMsg + t("central_reservas.nif_incorrecto");
				bValido = false;
			}
		}
		
		if(email==''){
			sMsg = sMsg + t("central_reservas.email_requerido");
			bValido = false;
		}else{
			if(email_valido(email)== false){
				sMsg = sMsg + t("central_reservas.email_incorrecto");
				bValido = false;
			}
		}	
		
		
		if(numero_tarjeta == ''){
			sMsg = sMsg + t("central_reservas.numero_tarjeta_requerido");
			bValido = false;
		} else {
			if(!validarTarjeta(numero_tarjeta)) {
				sMsg = sMsg + t("central_reservas.numero_tarjeta_incorrecto");
			   	bValido = false;
			}
      	}
			
		if(codigo_tarjeta == ''){
			sMsg = sMsg + t("central_reservas.codigo_tarjeta_requerido");
			bValido = false;
		} else {
			if(!validarCodigoTarjeta(codigo_tarjeta)) {
				sMsg = sMsg + t("central_reservas.codigo_tarjeta_incorrecto");
			   	bValido = false;
			}
      	}
						
		if(!document.formulario_reserva.reserva_legal_check.checked){
			sMsg = sMsg + t("central_reservas.politica_privacidad_requerida");
			bValido = false;
		}		
		
		
	}
	else{
		alert(t("central_reservas.fechas_estancia_requeridas"));
		return false;
		}
	if(!bValido){
		alert(t("central_reservas.comprobar_datos")+sMsg);
		return false;
	}else{
		//Quitamos el boton de la reserva
		$("#boton-confirmar-reserva").remove();
		return true;
	}
} // validar_formulario_reserva_online



function validarTarjeta(campo) {
  //Limpiamos el número de tarjeta  de posibles espacios en blanco...
  var expReg = /\W/gi;
  var numero = campo.replace(expReg, "");

  //Chequeamos que el numero entrado tenga formato numérico...
  if (isNaN(numero)) {
	//alert("El número de la tarjeta de crédito no tiene formato numérico.");
	//campo.focus();
	return false;
  }
  //Chequeamos que el numero tenga 16 o 18 dígitos...
  if ((numero.length!=16) && (numero.length!=18)) {
	 //alert("El número de dígitos en la tarjeta de crédito es incorrecto.");
	 //campo.focus();
	 return false;
  }
  var suma = 0;
  for (i = numero.length; i > 0; i--) {
	//Si la posición es impar
	if (i % 2 == 1) {
	  var doble = "" + (parseInt(numero.substring(i - 1, i)) * 2);
	  //Si el doble tiene más dos cifras (o sea es mayor que 9)
	  if (doble.length == 2) {
		 doble = parseInt(doble.substring(0,1)) + parseInt(doble.substring(1,2));
	  }
	  suma += parseInt(doble);
	}
	//Si la posición es par
	else {
	  suma += parseInt(numero.substring(i - 1, i));
	}
  }
  //Si la suma total no es divisible por 10 entonces el número no es válido
  if (suma % 10 != 0) {
	//alert("El número de la tarjeta de crédito no es válido.");
	//campo.focus();
	return false;
  }
  //En cualquier otro caso el número es válido
  return true;
}






/*
 * Valida el formulario para realizar una reserva desde una de las habitaciones.
 * No dejará ir al formulario general de reservas si hay algún error.
 * Si hay algún error por datos incompletos se mostrarán ALERTS indicando el error.
 */
function valida_formulario_previo_reserva_online(){
	var bValido = true;
	var sMsg = "";
	
	//Controlo que haya seleccionado fecha de llegada, fecha de salida y numero de habitaciones que desea reservar
	//fEntrada = document.getElementById("entrada").value;
	// los 3 input para fecha de llegada
	fecha_llegada_dd = $("#reserva_fecha_llegada-dd").attr("value");
	fecha_llegada_mm = $("#reserva_fecha_llegada-mm").attr("value");
	fecha_llegada_yyyy = $("#reserva_fecha_llegada").attr("value");
	
	
	if(fecha_llegada_dd=='' || fecha_llegada_mm=='' || fecha_llegada_yyyy=='') {
		alert(t("fecha_llegada_incompleta"));
		return false;
	}
	
	
	// los 3 input para la fecha de salida
	fecha_salida_dd = $("#reserva_fecha_salida-dd").attr("value");
	fecha_salida_mm = $("#reserva_fecha_salida-mm").attr("value");
	fecha_salida_yyyy = $("#reserva_fecha_salida").attr("value");
	
	if(fecha_salida_dd=='' || fecha_salida_mm=='' || fecha_salida_yyyy=='') {
		alert(t("fecha_salida_incompleta"));
		return false;
	}
	
	// se obtiene la fecha actual (devuelve también la hora)
	fechaActual = new Date();
	dia = fechaActual.getDate();
	mes = fechaActual.getMonth();
    ano = fechaActual.getYear();
	// como queremos que la hora, minutos y segundos sean 00:00:00, hay que crear la fecha actual 'a mano' para sólo inicializar el año, mes y día
	fecha_actual = new Date(ano, mes, dia);
	
	
	// ahora se ha de comprobar que la fecha de llegada sea menor que la fecha de salida
	// ATENCION!!!: al mes hay que restar 1 porque los meses en javascript empiezan en 0
	fecha_llegada = new Date(fecha_llegada_yyyy, fecha_llegada_mm-1, fecha_llegada_dd);
	fecha_salida = new Date(fecha_salida_yyyy, fecha_salida_mm-1, fecha_salida_dd);
	

	// se comprueba que la fecha de llegada sea posterior a la actual
	if(fecha_llegada < fecha_actual) {
		alert(t("central_reservas.fecha_llegada_no_menor_fecha_actual"));
		return false;
	}
	
	// se comprueba que la fecha de entrada sea anterior a la de salida
	if(fecha_llegada >= fecha_salida) {
		alert(t("central_reservas.fecha_llegada_no_menor_fecha_salida"));
		return false;
	}
	
	
	// se validarán ahora campos como el tipo de habitación y el tratamiento
	// ambos deben estar seleccionados
	tipo_habitacion_id = $("#tipo_habitacion_habitacion_0").attr("value");
	if(tipo_habitacion_id == '' && tipo_habitacion_id == 0) {
		alert(t("central_reservas.seleccionar_minimo_habitacion"));
		return false;
	}
	tipo_tratamiento_id = $("#tipo_tratamiento_habitacion_0").attr("value");
	if(tipo_tratamiento_id == '' && tipo_tratamiento_id == 0) {
		alert(t("central_reservas.regimen_requerido"));
		return false;
	}
	
	
	// si llega aquí es que todo ha sido correcto
	return true;
} // validar_formulario_previo_reserva_online





function actualizar_valor_combo_numero_habitaciones(valor) {
	combo = $('#numero_habitaciones');
	combo.attr('value', valor);
	return false;
} //actualizar_valor_combo_numero_habitaciones



function cambiar_valor_input_fecha(valores) {
	$('#'+valores[0]).attr('value', valores[1]);

	return false;
} //actualizar_valor_combo_numero_habitaciones




function nif_valido(dni) {
	numero = dni.substr(0,dni.length-1);
	let = dni.substr(dni.length-1,1);
	numero = numero % 23;
	letra='TRWAGMYFPDXBNJZSQVHLCKET';
	letra=letra.substring(numero,numero+1);
	if (letra.toLowerCase != let.toLowerCase)
		return false;
	else
		return true;
} //nif_valido



function email_valido(valor) {
	emailRegexp = /^(.+)@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	if (emailRegexp.test(valor)) {	
		return true;
	}
	return false;
 } //email_valido

function validarCodigoTarjeta(valor) {
	codigoRegexp = /^(\d{3})$/;
	if (codigoRegexp.test(valor)) {	
		return true;
	}
	return false;
 } //codigo_valido
  
function t(key) {
	return eval("voranet_locales." + key);
} 
 
