// JavaScript Document
function cambiaIdioma(idioma) {
	document.getElementById("elegidoIdioma").value = idioma;
	document.forms[0].submit();
}

function cambiaColor (obj, clr) {
	obj.style.backgroundColor = clr;
}

function disponibilitat () {
	var fIni = document.getElementById("fechaInicioPrecio").value;
	var fFin = document.getElementById("fechaFinPrecio").value;
	var idioma = document.getElementById("elegidoIdioma").value;
	
	var reg  =  /^\d+$/;
	if (!reg.test(document.getElementById("txtCantitat").value) ) {
		if (idioma == 2)
			alert("Nombre de persones incorrecte");
		else
			if (idioma == 1)
				alert("Número de personas incorrecto");
			else
				if (idioma == 3)
					alert("Number of people is wrong");
		return false;
	}
	
	if (document.getElementById("txtAnimals").value != "") {
		if (document.getElementById("txtAnimals").value != -1) {
			if (!reg.test(document.getElementById("txtAnimals").value)) {
				if (idioma == 2)
					alert("Nombre d'animals incorrecte");
				else
					if (idioma == 1)
						alert("Número de animales incorrecto");
					else
						if (idioma == 3)
							alert("Number of pets is wrong");
				return false;	
			}
		}
	}
	else {
		document.getElementById("txtAnimals").value = 0;
	}

	if (fIni != "" && fFin != ""){
		var validas = checkDate(fIni, fFin);
		if (validas == 1){
			if (document.location.href.indexOf("ck=") == -1)
				document.forms[0].action = document.location.href + "&ck=1";
			
			document.forms[0].submit();
		}
		else{
			return false;
		}
	}
	else {
		if (idioma == 2)
			alert("Les dos dates són necessaries");
		else 
			if (idioma == 1)
				alert("Las dos fechas son necesarias");
			else
				if (idioma == 3)
					alert("Both dates are necessary");
		return false;
	}
}


/****************************++RELATIVO A FECHAS
************************************************/
function checkDate(fIni, fFin){
	var idioma	= document.getElementById("elegidoIdioma").value;
	var day1	= fIni.substring(0,2);
	var month1	= fIni.substring(3,5);
	var year1	= fIni.substring(6,10);
	
	var d 		= new Date();
	d.setHours(0);
	d.setMinutes(0);
	d.setSeconds(0);
	
	var ahora 	= d.getFullYear();
	var day2	= fFin.substring(0,2);
	var month2	= fFin.substring(3,5);
	var year2	= fFin.substring(6,10);

	var dias;
	
	var reg = /^\d{2}\/\d{2}\/\d{4}$/;
	
	if (!reg.test(fIni) || !reg.test(fFin)) {
		if (idioma == 2)
			alert("Data o dates incorrectes, recordi el format: dd/mm/aaaa");
		else
			if (idioma == 1)
				alert("Fecha o fechas incorrectas, recuerde el formato: dd/mm/aaaa");
			else
				if (idioma == 3)
					alert("Incorrect date value, format needed: dd/mm/yyyy");
					
		return 0;
	}
	else {
		var numeroDiasInicio	= cuantosDias(month1, year1);
		var numeroDiasFin		= cuantosDias(month2, year2);
		
		if ((eval(day1) <= 0 || eval(day1) > numeroDiasInicio) || (eval(day2) <= 0 || eval(day2) > numeroDiasFin)) {
			if (idioma == 2)
				alert("Dia incorrecte");
			else
				if (idioma == 1)
					alert("Día incorrecto");
				else
					if (idioma == 3)
						alert("Wrong day");
			
			return 0;
		}
		else {
			month1	= changeFormatStringtoNumber(month1);
			month2	= changeFormatStringtoNumber(month2);
			
			if ((month1 < 0 || month1 > 11) || (month2 < 0 || month2 > 11)) {
				if (idioma == 2)
					alert("Mes incorrecte");
				else
					if (idioma == 1)
						alert("Mes incorrecto");
					else
						if (idioma == 3)
							alert("Wrong month");
							
				return 0;
			}
			else {
				if (year1 < ahora || year2 < ahora) {
					if (idioma == 2)
						alert("Any incorrecte");
					else
						if (idioma == 1)
							alert("Año incorrecto");
						else
							if (idioma == 3)
								alert("Wrong year");
								
					return 0;
				}
				else {
					var d1				= new Date(year1,month1,day1);
					var d2				= new Date(year2,month2,day2);
					var fecha1Valida 	= true;
					
					dias 				= (((((d2 - d1)/1000)/60)/60)/24);		
					
					if (dias <=7) {
						
						if (dias == 1) {
							if (idioma == 2)
								alert("Mínim nombre de dies per a reservar des d'Internet 2.\nContacte amb la central de reserves per a més informació.\nDisculpe les molèsties.");
							else
								if (idioma == 1)
									alert("Mínimo número de días para reservar desde Internet 2.\nContacte con la central de reservas para más información.\nDisculpe las molestias.");
								else
									if (idioma == 3)
										alert("Minimum amount of days allowed to be booked on-line 2.\nFor more information please contact the booking office.\nSorry for inconveniences");
							return 0;
						}
						else {
							//si el año1 es anterior al actual -> error
							if (d1.getYear() < d.getYear())
								fecha1Valida = false;
							//si los años son iguales el mes no puede ser anterior, si el año es posterior entonces no hay problema
							else if (d1.getYear() == d.getYear() && d1.getMonth() < d.getMonth())
								fecha1Valida = false;
							else if (d1.getYear() == d.getYear() && d1.getMonth() == d.getMonth() && d1.getDate() < d.getDate())
								fecha1Valida = false;
							if (fecha1Valida){
								if(d1>=d2){
									if (idioma == 2)
										alert("La data d\'entrada no pot ser posterior o igual que la data d\'eixida");
									else
										if (idioma == 1)
											alert("La fecha de entrada no puede ser posterior o igual a la fecha de salida");
										else
											if (idioma == 3)
												alert("Departure date cannot be earlier or on the same day than arrival date");
								}
								else{
									return 1;
								}
							}
							else{
								if (idioma == 2)
									alert("Data d'entrada anterior a avui");
								else
									if (idioma == 1)
										alert("Fecha de entrada anterior a hoy");
									else
										if (idioma == 3)
											alert("Arrival date earlier than today");
								return 0;
							}
						}
					}
					else{
						if (idioma == 2)
							alert("Màxim nombre de dies per a reservar des d'Internet 7.\nContacte amb la central de reserves per a més informació.\nDisculpe les molèsties.");
						else
							if (idioma == 1)
								alert("Máximo número de días para reservar desde internet 7.\nContacte con la central de reservas para más información.\nDisculpe las molestias.");
							else
								if (idioma == 3)
									alert("Maximun amount of days allowed to be booked on-line 7.\nFor more information please contact the booking office.\nSorry for inconveniences");
									
						return 0;
					}
				}
			}
		}
	}
}


function changeFormatStringtoNumber(monthval){
	if (eval(monthval) < 0 || eval(monthval) > 12){
		return -1;
	}
	if(monthval=="01"){
		monthval=0;
	}
	else if (monthval=="02") {
		monthval=1;
	}
	else if (monthval=="03") {
		monthval=2;
	}
	else if (monthval=="04") {
		monthval=3;
	}
	else if (monthval=="05") {
		monthval=4;
	}
	else if (monthval=="06") {
		monthval=5;
	}
	else if (monthval=="07") {
		monthval=6;
	}
	else if (monthval=="08") {
		monthval=7;  
	}
	else if (monthval=="09") {
		monthval=8;  
	}
	else if (monthval=="10") {
		monthval=9;
	}
	else if (monthval=="11") {
		monthval=10;
	}
	else if (monthval=="12") {
		monthval=11;
	}
	return(monthval);
}

function anyoBisiesto(anyo){
	var fIni = new Date (anyo, 1, 1, 12, 00, 00, 00);
	var fFin = new Date (anyo, 2, 1, 12, 00, 00, 00);
	var dias = (((((fFin - fIni)/1000)/60)/60)/24);
	if (dias == 29)
		return true;
	else
		return false;
}

function cuantosDias (mes, anyo){
	if (mes == "02"){
		if (anyoBisiesto(anyo)){
			return 29;
		}
		else{
			return 28;
		}
	}
	else{
		if (mes == "01" || mes == "03" || mes == "05" || mes == "07" || mes == "08" || mes == "10" || mes == "12")
			return 31;
		else
			return 30;
	}
}

function reservar() {
	var idioma	= document.getElementById("elegidoIdioma").value;
	var fechaInicioOriginal = document.getElementById("fechaInicioPrecio").value;
	var fechaFinOriginal 	= document.getElementById("fechaFinPrecio").value;
	var personasOriginal	= document.getElementById("txtCantitat").value;
	var animalsOriginal		= document.getElementById("txtAnimals").value;
	var fechaInicioAhora	= document.getElementById("inicioOculto").value;
	var fechaFinAhora		= document.getElementById("finOculto").value;
	var personasAhora		= document.getElementById("personasOculto").value;
	var animalsAhora		= document.getElementById("animalsOculto").value;

	if (fechaInicioOriginal == fechaInicioAhora && fechaFinOriginal == fechaFinAhora && personasOriginal == personasAhora && animalsAhora == animalsOriginal) {
		if (fechaInicioOriginal != "" && fechaFinOriginal != "" && personasOriginal != ""){
			//se mantienen los valores, reservamos
			document.forms[0].action = "https://www.morella.net/datos.php";
			document.forms[0].submit();
		}
	}
	else {
		if (idioma == 2)
			alert("Les dades han canviat per el que és necessari comprobar que hi han places lliures.");
		else
			if (idioma == 1)
				alert("Los datos han cambiado por lo que es necesario comprobar que hay plazas libres.");
			else
				if (idioma == 3)
					alert("Input data has changed so it is necessary to test whether free places are available");
		return disponibilitat();
	}
}

function aQuestionari() {
	window.open("main.site.php?action=mapa/questionari","CASES_DE_MORELLA","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=400,height=450");
	return false;
}

function solicitarInformacio() {
	var idioma		= document.getElementById("elegidoIdioma").value;
	var nom 		= document.getElementById("nom").value;
	var cognom1		= document.getElementById("cognom1").value;
	var adresa		= document.getElementById("adresa").value;
	var loc			= document.getElementById("localitat").value;
	var cp			= document.getElementById("cp").value;
	var tel			= document.getElementById("tel").value;
	var mail		= document.getElementById("email").value;
	var consulta	= document.getElementById("consulta").value;
	var interes		= document.getElementById("interes").value;
	
	if (nom == "" || cognom1 == "" || adresa == "" || loc == "" || cp == "" || tel == "" || mail == "" || consulta == "" || interes == "") {
		if (idioma == 2)
			alert("Tots els camps marcats amb * són obligatoris");
		else
			if (idioma == 1)
				alert("Todos los campos marcados con un * son obligatorios");
			else
				if (idioma == 3)
					alert("All the fields with * are needed");
		return false;
	}
	else {
		document.forms[0].action = "main.site.php?action=mapa/questionari&solicitar=1";
		document.forms[0].submit();
	}
}

function buscar() {
	var idioma	= document.getElementById("elegidoIdioma").value;
	var reg  =  /^\d+$/;
	
	if (document.getElementById("plazas").value != "") {
		if (!reg.test(document.getElementById("plazas").value) ) {
			if (idioma == 2)
				alert("Nombre de places incorrecte");
			else
				if (idioma == 1)
					alert("Número de plazas incorrecto");
				else
					if (idioma == 3)
						alert("Incorrect number of people");
			return false;
		}
	}
	
	document.forms[0].action = "main.site.php?action=buscador/index&buscar=1";
	document.forms[0].submit();
}

function preReserva() {
	var idioma	= document.getElementById("elegidoIdioma").value;
	var a = document.getElementById("nomCliente").value.replace(/^\s+/g, '').replace(/\s+$/g, '');
	var b = document.getElementById("cognom1Cliente").value.replace(/^\s+/g, '').replace(/\s+$/g, '');
	var c = document.getElementById("dirCliente").value.replace(/^\s+/g, '').replace(/\s+$/g, '');
	var d = document.getElementById("puebloCliente").value.replace(/^\s+/g, '').replace(/\s+$/g, '');
	var e = document.getElementById("dniCliente").value.replace(/^\s+/g, '').replace(/\s+$/g, '');
	var f = document.getElementById("cpCliente").value.replace(/^\s+/g, '').replace(/\s+$/g, '');
	var g = document.getElementById("telefonoCliente").value.replace(/^\s+/g, '').replace(/\s+$/g, '');
	var h = document.getElementById("mailCliente").value.replace(/^\s+/g, '').replace(/\s+$/g, '');

	var i = document.getElementById("cognom2Cliente").value.replace(/^\s+/g, '').replace(/\s+$/g, '');
	var j = document.getElementById("movCliente").value.replace(/^\s+/g, '').replace(/\s+$/g, '');
	
	if (a != "" && b != "" && c != "" && d != "" && e != "" && f != "" && g != "" && h != "") {
		var reg  =  /^\d+$/;
		if (!reg.test(f) || !reg.test(g)) {
			if (idioma == 2)
				alert("Els camps Codi Postal i Telèfon sols admenten cifres");
			else
				if (idioma == 1)
					alert("Los campos Código Postal y Teléfono solo admiten cifras");
				else
					if (idioma == 3)
						alert("Zip Code and Phone Number only allow numbers");
			return false;
		}
		
		if (j != "") {
			if (!reg.test(j)) {
				if (idioma == 2)
					alert("El camp Telèfon mòbil sols admet cifres");
				else
					if (idioma == 1)
						alert("El campo Teléfono móvil solo adminte números");
					else
						if (idioma == 3)
							alert("Cell Phone only allows numbers");
				return false;
			}
		}
		
		document.getElementById("nomCliente").value		= a;
		document.getElementById("cognom1Cliente").value	= b;
		document.getElementById("dirCliente").value		= c;
		document.getElementById("puebloCliente").value	= d;
		document.getElementById("dniCliente").value		= e;
		document.getElementById("cpCliente").value		= f;
		document.getElementById("telefonoCliente").value	= g;
		document.getElementById("mailCliente").value	= h;
		document.getElementById("cognom2Cliente").value	= i;
		document.getElementById("movCliente").value		= j;
		document.forms[0].action						= "firmar.php";
		
		if (idioma == 2)
			var msg = "Va a començar el procés de reserva. NO TANQUE CAP FINESTRA FINS QUE ES MOSTRE LA PANTALLA DE CASES DE MORELLA MOSTRANT EL RESULTAT DE L'OPERACIÓ";
		else if (idioma == 1)
			var msg = "Va a empezar el proceso de reserva. NO CIERRE NINGUNA VENTANA HASTA QUE SE MUESTRE LA PANTALLA DE CASES DE MORELLA MOSTRANDO EL RESULTADO DE LA OPERACIÓN";
		else if (idioma == 3)
			var msg = "The booking process is going to start. DO NOT CLOSE ANY WINDOW BEFORE YOU CAN SEE THE RESULT OF THE OPERATION IN THE CASES DE MORELLA WEB SITE";
		alert(msg);
		document.forms[0].submit();
	}
	else {
		if (idioma == 2)
			alert("Totes les dades marcades amb un * són obligatories");
		else
			if (idioma == 1)
				alert("Todos los campos marcados con un * son obligatorios");
			else
				if (idioma == 3)
					alert("All the fields with * are needed");
	}
	return false;
}