// -------------------------------------------------------------------------------
// 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 (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 su 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 += '\nDebe confirmar su 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 de la clínica';
	}
	if(document.frmAlta.txtDireccion.value == '') {
		strError += '\nDebes introducir la dirección de la clínica';
	}
	if(document.frmAlta.txtPoblacion.value == '') {
		strError += '\nDebes introducir la población de la clínica';
	}
	if(document.frmAlta.txtCP.value == '') {
		strError += '\nDebes introducir el código postal de la clínica';
	}
	if(document.frmAlta.cmbProvincias.value == '-1') {
		strError += '\nDebe seleccionar la provincia';
	}
	if(document.frmAlta.txtTelefono.value == '') {
		strError += '\nDebes introducir el teléfono de la clínica';
	}
	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';
	}

	// Vemos si ha seleccionado algún tratamiento
	var strTratamiento = '';
	for(i=0;i<document.frmAlta.length;i++) {
		if(document.frmAlta.elements[i].name == 'chkTratamientos[]' && document.frmAlta.elements[i].checked) strTratamiento = document.frmAlta.elements[i].value;
	}
	if(strTratamiento == '') strError += '\nSelecciona al menos un tratamiento';

	blnFechaInicioCorrecta = 0;
	blnFechaFinCorrecta = 0;
	if(document.frmAlta.txtInicioVacaciones.value != '') {
		if(!fechaCorrecta(document.frmAlta.txtInicioVacaciones.value)) strError += '\nIntroduce la fecha de inicio de vacaciones en formato dd/mm/aaaa';
		else blnFechaInicioCorrecta = 1;
	}
	if(document.frmAlta.txtFinVacaciones.value != '') {
		if(!fechaCorrecta(document.frmAlta.txtFinVacaciones.value)) strError += '\nIntroduce la fecha de fin de vacaciones en formato dd/mm/aaaa';
		else blnFechaFinCorrecta = 1;
	}
	if(blnFechaInicioCorrecta == 1 && blnFechaFinCorrecta == 1) {
		if(comparaFechas(document.frmAlta.txtInicioVacaciones.value,document.frmAlta.txtFinVacaciones.value) > 0) {
			strError += '\nLa fecha de inicio de vacaciones no puede ser posterior a la fecha de fin';
		}
	}

	if(document.frmAlta.cmbHoraInicioSesion1.value >= document.frmAlta.cmbHoraFinSesion1.value) {
		strError += '\nLa hora de inicio de la mañana no puede ser igual o posterior a la hora de fin';
	}
	if(document.frmAlta.cmbHoraInicioSesion2.value >= document.frmAlta.cmbHoraFinSesion2.value) {
		strError += '\nLa hora de inicio de la tarde no puede ser igual o posterior a la hora de fin';
	}

	// 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 el alta (versión corta)
// -------------------------------------------------------------------------------
function checkeaFormularioAltaCorta() {

	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.';
	if(document.frmAlta.txtNombre.value == '') {
		strError += '\nDebes introducir el nombre de la clínica';
	}
	if(document.frmAlta.txtDireccion.value == '') {
		strError += '\nDebes introducir la dirección de la clínica';
	}
	if(document.frmAlta.txtPoblacion.value == '') {
		strError += '\nDebes introducir la población de la clínica';
	}
	if(document.frmAlta.txtCP.value == '') {
		strError += '\nDebes introducir el código postal de la clínica';
	}
	if(document.frmAlta.cmbProvincias.value == '-1') {
		strError += '\nDebe seleccionar la provincia';
	}
	if(document.frmAlta.txtTelefono.value == '') {
		strError += '\nDebes introducir el teléfono de la clínica';
	}

	// Vemos si ha seleccionado algún tratamiento
	var strTratamiento = '';
	for(i=0;i<document.frmAlta.length;i++) {
		if(document.frmAlta.elements[i].name == 'chkTratamientos[]' && document.frmAlta.elements[i].checked) strTratamiento = document.frmAlta.elements[i].value;
	}
	if(strTratamiento == '') strError += '\nSelecciona al menos un tratamiento';

	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 = '';

	blnFechaInicioCorrecta = 0;
	blnFechaFinCorrecta = 0;
	if(document.frmModificacionCalendario.txtInicioVacaciones.value != '') {
		if(!fechaCorrecta(document.frmModificacionCalendario.txtInicioVacaciones.value)) strError += '\nIntroduce la fecha de inicio de vacaciones en formato dd/mm/aaaa';
		else blnFechaInicioCorrecta = 1;
	}
	if(document.frmModificacionCalendario.txtFinVacaciones.value != '') {
		if(!fechaCorrecta(document.frmModificacionCalendario.txtFinVacaciones.value)) strError += '\nIntroduce la fecha de fin de vacaciones en formato dd/mm/aaaa';
		else blnFechaFinCorrecta = 1;
	}
	if(blnFechaInicioCorrecta == 1 && blnFechaFinCorrecta == 1) {
		if(comparaFechas(document.frmModificacionCalendario.txtInicioVacaciones.value,document.frmModificacionCalendario.txtFinVacaciones.value) > 0) {
			strError += '\nLa fecha de inicio de vacaciones no puede ser posterior a la fecha de fin';
		}
	}

	/*
	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 llama al script que marca una reserva como no presentado
// -------------------------------------------------------------------------------
function setNoPresentado(intReserva) {

	if(confirm("¿Deseas 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 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 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 de la clínica';
	}
	if(document.frmModificacion.txtDireccion.value == '') {
		strError += '\nDebes introducir la dirección de la clínica';
	}
	if(document.frmModificacion.txtPoblacion.value == '') {
		strError += '\nDebes introducir la población de la clínica';
	}
	if(document.frmModificacion.txtCP.value == '') {
		strError += '\nDebes introducir el código postal de la clínica';
	}
	if(document.frmModificacion.cmbProvincias.value == '-1') {
		strError += '\nDebe seleccionar la provincia';
	}
	if(document.frmModificacion.txtTelefono.value == '') {
		strError += '\nDebes introducir el teléfono de la clínica';
	}
	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';
	}

	// Vemos si ha seleccionado algún tratamiento
	var strTratamiento = '';
	for(i=0;i<document.frmModificacion.length;i++) {
		if(document.frmModificacion.elements[i].name == 'chkTratamientos[]' && document.frmModificacion.elements[i].checked) strTratamiento = document.frmModificacion.elements[i].value;
	}
	if(strTratamiento == '') strError += '\nSelecciona al menos un tratamiento';

	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.frmCita.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.frmCita.fecha.value = strFecha;

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








// -------------------------------------------------------------------------------
// Función que llama al script que obtiene los horarios para una sesión
// -------------------------------------------------------------------------------
function getHorasSesion() {

	if(document.frmCita.cmbComidas.selectedIndex > 0) {
		for(i=document.frmCita.cmbHoras.options.length-1;i>0;i--) document.frmCita.cmbHoras.options[i] = null;
		document.frmCita.cmbHoras.options[0] = new Option('Cargando horario...','-1');
		intComida = document.frmCita.cmbComidas.options[document.frmCita.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.frmCita.cmbHoras.options[0] = null;
		document.frmCita.cmbHoras.options[0] = new Option('----- Selecciona una opción -----','-1');
		for(i=1;i<arrayHoras.length;i++) {
			if(arrayHoras[i].length == 3) strHora = '0' + arrayHoras[i].substr(0,1) + ':' + arrayHoras[i].substr(1,2);
			else  strHora = arrayHoras[i].substr(0,2) + ':' + arrayHoras[i].substr(2,2);
			document.frmCita.cmbHoras.options[i] = new Option(strHora,arrayHoras[i]);
		}
	} else {
		document.frmCita.cmbHoras.options[0] = null;
		document.frmCita.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 salas disponibles
// -------------------------------------------------------------------------------
function getSalasDisponibles() {

	if(document.frmCita.cmbComidas.selectedIndex > 0 && document.frmCita.cmbHoras.selectedIndex > 0) {
		for(i=document.frmCita.cmbSalas.options.length-1;i>0;i--) document.frmCita.cmbSalas.options[i] = null;
		document.frmCita.cmbSalas.options[0] = new Option('Cargando salas...','-1');
		intComida = document.frmCita.cmbComidas.options[document.frmCita.cmbComidas.selectedIndex].value;
		strFecha = document.frmCita.fecha.value;
		strHora = document.frmCita.cmbHoras.options[document.frmCita.cmbHoras.selectedIndex].value;
		new Ajax.Request('cgi-bin/getSalasDisponibles.php', {method:'post', postBody:'comida=' + intComida + '&fecha=' + strFecha + '&hora=' + strHora, onSuccess:llenaComboSalas, onFailure:errorSalas});
	}

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






// -------------------------------------------------------------------------------
// Función que llena el desplegable de salas disponibles
// -------------------------------------------------------------------------------
function llenaComboSalas(xmlHTTPRequest) {

	var strResultado = xmlHTTPRequest.responseText;
	if(strResultado != '-1') {
		var arraySalas = strResultado.split('|');
		document.frmCita.cmbSalas.options[0] = null;
		document.frmCita.cmbSalas.options[0] = new Option('----- Selecciona una opción -----','-1');
		for(i=1;i<arraySalas.length;i++) {
			arraySala = arraySalas[i].split(':');
			document.frmCita.cmbSalas.options[i] = new Option(arraySala[0],arraySala[1]);
		}
	} else {
		document.frmCita.cmbSalas.options[0] = null;
		document.frmCita.cmbSalas.options[0] = new Option('----- Selecciona una opción -----','-1');
		alert('No hay salas disponibles con los criterios que has introducido');
	}

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





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







// -------------------------------------------------------------------------------
// 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 existe en Natua');
	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 existe en Natua');
	else return false;

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





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




// -------------------------------------------------------------------------------
// Función que hace una llamada Ajax para saber si existe un nombre de clínica
// -------------------------------------------------------------------------------
function existeNombre(strNombre) {

	if(strNombre != '') {
		new Ajax.Request('cgi-bin/getExisteNombre.php', {method:'post', postBody:'nombre=' + strNombre, onSuccess:devuelveExisteNombre, onFailure:errorExisteNombre});
	}

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





// -------------------------------------------------------------------------------
// Función que recibe la respuesta Ajax para saber si existe un nombre de clínica
// -------------------------------------------------------------------------------
function devuelveExisteNombre(xmlHTTPRequest) {

	var strResultado = xmlHTTPRequest.responseText;
	if(strResultado == '1') alert('El nombre que has introducido ya existe en Natua');
	else return false;

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





// -------------------------------------------------------------------------------
// Función que maneja el error al comprobar si existe un nombre de clínica
// -------------------------------------------------------------------------------
function errorExisteNombre(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 su 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 += '\nDebe confirmar su 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 su 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');

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





// -------------------------------------------------------------------------------
// Función que comprueba que se han rellenado los campos obligatorios de la cita
// -------------------------------------------------------------------------------
function checkeaFormularioCita() {

	strError = '';
	if(document.frmCita.txtNombre.value == '') strError = strError + 'Debes introducir el nombre del cliente';
	if(document.frmCita.txtApellidos.value == '') strError = strError + '\nDebes introducir los apellidos del cliente';
	if(document.frmCita.txtTelefono.value == '') strError = strError + '\nDebes introducir el teléfono del cliente';
	i = document.frmCita.cmbComidas.selectedIndex;
	if(document.frmCita.cmbComidas.options[i].value == -1) strError = strError + '\nDebes seleccionar la sesión';
	i = document.frmCita.cmbHoras.selectedIndex;
	if(document.frmCita.cmbHoras.options[i].value == -1) strError = strError + '\nDebes seleccionar la hora de la cita';
	i = document.frmCita.cmbSalas.selectedIndex;
	if(document.frmCita.cmbSalas.options[i].value == -1) strError = strError + '\nDebes seleccionar la sala';
	if(document.frmCita.fecha.value == '') strError = strError + '\nDebes seleccionar una fecha en el calendario';
	if(strError == '') document.frmCita.submit();
	else alert(strError);

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






// -------------------------------------------------------------------------------
// Función que compara dos fechas en formato dd/mm/aaaa.
// Devuelve un valor > 0 si la primera fecha es posterior a la segunda
// Devuelve 0 si son iguales
// Devuelve un valor < 0 si la primera fecha es anterior a la segunda
// -------------------------------------------------------------------------------
function comparaFechas(dtmFecha1,dtmFecha2) {

	strFecha1 = dtmFecha1.substr(6,4) + dtmFecha1.substr(3,2) + dtmFecha1.substr(0,2);
	strFecha2 = dtmFecha2.substr(6,4) + dtmFecha2.substr(3,2) + dtmFecha2.substr(0,2);

	intRetorno = strFecha1 - strFecha2;
	return intRetorno;

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