/********************************************************************
PROYECTO PACTO POR EXTREMADURA
Desarrollado por: Solucionex Tecnologías de la Información

Script para la validación del formulario

versión: 1.0
*********************************************************************/

$(document).ready( function() {
	
   $('#formulario_cuestionario').submit(function() {
		
      if($('#formulario_cuestionario #nombre').val()==''){
         $('#formulario_cuestionario #nombre').removeClass("texto");
         $('#formulario_cuestionario #nombre').addClass("textoerror");
         $('#formulario_cuestionario #nombre').focus();
         alert('En campo "Nombre" es obligatorio.');
         return false;
      }else{
         $('#formulario_cuestionario #nombre').removeClass("textoerror");
         $('#formulario_cuestionario #nombre').addClass("texto");
      }
      if($('#formulario_cuestionario #nif').val()==''){
         $('#formulario_cuestionario #nif').removeClass("texto");
         $('#formulario_cuestionario #nif').addClass("textoerror");
         $('#formulario_cuestionario #nif').focus();
         alert('En campo "DNI" es obligatorio.');
         return false;
      }else{
         $('#formulario_cuestionario #nif').removeClass("textoerror");
         $('#formulario_cuestionario #nif').addClass("texto");
      }

      if(!validarNIF($('#formulario_cuestionario #nif').val())){
         $('#formulario_cuestionario #error_nif').removeClass("error_no");
         $('#formulario_cuestionario #error_nif').addClass("error_si");
         $('#formulario_cuestionario #nif').removeClass("texto");
         $('#formulario_cuestionario #nif').addClass("textoerror");

         $('#formulario_cuestionario #nif').focus();
         alert('En campo "NIF" es incorrecto.');
         return false;
      }else{
         $('#formulario_cuestionario #error_nif').removeClass("error_si");
         $('#formulario_cuestionario #error_nif').addClass("error_no");
         $('#formulario_cuestionario #nif').removeClass("textoerror");
         $('#formulario_cuestionario #nif').addClass("texto");
      }

      if($('#formulario_cuestionario #email').val()==''){
         $('#formulario_cuestionario #email').removeClass("texto");
         $('#formulario_cuestionario #email').addClass("textoerror");
         $('#formulario_cuestionario #email').focus();
         alert('En campo "E-mail de contacto" es obligatorio.');
         return false;
      }else{
         $('#formulario_cuestionario #email').removeClass("textoerror");
         $('#formulario_cuestionario #email').addClass("texto");
      }
		
      patron=/^(\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+)*$/;
      if(!patron.test($('#formulario_cuestionario #email').val())){
         $('#formulario_cuestionario #error_email').removeClass("error_no");
         $('#formulario_cuestionario #error_email').addClass("error_si");
         $('#formulario_cuestionario #email').removeClass("texto");
         $('#formulario_cuestionario #email').addClass("textoerror");

         $('#formulario_cuestionario #email').focus();
         alert('En campo "E-mail de contacto" es incorrecto.');
         return false;
      }else{
         $('#formulario_cuestionario #error_email').removeClass("error_si");
         $('#formulario_cuestionario #error_email').addClass("error_no");
         $('#formulario_cuestionario #email').removeClass("textoerror");
         $('#formulario_cuestionario #email').addClass("texto");
      }
		
      if($('#formulario_cuestionario #municipio').val()==''){
         $('#formulario_cuestionario #municipio').removeClass("texto");
         $('#formulario_cuestionario #municipio').addClass("textoerror");
         $('#formulario_cuestionario #municipio').focus();
         alert('En campo "Municipio de Residencia" es obligatorio.');
         return false;
      }else{
         $('#formulario_cuestionario #municipio').removeClass("textoerror");
         $('#formulario_cuestionario #municipio').addClass("texto");
      }

      if($('#formulario_cuestionario #edad').val()==''){
         $('#formulario_cuestionario #edad').removeClass("texto");
         $('#formulario_cuestionario #edad').addClass("textoerror");
         $('#formulario_cuestionario #edad').focus();
         alert('En campo "Edad" es obligatorio.');
         return false;
      }else{
         $('#formulario_cuestionario #edad').removeClass("textoerror");
         $('#formulario_cuestionario #edad').addClass("texto");
      }

      if(!validarEntero($('#formulario_cuestionario #edad').val())){
         $('#formulario_cuestionario #error_edad').removeClass("error_no");
         $('#formulario_cuestionario #error_edad').addClass("error_si");
         $('#formulario_cuestionario #edad').removeClass("texto");
         $('#formulario_cuestionario #edad').addClass("textoerror");

         $('#formulario_cuestionario #edad').focus();
         alert('En campo "Edad" tiene que ser un número entero.');
         return false;
      }else{
         $('#formulario_cuestionario #error_edad').removeClass("error_si");
         $('#formulario_cuestionario #error_edad').addClass("error_no");
         $('#formulario_cuestionario #edad').removeClass("textoerror");
         $('#formulario_cuestionario #edad').addClass("texto");

      }

      //Compruebo si se han selecciona todas las respuestas

      ok = 1;

      $("table.bloquepreguntas tbody tr").each(function() {
         var tag = $(this).children($("td")).children("input[type='radio']:checked").attr('name');

         if(tag != undefined){
            $(this).removeClass("error");
            $(this).addClass("correcto");
         }else{
            $(this).removeClass("correcto");
            $(this).addClass("error");
            $(this).children($("td")).children("input[type='radio']").focus();
            alert('Hay preguntas sin contestar. Debe contestar a todas las preguntas del cuestionario.');
            ok = 0;
            return false;
         }         
      }
      );

      if(ok==0) {
         return false;
      }
   
      if($('#formulario_cuestionario #tmptxt').val()==''){
         $('#formulario_cuestionario #tmptxt').removeClass("captcha");
         $('#formulario_cuestionario #tmptxt').addClass("captchaerror");
         $('#formulario_cuestionario #tmptxt').focus();
         alert('Debe introducir el texto mostrado en la imagen.');
         return false;
      }else{
         $('#formulario_cuestionario #tipoConexion').removeClass("captchaerror");
         $('#formulario_cuestionario #tipoConexion').addClass("captcha");
      }
				
      if(!$('#formulario_cuestionario #acuerdo').attr('checked')){
         $('#formulario_cuestionario #error_acuerdo').removeClass("error_no");
         $('#formulario_cuestionario #error_acuerdo').addClass("error_si");
         $('#formulario_cuestionario #acuerdo').focus();
         alert('Debes aceptar las condiciones del servicio.');
         return false;
      }else{
         $('#formulario_cuestionario #error_acuerdo').removeClass("error_si");
         $('#formulario_cuestionario #error_acuerdo').addClass("error_no");
      }
		

      return true;
   });
} ); 


function validarEntero(valor){
   //intento convertir a entero.
   //si era un entero no le afecta, si no lo era lo intenta convertir
   esentero=true;
   valor = parseInt(valor)

   //Compruebo si es un valor numérico
   if (isNaN(valor)) {
      //entonces (no es numero) devuelvo el valor cadena vacia
      esentero=false;
   }
   return esentero;
}

function validarNIF(valor)
{
   abc=valor.toUpperCase();

   patron=/^[0-9]{8}[A-Z]{1}$/;

   if (!patron.test(abc)) { return false;}

   dni=abc.substring(0,abc.length-1)
   let=abc.charAt(abc.length-1)
   if (!isNaN(let))
   {
      return false
   }
   else
   {
      cadena="TRWAGMYFPDXBNJZSQVHLCKET"
      posicion = dni % 23
      letra = cadena.substring(posicion,posicion+1)
      if (letra!=let.toUpperCase())
      {
         return false
      }
   }
   return true;
}


