function validarDNI (formulario)
{
  if (formulario.sDNI.value.length == 0 || !esDNI_Valido (formulario.sDNI.value))
  {
    alert ("Debes introducir un DNI (sin letras, solo números)")
    formulario.sDNI.focus ()
  }
  else if (letraCorrecta (quitarCerosPorDelante (formulario.sDNI.value)) != formulario.sLetra.value)
  {
    alert ("La letra del DNI es incorrecta")
    formulario.sLetra.focus ()
  }
  else return true

  return false;
}

function validarNIE (formulario)
{
  var valorNIE = parseInt(quitarCerosPorDelante (formulario.sNIE.value));
  valorNIE += parseInt(eval("formulario.valor_NIE_"+formulario.sLetraNIE.value+".value"));
  if (formulario.sNIE.value.length == 0 || !esNIE_Valido (formulario.sNIE.value))
  {
    alert ("Debes introducir NIE válido")
    formulario.sNIE.focus ()
  }
  else if (letraCorrecta (valorNIE) != formulario.sLetra.value)
  {
    alert ("La letra es incorrecta")
    formulario.sLetra.focus ()
  }
  else return true

  return false;
}

function comprobarCampos (formulario)
{
  var bEsDNI = (document.getElementById ('sTipo').value == '1')

  var bOkDNIPass = false
  // Validacion diferente para DNI que para NIE
  if (bEsDNI) {
    bOkDNIPass = validarDNI (formulario)
    formulario.dni_nie.value = 'd'
  } else {
    bOkDNIPass = validarNIE (formulario)
    formulario.dni_nie.value = 'n'
  }

  // Si el DNI o el NIE es correcto validamos que se seleccione una categoria
  if (bOkDNIPass)
  {
    if (formulario.sIdCat.selectedIndex == 0)
    {
      alert ("Es necesario seleccionar una categoría")
      formulario.sIdCat.focus ()
    } else {
      if (bEsDNI)
        formulario.nDNI.value = quitarCerosPorDelante (formulario.sDNI.value)
      else
        formulario.nDNI.value = quitarCerosPorDelante (formulario.sNIE.value).toUpperCase ()

      return true
    }
  }

  return false
}


function validaLetra (formulario) {
  var letraInsertada = formulario.checkLetra.value
  var letraCorrect = letraCorrecta (formulario.nDNI.value)
  if (letraCorrect != letraInsertada.toUpperCase ()) {
    alert ('La letra del NIF es incorrecta.');
    formulario.checkLetra.focus ()
    return false
  }
  return true
}


function mostrar_DNI_NIE ()
{
  var sTipo = document.getElementById ('sTipo').value

  document.getElementById ('sDNI').value = ''
  document.getElementById ('sNIE').value = ''
  if (sTipo == '1')
  {
    document.getElementById ('txt_doc_DNI').style.display = 'block';
    document.getElementById ('txt_doc_Pass').style.display = 'none';
  }
  else
  {
    document.getElementById ('txt_doc_DNI').style.display = 'none';
    document.getElementById ('txt_doc_Pass').style.display = 'block';
  }
}