// -------------------------------------------------------------------------------------- //
// ----  FICHERO CON TODAS LAS FUNCIONES DE JAVASCRIPT PARA VALIDAR LOS FORMULARIOS  ---- //
// -------------------------------------------------------------------------------------- //

//-------------------------------------------------------------------------------
// Función para confirmar borrados de información (cursos, cuestionarios, archivos)
//-------------------------------------------------------------------------------
function confirm_elim() {
	if(confirm("¿Está seguro de eliminar permanentemente este contenido?"))
		return true;
	return false;
}
//Para verificar la eliminación del alumno
	function confirm_elim_usua(ident) {
	if(confirm("¿Está completamente seguro de eliminar a este usuario?. Se borrarán todos sus datos, incluido su seguimiento")) //
		{
			return window.location.href= "mod_alumno.php?accion=eliminar&ident=" +ident;
		}
    }
	//Para verificar la eliminación del admin
	function confirm_elim_admin(iden) {
	if(confirm("¿Está seguro de eliminar permanentemente a este administrador?")) //
		{
			return window.location.href= "mod_admin.php?accion=eliminar&ident=" +iden;
		}
    }
//Para verificar la eliminación del profesor
	function confirm_elim_profe(iden) {
	if(confirm("¿Está seguro de eliminar permanentemente a este profesor?")) //
		{
			return window.location.href= "mod_profesor.php?accion=eliminar&ident=" +iden;
		}
    }
//-------------------------------------------------------------------------
//Función para desplegar una ventana independiente, para visor de imágenes
//-------------------------------------------------------------------------
function abre_ventana(url, width, height, left, top, id) 
{
	 if(id == 1) {
	 	var Win   // Variable que contendrá la ventana a abrir
 	 	Win = window.open(url,"abre_ventana",'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',resizable=no,scrollbars=yes,menubar=no,status=no' );
	 }
}
//-------------------------------------------- 
// Función para confirmar cualquier acción   
//--------------------------------------------
function confirma_accion (formulario) {
	if(formulario == "insertar")
	{
		if (confirm("Compruebe que los campos del formulario no estén vacíos o tengan valores extraños antes de insertar la información. ¿Está seguro de querer continuar con la acción de insertar?" )) 
			return true;
		return false;}	
	else if(formulario == "modificar")
	{	
		if (confirm("Compruebe que los campos del formulario no estén vacíos o tengan valores extraños antes de insertar la información. ¿Está seguro de querer continuar con la acción de modificar?" )) 
			return true;
		return false;}        
	else if(formulario == "eliminar") 
	{
		if(confirm("¿Está seguro de querer eliminar permanentemente este contenido?"))
			return true;
		return false;} 	
}
//---------------------------------------------------------------------
// Función que desactiva grupo opciones al actualizar cuestionarios
//---------------------------------------------------------------------
	function des_opciones_1 () {
		if((frselcurso.sel_accion.options[frselcurso.sel_accion.selectedIndex].value == "insertar") && (frselcurso.cuest.options[frselcurso.cuest.selectedIndex].value != "calidad")) 
			frselcurso.numpreg.disabled = false;
		else 
			frselcurso.numpreg.disabled = true;
		return true;
	}
	function des_opciones_2 () {
		if(frselcurso.cuest.options[frselcurso.cuest.selectedIndex].value == "calidad") {
			frselcurso.sel_curso.disabled = true;
			frselcurso.numpreg.disabled = true;
		}
		else {
			frselcurso.sel_curso.disabled = false;
			if((frselcurso.sel_accion.options[frselcurso.sel_accion.selectedIndex].value == "insertar")) 
				frselcurso.numpreg.disabled = false;
		}
		return true;
	}
//---------------------------------------------------------------------
// Función que informa de las acciones al realizar los cuestionarios
//---------------------------------------------------------------------
	function informa (accion) {
		var mensaje;
		if(accion == "guardar")
			mensaje = "Esta acción guardará las respuestas dadas hasta esta página inclusive. En caso de no haber seleccionado ninguna de las respuestas se guardarán igualmente como vacías. ¿Confirma que desea continuar con la acción?";
		if(accion == "entregar")
			mensaje = "Esta acción dará por concluido y entregado el cuestionario. Sin la posibilidad de ver ni modificar las respuestas dadas. ¿Confirma que desea continuar con la acción?";
		if(accion == "nota")
			mensaje = "Esta acción calculará la nota final del curso según las respuestas dadas por el alumno. Una vez obtenida está nota será la definitiva. ¿Está seguro de continuar con la acción?";
		if(confirm(mensaje))
			return true;
		return false;
	}
//---------------------------------------------------------------------
// Función que confirma acciones al actualizar los cuestionarios
//---------------------------------------------------------------------
	function confirma (accion) {
		var mensaje = "¿Confirma que desea "+accion+" ?";
		if(confirm(mensaje))
			return true;
		return false;
	}
//----------------------------------------------------------------------------------
//   Funcion de verificacion de integridad de la dirección del correo electrónico
//----------------------------------------------------------------------------------
	function Comprobar_Direccion_Correo (Correo) {
		var ArrobaEncontrada = false;
		longitud = Correo.length;
		for (var i=0;  i < longitud; i++) {
			if (Correo.charAt(i) == "@") {
				if (ArrobaEncontrada == true) {
			    	alert ("Verifique su dirección de correo electrónico");
					return false;
				}
				else ArrobaEncontrada = true;
			}
		}
		if (ArrobaEncontrada == false) {
			alert ("Verifique su dirección de correo electrónico");
			return false;
		}
		return true;
	}
//-----------------------------------------------
//   Funcion de verificacion del Código Postal.
//-----------------------------------------------
	function Comprobar_Codigo_Postal (CP) {
		// Comprobamos que tiene 5 caracteres.
		if (CP.length < 5) return false;
		// Comprobamos que sólo se han introducido números
		var caracter;
		for (var i=0; i<5; i++) {
		    	caracter = CP.charAt(i);
			if ((caracter < '0') || (caracter > '9')) return false;
		}
		return true;
	}
//-----------------------------------------------
//   Funcion de verificacion del Código Postal.
//-----------------------------------------------
	function Comprobar_Cadenas (Cadena) {
		// Comprobamos que sólo se han introducido números
		var caracter;
		for (var i=0; i < Cadena.length; i++) {
		    caracter = Cadena.charAt(i);
			caracter = caracter.toUpperCase();
			if (((caracter < 'A') || (caracter > 'Z')) && ((caracter != ' ') && (caracter != 'Á') && (caracter != 'É') && (caracter != 'Í') && (caracter != 'Ó') && (caracter != 'Ú'))) 
				return false;
		}	
		return true;
	}
//---------------------------------------------------------------
//  Función para comprobar que las cadenas tengan sólo números.
//---------------------------------------------------------------
	function Solo_Numeros(num) {
		var caracter;
		for (var i=0; i<num.length; i++) {
		    caracter = num.charAt(i);
			if ((caracter < '0') || (caracter > '9')) return false;
		}
		return true;
	}
//----------------------------------------------------------------------------------------
//   Funcion de verificacion de los números de teléfonos introducidos en los formularios.
//----------------------------------------------------------------------------------------
	function Comprobar_Telefono(Telefono, ConPrefijo) {
		if (Telefono.length < 9) return false;
		// Comprobamos que sólo se han introducido números
		return Solo_Numeros(Telefono);
		if (ConPrefijo == true) {
		   if (Telefono.charAt(0) != '9') return false;
		   if (Telefono.charAt(1) != '2') return false;
		   if ((Telefono.charAt(2) != '2') && (Telefono.charAt(2) != '8')) return false;
		}
		return true;
	}
//-------------------------------------------------------
//   Funcion de verificacion de integridad del NIF/DNI.
//-------------------------------------------------------
	function Comprobar_NIF_DNI (NIF) {
		// Comprobamos la longitud para el DNI
	   	if (NIF.length < 9) {
	   		alert ("Verifique la longitud del campo NIF");
			return false;
		} 
		else {
		   // Si se trata del NIF comprobamos que es una letra.
			if (NIF.length == 9) {
				caracter = NIF.charAt(8);
				caracter = caracter.toUpperCase()
				if ((caracter < 'A') || (caracter > 'Z')) {
					alert(caracter + " Verifique su NIF");
					return false;
				}
		   	}
			// Comprobamos que el DNI sólo tiene números.
			for(i=0;i<8;i++){
				caracter = NIF.charAt(i);
				caracter = caracter.toUpperCase();
				if (caracter < '0' || caracter > '9') {
			   		alert ("Verifique los dígitos de su NIF")
					return false;
				}
			} 
		}
		return true;
	}
//----------------------------------------------------
// Función que determina si dos cadenas son iguales.
//----------------------------------------------------
	function Cadenas_Iguales (cadena1,cadena2){
		if(cadena1.length == cadena2.length){
			for(var i=0; i<cadena1.length; i++){
				if(cadena1.charAt(i) != cadena2.charAt(i)) return false;
			}
			return true;
		}
		return false;
	}
//----------------------------------------------------
// Función para verificar la contraseña y su réplica.
//----------------------------------------------------
	function Verifica_Password (passw1,passw2,infer,s){
		var pass1 = passw1.value;
		var pass2 = passw2.value;
		if(pass1.length > s){
			alert("El campo Contraseña tiene una longitud superior a la adecuada. Por favor, escríbalo de nuevo");
			passw1.focus();
			return false;
		}
		else if(pass2.length > s){
			alert("El campo Repetir Contraseña tiene una longitud superior a la adecuada. Por favor, escríbalo de nuevo");
			passw2.focus();
			return false;
		}
		if(pass1.length < infer){
			alert("El campo Contraseña no tiene la longitud mínima. Por favor, escríbalo de nuevo");
			passw1.focus();
			return false;
		}
		else if(pass2.length < infer){
			alert("El campo Repetir Contraseña no tiene la longitud mínima. Por favor, escríbalo de nuevo");
			passw2.focus();
			return false;
		}
		if(!Cadenas_Iguales(pass1,pass2)){
			alert("Los campos Contraseña y Repetir Contraseña tienen valores distintos, Por favor, corríjalos");
			passw1.focus();
			return false;
		}
	}
//--------------------------------------------------------------------------------------------------
//   Funcion de verificacion de integridad de los datos del alumno al matricularse en algún curso
//--------------------------------------------------------------------------------------------------
	function test_matricula (Formulario) {
		if (Formulario.fapellidos.value == "") {
			alert("El campo Apellidos está vacío. Por favor, rellénelo.");
			Formulario.fapellidos.focus();
			return false;}
		if (!Comprobar_Cadenas (Formulario.fapellidos.value)) {
			alert("El valor del campo Apellidos es incorrecto. Por favor, corríjalo.");
			Formulario.fapellidos.focus();
			return false;}//--------------------------------
		if (Formulario.fnombre.value == "") {
			alert("El campo Nombre está vacío. Por favor, rellénelo.");
			Formulario.fnombre.focus();
			return false;}
		if (!Comprobar_Cadenas (Formulario.fnombre.value)) {
			alert("El valor del campo Nombre es incorrecto. Por favor, corríjalo.");
			Formulario.fnombre.focus();
			return false;}//--------------------------------
		if (Formulario.fdni.value==""){
			alert("El campo DNI está vacio. Por favor, rellénelo.");
			Formulario.fdni.focus();
			return false;}
		else 
			if (Comprobar_NIF_DNI(Formulario.fdni.value) == false) return false;			
		if (Formulario.ftelefono.value == "") {
			alert("El campo Telefono fijo está vacio. Por favor, rellénelo.");
			Formulario.ftelefono.focus();
			return false;}
		if (Comprobar_Telefono(Formulario.ftelefono.value, false) == false) {	
			alert("El valor del campo Telefono fijo es incorrecto. Por favor, corríjalo.");
			Formulario.ftelefono.focus();
			return false; } //--------------------------------
		if (Formulario.fmovil.value != "") {
			if (Comprobar_Telefono(Formulario.fmovil.value, false) == false) {	
			alert("El valor del campo Telefono movil es incorrecto. Por favor, corríjalo.");
			Formulario.fmovil.focus();
			return false; }}//--------------------------------
		if (Formulario.fprofes.value != "") {
			if (!Comprobar_Cadenas (Formulario.fprofes.value)) {
			alert("El valor del campo Profesión es incorrecto. Por favor, corríjalo.");
			Formulario.fprofes.focus();
			return false;}}//--------------------------------
		if(Formulario.fpass.value == ""){
			alert("El campo Contraseña está vacio. Por favor, rellénelo.");
			Formulario.fpass.focus();
			return false;}
		if(Formulario.fpass2.value == ""){
			alert("El campo Repetir Contraseña está vacio. Por favor, rellénelo.");
			Formulario.fpass2.focus();
			return false;}
		if(Verifica_Password(Formulario.fpass,Formulario.fpass2,6,'8') == false) { return false; }
		if (Formulario.fcorreo.value == "") {
			alert("El valor del campo Correo Electrónico está vacío. Por favor, rellénelo.");
			Formulario.fcorreo.focus();
			return false;
		} else
			if(Comprobar_Direccion_Correo(Formulario.fcorreo.value) == false) return false;
		return true;
	}
//--------------------------------------------------------------------------------------------------
//   Funcion de verificacion de integridad de los datos al insertar un nuevo administrador.
//--------------------------------------------------------------------------------------------------
	function test_admin (Formulario) {
		if (Formulario.fnick.value == "") {
			alert("El campo Usuario está vacío. Por favor, rellénelo.");
			Formulario.fnick.focus();
			return false;}
		if(Formulario.fpass.value == ""){
			alert("El campo Contraseña está vacio. Por favor, rellénelo.");
			Formulario.fpass.focus();
			return false;}
		if(Formulario.fpass2.value == ""){
			alert("El campo Repetir Contraseña está vacio. Por favor, rellénelo.");
			Formulario.fpass2.focus();
			return false;} //------------------------------
		if (Formulario.fnombre.value == "") {
			alert("El campo Nombre está vacío. Por favor, rellénelo.");
			Formulario.fnombre.focus();
			return false;}
		if (!Comprobar_Cadenas (Formulario.fnombre.value)) {
			alert("El valor del campo Nombre es incorrecto. Por favor, corríjalo.");
			Formulario.fnombre.focus();
			return false;}//--------------------------------
		if (Formulario.fcorreo.value == "") {
			alert("El valor del campo E-mail está vacío. Por favor, rellénelo.");
			Formulario.fcorreo.focus();
			return false;
		} else
			if(Comprobar_Direccion_Correo(Formulario.fcorreo.value) == false) return false;
		return true;
	}
//------------------------------------------------------------------------------------
// Función para verificar la integridad en los datos al insertar un nuevo usuario
//------------------------------------------------------------------------------------
	function test_ins_mod_usua(Formulario) { 
		if (Formulario.fdni.value==""){
			alert("El campo DNI está vacio. Por favor, rellénelo.");
			Formulario.fdni.focus();
			return false;
		}
		else 
			if (Comprobar_NIF_DNI(Formulario.fdni.value) == false) return false;
		if(Formulario != 'frmodmat') {
			if(Formulario.fpass.value == ""){
				alert("El campo Contraseña está vacio. Por favor, rellénelo.");
				Formulario.fpass.focus();
				return false;}
			if(Formulario == 'frinsusua') {
				if(Formulario.fpass2.value == ""){
					alert("El campo Repetir Contraseña está vacío. Por favor, rellénelo.");
					Formulario.fpass2.focus();
					return false;} //------------------------------
			}
		}
		if (Formulario.fnombre.value == "") {
			alert("El campo Nombre está vacío. Por favor, rellénelo.");
			Formulario.fnombre.focus();
			return false;
		}
		if (!Comprobar_Cadenas (Formulario.fnombre.value)) {
			alert("El valor del campo Nombre es incorrecto. Por favor, corríjalo.");
			Formulario.fnombre.focus();
			return false;
		} //--------------------------------
		if (Formulario.fcorreo.value==""){
			alert("El campo E-mail está vacio. Por favor, rellénelo.");
			Formulario.fcorreo.focus();
			return false;
		}
		if (Formulario.fcorreo.value != "") {
			if(Comprobar_Direccion_Correo(Formulario.fcorreo.value) == false) return false;
		} 
		return true;
	}
//------------------------------------------------------------------------------------
// Función para verificar la integridad en los datos al insertar un nuevo curso
//------------------------------------------------------------------------------------
	function test_ins_mod_cur(Formulario) {
		if (Formulario.t_nom.value==""){
			alert("El campo Nombre curso está vacio. Por favor, rellénelo.");
			Formulario.t_nom.focus();
			return false;}
		return true;
	}
//------------------------------------------------------------------------------------
// Función para verificar la integridad en los datos al gestionar algún profesor
//------------------------------------------------------------------------------------
	function test_ins_mod_prof(Formulario) { 
		if (Formulario.fnick.value==""){
			alert("El campo Usuario está vacio. Por favor, rellénelo.");
			Formulario.fnick.focus();
			return false;}
		if(Formulario.fpass.value == ""){
			alert("El campo Contraseña está vacio. Por favor, rellénelo.");
			Formulario.fpass.focus();
			return false;}
		if(Formulario == 'frmodprof') {
			if(Formulario.fpass2.value == ""){
				alert("El campo Repetir Contraseña está vacío. Por favor, rellénelo.");
				Formulario.fpass2.focus();
				return false;} //------------------------------
		}
		if (Formulario.fnombre.value == "") {
			alert("El campo Nombre y Apellidos está vacío. Por favor, rellénelo.");
			Formulario.fnombre.focus();
			return false;}
		if (!Comprobar_Cadenas (Formulario.fnombre.value)) {
			alert("El valor del campo Nombre es incorrecto. Por favor, corríjalo.");
			Formulario.fnombre.focus();
			return false;} //--------------------------------
		if (Formulario.fcorreo.value==""){
			alert("El campo E-mail está vacio. Por favor, rellénelo.");
			Formulario.fcorreo.focus();
			return false;}
		if (Formulario.fcorreo.value != "") {
			if(Comprobar_Direccion_Correo(Formulario.fcorreo.value) == false) return false;} 
		return true;
	}
//------------------------------------------------------------------------------------
// Función para verificar la integridad en los datos al gestionar algún profesor
//------------------------------------------------------------------------------------
	function test_ins_cuest(Formulario) { 
		var resp,aux=0;
		if (Formulario.t_preg.value==""){
			alert("El campo Pregunta está vacio. Por favor, rellénelo.");
			Formulario.t_preg.focus();
			return false;}
		for(i==1;i<=12;i++){
			resp = 't_resp'+i;
			if(Formulario.resp.value == "") aux++;
		}
		if (aux==12){
			alert("No ha introducido ninguna respuesta. Por favor, introduzca alguna siguiendo el orden alfabético establecido: A - B - C... .");
			Formulario.t_preg.focus();
			return false;}
		return true;
	}
//------------------------------------------------------------------------------------
// Función para verificar la integridad de las contraseñas en modificación
//------------------------------------------------------------------------------------
	function test_contra(Formulario) { 
		if (Formulario.fpass.value==""){
			alert("El campo Contraseña está vacio. Por favor, rellénelo.");
			Formulario.fpass.focus();
			return false;}
		else if (Formulario.fpass2.value==""){
			alert("El campo Repetir Contraseña está vacio. Por favor, rellénelo.");
			Formulario.fpass2.focus();
			return false;}
		else if(Verifica_Password(Formulario.fpass,Formulario.fpass2,6,'8') == false) return false; 
		return true;
	}
//------------------------------------------------------------------------------------
// Función para verificar la integridad de datos en la solicitud de facturas
//------------------------------------------------------------------------------------
	function test_factura(Formulario) { 
		if (Formulario.t_dni.value==""){
			alert("El campo NIF está vacío. Por favor, rellénelo.");
			Formulario.t_dni.focus();
			return false;}
		else if (Comprobar_NIF_DNI(Formulario.t_dni.value) == false) return false;
		if (Formulario.t_mail.value==""){
			alert("El campo E-mail está vacío. Por favor, rellénelo.");
			Formulario.t_mail.focus();
			return false;}
		else if(Comprobar_Direccion_Correo(Formulario.t_mail.value) == false) return false;
		if ((!Formulario.tip_personal.checked)&&(!Formulario.tip_empresa.checked)) {
			alert("No ha seleccionado ningún tipo de factura. Por favor, selecciónelo.");
			Formulario.tip_personal.focus();
			return false;}
		if ((Formulario.tip_personal.checked)&&(Formulario.tip_empresa.checked)) {
			alert("Solo puede seleccionarse un único tipo de factura. Por favor, marque solo uno.");
			Formulario.tip_personal.focus();
			return false;}
		if (Formulario.tip_empresa.checked) {
			if(Formulario.t_den_emp.value == "") {
				alert("El campo Denominación Empresa está vacío. Por favor, rellénelo.");
				Formulario.t_den_emp.focus();
				return false;}
			if(Formulario.t_cif_emp.value == "") {
				alert("El campo CIF o NIF Empresa está vacío. Por favor, rellénelo.");
				Formulario.t_cif_emp.focus();
				return false;}
			else if (Comprobar_NIF_DNI(Formulario.t_cif_emp.value) == false) return false;
			if(Formulario.t_dir_emp.value == "") {
				alert("El campo Dirección Empresa está vacío. Por favor, rellénelo.");
				Formulario.t_dir_emp.focus();
				return false;}
			if(Formulario.t_mun_emp.value == "") {
				alert("El campo Municipio está vacío. Por favor, rellénelo.");
				Formulario.t_mun_emp.focus();
				return false;}
			if(Formulario.t_cod_emp.value == "") {
				alert("El campo Código Postal está vacío. Por favor, rellénelo.");
				Formulario.t_cod_emp.focus();
				return false;}
			else if (Comprobar_Codigo_Postal(Formulario.t_cod_emp.value) == false){
				alert("El campo Código Postal tiene valores erróneos. Por favor, corríjalo.");
				Formulario.t_cod_emp.focus();
				return false;}
			if(Formulario.t_prov_emp.value == "") {
				alert("El campo Provincia está vacío. Por favor, rellénelo.");
				Formulario.t_prov_emp.focus();
				return false;}
		}
		if ((!Formulario.tip_dom_alum.checked)&&(!Formulario.tip_dom_emp.checked)) {
			alert("No ha seleccionado ningún domicilio. Por favor, selecciónelo.");
			Formulario.tip_dom_alum.focus();
			return false;}
		if ((Formulario.tip_dom_alum.checked)&&(Formulario.tip_dom_emp.checked)) {
			alert("Solo puede seleccionarse un único domicilio. Por favor, marque solo uno.");
			Formulario.tip_dom_alum.focus();
			return false;}
		return true;
	}
//------------------------------------------------------------------------------------
// Función para verificar la integridad de datos en la solicitud de certificados
//------------------------------------------------------------------------------------
	function test_certificados(Formulario) { 
		if (Formulario.t_dni.value==""){
			alert("El campo NIF está vacío. Por favor, rellénelo.");
			Formulario.t_dni.focus();
			return false;}
		else if (Comprobar_NIF_DNI(Formulario.t_dni.value) == false) return false;
		if (Formulario.t_mail.value==""){
			alert("El campo E-mail está vacío. Por favor, rellénelo.");
			Formulario.t_mail.focus();
			return false;}
		else if(Comprobar_Direccion_Correo(Formulario.t_mail.value) == false) return false;
		if((!Formulario.matricula.checked && !Formulario.pruebas.checked) && !Formulario.diploma.checked){
			alert("No ha seleccionado ningún tipo de certificación. Por favor, seleccione alguno.");
			Formulario.matricula.focus();
			return false;}
		return true;
	}
//------------------------------------------------------------------------------------
// Función para verificar la integridad de datos al enviar sugerencias y aportaciones
//------------------------------------------------------------------------------------
	function test_sugerencias(Formulario) { 
		if (Formulario.t_dni.value==""){
			alert("El campo NIF está vacío. Por favor, rellénelo.");
			Formulario.t_dni.focus();
			return false;}
		else if (Comprobar_NIF_DNI(Formulario.t_dni.value) == false) return false;
		if (Formulario.t_mail.value==""){
			alert("El campo E-mail está vacío. Por favor, rellénelo.");
			Formulario.t_mail.focus();
			return false;}
		else if(Comprobar_Direccion_Correo(Formulario.t_mail.value) == false) return false;
		if (Formulario.t_telef.value==""){
			alert("El campo Teléfono móvil está vacío. Por favor, rellénelo.");
			Formulario.t_telef.focus();
			return false;}
		else if (Comprobar_Telefono(Formulario.t_telef.value, false) == false){ 
			alert("El campo Teléfono móvil es erróneo. Por favor, corríjalo.");
			Formulario.t_telef.focus();
			return false;}
		return true;
	}
	//***************************************************************************************
	//***************************************************************************************
	//***************************************************************************************