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 ()
{
  var formulario = document.forms[0]
  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 (bEsDNI)
      formulario.nDNI.value = quitarCerosPorDelante (formulario.sDNI.value)
    else
      formulario.nDNI.value = quitarCerosPorDelante (formulario.sNIE.value).toUpperCase ()

    return true
  }

  return false
}

function validaLetra (formulario) {
  /*if (document.formulario.nDNI.value.length < 9 ) {
   alert ("El NIF debe estar formado por 8 números y la letra");
   document.formulario.nDNI.focus();
   return false;
   }  */
  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 obtParametro (sParam)
{
  // Dada una URL obtiene el valor del parametro que se indique
  // Si el parametro no existe se retorna null
  var sLinea = window.location.href
  var bMantener = 0
  var sValor = null
  sLinea = sLinea.substring (sLinea.indexOf ('?', 0) + 1)
  while (bMantener == 0)
  {
    var sAux = sLinea
    //sAux = sLinea.substring (sLinea.indexOf('&', 0))
    if (sLinea.indexOf ('&', 0) == -1)
    {
      // Es el ultimo parametro
      bMantener = 1
      //sLinea = sLinea.substring (0, sLinea.indexOf(' ', 0))
    }
    else
      sLinea = sLinea.substring (0, sLinea.indexOf ('&', 0))


    var sParametro = sLinea.substring (0, sLinea.indexOf ('=', 0))
    sValor = sLinea.substring (sLinea.indexOf ('=', 0) + 1)

    if (sParametro == sParam)
      bMantener = 1
  }
  return sValor
}

function obtParametro_2 (sParam)
{
  // Dada una URL obtiene el valor del parametro que se indique
  // Si el parametro no existe se retorna null
  var sLinea = window.location.href
  var sValor = null
  var sBuscado = sParam + '='
  var indb = sLinea.indexOf (sBuscado, 0)
  var sAux = sLinea.substring (indb + sBuscado.length)
  var indsep = sAux.indexOf ('&')
  if (indsep == -1)
    sValor = sAux
  else
    sValor = sAux.substring (0, indsep)
  return sValor
}

function obtParamCp4 ()
{
  // Esta funcion obtiene el primer parametro
  var nDNI = obtParametro ('nDNI')
  document.forms[1].nDNI.value = nDNI
}

function obtParamCp4_2 ()
{
  // Esta funcion obtiene el primer parametro
  var nDNI = obtParametro_2 ('nDNI')
  var sClave = obtParametro_2 ('sClave')
  document.forms[1].nDNI.value = nDNI
  document.forms[1].sClave.value = sClave
}

function comprobarCampos2 ()
{
  var nTipo = document.forms[1].nTipo

  if (nTipo.value == "f")
  {
    var sFecha = document.forms[1].sFecha

    if (sFecha.value.length == 0)
    {
      alert ("Debes introducir una fecha válida")
      sFecha.focus ()
    }
    else if (!esFecha (sFecha.value))
    {
      alert ("La fecha introducida no es válida")
      sFecha.focus ()
    } else return true
  }
  else
  {
    var sClave = document.forms[1].sClave
    if (sClave.value.length == 0)
    {
      alert ("Debes introducir una password válida")
      sClave.focus ()
    } else return true
  }

  return false
}

function comprobarCampos2XPassword ()
{  
  var sClave = document.forms[0].sClave
  if (sClave.value.length == 0)
  {
    alert ("Debes introducir una password válida")
    sClave.focus ()
  } else return true
  return false
}

function comprobarCampos2XFecha ()
{
  var sFecha = document.forms[1].sFecha

  if (sFecha.value.length == 0)
  {
    alert ("Debes introducir una fecha válida")
    sFecha.focus ()
  }
  else if (!esFecha (sFecha.value))
  {
    alert ("La fecha introducida no es válida")
    sFecha.focus ()
  } else return true
  return false
}

function comprobarCampos3 ()
{
  var sClave = document.forms[1].sClave
  var sClave2 = document.forms[1].sClave2

  if (sClave.value.length == 0)
  {
    alert ("Debes introducir una password válida")
    sClave.focus ()
  }
  else if (sClave.value != sClave2.value)
  {
    alert ("La confirmación no coincide con la password ")
    sClave.focus ()
  } else return true

  return false
}

function getSelectedRadio (buttonGroup)
{
  // Chequea que el radio button esta checked
  // Devolvera -1 si solo era 1 (no hay grupo)
  // Devolvera el numero cuando hay un grupo
  // Devolvera false si no esta chceked

  if (typeof buttonGroup.length != 'undefined')
  {
    for (var i = 0; i < buttonGroup.length; i++)
    {
      if (buttonGroup[i].checked)
      {
        return i
      }
    }
  }
  else
  {
    if (buttonGroup.checked)
    {
      return -1
    }
  }
  return "false"
}

function irA ()
{
  nOpcion = getSelectedRadio (document.forms[1].opcConsulta)
  nDNI = document.forms[1].nDNI.value
  switch (nOpcion)
      {
    case 0:
      parent.Main.window.location.href = "/" + document.forms[1].sURLAppRel.value + "cas/ConsultasP/DatosP/datospersonales.jsp?nDNI=" + nDNI
      break

    case 1:
      parent.Main.window.location.href = "/" + document.forms[1].sURLAppRel.value + "cas/ConsultasP/DatosP/datospersonalesmod.jsp?nDNI=" + nDNI
      break

    case 2:
      parent.Main.window.location.href = "/" + document.forms[1].sURLAppRel.value + "cas/ConsultasP/Solicitud/consultaS.jsp?nDNI=" + nDNI
      break

    case 3:
      parent.Main.window.location.href = "/" + document.forms[1].sURLAppRel.value + "cas/ConsultasP/Solicitud/consultaSMod.jsp?nDNI=" + nDNI
      break
  }
}

function irA_2 ()
{
  nOpcion = getSelectedRadio (document.forms[1].opcConsulta)
  var nDNI = document.forms[1].nDNI.value
  var sClave = document.forms[1].sClave.value
  switch (nOpcion)
      {
    case 0:
      parent.Main.window.location.href = "/" + document.forms[1].sURLAppRel.value + "cas/ConsultasP/DatosP/datospersonales.jsp?nDNI=" + nDNI + "&sClave=" + sClave
      break

    case 1:
      parent.Main.window.location.href = "/" + document.forms[1].sURLAppRel.value + "cas/ConsultasP/DatosP/datospersonalesmod.jsp?nDNI=" + nDNI + "&sClave=" + sClave
      break

    case 2:
      parent.Main.window.location.href = "/" + document.forms[1].sURLAppRel.value + "cas/ConsultasP/Solicitud/consultaS.jsp?nDNI=" + nDNI + "&sClave=" + sClave
      break

    case 3:
      parent.Main.window.location.href = "/" + document.forms[1].sURLAppRel.value + "cas/ConsultasP/Solicitud/consultaSMod.jsp?nDNI=" + nDNI + "&sClave=" + sClave
      break
  }
}

function irA_X (nOpcion)
{
  // nOpcion = document.forms[1].opcConsulta[getSelectedRadio(document.forms[1].opcConsulta)].value
  /// 	if (nOpcion=='3')
  ///	{
  // Modificacion datos baremo
  // Enviamos a una página que 	comprueba si puede acceder a CV
  //abrirCV (document.forms[1].sURLCV.value+'?sDNI='+document.forms[1].nDNI.value+'&sPassword='+document.forms[1].sClave.value)
  ///	}
  ///	else
  ///	{
  if (nOpcion == '20')
  {
    // Consultas electrónicas
    document.forms[1].action = '/' + document.forms[1].sURLAppRel.value + 'cas/ConsultasP/ConsultasElec/ce.jsp'
  }
  else
  {
    // Ver: datos personales, Datos de baremo, elección de destinos y solicitud completa
    document.forms[1].action = '/' + document.forms[1].sURLAppRel.value + 'cas/ConsultasP/consultaCategorias.jsp'
    switch (nOpcion)
        {
      // sTipo es el mismo nombre que el jsp de ver pero sin '.jsp' al final
      case '0':
        document.forms[1].sTipo.value = 'verDatosPer'
        break

      case '1':
        document.forms[1].sTipo.value = 'modiDatosPer'
        break

      case '2':
        document.forms[1].sTipo.value = 'verDatosPro'
        break

      case '3':
        document.forms[1].sTipo.value = 'modiDatosPro'
        break

      case '4':
        document.forms[1].sTipo.value = 'verEleccionDest'
      // sTipo es el mismo nombre que el jsp de ver pero sin '.jsp' al final
        break

      case '5':
        document.forms[1].sTipo.value = 'modiEleccionDest'
        break

      case '10':
        document.forms[1].sTipo.value = 'verSolicitud'
        break
      case '11':
        document.forms[1].sTipo.value = 'anularDatosPer'
        break
      case '12':
        document.forms[1].sTipo.value = 'anularElecDest'
        break
      case '13':
        document.forms[1].sTipo.value = 'anularSolicitud'
        break
    }
  }
  document.forms[1].submit ()
  ///	}
}

function abrirCV (sURL)
{
  gInf = new Info
  var wW = 760 + 16
  var wH = 460
  var sW = screen.width
  var sH = screen.height
  var X = 0
  var Y = 0
  if (sW > wW) X = (sW - wW) / 2
  if (sH > wH) Y = (sH - wH) / 2
  window.open (sURL, 'ocv', 'screenX=' + X + ',left=' + X + ',screenY=' + Y + ',top=' + Y + ',width=' + wW + ',height=' + wH + ', scrollbars=yes, resizable=yes')
}


function veA (sIdCat) {
  document.forms[0].sIdCat.value = sIdCat;
  document.forms[0].submit ();
}

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';
  }
}