// -------------------------------------------------------------------------------
// Función que comprueba que el login, password o email tienen sólo caracteres permitidos
// -------------------------------------------------------------------------------
function testeaEmailPassword(strCadena) {
	var i;
	var blnCorrecto = true;
	var strSimbolos = '.-_@';
	if(strCadena != '') {
		for (i=0;i<strCadena.length;i++)
		{
			if ((strCadena.charCodeAt(i)>47 && strCadena.charCodeAt(i)<58) || (strCadena.charCodeAt(i)>64 && strCadena.charCodeAt(i)<91) || (strCadena.charCodeAt(i)>96 && strCadena.charCodeAt(i)<123) || strSimbolos.indexOf(strCadena.charAt(i)) > -1) {}
			else blnCorrecto = false;
		}
	} else blnCorrecto = false;
	return blnCorrecto;
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que comprueba que se han rellenado todos los campos obligatorios en el alta
// -------------------------------------------------------------------------------
function checkeaFormularioAlta() {
	strError = '';
	if(document.frmAlta.txtLogin.value == '') {
		strError += 'Debes introducir el nombre de usuario';
	}
	if(document.frmAlta.txtPassword.value == '') {
		strError += '\nDebes introducir tu contraseña';
	}
	if(document.frmAlta.txtConfirmacion.value == '') {
		strError += '\nDebes confirmar tu contraseña';
	}
	if(document.frmAlta.txtPassword.value != document.frmAlta.txtConfirmacion.value) {
		strError += '\nLa contraseña y su confirmación no coinciden';
	}
	if(document.frmAlta.txtEmail.value == '') {
		strError += '\nDebes introducir tu email';
	}
	if(document.frmAlta.txtNombre.value == '') {
		strError += '\nDebes introducir el nombre del local';
	}
	if(document.frmAlta.txtNIF.value == '') {
		strError += '\nDebes introducir el NIF';
	}
	if(document.frmAlta.txtTelefono.value == '') {
		strError += '\nDebes introducir el teléfono del local';
	}
	if(document.frmAlta.txtInicioAlmuerzo.value == '' || isNaN(document.frmAlta.txtInicioAlmuerzo.value) || document.frmAlta.txtFinAlmuerzo.value == '' || isNaN(document.frmAlta.txtFinAlmuerzo.value)) {
		strError += '\nDebes introducir la hora de inicio y final del almuerzo';
	} else
		if(document.frmAlta.txtInicioAlmuerzo.value >= document.frmAlta.txtFinAlmuerzo.value) {
			strError += '\nLa hora de inicio del almuerzo no puede ser posterior a la hora de fin';
		}
	if(document.frmAlta.txtInicioCena.value == '' || isNaN(document.frmAlta.txtInicioCena.value) || document.frmAlta.txtFinCena.value == '' || isNaN(document.frmAlta.txtFinCena.value)) {
		strError += '\nDebes introducir la hora de inicio y final de la cena';
	} else
		if(document.frmAlta.txtInicioCena.value >= document.frmAlta.txtFinCena.value) {
			strError += '\nLa hora de inicio de la cena no puede ser posterior a la hora de fin';
		}
	if(document.frmAlta.txtComensales.value == '' || isNaN(document.frmAlta.txtComensales.value)) {
		strError += '\nDebes introducir el máximo número de comensales';
	}
	if(document.frmAlta.txtDuracion.value == '') {
		strError += '\nDebes introducir la duración media de cada comida';
	}
	if(strError != '') {
		alert(strError);
		return false;
	} else document.frmAlta.submit();
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que comprueba que se han rellenado todos los campos obligatorios en el alta (versión LITE)
// -------------------------------------------------------------------------------
function checkeaFormularioAltaLite() {
	strError = '';

	strEmail = document.frmAlta.txtEmail.value;
	if(strEmail == '') strError += 'Debes introducir el email';
	else if(!testeaEmailPassword(strEmail)) strError += '\nEl email solo admite letras, números y los caracteres ".", "-", "_", "@"';
		else if(strEmail.length < 6) strError += '\nEl email debe tener como mínimo 6 caracteres.';
	strClave = document.frmAlta.txtPassword.value;
	if(strClave == '') strError += '\nDebes introducir tu contraseña';
	else if(!testeaEmailPassword(strClave)) strError += '\nLa contraseña solo admite letras, números y los caracteres ".", "-", "_", "@"';
		else if(strClave.length < 6) strError += '\nLa contraseña debe tener como mínimo 6 caracteres.';
	if(document.frmAlta.txtConfirmacion.value == '') {
		strError += '\nDebes confirmar tu contraseña';
	}
	if(document.frmAlta.txtPassword.value != document.frmAlta.txtConfirmacion.value) {
		strError += '\nLa contraseña y su confirmación no coinciden';
	}
	if(document.frmAlta.txtNombre.value == '') {
		strError += '\nDebes introducir el nombre del local';
	}
	if(document.frmAlta.txtDireccion.value == '') {
		strError += '\nDebes introducir la dirección del local';
	}
	if(document.frmAlta.txtPoblacion.value == '') {
		strError += '\nDebes introducir la población del local';
	}
	if(document.frmAlta.txtCP.value == '') {
		strError += '\nDebes introducir el código postal del local';
	}
	if(document.frmAlta.cmbProvincias.value == '-1') {
		strError += '\nDebes seleccionar la provincia';
	}
	if(document.frmAlta.txtTelefono.value == '') {
		strError += '\nDebes introducir el teléfono del local';
	}
	if(document.frmAlta.txtNIF.value == '') {
		strError += '\nDebes introducir el NIF';
	}

	//else if(!nifCorrecto(document.frmAlta.txtNIF.value)) strError += '\nEl NIF que has introducido no es correcto';

	if(document.frmAlta.txtRazonSocial.value == '') {
		strError += '\nDebes introducir la razón social';
	}
	if(document.frmAlta.txtDomicilioFiscal.value == '') {
		strError += '\nDebes introducir el domicilio fiscal';
	}
	if(document.frmAlta.txtInicioVacaciones.value != '') {
		if(!fechaCorrecta(document.frmAlta.txtInicioVacaciones.value)) strError += '\nIntroduce la fecha de inicio de vacaciones en formato dd/mm/aaaa';
	}
	if(document.frmAlta.txtFinVacaciones.value != '') {
		if(!fechaCorrecta(document.frmAlta.txtFinVacaciones.value)) strError += '\nIntroduce la fecha de fin de vacaciones en formato dd/mm/aaaa';
	}
	
	// Si el form de alta incluye la compra de créditos, entonces comprobamos que se ha seleccionado un pack
	if(document.frmAlta.radCreditos) {
		if(!document.frmAlta.radCreditos[0].checked && !document.frmAlta.radCreditos[1].checked && !document.frmAlta.radCreditos[2].checked) strError += '\nSelecciona un pack de créditos'
	}

	if(strError != '') {
		alert(strError);
		return false;
	} else document.frmAlta.submit();
}
// -------------------------------------------------------------------------------






// -------------------------------------------------------------------------------
// Función que comprueba que se han rellenado todos los campos obligatorios en la modificación de calendario
// -------------------------------------------------------------------------------
function checkeaFormularioModificacionCalendario() {
	strError = '';

	if(document.frmModificacionCalendario.txtInicioVacaciones.value != '') {
		if(!fechaCorrecta(document.frmModificacionCalendario.txtInicioVacaciones.value)) strError += '\nIntroduce la fecha de inicio de vacaciones en formato dd/mm/aaaa';
	}
	if(document.frmModificacionCalendario.txtFinVacaciones.value != '') {
		if(!fechaCorrecta(document.frmModificacionCalendario.txtFinVacaciones.value)) strError += '\nIntroduce la fecha de fin de vacaciones en formato dd/mm/aaaa';
	}
	if(strError != '') {
		alert(strError);
		return false;
	} else document.frmModificacionCalendario.submit();
}
// -------------------------------------------------------------------------------






// -------------------------------------------------------------------------------
// Función que carga el diario de reservas con la fecha seleccionada en el calendario
// -------------------------------------------------------------------------------
function seleccionaDia(intFecha) {
	document.location = 'frmDiarioReservas.php?fecha=' + intFecha;
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que llama al script que marca una sesión como de máxima ocupación
// -------------------------------------------------------------------------------
function setMaximaOcupacion(intSesion) {
	MM_showHideLayers('guardandomaxima' + intSesion,'','show');
	//Element.show('guardandomaxima' + intSesion);
	objFormulario = eval('document.frmOpcionesSesion' + intSesion);
	intComida = objFormulario.comida.value;
	strFecha = objFormulario.fecha.value;
	strMaximaOcupacion = eval('document.frmOpcionesSesion' + intSesion + '.chkMaximaOcupacion' + intSesion + '.checked');
	//new Ajax.Request('cgi-bin/setMaximaOcupacion.php', {method:'post', postBody:'comida=' + intComida + '&fecha=' + strFecha + '&maximaocupacion=' + strMaximaOcupacion, onSuccess:function() {MM_showHideLayers('guardandomaxima' + intSesion,'','hide');}, onFailure:errorSesion});
	new Ajax.Request('cgi-bin/setMaximaOcupacion.php', {method:'post', postBody:'comida=' + intComida + '&fecha=' + strFecha + '&maximaocupacion=' + strMaximaOcupacion, onSuccess:marcaMaximaOcupacion, onFailure:errorSesion});
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que marca una sesión como de máxima ocupación
// -------------------------------------------------------------------------------
function marcaMaximaOcupacion(xmlHTTPRequest) {
	var strResultado = xmlHTTPRequest.responseText;
	if(strResultado != '-1') {
		var arrayDatos = strResultado.split('|');
		MM_showHideLayers('guardandomaxima' + arrayDatos[1],'','hide');
		//Element.hide('guardandomaxima' + arrayDatos[1]);
	}
}
// -------------------------------------------------------------------------------






// -------------------------------------------------------------------------------
// Función que maneja el error al marcar máxima ocupación
// -------------------------------------------------------------------------------
function errorSesion(xmlHTTPRequest) {}
// -------------------------------------------------------------------------------




// -------------------------------------------------------------------------------
// Función que llama al script que abre o cierra una sesión
// -------------------------------------------------------------------------------
function setCierre(intSesion) {
	MM_showHideLayers('guardandocierre' + intSesion,'','show');
	objFormulario = eval('document.frmOpcionesSesion' + intSesion);
	intComida = objFormulario.comida.value;
	strFecha = objFormulario.fecha.value;
	strCierre = eval('document.frmOpcionesSesion' + intSesion + '.chkCerrar' + intSesion + '.checked');
	if(strCierre) intAbierta = 1;
	else intAbierta = 0;
	new Ajax.Request('cgi-bin/setApertura.php', {method:'post', postBody:'comida=' + intComida + '&fecha=' + strFecha + '&abierta=' + intAbierta, onSuccess:cierraDiario, onFailure:errorCierre});
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que cierra el diario
// -------------------------------------------------------------------------------
function cierraDiario(xmlHTTPRequest) {
	var strResultado = xmlHTTPRequest.responseText;
	if(strResultado != '-1') {
		var arrayDatos = strResultado.split('|');
		var intSesion = arrayDatos[1];
		var intAbierta = arrayDatos[2];
		MM_showHideLayers('guardandocierre' + intSesion,'','hide');
		var strSesion;
		if(intSesion == 1) strSesion = 'almuerzo';
		else strSesion = 'cena';
		if(intAbierta == 0) {
			for(i=0;i<25;i++) {
				if(document.getElementById('tr_' + strSesion + '_' + i)) document.getElementById('tr_' + strSesion + '_' + i).className = 'cuadrantecerrado';
			}
		} else {
			for(i=0;i<25;i++) {
				if(document.getElementById('tr_' + strSesion + '_' + i)) {
					if(i%2 == 0) document.getElementById('tr_' + strSesion + '_' + i).className = 'textotabla';
					else document.getElementById('tr_' + strSesion + '_' + i).className = 'textotabla2';
				}
			}
		}
	}
}
// -------------------------------------------------------------------------------






// -------------------------------------------------------------------------------
// Función que maneja el error al cerrar el diario
// -------------------------------------------------------------------------------
function errorCierre(xmlHTTPRequest) {}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que llama al script que guarda el mensaje asociado a una sesión
// -------------------------------------------------------------------------------
function setMensaje(intSesion) {
	MM_showHideLayers('guardandomensaje' + intSesion,'','show');
	objFormulario = eval('document.frmOpcionesSesion' + intSesion);
	intComida = objFormulario.comida.value;
	strFecha = objFormulario.fecha.value;
	strMensaje = eval('document.frmOpcionesSesion' + intSesion + '.txaMensajeSesion' + intSesion + '.value');
	new Ajax.Request('cgi-bin/setMensajeSesion.php', {method:'post', postBody:'comida=' + intComida + '&fecha=' + strFecha + '&mensaje=' + strMensaje, onSuccess:ocultaCapaMensaje, onFailure:errorMensaje});
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que oculta la capa de 'guardando' mensaje
// -------------------------------------------------------------------------------
function ocultaCapaMensaje(xmlHTTPRequest) {
	var strResultado = xmlHTTPRequest.responseText;
	if(strResultado != '-1') {
		var arrayDatos = strResultado.split('|');
		MM_showHideLayers('guardandomensaje' + arrayDatos[1],'','hide');
		//Element.hide('guardandomensaje' + arrayDatos[1]);
	}
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que maneja el error al guardar el mensaje de una sesión
// -------------------------------------------------------------------------------
function errorMensaje(xmlHTTPRequest) {}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que carga la página de nueva reserva
// -------------------------------------------------------------------------------
function nuevaReserva(strFecha,intSesion) {
	document.location = 'frmNuevaReserva.php?fecha=' + strFecha + '&sesion=' + intSesion;
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que llama al script que marca una reserva como no presentado
// -------------------------------------------------------------------------------
function setNoPresentado(intReserva) {
	if(confirm("¿Desea marcar la reserva como 'No presentado'?")) {
		document.getElementById('img_reserva_' + intReserva).src = 'images/waiting.gif'
		new Ajax.Request('cgi-bin/setNoPresentado.php', {method:'post', postBody:'reserva=' + intReserva, onSuccess:marcaNoPresentado, onFailure:errorNP});
	}
}
// -------------------------------------------------------------------------------






// -------------------------------------------------------------------------------
// Función que marca la reserva como 'no presentado'
// -------------------------------------------------------------------------------
function marcaNoPresentado(xmlHTTPRequest) {
	var intReserva = xmlHTTPRequest.responseText;
	if(intReserva != '-1') {
		document.getElementById('img_reserva_' + intReserva).src = 'images/cancelada.gif';
		document.getElementById('img_reserva_' + intReserva).alt = 'Reserva cancelada por el restaurante';
		Element.hide('div_reserva_' + intReserva);
	}
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que maneja el error al marcar una reserva como no presentado
// -------------------------------------------------------------------------------
function errorNP(xmlHTTPRequest) {}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que comprueba que se han rellenado los campos obligatorios de login
// -------------------------------------------------------------------------------
function checkeaFormularioLogin() {
	strError = '';
	if(document.frmIdentificacion.txtEmail.value == '') strError += 'Debes introducir tu email';
	if(document.frmIdentificacion.txtPassword.value == '') strError += '\nDebes introducir tu contraseña';
	if(strError != '') {
		alert(strError);
		return false;
	} else document.frmIdentificacion.submit();
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que comprueba que se han rellenado los campos obligatorios de mesa
// -------------------------------------------------------------------------------
function checkeaFormularioMesa() {
	strError = '';
	if(document.frmAlta.txtNumero.value == '') strError += '\nDebes introducir el número o nombre de la mesa';
	if(document.frmAlta.txtMinimo.value == '') strError += '\nDebes introducir el mínimo número de comensales que acepta la mesa';
	if(document.frmAlta.txtMaximo.value == '') strError += '\nDebes introducir el máximo número de comensales que acepta la mesa';
	if(strError != '') {
		alert(strError);
		return false;
	} else document.frmAlta.submit();
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que comprueba que se han rellenado los campos obligatorios de la modificación de restaurante
// -------------------------------------------------------------------------------
function checkeaFormularioModificacion() {
	strError = '';
	strEmail = document.frmModificacion.txtEmail.value;
	if(strEmail == '') strError += 'Debes introducir el email';
	else if(!testeaEmailPassword(strEmail)) strError += '\nEl email solo admite letras, números y los caracteres ".", "-", "_", "@"';
		else if(strEmail.length < 6) strError += '\nEl email debe tener como mínimo 6 caracteres.';
	if(document.frmModificacion.txtNombre.value == '') {
		strError += '\nDebes introducir el nombre del local';
	}
	if(document.frmModificacion.txtDireccion.value == '') {
		strError += '\nDebes introducir la dirección del local';
	}
	if(document.frmModificacion.txtPoblacion.value == '') {
		strError += '\nDebes introducir la población del local';
	}
	if(document.frmModificacion.txtCP.value == '') {
		strError += '\nDebes introducir el código postal del local';
	}
	if(document.frmModificacion.cmbProvincias.value == '-1') {
		strError += '\nDebes seleccionar la provincia';
	}
	if(document.frmModificacion.txtTelefono.value == '') {
		strError += '\nDebes introducir el teléfono del local';
	}
	if(document.frmModificacion.txtNIF.value == '') {
		strError += '\nDebes introducir el NIF';
	}
	//else if(!nifCorrecto(document.frmModificacion.txtNIF.value)) strError += '\nEl NIF que has introducido no es correcto';
	if(document.frmModificacion.txtRazonSocial.value == '') {
		strError += '\nDebes introducir la razón social';
	}
	if(document.frmModificacion.txtDomicilioFiscal.value == '') {
		strError += '\nDebes introducir el domicilio fiscal';
	}
	if(strError != '') {
		alert(strError);
		return false;
	} else document.frmModificacion.submit();
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que guarda el dia marcado en el calendario de una reserva
// -------------------------------------------------------------------------------
function guardaDia(strFecha) {
	strFechaAnterior = document.frmReserva.fecha.value;
	if(strFechaAnterior != '') {
		document.getElementById('td' + strFechaAnterior).className = 'dia_normal';
		document.getElementById('enlace' + strFechaAnterior).className = 'dia_normal';
	}
	document.getElementById('td' + strFecha).className = 'dia_click';
	document.getElementById('enlace' + strFecha).className = 'dia_click';
	document.frmReserva.fecha.value = strFecha;
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que comprueba que se han rellenado los campos obligatorios de la reserva
// -------------------------------------------------------------------------------
function checkeaFormularioReserva() {
	strError = '';
	if(document.frmReserva.txtNombre.value == '') strError = strError + 'Debes introducir el nombre del cliente';
	if(document.frmReserva.txtApellidos.value == '') strError = strError + '\nDebes introducir los apellidos del cliente';
	if(document.frmReserva.txtTelefono.value == '') strError = strError + '\nDebes introducir el teléfono del cliente';
	i = document.frmReserva.cmbComidas.selectedIndex;
	if(document.frmReserva.cmbComidas.options[i].value == -1) strError = strError + '\nDebes seleccionar la comida';
	i = document.frmReserva.cmbHoras.selectedIndex;
	if(document.frmReserva.cmbHoras.options[i].value == -1) strError = strError + '\nDebes seleccionar la hora de la comida';
	i = document.frmReserva.cmbComensales.selectedIndex;
	if(document.frmReserva.cmbComensales.options[i].value == -1) strError = strError + '\nDebes introducir el número de comensales';
	i = document.frmReserva.cmbSalas.selectedIndex;
	if(document.frmReserva.cmbSalas.options[i].value == -1) strError = strError + '\nDebes seleccionar la sala';
	i = document.frmReserva.cmbMesas.selectedIndex;
	if(document.frmReserva.cmbMesas.options[i].value == -1) strError = strError + '\nDebes seleccionar la mesa';
	if(document.frmReserva.fecha.value == '') strError = strError + '\nDebes seleccionar una fecha en el calendario';
	if(strError == '') document.frmReserva.submit();
	else alert(strError);
}
// -------------------------------------------------------------------------------






// -------------------------------------------------------------------------------
// Función que llama al script que obtiene los horarios para una sesión
// -------------------------------------------------------------------------------
function getHorasSesion() {
	if(document.frmReserva.cmbComidas.selectedIndex > 0) {
		for(i=document.frmReserva.cmbHoras.options.length-1;i>0;i--) document.frmReserva.cmbHoras.options[i] = null;
		document.frmReserva.cmbHoras.options[0] = new Option('Cargando horario...','-1');
		intComida = document.frmReserva.cmbComidas.options[document.frmReserva.cmbComidas.selectedIndex].value;
		new Ajax.Request('cgi-bin/getHorasSesion.php', {method:'post', postBody:'comida=' + intComida, onSuccess:llenaComboHoras, onFailure:errorHoras});
	}
}
// -------------------------------------------------------------------------------






// -------------------------------------------------------------------------------
// Función que llena el desplegable de horas de una reserva con los datos obtenidos
// -------------------------------------------------------------------------------
function llenaComboHoras(xmlHTTPRequest) {
	var strResultado = xmlHTTPRequest.responseText;
	if(strResultado != '-1') {
		var arrayHoras = strResultado.split('|');
		document.frmReserva.cmbHoras.options[0] = null;
		document.frmReserva.cmbHoras.options[0] = new Option('----- Selecciona una opción -----','-1');
		for(i=1;i<arrayHoras.length;i++) {
			document.frmReserva.cmbHoras.options[i] = new Option(arrayHoras[i].substr(0,2) + ':' + arrayHoras[i].substr(2,2),arrayHoras[i]);
		}
	} else {
		document.frmReserva.cmbHoras.options[0] = null;
		document.frmReserva.cmbHoras.options[0] = new Option('----- Selecciona una opción -----','-1');
		alert('Error al cargar los horarios de la sesión elegida');
	}
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que maneja el error al obtener los horarios de una sesión
// -------------------------------------------------------------------------------
function errorHoras(xmlHTTPRequest) {}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que llama al script que obtiene las mesas disponibles
// -------------------------------------------------------------------------------
function getMesasDisponibles() {
	if(document.frmReserva.cmbComidas.selectedIndex > 0 && document.frmReserva.cmbHoras.selectedIndex > 0 && document.frmReserva.cmbComensales.selectedIndex > 0 && document.frmReserva.cmbSalas.selectedIndex > 0) {
		for(i=document.frmReserva.cmbMesas.options.length-1;i>0;i--) document.frmReserva.cmbMesas.options[i] = null;
		document.frmReserva.cmbMesas.options[0] = new Option('Cargando mesas...','-1');
		intComida = document.frmReserva.cmbComidas.options[document.frmReserva.cmbComidas.selectedIndex].value;
		strFecha = document.frmReserva.fecha.value;
		strHora = document.frmReserva.cmbHoras.options[document.frmReserva.cmbHoras.selectedIndex].value;
		intComensales = document.frmReserva.cmbComensales.options[document.frmReserva.cmbComensales.selectedIndex].value;
		intSala = document.frmReserva.cmbSalas.options[document.frmReserva.cmbSalas.selectedIndex].value;
		new Ajax.Request('cgi-bin/getMesasDisponibles.php', {method:'post', postBody:'comida=' + intComida + '&fecha=' + strFecha + '&hora=' + strHora + '&comensales=' + intComensales + '&sala=' + intSala, onSuccess:llenaComboMesas, onFailure:errorMesas});
	}
}
// -------------------------------------------------------------------------------






// -------------------------------------------------------------------------------
// Función que llena el desplegable de mesas disponibles
// -------------------------------------------------------------------------------
function llenaComboMesas(xmlHTTPRequest) {
	var strResultado = xmlHTTPRequest.responseText;
	if(strResultado != '-1') {
		var arrayMesas = strResultado.split('|');
		document.frmReserva.cmbMesas.options[0] = null;
		document.frmReserva.cmbMesas.options[0] = new Option('----- Selecciona una opción -----','-1');
		for(i=1;i<arrayMesas.length;i++) {
			arrayMesa = arrayMesas[i].split(':');
			document.frmReserva.cmbMesas.options[i] = new Option(arrayMesa[0],arrayMesa[1]);
		}
	} else {
		document.frmReserva.cmbMesas.options[0] = null;
		document.frmReserva.cmbMesas.options[0] = new Option('----- Selecciona una opción -----','-1');
		alert('No hay mesas disponibles con los criterios que has introducido');
	}
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que maneja el error al obtener la lista de mesas disponibles
// -------------------------------------------------------------------------------
function errorMesas(xmlHTTPRequest) {}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que llama al script que obtiene la lista de dias cerrados de un mes
// -------------------------------------------------------------------------------
function getDiasCerrados(strFecha){
	new Ajax.Request('cgi-bin/getDiasCerrados.php', {method:'post', postBody:'fecha=' + strFecha, onSuccess:marcaDiasCerrados, onFailure:errorCalendario});
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que marca en el calendario la lista de días cerrados
// -------------------------------------------------------------------------------
function marcaDiasCerrados(xmlHTTPRequest) {
	var strResultado = xmlHTTPRequest.responseText;
	var objEnlace;
	var arrayDias = strResultado.split('|');
	for(i=1;i<arrayDias.length;i++) {
		if(arrayDias[i] != '1' && arrayDias[i] != '' && arrayDias[i] != 'undefined') {
			if(document.getElementById('enlace' + arrayDias[i])) objEnlace = document.getElementById('enlace' + arrayDias[i]);
			disableLink(objEnlace);
		}
	}
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que maneja el error al obtener la lista de días cerrados
// -------------------------------------------------------------------------------
function errorCalendario(xmlHTTPRequest) {}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// -------------------------------------------------------------------------------
function cancelLink () {
	return false;
}
// -------------------------------------------------------------------------------




// -------------------------------------------------------------------------------
// -------------------------------------------------------------------------------
function disableLink (link) {
	if (link.onclick) link.oldOnClick = link.onclick;
	link.onclick = cancelLink;
	if (link.style) link.style.cursor = 'default';
	link.className = 'dia_desactivado';
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que comprueba que se han rellenado los campos obligatorios de la sala
// -------------------------------------------------------------------------------
function checkeaFormularioSala() {
	strError = '';
	if(document.frmAlta.txtNombre.value == '') strError += '\nDebes introducir el nombre de la sala';
	if(strError != '') {
		alert(strError);
		return false;
	} else document.frmAlta.submit();
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que borra una mesa
// -------------------------------------------------------------------------------
function borraMesa(intMesa,intSala) {
	if(confirm('Si continúa se borrará la mesa seleccionada')) document.location = 'borraMesa.php?mesa=' + intMesa + '&sala=' + intSala;
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que borra una reserva
// -------------------------------------------------------------------------------
function borraReserva(intReserva) {
	if(confirm('Si continúa se borrará la reserva seleccionada')) document.location = 'borraReserva.php?reserva=' + intReserva;
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que cancela una reserva
// -------------------------------------------------------------------------------
function cancelaReserva(intReserva) {
	if(confirm('Si continúa se cancelará la reserva seleccionada')) document.location = 'cancelaReserva.php?reserva=' + intReserva;
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que borra una sala
// -------------------------------------------------------------------------------
function borraSala(intSala) {
	if(confirm('Si continúa se borrará la sala seleccionada y todas sus mesas')) document.location = 'borraSala.php?sala=' + intSala;
}
// -------------------------------------------------------------------------------




// -------------------------------------------------------------------------------
// Función que comprueba si un DNI es correcto
// -------------------------------------------------------------------------------
function nifCorrecto(strNIF) {

	strNIF = strNIF.toUpperCase();
	strNIF = strNIF.replace('-','');
	strNIF = strNIF.replace('+','');
	if(!dniExtranjero(strNIF)) {
		var strLetras = 'TRWAGMYFPDXBNJZSQVHLCKE';
		if(strNIF.length == 9) {
			var intNumero = strNIF.substring(0,8);
			var strLetra = strNIF.substring(8,9);
			if(!isNaN(intNumero)) {
				// Calculamos la letra del NIF
				var intNumeroLetra = intNumero%23;
				var strLetraCalculada = strLetras.substring(intNumeroLetra,intNumeroLetra+1);
				// La comparamos con la letra introducida
				if(strLetraCalculada == strLetra) return true;
				else return false;
			} else return false;
		} else return false;
	} else return true;

}
// -------------------------------------------------------------------------------






// -------------------------------------------------------------------------------
// Función que comprueba si un DNI es extranjero
// -------------------------------------------------------------------------------
function dniExtranjero(strNIF) {

	strNIF = strNIF.toUpperCase();
	if(strNIF.length == 9) {
		var strLetraInicial = strNIF.substring(0,1);
		var intNumero = strNIF.substring(1,8);
		var strLetraFinal = strNIF.substring(8,9);
		var strLetras = 'TRWAGMYFPDXBNJZSQVHLCKE';
		if(strLetras.indexOf(strLetraInicial) > -1 && strLetras.indexOf(strLetraFinal) > -1 && !isNaN(intNumero)) return true;
		else return false;
	} else return false;

}
// -------------------------------------------------------------------------------






// -------------------------------------------------------------------------------
// Función que comprueba si una fecha es correcta (dd/mm/aaaa)
// -------------------------------------------------------------------------------
function fechaCorrecta(strFecha) {
	intIndice1 = strFecha.indexOf('/');
	if(intIndice1 > 0) {
		intIndice2 = strFecha.indexOf('/',intIndice1+1);
		if(intIndice2 > 0) {
			intDia = strFecha.substring(0,intIndice1);
			intMes = strFecha.substring(intIndice1+1,intIndice2);
			intAnno = strFecha.substring(intIndice2+1,strFecha.length);
			if(!isNaN(intDia) && !isNaN(intMes) && !isNaN(intAnno)) {
				if(intDia > 0 && intDia < 32 && intMes > 0 && intMes < 13 && intAnno > 1900 && intAnno < 2050) {
					blnError = false;
					if(intMes == 4 || intMes == 6 || intMes == 9 || intMes == 11) {
						if(intDia > 30) blnError = true;
					} else {
						if(intMes == 2) {
							if(intDia > 28) blnError = true;
						}
					}
					if(!blnError) {
						return true;
					} else return false;
				} else return false;
			} else return false;
		} else return false;
	} else return false;
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que hace una llamada Ajax para saber si existe un email
// -------------------------------------------------------------------------------
function existeEmail(strEmail) {
	if(strEmail != '' && testeaEmailPassword(strEmail)) {
		new Ajax.Request('cgi-bin/getExisteEmail.php', {method:'post', postBody:'email=' + strEmail, onSuccess:devuelveExisteEmail, onFailure:errorExisteEmail});
	}
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que recibe la respuesta Ajax para saber si existe un email
// -------------------------------------------------------------------------------
function devuelveExisteEmail(xmlHTTPRequest) {
	var strResultado = xmlHTTPRequest.responseText;
	if(strResultado == '1') alert('El email que has introducido ya ha sido registrado en Doocomo');
	else return false;
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que maneja el error al comprobar si existe un email
// -------------------------------------------------------------------------------
function errorExisteEmail(xmlHTTPRequest) {}
// -------------------------------------------------------------------------------




// -------------------------------------------------------------------------------
// Función que hace una llamada Ajax para saber si existe un NIF
// -------------------------------------------------------------------------------
function existeNIF(strNIF) {
	if(strNIF != '' && nifCorrecto(strNIF)) {
		new Ajax.Request('cgi-bin/getExisteNIF.php', {method:'post', postBody:'nif=' + strNIF, onSuccess:devuelveExisteNIF, onFailure:errorExisteNIF});
	}
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que recibe la respuesta Ajax para saber si existe un NIF
// -------------------------------------------------------------------------------
function devuelveExisteNIF(xmlHTTPRequest) {
	var strResultado = xmlHTTPRequest.responseText;
	if(strResultado == '1') alert('El NIF que has introducido ya ha sido registrado en Doocomo');
	else return false;
}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que maneja el error al comprobar si existe un NIF
// -------------------------------------------------------------------------------
function errorExisteNIF(xmlHTTPRequest) {}
// -------------------------------------------------------------------------------





// -------------------------------------------------------------------------------
// Función que comprueba que se han rellenado los campos obligatorios en el cambio de contraseña
// -------------------------------------------------------------------------------
function checkeaFormularioCambioPassword() {
	strError = '';
	strClave = document.frmModificacion.txtPasswordActual.value;
	if(strClave == '') strError += '\nDebes introducir tu contraseña actual';
	else if(!testeaEmailPassword(strClave)) strError += '\nLa contraseña solo admite letras, números y los caracteres ".", "-", "_", "@"';

	strClaveNueva = document.frmModificacion.txtPasswordNueva.value;
	if(strClaveNueva == '') strError += '\nDebes introducir la nueva contraseña';
	else if(!testeaEmailPassword(strClaveNueva)) strError += '\nLa contraseña solo admite letras, números y los caracteres ".", "-", "_", "@"';
	if(document.frmModificacion.txtConfirmacion.value == '') {
		strError += '\nDebes confirmar tu nueva contraseña';
	}

	if(strError == '' && document.frmModificacion.txtPasswordNueva.value != document.frmModificacion.txtConfirmacion.value) {
		strError += '\nLa nueva contraseña y su confirmación no coinciden';
	}

	if(strError != '') {
		alert(strError);
		return false;
	} else document.frmModificacion.submit();
}
// -------------------------------------------------------------------------------






// -------------------------------------------------------------------------------
// Función que comprueba que se han rellenado todos los campos en la pantalla de envío de clave
// -------------------------------------------------------------------------------
function checkeaFormularioEnvioClave() {
	strError = '';
	if(document.frmEmail.txtEmail.value == '') strError += 'Debes introducir tu email';
	else if(!testeaEmailPassword(document.frmEmail.txtEmail.value)) strError += '\nEl email solo admite letras, números y los caracteres ".", "-", "_" y "@"';
		else if(document.frmEmail.txtEmail.value.length < 6) strError += '\nEl email debe tener como mínimo 6 caracteres.';
	if(strError != '') {
		alert(strError);
		return false;
	} else document.frmEmail.submit();
}
// -------------------------------------------------------------------------------






// -------------------------------------------------------------------------------
// Función que abre la ventana con los datos de una factura
// -------------------------------------------------------------------------------
function imprimeFactura(intNumeroFactura) {
	var wndFactura = window.open('datosFactura.php?factura=' + intNumeroFactura,'imprimeFactura','status=0,toolbar=1,menubar=0,width=450,height=550,resizable=1,scrollbars=0');
}
// -------------------------------------------------------------------------------


