function esDni(campo){	
	 var error;
   var texto1=campo.value;
   var texto=texto1.substring(0,texto1.length-1);
  // var letra=texto1.substring(texto1.length-1,texto1.length);
 
   var filtro=/^[0-9]*$/;
   //alert(filtro);
   if(texto.length<=0){
   		campo.focus();
   		campo.select();
   		error=("· Debe introducir el dni.\n");
   }
   else{
   	   //si son todo números -> dni válido
	   if (filtro.test(texto)) {
	        resultado=true;
			error=null;
	   }
	   //si no no es dni
	   else{	       
	       resultado=false;
	       campo.focus();
	       campo.select();
		   error="· El dni introducido es incorrecto.\n";
	      }//else
   }//else
   
  // alert(error);
  
  /*var errorLetra=esLetraNif(letra);
  if(errorLetra!=null) error=errorLetra+error;*/
  
   return error; 
}
function esTelefono2(tel){
	//num=parseInt(tel.value);
	
	if(isNaN(tel.value) || tel.value.length<9){
		var	resultado=false;
	   tel.focus();
	   tel.select();
	   var error="· El teléfono introducido es incorrecto.\n";
	}else{	       
	      resultado=true;
			error=null;
	      }//else
	 return error; 
}

function esEmail(campo){
	var filtro = /^(.+\@.+\..+)$/
	if(filtro.test(campo.value)) { 
		 resultado=true;
		error=null;
    }
	else{	       
	   resultado=false;
	   campo.focus();
	   campo.select();
	   error="· El mail introducido es incorrecto.\n";
	  }//else
	return error; 
}
function esLetraNif(campo){
	
	var error;
   var texto=campo;
   var filtro=/^\D{1}$/;
    var filtro2=/^[0-9]*$/;
	if(filtro2.test(texto)){
	   if(texto.length<=0){
			campo.focus();
			campo.select();
			error=("· Debe introducir la letra del dni.\n");
	   }
	   else{
		   //si es letra -> dni válido
		   if (filtro.test(texto)) {
				resultado=true;
				error=null;
		   }
		   //si no no es nif
		   else{
			   error="· La letra del nif es incorrecta.\n";
			   resultado=false;
			   campo.focus();
			   campo.select();
			  }//else
	   }//else
	}
	else{
	   error="· la ultima letra del DNI debe ser un número.\n";
	   resultado=false;
	   campo.focus();
	   campo.select();	
	}
   return error; 
   
}

function fechaCorrecta(fecha){
	fecha=fecha.value;
	//alert(fecha);
	var arrayFecha = new Array();
	arrayFecha=fecha.split("/");
	var dia=arrayFecha[0];
	var mes=arrayFecha[1];
	var ano=arrayFecha[2];
	
	
	var error=null;
	var filtro=/^[0-9]{1,2}$/;
	var filtroAno=/^\d{4}$/;
	var aux;
	if((dia.length<=0 || dia.length>2)|| (mes.length<=0 || mes.length>2)|| (ano.length<=0 || ano.length>4)){
		document.datos.fechaN1.focus();
		document.datos.fechaN1.select();
		error="· La fecha de nacimiento es incorrecta \n";
	}
	else{
		//Comprueba dia
		
		aux=dia;
		if(filtro.test(aux)){
			if(aux.length<2) dia.value="0"+aux;
		}
		else{
			dia.focus();
			dia.select();
			error="· Dia incorrecto \n";
		}
		
		//Comprueba mes
		
		aux=mes;
		if(filtro.test(aux)){
			if(aux.length<2) mes.value="0"+aux;
		}
		else{
			mes.focus();
			mes.select();
			error=" · Mes incorrecto \n";	
		}
		
		//Comprueba año
		
		aux=ano;
		
		if(!filtroAno.test(aux)){
			ano.focus();
			ano.select();
			error=" · Año incorrecto \n";
		}
		
	}
	return error;
}

function validarDatosPersona(dni,fecha){
	var resultado=true;
	var error="";
	var aux;
	
	/*aux=esDni(dni);
	if(aux!=null){
		error=aux+error;
		resultado=false;
	}	*/
	aux=fechaCorrecta(fecha);
	if(aux!=null){
		error=aux+error;
		resultado=false;
	}
	
	if(resultado){
		return null;
	}
	else{
		return error;	
	}	
}

function validarColaborador(nombre,ape1,ape2){
  var resultado=false;
  var n=nombre.value.length;
  var a1=ape1.value.length;
  var a2=ape2.value.length; 
  
  if(n>0 && a1>0 && a2>0 ){
	//resultado=true;
	error=null;
  }
  else{	  
	   /*resultado=false;
	   nombre.focus();
	   nombre.select();*/
	   error="· Debe rellenar todos los datos para el colaborador "+nombre.name+".\n";
  }
  
  return error;
}
function validaMail(mail){
    var pos1, pos2, bOk = true;
    var sDir = mail.value;
    pos1 = sDir.indexOf('@', 0);
    pos2 = sDir.indexOf('.', pos1);
    bOk = bOk && (pos1 > 0);
    bOk = bOk && (pos2 != -1);
    bOk = bOk && (pos1 < pos2 - 1);
    bOk = bOk && (pos2 < sDir.length - 1);
    if (!bOk){
     return false;
    }
	else{
		return true;
	}
  }

	
	function comprobarCampo(campo){
		if(campo.value==''){
			return false;
		}
		return true;
	}
	
	function comprobarSelect(campo){
		
		if(campo.options[campo.selectedIndex].value==''){
			alert('Debe rellenar el campo '+campo.name);
			campo.focus();
			return false;
		}
		return true;
	}
	
	

function comprobarDatosPersonales(f){
	result=comprobarCampo(f.nombre);
	if(!result) return false;
	
	result=comprobarCampo(f.apellidos);
	if(!result) return false;
	
	
	if(comprobarCampo(f.dni)){
		result=esDni(f.dni);
		if(!result) return false;
	}
	else{
		return false;
	}
	
	if(f.dni.value!=''){
		result=esDni(f.dni);
		if(!result) return false;
	}
	
	result=comprobarSelect(f.dia);
	if(!result) return false;
	
	result=comprobarSelect(f.mes);
	if(!result) return false;
	
	result=comprobarSelect(f.ano);
	if(!result) return false;
	
	result=f.sexo[0].checked || f.sexo[1].checked;
	
	if(!result){
		alert("Debe seleccionar el sexo");
	 	return false; 
	}
	
	return true;
}

function esCodPostal(cod){
	if(cod.value.length<5 || isNaN(cod.value)){
		cod.focus();
		return false;
	}
	return true;
}

function esTelefono(tel){
	//num=parseInt(tel.value);
	
	if(isNaN(tel.value) || tel.value.length<9){
		return false;
	}
	return true;
}

function comprobarDatosContacto(f){
	result=comprobarCampo(f.direccion);
	if(!result) return false;
	
	result=comprobarCampo(f.localidad);
	if(!result) return false;
	
	
	if(comprobarCampo(f.codPostal)){
		result=esCodPostal(f.codPostal);
		if(!result) return false;
	}
	else return false;
	
	result=comprobarSelect(f.provincia);
	if(!result) return false;
	
	result=comprobarCampo(f.telefono1);
	if(result){
		result=esTelefono(f.telefono1);
		if(!result) return false;
	}
	else return false;	
	
	if(f.telefono2.value!=''){
		result=esTelefono(f.telefono2);
		if(!result) return false;
	}
	
	//result=comprobarCampo(f.email);
	if(f.email.value!='') {
		result=validaMail(f.email.value);
		if(!result){
			alert("Email invalido");
			f.email.focus();
			return false;
		}
	}
	
	
	return true;
}

function comprobarDatosFisicos(f){
	result=comprobarCampo(f.altura);
	if(result){
		num=parseInt(f.altura.value);
		if(isNaN(num) || f.altura.value.length!=3){
			alert("Debe poner la altura en cm");
			f.altura.focus();
			return false;
		}
	}
	else return false;
	
	result=comprobarCampo(f.peso);
	
	if(result){
		num=parseInt(f.peso.value);
		if(isNaN(num) || num>200 || num<20){
			alert("Ponga el peso en kg");
			f.peso.focus();
			return false;
		}
	}
	else return false;
	
	result=comprobarSelect(f.ojos);
	if(!result) return false;
	
	result=comprobarSelect(f.pelo);
	if(!result) return false;
	
	return true;
}
		
function comprobarFormulario(f){
	var result=true;
	
	result=comprobarDatosPersonales(f);
	
	if(result) result=comprobarDatosContacto(f);
	
	if(result) result=comprobarDatosFisicos(f);
	
	if(result) result=comprobarSelect(f.disponibilidad);
	
	return result;
	
}