// Funci&oacute;n encargada de quitar espacios vacíos a la derecha e izquierda de una cadena
function trim(stringToTrim) {
    return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function mailOk(mail){
	var mailres = true;            
    var cadena = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ1234567890@._-";
    
    var arroba = mail.indexOf("@",0);
    if ((mail.lastIndexOf("@")) != arroba) arroba = -1;
    
    var punto = mail.lastIndexOf(".");
                
     for (var contador = 0 ; contador < mail.length ; contador++){
        if (cadena.indexOf(mail.substr(contador, 1),0) == -1){
            mailres = false;
            break;
     }
    }

    if ((arroba > 1) && (arroba + 1 < punto) && (punto + 1 < (mail.length)) && (mailres == true) && (mail.indexOf("..",0) == -1))
     mailres = true;
    else
     mailres = false;
                
    return mailres; 	
}


// Funci&oacute;n encargada de comprobar que una cadena solo sea numérica
function compruebaTelefonos(cadena){
    // Comprobamos la longitud del teléfono
    if(cadena.length < 9){
		return true;
    } else {
		// Comprobamos que toda la cadena es numérica
		caracteresPermitidos = "0123456789"
		esNumerico = true;
		var caracter;
		for(i = 0; i < cadena.length && esNumerico == true; i++){
			caracter = cadena.charAt(i);
			if(caracteresPermitidos.indexOf(caracter) == -1){
				esNumerico = false;
				return true;
			}
		}
	}
	if(esNumerico == true){
		return false;
	}
}

function IsNumeric(sText){
	
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
   
   
   for (i = 0; i < sText.length; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
	  
   return IsNumber;
   
   }


function nif(dni) {

  numero = dni.substr(0,dni.length-1);
  let = dni.substr(dni.length-1,1);

  numero = numero % 23;
  letra='TRWAGMYFPDXBNJZSQVHLCKET';
  letra=letra.substring(numero,numero+1);
  if (letra!=let) {
	 return false;
  }else{
    return true;
  }
  
}



function comprobarDNI(dni){
	

	numero = dni.substr(0,dni.length-1);

	if (IsNumeric(numero) && nif(dni)){
		return true;
	}
	else{
		return false;
	}
	
}


 function fecha_valida(Cadena){  
 
     var Fecha= new String(Cadena);  
     var RealFecha= new Date();
	 
     // Cadena Año  
     var Ano= new String(Fecha.substring(Fecha.lastIndexOf("-")+1,Fecha.length));
	 
     // Cadena Mes  
     var Mes= new String(Fecha.substring(Fecha.indexOf("-")+1,Fecha.lastIndexOf("-")));
	 
     // Cadena Día  
     var Dia= new String(Fecha.substring(0,Fecha.indexOf("-")));
   
     // Valido el año  
     if (isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900){  
         return false;  
     }  
	 //Valido el Mes  
     if (isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12){  
         return false;  
     }  
     //Valido el Dia  
     if (isNaN(Dia) || parseInt(Dia, 10)<1 || parseInt(Dia, 10)>31){  
        return false;  
     }  
     if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) {  
         if (Mes==2 && Dia > 28 || Dia>30) {  
             return false;
         }  
     }  
       
   return true;  
 }  


function compruebaFormulario(){
		
	if ((trim(document.forms["form1"].contacta_nombre.value) == '') || 
		(document.forms["form1"].contacta_nombre.value == "Nombre / Apellidos"))
	{
		// Mensaje de error.
		alert("El campo \"Nombre completo:\" debe estar rellenado.");
		// Le doy el foco al campo afectado
		return false;
	  } 	
	if ((trim(document.forms["form1"].contacta_mail.value) == '') ||
		(mailOk(document.forms["form1"].contacta_mail.value) == false))
	{
		// Mensaje de error.
		alert("El campo \"Email:\" debe estar rellenado");
		// Le doy el foco al campo afectado
		document.forms["form1"].contacta_mail.focus();
		return false;
	}
	if (trim(document.forms["form1"].contacta_telefono.value) == '')  {
		// Mensaje de error.
		alert("El campo \"Teléfono fijo:\" debe estar rellenado");
		// Le doy el foco al campo afectado		
		document.forms["form1"].contacta_telefono.focus();
		return false;
	}
	if (compruebaTelefonos(document.forms["form1"].contacta_telefono.value)){
		// Mensaje de error.
		alert("El campo \"Tel\u00e9fono Fijo:\" debe contener 9 caracteres num\u00e9ricos");
		// Le doy el foco al campo afectado
		document.forms["form1"].contacta_telefono.focus();
		return false;
	}
	
	if (trim(document.forms["form1"].contacta_provincia.value) == '' ||
	 	trim(document.forms["form1"].contacta_provincia.value) == 'Poblacion-Provincia' ){	
		 
		alert("El campo \"Poblacion-Provincia \" debe estar cumplimentado");
		document.forms["form1"].contacta_provincia.focus();
		return false;						
						  
  	    }
		
	if (document.forms["form1"].contacta_interesado.value == 'none'){
						
		alert("Seleccione el curso en el que esta interesado");
		// Le doy el foco al campo afectado
		document.forms["form1"].contacta_interesado.focus();
		return false;
	}

	
	 if (!document.forms["form1"].acepto.checked){
		// Mensaje de error.
		alert("Debes aceptar las condiciones legales");
		// Le doy el foco al campo afectado
		document.forms["form1"].acepto.focus();
		return false;
	 }
	
	return true;
}
function cursoChecked(){
	
	var anyCursoCheck = false;
	for (var i=0;i<document.forms["form1"].length;i++)
	  {
		  var e = document.forms["form1"].elements[i];
   		  if (e.id.indexOf("curso") >= 0 && e.checked){
					anyCursoCheck = true;	  
		  }
	  }
	
	return anyCursoCheck;
}


function compruebaFormularioMatricula(){

	if ((trim(document.forms["form1"].contacta_nombre.value) == '') || 
		(document.forms["form1"].contacta_nombre.value == "Nombre / Apellidos"))
	{
		// Mensaje de error.
		alert("El campo \"Nombre completo:\" debe estar rellenado.");
		// Le doy el foco al campo afectado
		return false;
	  } 	
	if ((trim(document.forms["form1"].contacta_mail.value) == '') ||
		(mailOk(document.forms["form1"].contacta_mail.value) == false))
	{
		// Mensaje de error.
		alert("El campo \"Email:\" debe estar rellenado");
		// Le doy el foco al campo afectado
		document.forms["form1"].contacta_mail.focus();
		return false;
	}
	if (trim(document.forms["form1"].contacta_telefono.value) == '')  {
		// Mensaje de error.
		alert("El campo \"Teléfono fijo:\" debe estar rellenado");
		// Le doy el foco al campo afectado		
		document.forms["form1"].contacta_telefono.focus();
		return false;
	}
	if (compruebaTelefonos(document.forms["form1"].contacta_telefono.value)){
		// Mensaje de error.
		alert("El campo \"Tel\u00e9fono Fijo:\" debe contener 9 caracteres num\u00e9ricos");
		// Le doy el foco al campo afectado
		document.forms["form1"].contacta_telefono.focus();
		return false;
	}
		
	if ((trim(document.forms["form1"].contacta_dni.value) == '') ){
			
		alert("El campo \"Dni \" ó Pasaporte debe estar rellenado.");
		document.forms["form1"].contacta_dni.focus();
		return false;						
		
		}

	 if (trim(document.forms["form1"].contacta_provincia.value) == '' ||
		 trim(document.forms["form1"].contacta_provincia.value) == 'Poblacion-Provincia' ){
		 
		alert("El campo \"Poblacion-Provincia \" debe estar cumplimentado");
		document.forms["form1"].contacta_provincia.focus();
		return false;						
						  
  	    }
		
	 if (trim(document.forms["form1"].contacta_sexo.value) == 'sexo'){
		 
		alert("Debe seleccionar el tipo de sexo");
		document.forms["form1"].contacta_sexo.focus();
		return false;						
						  
  	    }
		
	if (document.forms["form1"].contacta_domicilio.value == '' || 
	    document.forms["form1"].contacta_domicilio.value == 'Domicilio' ){
						
		alert("El campo \"Direcci\u00f3n :\" no esta rellenado ");
		// Le doy el foco al campo afectado
		document.forms["form1"].contacta_domicilio.focus();
		return false;
	}
							  

	if (document.forms["form1"].contacta_nacimiento.value == '' || 
	    document.forms["form1"].contacta_nacimiento.value == 'Fecha de nacimiento' ||
		!fecha_valida(document.forms["form1"].contacta_nacimiento.value) ){
						
		alert("El campo \"Fecha de Nacimiento :\" no indicada correctamentte dd-mm-yyyy ");
		// Le doy el foco al campo afectado
		document.forms["form1"].contacta_nacimiento.focus();
		return false;
	}
							  

	 if (trim(document.forms["form1"].requisitos.value) == 'Forma de acceso'){
		 
		alert("Debe seleccionar el tipo de forma de acceso");
		document.forms["form1"].requisitos.focus();
		return false;						
						  
  	    }

	if (!cursoChecked()){
		
		alert("Debe seleccionar alguna asignatura para poder matricularse");
		return false;						
		
		}

	if (!document.forms["form1"].acepto.checked){
		// Mensaje de error.
		alert("Debes aceptar las condiciones legales");
		// Le doy el foco al campo afectado
		document.forms["form1"].acepto.focus();
		return false;
	 }
	
	return true;
}



function compruebaFormularioTitulacion(){
	
		
	if ((trim(document.forms["form1"].contacta_nombre.value) == '') || 
		(document.forms["form1"].contacta_nombre.value == "Nombre / Apellidos"))
	{
		// Mensaje de error.
		alert("El campo \"Nombre completo:\" debe estar rellenado.");
		// Le doy el foco al campo afectado
		return false;
	  } 	
	if ((trim(document.forms["form1"].contacta_mail.value) == '') ||
		(mailOk(document.forms["form1"].contacta_mail.value) == false))
	{
		// Mensaje de error.
		alert("El campo \"Email:\" debe estar rellenado");
		// Le doy el foco al campo afectado
		document.forms["form1"].contacta_mail.focus();
		return false;
	}
	if (trim(document.forms["form1"].contacta_telefono.value) == '')  {
		// Mensaje de error.
		alert("El campo \"Teléfono fijo:\" debe estar rellenado");
		// Le doy el foco al campo afectado		
		document.forms["form1"].contacta_telefono.focus();
		return false;
	}
	if (compruebaTelefonos(document.forms["form1"].contacta_telefono.value)){
		// Mensaje de error.
		alert("El campo \"Tel\u00e9fono Fijo:\" debe contener 9 caracteres num\u00e9ricos");
		// Le doy el foco al campo afectado
		document.forms["form1"].contacta_telefono.focus();
		return false;
	}
	
			 
	 if (!document.forms["form1"].acepto.checked){
		// Mensaje de error.
		alert("Debes aceptar las condiciones legales");
		// Le doy el foco al campo afectado
		document.forms["form1"].acepto.focus();
		return false;
	 }
	
	return true;
}