/**
 * @author Pitxi
 */
function mostrarInicioCliente(){
	peticion = new Ajax.Request('inicioCliente.html', {
			method: 'get',
			onLoading: function(){
			},
			onComplete: function(resp){
				$('contenido').innerHTML = resp.responseText;
				$('acceder').onclick = function(){
					var valido = validarDatosAcceso();
					if(valido){
						iniciarSesionCliente();
					}
				}
			},
			on404: function(){
				alert('Página no encontrada');
			}
		});
}

function validarDatosAcceso(){
	var div_errores = $('errores');
	
	if(esVacio($('codigo') || esVacio($('dni')))){
		div_errores.innerHTML = 'Por favor rellena todos los campos';
		div_errores.style.display = 'block';
		return false;
	}
	
	if(!soloNumeros($('codigo').value)){
		div_errores.innerHTML = 'El código sólo puede contener números';
		div_errores.style.display = 'block';
		return false;
	}
	
	if(!compruebaDNI($('dni').value)){
		div_errores.innerHTML = 'El DNI introducido no es válido. Comprueba que es correcto y que la letra va justo destrás del número, sin espacios ni guiones';
		div_errores.style.display = 'block';
		return false;
	}
	
	div_errores.style.display = 'none';
	return true;
}

function iniciarSesionCliente(){
	var datos = encodeURI('codigo='+$('codigo').value+'&dni='+$('dni').value);
	
	var peticion = new Ajax.Request('inicioSesionCliente.php', {
			method: 'post',
			parameters: datos,
			onLoading: function(){

			},
			onComplete: function(resp){
				muestraDatosReserva(resp);
				$('cancelar').onclick = function(){
					if(confirm('¿Estás seguro de que quieres cancelar esta reserva?')){
						cancelarReserva();
					}
				};
				$('modificar').onclick = mostrarModificar;
			},
			on404: function(){
				alert('Página no encontrada');
			}
	});
}

function muestraDatosReserva(resp){
	var div_errores = $('errores');
	//recibiremos un objeto JSON
	var obj_json = eval('('+resp.responseText+')');
	
	if(obj_json.valido == 'no'){
		div_errores.innerHTML = 'Los datos introducidos no son válidos';
		div_errores.style.display = 'block';
	}
	
	else{
		var html = '<h3>Datos de la reserva</h3>';
		html += '<p><span class="etiqueta">Código de reserva: </span><span id="codigo">'+obj_json.codigo+'</span></p>';
		html += '<p><span class="etiqueta">DNI asociado: </span><span id="dni">'+obj_json.dni+'</span></p>';
		html += '<p><span class="etiqueta">Fecha de entrada: </span><span id="entrada">'+obj_json.entrada+'</span></p>';
		html += '<p><span class="etiqueta">Fecha de salida: </span><span id="salida">'+obj_json.salida+'</span></p>';
		html += '<p><span class="etiqueta">Número de habitaciones: </span><span id="numhabitaciones">'+obj_json.numhabitaciones+'</span></p>';
		html += '<p><span class="etiqueta">Precio: </span><span id="precio">'+obj_json.precio+'€</span></p>';
		if(obj_json.precio_rebajado){
			html += '<p><span class="etiqueta">Precio rebajado: </span><span id="precio">'+obj_json.precio_rebajado+'€</span></p>';	
		}
		html += '<input type="button" id="cancelar" value="Cancelar reserva" /><input type="button" id="modificar" value="Modificar reserva" />';
		
		$('contenido').innerHTML = html;
	}
}

function cancelarReserva(){
	var datos = encodeURI('codigo='+$('codigo').innerHTML+'&dni='+$('dni').innerHTML);
	
	var peticion = new Ajax.Request('cancelarReserva.php', {
			method: 'post',
			parameters: datos,
			onLoading: function(){

			},
			onComplete: function(resp){
				$('contenido').innerHTML = resp.responseText+'<a href="index.php">Volver a la página principal</a>';
			},
			on404: function(){
				alert('Página no encontrada');
			}
	});
}

function mostrarModificar(){
	var string_datos = 'codigo='+$('codigo').innerHTML+'&dni='+$('dni').innerHTML+'&entrada='+$('entrada').innerHTML+'&salida='+$('salida').innerHTML+'&habitaciones='+$('numhabitaciones').innerHTML;
	var datos = encodeURI(string_datos);
	
	var peticion = new Ajax.Request('mostrarCamposModificar.php', {
			method: 'post',
			parameters: datos,
			onLoading: function(){

			},
			onComplete: function(resp){
				$('contenido').innerHTML = resp.responseText;
				$('botonmodificar').onclick = disponibilidad_modificar;
				var inputs = $('entrada', 'salida', 'numhabitaciones');
				for (var i = 0; i < inputs.length; i++) {
					inputs[i].onchange = function(){
							$('info_habitaciones').style.display = 'none';
							$('botonmodificar').value = 'Comprobar disponibilidad';
							$('botonmodificar').onclick = disponibilidad_modificar;
					}
				} 
			},
			on404: function(){
				alert('Página no encontrada');
			}
	});
}

function disponibilidad_modificar(){
	var fechasValidas = comprobarFechas($('errores'));
	
	if (fechasValidas) {
		$('errores').style.display = 'none';
		
		var fechas_aux = 'entrada=' + $('entrada').value + '&salida=' + $('salida').value + '&habitaciones=' + $('numhabitaciones').value + '&omitir=' + $('codigo').innerHTML;
		var fechas = encodeURI(fechas_aux);
		
		//pedimos la disponibilidad mediante AJAX
		peticion = new Ajax.Request('comprobarDisponibilidad.php', {
			method: 'get',
			parameters: fechas,
			onLoading: function(){

			},
			onComplete: function(resp){
				procesaDisponibilidadModificar(resp);
			},
			on404: function(){
				alert('Página no encontrada');
			}
		});
	}
}

function procesaDisponibilidadModificar(respuesta){
	//evaluamos el objeto JSOn recibido
	var obj_json = eval('('+respuesta.responseText+')');
	
	var div_habitaciones = $('info_habitaciones');
	div_habitaciones.style.display = 'block';
	
	var texto = "";
	var precio = "";
	
	if(obj_json.disponibilidad == 'si'){
		texto = '<p>Hay disponibilidad en las fechas seleccionadas</p>';
		$('botonmodificar').value = 'Modificar la reserva';
		$('botonmodificar').onclick = modificar;
		precio = '<p>Precio total: '+obj_json.precio+'€ (7%IVA incluido)</p>';
		if(obj_json.precio_rebajado){
			precio += '<p>Precio rebajado: '+obj_json.precio_rebajado+'€ (7%IVA incluido)</p>';
		}		
	}
	else{
		texto = '<p class="error">No hay disponibilidad en las fechas seleccionadas</p>';
	}
	
	for(var i in obj_json){
		if(i != 'disponibilidad' && i!='precio' && i!='precio_rebajado'){
			var habitacion = obj_json[i];
			if(habitacion[1] == 'si'){
				texto += '<img class="habitacion" src="img/hab_libre.jpg" alt="habitacion libre"/>';
			}
			else{
				texto += '<img class="habitacion" src="img/hab_ocupada.jpg" alt="habitacion ocupada"/>';
			}
		}
	}
	texto += '<div class="clear"></div>';
	texto += '<p class="miniaviso">(el diseño de las habitaciones puede ser diferente al de la imagen)</p>'+precio;
	div_habitaciones.innerHTML = texto;
}

function modificar(){
	var nuevos_datos = 'codigo='+$('codigo').innerHTML+'&dni='+$('dni').innerHTML+'&entrada='+$('entrada').value+'&salida='+$('salida').value+'&habitaciones='+$('numhabitaciones').value;

	//hacemos una peticion POST para modificar los datos de la reserva en la BD
	peticion = new Ajax.Request('modificarReserva.php', {
			method: 'post',
			parameters: nuevos_datos,
			onLoading: function(){

			},
			onComplete: function(resp){
				muestraResultadoModificar(resp);
			},
			on404: function(){
				alert('Página no encontrada');
			}
		});
}

function muestraResultadoModificar(resp){
	if (cogerGET() == '3_admin') {
		document.body.removeChild($('capaOscura'));
		document.body.removeChild($('info_reserva'));
		document.body.style.overflow = 'auto';
		
		actualizarContenido();
		mostrarAlerta('Reserva modificada correctamente');
	}
	else {
		var html = '<h3>Nuevos datos de la reserva</h3>';
		html += resp.responseText;
		$('contenido').innerHTML = html;
	}
}

