
/*Funcion para comprobar que hay algún checkbox marcado*/
//Componente= tr, li, ...
function comprobarMarcas(container_id) {
	var marcas = document.getElementById(container_id).getElementsByTagName('input');
	var checkbox;
	
	for ( var i = 0; i < marcas.length; i++ ) {
		checkbox = marcas[i];
		if ( checkbox && checkbox.type == 'checkbox' ) {
			if(checkbox.checked == true) return true;
		}
		}
		//alert("No ha seleccionado " + texto);
		return false;
}

//Se utiliza para comprobar que las claves son correctas al modificarlas
function validarClave(){
	return validarClaves(document.getElementById('clave1').value, document.getElementById('clave2').value, 6);
}

function validarDNI(){
	if(document.getElementById){
	// Verifico el NIF o NIE
	valor=document.getElementById('NIF').value;
	if(!esNIF(valor))
	{
		//alert("Parece que su NIF o NIE no es válido");
		document.getElementById('NIF').focus();
		return false;
	}	
	}
}

function validarAcceso(){
	if(document.getElementById){
		if(esVacio(document.getElementById('user').value)){
			alert("Debe rellenar el campo usuario");
			document.getElementById('user').focus();
			return false;
		}	
		
		if(document.getElementById('password') && esVacio(document.getElementById('password').value)){
			alert("Debe rellenar el campo contraseña");
			document.getElementById('password').focus();
			return false;
		}	
	}
}


function validarProfe(){
	if(document.getElementById){
		if(esVacio(document.getElementById('nombre').value)){
			alert("Debe rellenar el campo nombre");
			document.getElementById('nombre').focus();
			return false;
		}	

		if(esVacio(document.getElementById('ape1').value)){
			alert("Debe rellenar el campo primer apellido");
			document.getElementById('ape1').focus();
			return false;
		}	
		
		if(!(document.getElementById('sexoF').checked || document.getElementById('sexoM').checked)){
			alert("Debe seleccionar el sexo");
			document.getElementById('sexoF').focus();
			return false;	
		}

		if(document.getElementById('otroCentro')){//Formulario profesor
			//El teléfono y el correo no son obligatorios en el resto de componentes

			valor=document.getElementById('codigoCentro').value;
			if ((valor=="?" || esVacio(valor)) && esVacio(document.getElementById('codOtroCentro').value)) {
				alert("Debe seleccionar un centro del CEP o introducir el código del centro\nen el apartado 'Otros centros' si no pertenece a ningún centro de la provincia");
				document.getElementById('codOtroCentro').focus();
				return (false);
			}
			else if(valor=="?" || esVacio(valor)){				
				if(!validarLongEntero('codOtroCentro', 8)){
					alert("El código del centro debe tener 8 dígitos");
					document.getElementById('codOtroCentro').focus();
					return false;
				}

				if(esVacio(document.getElementById('otroCentro').value)){
					alert("Debe rellenar el campo con el nombre del centro");
					document.getElementById('otroCentro').focus();
					return false;				
				}
				
				if(esVacio(document.getElementById('localidadOtro').value)){
					alert("Debe rellenar el campo con la localidad del centro");
					document.getElementById('localidadOtro').focus();
					return false;				
				}
			}
			
			if(!esVacio(document.getElementById('movil').value) && !esTelefono(document.getElementById('movil').value)){
				document.getElementById('movil').focus();
				return false;
			}

			if(!esVacio(document.getElementById('email').value) && !esCorreo(document.getElementById('email').value)){
				alert("El E-Mail no es correcto.");
				document.getElementById('email').focus();
				return false;
			}		
		}
		else{//Formulario coordinador
			valor=document.getElementById('codigoCentro').value;
			if (valor=="?" || esVacio(valor)) {
				alert("Debe seleccionar el centro de destino");
				document.getElementById('codigoCentro').focus();
				return (false);
			}

			if(!esTelefono(document.getElementById('movil').value)){
				document.getElementById('movil').focus();
				return false;
			}			
			
			if(!esCorreo(document.getElementById('email').value)){
				alert("El E-Mail no es correcto.");
				document.getElementById('email').focus();
				return false;
			}		
		}
	}
return true;
}

function validarRegistro(){
if(document.getElementById){
	if(!(document.getElementById('olNO').checked || document.getElementById('olSI').checked)){
		alert("Debe marcar si se va a hacer uso o no del Aual Virtual.");
		document.getElementById('olNO').focus();
		return false;	
	}
	if(esVacio(document.getElementById('titulo').value)){
			alert("Debe rellenar el campo titulo");
			document.getElementById('titulo').focus();
			return false;
		}
	if(esVacio(document.getElementById('idNivelProy').value)){
			alert("Debe seleccionar el nivel del grupo de trabajo");
			document.getElementById('idNivelProy').focus();
			return false;
		}
	if(!comprobarMarcas('tematicas')){
		alert("Debe seleccionar alguna temática.");
		document.getElementById('tematicas').focus();
		return false;
	}
	if(esVacio(document.getElementById('resumen').value)){
			alert("Debe rellenar el campo descripción");
			document.getElementById('resumen').focus();
			return false;
		}	
	if(esVacio(document.getElementById('trayectoria').value)){
			alert("Debe rellenar el campo trayectoria");
			document.getElementById('trayectoria').focus();
			return false;
		}		
}
}

//Se utiliza para validar el formulario de las reuniones presenciales o de campo
function validarReunion() {
	if(document.getElementById){
		if(!validarFecha(document.getElementById('fecha').value)){
			alert("Parece que la fecha no es válida");
			document.getElementById('fecha').focus();
			return false;
		}

		if(document.getElementById('lugar')){//De campo
			if(esVacio(document.getElementById('lugar').value)){
				alert("Debe introducir el lugar donde se realizará la reunión");
				document.getElementById('lugar').focus();
				return false;
			}
		}
		else{//presenciales
			if(obtenerNumeroDiaSemana(document.getElementById('fecha').value)>5){
				alert("Las reuniones presenciales no pueden ser en Sábado ni en Domingo");
				document.getElementById('fecha').focus();
				return false;
			}

			if(esVacio(document.getElementById('codigoLugar').value)){
				alert("Debe seleccionar el centro donde se realizará la reunión");
				document.getElementById('codigoLugar').focus();
				return false;
			}
		}

		if (esVacio(document.getElementById('horaInicio').value)) {
				alert("Debe introducir la hora de inicio");
				document.getElementById('horaInicio').focus();
				return false;
			}

		if (esVacio(document.getElementById('horaFin').value)) {
				alert("Debe introducir la hora de fin");
				document.getElementById('horaFin').focus();
				return false;
			}

		if(!validarOrdenHoras(document.getElementById('horaInicio').value,document.getElementById('horaFin').value)) {
			alert("Alguna hora no es correcta o\nla hora final no es mayor que la inicial");
			document.getElementById('horaFin').focus();
			return false;
			}

		//Presenciales
		if(document.getElementById('codigoLugar') && !validarDuracion(document.getElementById('horaInicio').value,document.getElementById('horaFin').value)) {
			alert("La duración mínima de cada reunión presencial es 1 h.");
			document.getElementById('horaFin').focus();
			return false;
			}
	}
	return true;
}
//Se utiliza para validar el formulario del acta de una reunión
function validarActa() {
	if(document.getElementById){
		
		if(!comprobarMarcas('asistentes')){
			alert("Debe seleccionar algún asistente.");
			document.getElementById('asistentes').focus();
			return false;
		}

		if(document.getElementById('orden')){//De campo
			if(esVacio(document.getElementById('orden').value)){
				alert("Debe introducir el orden del día de la reunión");
				document.getElementById('orden').focus();
				return false;
			}
		}

		if(!(document.getElementById('coNO').checked || document.getElementById('coSI').checked)){
			alert("Debe marcar si los asistentes conocen o no el orden del día.");
			document.getElementById('coNO').focus();
			return false;	
		}

		if (esVacio(document.getElementById('desarrollo').value)) {
				alert("Debe introducir el desarrollo de la reunión");
				document.getElementById('desarrollo').focus();
				return false;
			}

		if (esVacio(document.getElementById('conclusiones').value)) {
				alert("Debe introducir las conclusiones de la reunión");
				document.getElementById('horaFin').focus();
				return false;
			}
	}
	return true;
}
//Se utiliza para validar el formulario de los recursos económicos
function validarRecurso() {
	if(document.getElementById){
		if(esVacio(document.getElementById('recurso').value)){
			alert("Debe rellenar el campo recurso");
			document.getElementById('recurso').focus();
			return false;}

		if(!esEntero(document.getElementById('cantidad').value)){
			alert("Parece que la cantidad no es válida");
			document.getElementById('cantidad').focus();
			return false;}

		if(!esLong(document.getElementById('importe').value)){
			alert("Parece que el importe de cada unidad no es válido");
			document.getElementById('importe').focus();
			return false;}
	}
return true;
}

//Se utiliza para validar el formulario de envío de mensajes
function validarMensaje() {
	if(document.getElementById){
		if(esVacio(document.getElementById('asunto').value)){
			alert("Debe rellenar el campo asunto");
			document.getElementById('asunto').focus();
			return false;}
		//La siguiente línea es necesaria para que el campo de texto se detecte siempre como vacío
		if (tinyMCE) tinyMCE.triggerSave();
		if(esVacio(document.getElementById('texto').value)){
			alert("Debe rellenar el campo texto");
			document.getElementById('texto').focus();
			return false;}
	}
return true;
}


//Se utiliza para validar el formulario para seleccionar los grupos a asignar en admin/form_listgrupos
function validarMaterial() {
	if(document.getElementById){
		if(document.getElementById('material') && esVacio(document.getElementById('material').value)){
			alert("Debe seleccionar el fichero del material");
			document.getElementById('material').focus();
			return false;}

		if(esVacio(document.getElementById('descripcion').value)){
			alert("Debe rellenar el campo descripción");
			document.getElementById('descripcion').focus();
			return false;}
	}
return true;
}

//Se utiliza para validar el formulario de impresión
function validarImp() {
	if(document.getElementById){		
		if(!((document.getElementById('todoSO') && document.getElementById('todoSO').checked) || document.getElementById('todoSI').checked || document.getElementById('todoNO').checked || document.getElementById('memo').checked)){
			alert("Debe seleccionar alguna opción de impresión.");
			document.getElementById('todoSI').focus();
			return false;	
		}
		
		if(document.getElementById('todoNO').checked && !comprobarMarcas('form_imprimir')){
			alert("Debe marcar la parte o partes a imprimir.");
			document.getElementById('todoSI').focus();
			return false;	
		
		}
	}
return true;
}

//Se utiliza para validar el formulario para seleccionar los grupos a asignar en admin/form_listgrupos
function validarAsignar() {
	if(document.getElementById){				
		if(!comprobarMarcas('form_listado')){
			alert("Debe marcar algún grupo.");
			return false;	
		
		}
	}
return true;
}


//Se utiliza para validar el formulario de aprobación o denegación
function validarEval() {
if(document.getElementById){
	comprobarFecha = false;

	if(document.getElementById('A').checked || document.getElementById('D').checked){		
		if(!validarFecha(document.getElementById('fechaEval').value)){
			alert("Parece que la fecha no es válida");
			document.getElementById('fechaEval').focus();
			return false;
		}

		//Al cambiar de aprbado a denegado o al revés no está los campos correspondientes y por lo tanto no hay que comprobarlos. O sea si estamos en la pantalla de los aprobado y cambiamos a denegado no estará el campo motivo.
		if(document.getElementById('A').checked && document.getElementById('dotacion')){
			if(!esLong(document.getElementById('dotacion').value)){
			alert("Parece que la dotación económica no es válida");
			document.getElementById('dotacion').focus();
			return false;}
			}
		if(document.getElementById('D').checked && document.getElementById('motivo')){	
			if(esVacio(document.getElementById('motivo').value)){
				alert("Debe introducir el motivo de la denegación");
				document.getElementById('motivo').focus();
				return false;
			}
		}
	}
	else{
		alert("Debe seleccionar si el grupo de trabajo está aprobado o denegado.");
		document.getElementById('A').focus();
		return false;}
}
	return true;
}

//Se utiliza para validar el formulario del informe técnico inicial
function validarII() {
if(document.getElementById){

	if(esVacio(document.getElementById('justifica').value)){
		alert("Debe introducir si justifican el proyecto a partir\nde problemas detectados en su práctica docente.");
		document.getElementById('justifica').focus();
		return false;}

	if(esVacio(document.getElementById('plantea').value)){
		alert("Debe introducir cómo plantea el proyecto\nincidir en la práctica docente");
		document.getElementById('plantea').focus();
		return false;}

	if(!esLong(document.getElementById('presuSuge').value)){
		alert("Parece que el presupuesto sugerido no es válido");
		document.getElementById('presuSuge').focus();
		return false;}

	if(esVacio(document.getElementById('recurCohe').value)){
		alert("Debe introducir la coherencia de los recursos\nsolicitados en el proyecto");
		document.getElementById('recurCohe').focus();
		return false;}

	return true;
}
}
//Valoración cualitativa
function validarCuali(){
	if(!(document.getElementById('cualiS').checked || document.getElementById('cualiN').checked)){
			alert("Debe seleccionar alguna opción");
			document.getElementById('cualiS').focus();
			return false;	
	}
	return true;
}
//Actuaciones concretas
function validarActua(){
	if(esVacio(document.getElementById('actua').value)){
		alert("Debe introducir la tarea y/o actuación prevista");
		document.getElementById('actua').focus();
		return false;
	}

	if(esVacio(document.getElementById('tempo').value)){
		alert("Debe introducir la temporalización de la tarea");
		document.getElementById('tempo').focus();
		return false;
	}

	if(esVacio(document.getElementById('descrip').value)){
		alert("Debe introducir la descripción de la metodología de trabajo");
		document.getElementById('descrip').focus();
		return false;
	}

	if(esVacio(document.getElementById('compe').value)){
		alert("Debe introducir las competencias profesionales que se pretenden desarrollar");
		document.getElementById('compe').focus();
		return false;
	}

	return true;
}