// JavaScript Document

// *********************************************************************************************
// Funciones para comprobar cosas

function envia_formulario (formulario) {
	enviaok=0;
	elementoform=document.getElementById(formulario);
	if (elementoform.nombre.value=="") alert ("Por favor, inserte su nombre");
	else if (elementoform.poblacion.value=="") alert ("Debe escribir su población");
	else if (elementoform.provincia.value=="") alert ("¿De qué provincia es su población?");
	else if (elementoform.telefono.value=="") alert ("Por favor, escriba su número de teléfono");
	//else if ((elementoform.datos_tarjeta.value.length!=15)&&(elementoform.datos_tarjeta.value.lenght!=16)) alert ("Escriba el número de su tarjeta de crédito");
	else if (elementoform.email.value=="") alert ("Necesitamos saber su correo electrónico para poder responderle");
	else if (elementoform.email.value!=elementoform.repemail.value) alert ("Debe escribir el mismo email en los dos recuadros");
	//else if (elementoform.dni.value=="") alert ("Por favor, escriba su dni");
	else if (elementoform.comentario.value=="") alert ("Debe escribir algún mensaje o comentario");
	else {
		if (comprueba_mail(elementoform.email.value)) enviaok=1;
		else alert ("El formato del correo electrónico parece ser incorrecto");
	}
	if (enviaok==1) {
		elementoform.dataform.value=informacion_navegador();
		elementoform.Submit.disabled=true;
		elementoform.submit();
	}
}

function comprueba_mail(texto){ if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3,4})+$/.test(texto)){   return true;  } else {   return false; }} 

function informacion_navegador() {
 return "Navegador: "+navigator.appName+"<br>Codename: "+navigator.appCodeName+"<br>Version: "+navigator.appVersion.substring(0,4)+"<br>Sistema Operativo: "+navigator.platform+"<br>Java: "+navigator.javaEnabled()+"<br>Pantalla: "+screen.width+"px x "+screen.height+"px";
}

function abre_calendario(num){
	var error=0;
	var entrada="";
	if (num==2) {
		if (document.formulariocalendario.fecha1.value=="") {
			error=1;
			alert("Seleccione antes la fecha de entrada");	
		} else {
			entrada = '&entrada='+document.formulariocalendario.fecha1.value;
		}
	}
	if (error==0) {
		window.open('/includes/calendario.php?fecha='+num+entrada+"&directo=si",'iframefechas');
		document.getElementById('capacalendario').style.visibility="visible";	
		document.getElementById('capacalendario').style.display="block";		
	}
}
function cierra_calendario() {
	document.getElementById('capacalendario').style.visibility="hidden";	
	document.getElementById('capacalendario').style.display="none";	
}
	
function calcula_numero(num){
	var error_disponibilidad=1;
	var precio_habitacion=0;
	var precio_desayuno=0;
	// explorer 8 y anteriores
	indiceadulto = document.getElementById("adulto"+num).selectedIndex;
	valoradulto = document.getElementById("adulto"+num).options[indiceadulto].value;
	indicenino = document.getElementById("nino"+num).selectedIndex;
	valornino = document.getElementById("nino"+num).options[indicenino].value;
	var total=parseFloat(valoradulto)+parseFloat(valornino);
	// hasta aqui
	//var total = parseInt(document.getElementById("adulto"+num).value)+parseInt(document.getElementById("nino"+num).value);
	if (total>+num_max_capacidad) {
		alert("La máxima capacidad de nuestras habitaciones es de "+num_max_capacidad+" personas");
	} else {
		// buscamos la mejor habitación con respecto a la capacidad
		for (i=0;i<array_habitaciones.length;i++){ 
			if (array_habitaciones[i][1]==total) {
				// tipo de habitacion: individual, doble, triple, ...
				document.getElementById("celdahabitacion"+num).innerHTML=array_habitaciones[i][0];
				document.getElementById("campohabitacion"+num).value=array_habitaciones[i][0];
				// tarifa aplicable: tarifa de la habitación para los días seleccionados
				if (document.getElementById("casillareembolsable"+num).checked===true) tarifa=parseFloat(array_habitaciones[i][5]);
				else tarifa=parseFloat(array_habitaciones[i][3]);
				// revisamos si debemos aplicar descuento por niño y calculamos el precio medio por noche de la habitación
				if (valornino>0) precio_habitacion=(tarifa-((tarifa*parseFloat(array_habitaciones[i][4]))/100))+" &euro;";
				else precio_habitacion=tarifa+" &euro;";
				document.getElementById("precio"+num).innerHTML=formato_numero((parseFloat(precio_habitacion)/num_dias),2,",",".");
				// añadimos el precio del desayuno si fuera necesario
				if (document.getElementById("casilladesayuno"+num).checked===true) precio_desayuno=parseFloat(array_habitaciones[i][6])*total;
				precio_total=((parseFloat(precio_habitacion)+precio_desayuno));
				document.getElementById("total"+num).innerHTML=formato_numero(precio_total,2,",",".")+" &euro;";
				// sin errores
				total_pagos=total_pagos+precio_total;
				array_habitaciones[i][10]++;
				error_disponibilidad=0;
			}
		} 
	}
	if (error_disponibilidad==1) {
		document.getElementById("celdahabitacion"+num).innerHTML="sin disponibilidad";				
		document.getElementById("precio"+num).innerHTML="";			
	}
}

function disponibilidad(){
	error=0;
	for (i=0;i<array_habitaciones.length;i++) {
		if (array_habitaciones[i][10]>0) {
			// se ha seleccionado alguna, comprobamos disponibilidad
			if (array_habitaciones[i][10]<=array_habitaciones[i][2]) {
				document.getElementById("habitaciondisponible"+i).innerHTML='<div align="left" style="color:#99cc00">disponible</div>';							
			} else {
				if (array_habitaciones[i][2]>0)	document.getElementById("habitaciondisponible"+i).innerHTML='<div align="left" style="color:#990000">s&oacute;lo '+array_habitaciones[i][2]+' disponibles</div>';	
				else document.getElementById("habitaciondisponible"+i).innerHTML='<div align="left" style="color:#990000">sin disponibilidad</div>';
				error=1;								
			}
			// lo mostramos
			document.getElementById("lineahabitacion"+i).style.display="block";
			document.getElementById("lineahabitacion"+i).style.visibility="visible";
		} else {
			// no se ha seleccionado el tipo en cuestión
			document.getElementById("lineahabitacion"+i).style.display="none";
			document.getElementById("lineahabitacion"+i).style.visibility="hidden";
		}
	}
	if (error==0) document.formreserva.tramitareserva.disabled=false;
	else document.formreserva.tramitareserva.disabled=true;
}

var total_pagos=0;
function calcula_todo(){
	// inicializamos el contador de tipos
	for (i=0;i<array_habitaciones.length;i++) array_habitaciones[i][10]=0;
	var n=0;
	total_pagos=0;
	while (n<num_habitaciones){
		calcula_numero(n+1);
		n++;	
	}
	document.getElementById("totalapagar").innerHTML=formato_numero(total_pagos,2,",",".");
	document.formreserva.preciototal.value=formato_numero(total_pagos,2,",",".");
	document.getElementById("chivato").innerHTML=array_habitaciones[0][10]+" "+array_habitaciones[1][10]+" "+array_habitaciones[2][10];
	disponibilidad();
}

/*
  * Da formato a un número para su visualización
  *
  * numero (Number o String) - Número que se mostrará
  * decimales (Number, opcional) - Nº de decimales (por defecto, auto)
  * separador_decimal (String, opcional) - Separador decimal (por defecto, coma)
  * separador_miles (String, opcional) - Separador de miles (por defecto, ninguno)
  */
 function formato_numero(numero, decimales, separador_decimal, separador_miles){ // v2007-08-06
     numero=parseFloat(numero);
     if(isNaN(numero)){
         return "";
     }
 
    if(decimales!==undefined){
         // Redondeamos
         numero=numero.toFixed(decimales);
     }
 
    // Convertimos el punto en separador_decimal
     numero=numero.toString().replace(".", separador_decimal!==undefined ? separador_decimal : ",");
 
    if(separador_miles){
         // Añadimos los separadores de miles
         var miles=new RegExp("(-?[0-9]+)([0-9]{3})");
         while(miles.test(numero)) {
             numero=numero.replace(miles, "$1" + separador_miles + "$2");
         }
     }
 
    return numero;
 }
 
function irA(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 comprueba_formulario() {
	if (document.formreserva.datos_nombre.value=="") alert("Escriba su nombre completo");
	else if (document.formreserva.datos_apellidos.value=="") alert("Escriba sus apellidos");
	else if (document.formreserva.datos_direccion.value=="") alert("Escriba su dirección");
	else if (document.formreserva.datos_ciudad.value=="") alert("¿De qué ciudad es usted?");
	else if (document.formreserva.datos_cpostal.value=="") alert("¿Cuál es el código postal de su ciudad?");
	else if (document.formreserva.datos_pais.value=="") alert("Díganos de qué país es, por favor.");
	//else if (document.formreserva.datos_dni.value=="") alert("Escriba su DNI completo");
	//else if (ValidarDni(document.formreserva.datos_dni.value)===false) alert("Su DNI parece ser incorrecto");
	else if (document.formreserva.datos_telefono.value=="") alert("Necesitamos un teléfono de contacto");
	else if (document.formreserva.datos_email.value=="") alert("Necesitamos su email para enviarle el justificante");
	else if (comprueba_mail(document.formreserva.datos_email.value)===false) alert("El email parece ser incorrecto");
	else if (document.formreserva.datos_tarjeta.value=="") alert("Debe indicarnos el número de su tarjeta de crédito para hacer efectiva la reserva");
	else if (ValidarTJ(document.formreserva.datos_tarjeta.value)===false) alert("El número de su tarjeta de crédito no parece ser válido");
	else document.formreserva.submit();
}

function ValidarTJ(numero_tarjeta) {
	var cadena = numero_tarjeta.toString();
	var longitud = cadena.length;
	/*var cifra = null;
	var cifra_cad=null;
	var suma=0;
	for (var i=0; i < longitud; i+=2){
		cifra = parseInt(cadena.charAt(i))*2;
		if (cifra > 9){ 
			cifra_cad = cifra.toString();
			cifra = parseInt(cifra_cad.charAt(0)) + 
			parseInt(cifra_cad.charAt(1));
		}
		suma+=cifra;
	}
	for (var i=1; i < longitud; i+=2){
		suma += parseInt(cadena.charAt(i));
	}
	
	if ((suma % 10) == 0) return true;
	else return false;*/
	if ((longitud==15)||(longitud==16)) return true;
	else return false;
}

function ValidarDni(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!=let.toUpperCase()) return false;
	else return true;
}

function imprSelec(nombre)
{
  var ficha = document.getElementById(nombre);
  var ventimp = window.open(' ', 'popimpr');
  ventimp.document.write( ficha.innerHTML );
  ventimp.document.close();
  ventimp.print( );
  ventimp.close();
} 

