document.write("<script src='js/check.js'></script>");

// Para ocultar o presentar trozos de código
function blocking(nr, abrir)
{
  if (document.getElementById) // Netscape 5 and Explorer 5
  {
    if( abrir ) {
      document.getElementById(nr).style.display = 'block';
    }
    else
      document.getElementById(nr).style.display = 'none';
  }
  else if (formApertura.all) // Explorer 4 and Explorer 6
  {
    if( abrir )
      formApertura.all[nr].style.display = 'block';
    else
      formApertura.all[nr].style.display = 'none';
  }
}

// Si está marcado que el representante es diferente que el sujeto se presentan los
// datos de éste para que los rellene
function mostrarRepresentante()
{
  if( document.getElementById("REPDIF").checked == true ) 
    blocking( 'representante', true );
  else
  {
    blocking( 'representante', false );
    //Blanqueamos los campos del representante
    document.getElementById('NIFREP').value = "";
    document.getElementById('NOMREP').value = "";
    document.getElementById('APE1REP').value = "";
    document.getElementById('APE2REP').value = "";
//    document.getElementById('DOMREPCOD').value = "";
    document.getElementById('DOMREPNCOD').value = "";
    document.getElementById('CFIREP').value = "";    
    document.getElementById('NUMREP').value = "";
    document.getElementById('DUPREP').checked = false;
    document.getElementById('KMREP').value = "";
    document.getElementById('BLQREP').value = "";
    document.getElementById('PBLREP').value = "";
    document.getElementById('ESCREP').value = "";
    selectListValue( "00", document.getElementById('PLAREP'), "value");
    document.getElementById('PGENREP').value = "";
    document.getElementById('PESPREP').value = "";
    //document.getElementById('MUNREP').value = "";
    document.getElementById('CPOREP').value = "";
    document.getElementById('TELREP').value = "";
  }
  
    
}

// Abre una ventana nueva con la ayuda
function abrirAyudaGeneral()
{
  var nuevaVentana = this.open("ayuda.jsp", 'ayuda');
  nuevaVentana.focus();
}


// Valida que el campo que recibe es de tipo decimal
// numeroMaximoParteEntera el numero máximo de digitos permitido en la parte entera
// numeroMaximoDecimales es el numero máximo de decimales permitido
// nombre del campo para el mensaje
function campoDecimal( campoDecimal, numeroMaximoParteEntera, numeroMaximoDecimales, nombreCampo )
{
  
  

  var valorDecimal = campoDecimal.value;
  var resultado = true;  
    
  if( valorDecimal.length > 0 )
  {
    var valueLength = valorDecimal.length;
    for ( i = 0; resultado && i < valueLength; i++ ) 
    {
      ch = valorDecimal.substring( i, i + 1 );
      resultado = (( ch >= "0" && ch <= "9" ) || ch=="." || ch==",");
    }
        
    // Comprobamos que el número de decimales sea correcto
    if( resultado )
    {
      var parteEntera;
      if( valorDecimal.indexOf(".") != -1 || valorDecimal.indexOf(",") != -1)
      {
        var decimal;
        if( valorDecimal.indexOf(".") != -1 )
        {
          parteEntera = valorDecimal.substring( 0, valorDecimal.indexOf(".") );
          decimal = valorDecimal.substring(valorDecimal.indexOf(".") + 1, valorDecimal.length);
        }
        if( valorDecimal.indexOf(",") != -1 )
        {
          parteEntera = valorDecimal.substring( 0, valorDecimal.indexOf(",") );
          decimal = valorDecimal.substring(valorDecimal.indexOf(",") + 1, valorDecimal.length);
          
          // Cambiamos la , por el punto para que el formato de todos los decimales sea el mismo
          campoDecimal.value = parteEntera + "." + decimal;
        }
        
        if( decimal.length > numeroMaximoDecimales )
        {
          resultado = false;
          alert('El número de decimales del campo ' + nombreCampo + ' es como máximo ' + numeroMaximoDecimales);
          campoDecimal.focus();
        }
      }
      else
      {
        parteEntera = valorDecimal;
      }

      if( parteEntera.length > numeroMaximoParteEntera )
      {
        resultado = false;
        alert('Se ha superado el rango de la parte entera del campo ' + nombreCampo);
        campoDecimal.focus();
      }
    }
    else
    {
       alert('Se ha superado el rango de la parte entera del campo ' + nombreCampo);
       campoDecimal.focus();
    }
  }

  return resultado;
}

// Devuelve true si el campo que recibe como parámetro es un NIF
// false en caso contrario ==> CIF
// Partimos de que la estructura del campo es correcto porque se ha validado con
// validarNIFCIF: Tiene 9 dígitos
function esNIF( campo )
{
  var valor = campo.value;
  if( valor != null )
  {    
    var primerCaracter = valor.substring(0,1);

    // Si el primer caracter es un número ==> NIF
    // El NIF tiene 8 dígitos, pero también puede empezar por una de las letras  K, L, M y X, Y, Z
    primerCaracter = primerCaracter.toUpperCase();
    if( isInteger(primerCaracter) || primerCaracter == 'K' || primerCaracter == 'L' || primerCaracter == 'M' || primerCaracter == 'X' || primerCaracter == 'Y'|| primerCaracter == 'Z') {
      return true;
      }
    else { 
    return false;
    } 
  }
  else {
    return false;
    }
}

// Valida que la cuenta corriente sea correcta
/* 
 *17/01/2006 La forma de pago será en efectivo    
 *14/12/2006 La forma de pago puede ser telemático
 */
function validarCCC( entidad, oficina, digitosControl, numeroCuenta )
{
  var CCCcorrecto = true;
  
  // Como el campo no es obligatorio solo sacamos el error si algún campo tiene algun valor
  if ( entidad.value.length == 0 && oficina.value.length == 0 && 
       digitosControl.value.length == 0 && numeroCuenta.value.length == 0 )
  {
  }
  // Debe tener 20 dígitos
  else 
  {
    if( entidad.value.length != 4 || oficina.value.length != 4 || 
        digitosControl.value.length != 2 || numeroCuenta.value.length != 10 )
    {
      alert( "La cuenta corriente debe tener 20 dígitos" ); 
      CCCcorrecto = false;
    }
    else
    {
      var digitosCorrectos = obtenerDigitoControlCCC("00" + entidad.value + oficina.value) + '' + obtenerDigitoControlCCC(numeroCuenta.value);
      if( digitosCorrectos != digitosControl.value )
      {
        alert( "Los dígitos de control de la cuenta corriente no son correctos" ); 
        CCCcorrecto = false;
      }
    }
  }
  
  if( CCCcorrecto )
    return true;
  else
  {
    entidad.focus();
    return false;
  }
}

// Obtener los digitos de control de la cuenta corriente
function obtenerDigitoControlCCC(valor)
{
  valores = new Array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6);
  control = 0;
  for (i=0; i<=9; i++)
    control += parseInt(valor.charAt(i)) * valores[i];
  control = 11 - (control % 11);
  if (control == 11) control = 0;
  else if (control == 10) control = 1;
  return control;
}


// Devuelve true is el campo es entero
// false en caso contrario, y presenta un mensaje
function campoEntero( campo, nombreCampo )
{
  if( isInteger( campo.value ) )
  {
    return true;
  }
  else
  {
    alert('El campo ' + nombreCampo + ' debe ser numérico');
    campo.focus();
    return false;
  }  
}


// Devuelve true si el campo tiene algún valor
// false en caso contrario
function campoObligatorio( campo, nombreCampo )
{
  if( trim(campo.value).length == 0 )
  {
    alert('El campo ' + nombreCampo + ' es obligatorio');
    campo.focus();
    return false;
  }
  else
  {
    return true;
  }
}

// Devuelve true si el campo de tipo select tiene algún valor
// false en caso contrario
function campoSelectObligatorio( campo, nombreCampo )
{
  var numeroOpciones = campo.length;
  var seleccionado = false;
  i = -1;
  while( !seleccionado && i<numeroOpciones-1 )
  {
    i++;
    if (( campo[i].selected==true) &&(campo[i].value != '-1'))
      seleccionado = true;
  }

  if( seleccionado )
    return true;
  else
  {
    alert('El campo ' + nombreCampo + ' debe tener al menos un valor' );
    return false;
  }
}

// Devuelve true si el campo de tipo radio tiene algún valor, false en caso contrario
// Ademas da un mensaje si no se ha introducido ningun valor
function campoRadioObligatorio( campo, nombreCampo )
{
  var numeroOpciones = campo.length;
  var seleccionado = false;
  i = -1;
  while( !seleccionado && i<numeroOpciones-1 )
  {
    i++;
    if( campo[i].checked )
      seleccionado = true;
  }
  if( seleccionado )
    return true;
  else
  {
    alert('El campo ' + nombreCampo + ' es obligatorio');
    return false;
  }
}


// Devuelve true si el campo de tipo radio tiene algún valor
// false en caso contrario
function hayCampoRadio( campo )
{
  var numeroOpciones = campo.length;
  var seleccionado = false;
  i = -1;
  while( !seleccionado && i<numeroOpciones-1 )
  {
    i++;
    if( campo[i].checked )
      seleccionado = true;
  }
  return seleccionado;
}




// Devuelve true si el campo de tipo combo tiene algún valor seleccionado distinto del primero
// false en caso contrario
function campoComboObligatorio( campo, nombreCampo )
{  
  if (campo.selectedIndex==0)
  {
    alert('El campo ' + nombreCampo + ' es obligatorio');
    return false;
  }  
  else return true;
}


// Si se marca que la forma de pago es a cargo de cuenta es obligatorio
// rellenar una de las tres cuentas de la pantalla
function validarFormaPago( formaPago, cuentaSujeto )
{
  // Si está marcado pago a cuenta de sujeto

  if( formaPago[1].checked && cuentaSujeto.value.length == 0 )
  {
    alert('Es obligatorio rellenar el campo Cuenta Corriente');
    cuentaSujeto.focus();
    return false;
  }
  return true;
}

// Valida el campo NIF/CIF
function validarNIFCIF( campo )
{
  var NIFCIFcorrecto = true;
  var valor = campo.value.toUpperCase();
  
  // Si tienes 8 números y una letra ==> NIF
  // Si tiene 1 letra, 7 numeros y 1 letra ==> CIF
  if(valor.length == 9)
  {
    var primerCaracter = valor.substring(0,1);
    // Si el primer caracter es un número o una de las letras permitidas KLMXYZ ==> NIF
    // El NIF tiene 8 dígitos y una letra
    if( isInteger(primerCaracter) || (/^[KLMXYZ]/.test(primerCaracter)))
    {
      // Si el primer digito es un número cogemos 8 dítigos
      if( isInteger(primerCaracter) ) 
        numero = valor.substring(0,8);
      // Si es una letra, 7
      else {
        numero = valor.substring(1,8);
        if( (/^[Y]/.test(primerCaracter)) ) numero = '1'+numero;
        else if( (/^[Z]/.test(primerCaracter)) ) numero = '2'+numero;
      }
//alert('numero:'+numero);
//alert(isNaN(numero));
      if(isNaN(numero))
      {      
        NIFCIFcorrecto = false;
      }
      else
      {
        // Comprobamos la letra. El procedimiento del calculo consiste en realizar el módulo de 23. 
        // Su resultado nos dará una posición en una secuencia de letras (TRWAGMYFPDXBNJZSQVHLCKE). 
        // La letra situada en dicha posición será la letra del NIF.
        var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
        var posicion = numero%23;
//alert('posicion:'+posicion);        
        var ultimoCaracter = letras.substring( posicion, posicion+1);
//alert('ultimoCaracter:'+ultimoCaracter);        
        if( ultimoCaracter != valor.substring( 8, 9))
        {
          NIFCIFcorrecto = false;
        }
//alert('NIFCIFcorrecto:'+NIFCIFcorrecto);                
      }      
    }
    // Si el primer caracter es una letra ==> CIF
    // El CIF tiene una letra, 7 números y un caracter de control (puede ser número o letra)
    else
    {
      // Es una letra de las admitidas ?    
      // Cambio ABCDEFGHKLMNPQS (de internet) por ABCDEFGHIJNPQS (rutina Cobol)

      /* MOD 05/09/08 MJC CAMBIO EN LA RUTINA DE VALIDACION DEL CIF, SE QUITA LA LETRA I
         Y SE AÑADEN LAS LETRAS UVRW */

      if (!/^[ABCDEFGHJNPQSUVRW]/.test(valor)) 
      {
        NIFCIFcorrecto = false;
      }
      else
      {
        // Comprobamos el digito de control. Operaciones        
        // - Sumar los dígitos de la posiciones pares. Suma = A
        // - Para cada uno de los dígitos de la posiciones impares, 
        //   multiplicarlo por 2 y sumar los dígitos del resultado. 
        //   Ej.: ( 8 * 2 = 16 --> 1 + 6 = 7 ).
        //   Acumular el resultado. Suma = B 
        // - Sumar A + B = C
        // - Tomar sólo el dígito de las unidades de C y restárselo a 10. 
        //   Esta resta nos da D.
        // - A partir de D ya se obtiene el dígito de control. Si ha de ser 
        //   numérico es directamente D y si se trata de una letra se corresponde
        //   con la relación: 
        //   A = 1, B = 2, C = 3, D = 4, E = 5, F = 6, G = 7, H = 8, I = 9, J = 0
        
        var v1 = new Array(0,2,4,6,8,1,3,5,7,9); 
        var temp = 0; 
        var temp1;      
        
        for( i = 2; i <= 6; i += 2 ) 
        {
          temp = temp + v1[ parseInt(valor.substr(i-1,1)) ];
          temp = temp + parseInt(valor.substr(i,1));
        }
      
        temp = temp + v1[ parseInt(valor.substr(7,1)) ];
      
        temp = (10 - ( temp % 10));
      
        if( temp == 10 )
          temp = 0;
        var letras = 'JABCDEFGHI';
        var ultimoCaracter = letras.substring( temp, temp+1);
        if( ultimoCaracter != valor.substring( 8, 9) && temp != valor.substring( 8, 9))
        {
//          alert( "El dígito de control del CIF es incorrecto, debe ser " + ultimoCaracter + " ó " + temp ); 
          NIFCIFcorrecto = false;
        }
      }
    }    
  }
  else
  {
    NIFCIFcorrecto = false;
  }

  if( NIFCIFcorrecto )
    return true;
  else
  {
    alert( "El NIF/CIF introducido no es correcto, compruebe que la letra o el número de la última posición es correcta" ); 
    campo.focus();
    return false;
  }
}


/*
El segundo apellido no es obligatorio nunca ya que puede no existir
Fecha modif: 11/11/2005
// El segundo apellido es obligatorio si el NIF empieza por numero
function validarApellidos( nif, apellido1, apellido2 )
{
  var resultado = false;
  if( esNIF(nif) )
  {
    if( isInteger( nif.value.substring(0,1) ) )
    {
      if( campoObligatorio( apellido2, 'Segundo Apellido' ) )
        resultado = true;
    }
    else
      resultado = true;    
  }
  else
    resultado = true;
  
  if( resultado == false )
  {
    alert('El segundo apellido es obligatorio');
    apellido2.focus();
  }
  
  return resultado;
}
*/

// No se puede rellenar el campo número y el campo kilómetro a la vez
function validarNumKm( numero, kilometro ) 
{
  if( numero.value.length > 0 && kilometro.value.length > 0 )
  {
    alert('Solo se puede rellenar el campo Número o el campo Kilómetro, pero no ambos');
    numero.focus();
    return false;
  }
  else
    return true;
}

// Si están rellenos todos los campos obligatorios y los datos son correctos
// enviamos el formulario
function validarEnviarFormulario(intranet)
{
  var enviarFormulario = true;
  
  // Datos del sujeto        
  if( enviarFormulario &&
      campoObligatorio( document.getElementById('fechaSolicitud'), 'Fecha Solicitud' ) &&
      compararFecha( document.getElementById('fechaActual'), document.getElementById('fechaSolicitud') ) && 
      campoObligatorio( document.getElementById('NIFSUJ'), 'D.N.I/C.I.F' ) &&
      validarNIFCIF( document.getElementById('NIFSUJ')) &&
      campoObligatorio( document.getElementById('APE1SUJ'), 'Primer apellido/Razón social' ) )
//      validarApellidos( document.getElementById('NIFSUJ'), document.getElementById('APE1SUJ'), document.getElementById('APE2SUJ') ) )
  {
    enviarFormulario = true;
  }
  else
  {
    enviarFormulario = false;
  }

  if( enviarFormulario )    
  {
    if( campoObligatorio( document.getElementById('DOMSUJNCOD'), 'Nombre de la vía') && 
        campoEntero( document.getElementById('NUMSUJ'), 'Número' ) &&
        campoDecimal( document.getElementById('KMSUJ'), 3, 1, 'Kilómetro' ) &&
        validarNumKm( document.getElementById('NUMSUJ'), document.getElementById('KMSUJ') ) &&
        campoEntero( document.getElementById('TELSUJ'), 'Teléfono') &&
        campoObligatorio( document.getElementById('MUNSUJ'), 'Municipio' ) &&
        campoEntero( document.getElementById('CPOSUJ'), 'Código postal') )
    {
      enviarFormulario = true;
    }
    else
      enviarFormulario = false;
  }

  //el representante es obligatorio si el sujeto pasivo es persona juridica  
  if (enviarFormulario &&  (!esNIF(document.getElementById('NIFSUJ'))) && (!document.getElementById('REPDIF').checked)) 
  {
    enviarFormulario=false;
    alert('El representante es obligatorio');
  }
  
  // Si se ha marcado que el representante es diferente
  if( enviarFormulario && document.getElementById('REPDIF').checked )
  {
    if( campoObligatorio( document.getElementById('NIFREP'), 'D.N.I/C.I.F del representante' ) &&
        validarNIFCIF( document.getElementById('NIFREP') ) &&
        campoObligatorio( document.getElementById('APE1REP'), 'Primer apellido/Razón social del representante' ) &&
//        validarApellidos( document.getElementById('NIFREP'), document.getElementById('APE1REP'), document.getElementById('APE2REP') ) &&
        campoObligatorio( document.getElementById('DOMREPNCOD'), 'Nombre de la vía') &&         
        campoEntero( document.getElementById('NUMREP'), 'Número' ) &&
        campoDecimal( document.getElementById('KMREP'), 3, 1, 'Kilómetro' ) &&
        validarNumKm( document.getElementById('NUMREP'), document.getElementById('KMREP') ) &&
        campoEntero( document.getElementById('TELREP'), 'Teléfono') &&
        campoObligatorio( document.getElementById('MUNREP'), 'Municipio' ) &&
        campoEntero( document.getElementById('CPOREP'), 'Código postal'))
    {
      enviarFormulario = true;
    }
    else
    {
      enviarFormulario = false;
    }
  }
  
  //validacion de los datos de vehículo
  if( enviarFormulario )
  {
    if( campoObligatorio( document.getElementById('BASVEH'), 'Bastidor' ) &&        
        campoObligatorio( document.getElementById('MARVEH'), 'Marca y modelo' ) && 
        campoObligatorio( document.getElementById('CLAVEH'), 'Clase de vehículo' ) &&
        /** 27/04/07
        Validamos que POTVEH y CILVEH si estan rellenos tengan el formato de la base de datos **/
        campoDecimal( document.getElementById('POTVEH'), 3, 2, 'Potencia fiscal' ) &&
        campoDecimal( document.getElementById('CILVEH'), 4, 2, 'Cilindrada' ))
    {
      //Si han rellenado estos campos, dependiendo del grupo al que pertenezca la clase solicitada hay que validar
      //Si Grupo=1, 4 => potencia fiscal
      //Si Grupo=2 => numero plazas
      //Si Grupo=3, 5 => carga útil
      //Si Grupo=6 => cilindrada
      //Si Grupo=7 => nada
      //Si Grupo=9 => número de plazas; si número de plazas es <= 9 pedir la carga útil, si <= 525
      //pedir potencia fiscal
      if( document.getElementById('CLAVEH').value.length != 4 )
      {
        enviarFormulario = false;
        alert('La longitud del campo clasificación del vehículo es 4 dígitos');
        document.getElementById('CLAVEH').focus();
      }
      else
      {
        var clase = document.getElementById('CLAVEH').value;      
        var grupo = clasificacion[ clase.substring(0,2) ];

        if( grupo == null || grupo == '' )
        {
          enviarFormulario = false;
          alert('Clasificación del vehículo incorrecta');
          document.getElementById('CLAVEH').focus();
        }
        else
        {
          if( (grupo == '1' || grupo == '4') &&
            campoObligatorio( document.getElementById('POTVEH'), 'Potencia fiscal') &&
            campoDecimal( document.getElementById('POTVEH'), 2, 2, 'Potencia fiscal' ))
          {
            enviarFormulario = true;      
          }
          else if( grupo == '2' && 
                   campoObligatorio( document.getElementById('PLAVEH'), 'Número de plazas') &&
                   campoEntero( document.getElementById('PLAVEH'),'Número de plazas' ))
          {
            enviarFormulario = true;
          }
          else if( (grupo == '3' || grupo == '5') && 
                  campoObligatorio( document.getElementById('CARVEH'), 'Carga útil') &&
                  campoEntero( document.getElementById('CARVEH'), 'Carga útil' ))
          {
            enviarFormulario = true;
            if( grupo == '5' && document.getElementById( 'CARVEH' ).value <= 750 )
            { 
              enviarFormulario = false;
              alert('Vehículo exento del impuesto');
            }
          }
          else if( grupo == '6' && 
                  campoObligatorio( document.getElementById('CILVEH'), 'Cilindrada') &&
                  campoDecimal( document.getElementById('CILVEH'), 4, 2, 'Cilindrada' ))              
          {
            enviarFormulario = true;
          }
          else if( grupo == '7' )
          {
            enviarFormulario = true;
          }
          else if( grupo == '9' && campoObligatorio( document.getElementById('PLAVEH'), 'Número de plazas') 
                   && campoEntero( document.getElementById('PLAVEH'),'Número de plazas' ))   
          {
            if( document.getElementById('PLAVEH').value <= 9 ) 
            {
              if( campoObligatorio( document.getElementById('CARVEH'), 'Carga útil') && 
                  campoEntero( document.getElementById('CARVEH'), 'Carga útil' ))
              {
                if( document.getElementById('CARVEH').value <= 525 ) 
                {
                  if( campoObligatorio( document.getElementById('POTVEH'), 'Potencia fiscal') &&
                      campoDecimal( document.getElementById('POTVEH'), 2, 2, 'Potencia fiscal' ))              
                    enviarFormulario = true;
                  else
                    enviarFormulario = false;
                }
              }
              else
                enviarFormulario = false;
            }
          }
          else
          {
            enviarFormulario = false;
            }
        }
        
       /*
       * 27/12/06
       * se detecta un error debido a que alguien ha introducido una clasificacion cuyos 2
       * primeros digitos son correctos, pero los 2 ultimos (utilizacion) no, de manera que no se
       * corresponde con ninguna utilizacion de la tabla t2506_utiveh, produciendo:
       * ORA-02291: restriccion de integridad (FISCAL.FK1_T2511_T2506) violada - clave principal no encontrada
       * al tratar de grabar la autoliquidacion
       *
       * para solucionarlo, se chequea que los dos ultimos digitos se correspondan con una utilizacion valida
       * y si no enviamos error
       */
        var utilVeh = utilizacion[ clase.substring(2,4) ];
        if (enviarFormulario )
        {
          if( utilVeh == null || utilVeh == '' )
          {
            enviarFormulario = false;
            alert('Clasificación del vehículo incorrecta');
            document.getElementById('CLAVEH').focus();
          }
          else enviarFormulario = true;
        }
      }
    }
    else
      enviarFormulario = false;
  }

  // Validamos la cuenta corriente si no estamos en intranet
  if( intranet!='S' )
  {
    if( enviarFormulario && 
        campoRadioObligatorio( document.getElementById('formApertura').FORPAG, 'Forma de pago') &&
        /* 
         *17/01/2006 La forma de pago será en efectivo            
         *14/12/2006 La forma de pago puede ser telematica
         */
        campoEntero( document.getElementById('CCCSUJ1'), 'Cuenta corriente') &&
        campoEntero( document.getElementById('CCCSUJ2'), 'Cuenta corriente') &&
        campoEntero( document.getElementById('CCCSUJ3'), 'Cuenta corriente') &&
        campoEntero( document.getElementById('CCCSUJ4'), 'Cuenta corriente') &&
        validarCCC( document.getElementById('CCCSUJ1'), document.getElementById('CCCSUJ2'), document.getElementById('CCCSUJ3'), document.getElementById('CCCSUJ4') ))
    {
      enviarFormulario = true;
    }
    else
      enviarFormulario = false;
  }
  
  /*
    MOD 13/12/07 VALIDAMOS SI VIENE RELLENO EL NIFJUR EN EL CASO QUE HAYAMOS SELECCIONADO
    PAGO TELEMATICO Y EXISTA REPRESENTANTE
  */
 
  if (intranet!='S')
  {
      if (enviarFormulario && document.getElementById('formApertura').FORPAG[1].checked &&
      (document.getElementById('REPDIF').checked==true) && !esNIF(document.getElementById('NIFREP')))
      {  
         if ( campoObligatorio (document.getElementById('NIFJUR'),'N. I. F. de la persona autorizada') &&
          validarNIFCIF(document.getElementById('NIFJUR'))) 
          {
            enviarFormulario = true;
          }
          else 
          { 
            enviarFormulario = false;
          }
      }
  }
/* 
 *17/01/2006 La forma de pago será en efectivo    
  if( enviarFormulario && 
      campoRadioObligatorio( document.getElementById('formApertura').FORPAG, 'Forma de pago') &&
      validarFormaPago( document.getElementById('formApertura').FORPAG, document.getElementById('CCCSUJ1') ))
  {
    enviarFormulario = true;
  }
  else
  {
    enviarFormulario = false;
  }
  */

  // submit
  if( enviarFormulario )
  {  
    document.getElementById('formApertura').submit();
  }
}

function actualizaCodigoPostal( cfi, codigoPostal, municipio, provincia, numero, tramero )
{  
  if (municipio.value.toUpperCase() == 'ZARAGOZA' && provincia.value.toUpperCase() == 'ZARAGOZA')
  {
    var cp=obtenerCodigoPostal( cfi.value, numero.value, tramero );
    if (cp!=null && cp!='') codigoPostal.value=cp;     
  }
}

function obtenerCodigoPostal( valorClave, numero, tramero )
{
  // La clave en el tramero esta formada por la clave del callejero + secuencial de 2 cifras
  for( var claveTramero in tramero )
  {
    // Le quitamos el secuencial y si es igual a la clave
    if( claveTramero.substring(0, claveTramero.length - 2 ) == valorClave )
    {
      datosClave = tramero[ claveTramero ];
      deImpar = datosClave[0];
      aImpar = datosClave[1];
      dePar = datosClave[2];
      aPar = datosClave[3];
      
      // Miramos si es par o impar
      if( numero%2 == 0 )
      {
        if( dePar<=numero && numero<=aPar )
          return datosClave[4];
      }
      else
      {
        if( deImpar<=numero && numero<=aImpar )
          return datosClave[4];
      }
    }
  }
}

// La fecha solicitud debe ser mayor o igual a la del dia actual
function compararFecha( fechaActual, fechaSolicitud )
{
  if( compareDates(fechaSolicitud.value, fechaActual.value) < 0 )
  {
    alert('La fecha de solicitud debe ser mayor o igual que la fecha actual');
    return false;
  }
  else
    return true;  
}


// Si se trata de un CIF hay que cerrar el campo segundo apellido y el campo nombre
function cerrarCamposSegunNIF(nifcif, apellido2, nombre,intranet)
{
  // Si el NIF/CIF esta en blanco no hacer nada
  if( nifcif.value.length > 0 )
  {
    if( esNIF(nifcif) )
    {
      apellido2.disabled = false;
      nombre.disabled = false;
     /*
        MOD 7/3/05 MARIBEL. NO FORZAR LA OBLIGATORIEDAD DE REPRESENTANTE SI ES UN NIF
      */
      document.getElementById("REPDIF").disabled=false;
      /*
        FIN MOD
      */ 
      
      // MOD 12/12/07 CONTROL DE CAMPO NECESARIO PARA PAGAR CON CERTIFICADOS DE PERSONA JURIDICA
      if (intranet!='S') {
          document.getElementById("NIFJUR").value='';
          document.getElementById("NIFJUR").disabled=true; 
       }
    }
    else
    {
      apellido2.value = "";
      nombre.value = "";
      apellido2.disabled = true;
      nombre.disabled = true;
      
      /*
        MOD 7/3/05 MARIBEL. FORZAR LA OBLIGATORIEDAD DE REPRESENTANTE SI ES UN CIF
      */
      document.getElementById("REPDIF").checked=true;
      document.getElementById("REPDIF").disabled=true;
      mostrarRepresentante();
      
      // MOD 12/12/07 CONTROL DE CAMPO NECESARIO PARA PAGAR CON CERTIFICADOS DE PERSONA JURIDICA
      if (document.getElementById('formApertura').FORPAG[1].checked) document.getElementById("NIFJUR").disabled=false; 
      

      /*
        FIN MOD
      */      
    }
  }
}

function ayuda( tema )
{
    AWin = window.open("ayuda.jsp?tema=" + tema, "helpwin","left=200,height=300,width=300,scrollbars=yes");
    AWin.focus();
}    

function ayudaVentGrande( tema )
{
    AWin = window.open("ayuda.jsp?tema=" + tema, "helpwin","left=200,height=400,width=600,scrollbars=yes");
    AWin.focus();
}

function cancelarDocumento( salir )    
{
  alert('Documento cancelado');
  if( salir )
    document.location.href = "pedirCirc.jsp?fin=S";
  else
    document.location.href = "pedirCirc.jsp";
}

function imprimirDocumento()
{
  /*
  this.open("ListarCircAutoliq", 'pdf', 'width=600,height=550');
  document.location.href = "circAutoliqFin.jsp";
  */
  
  document.getElementById('formPresentarValoracion').submit();
}

function accederPlataformaPago(preguntar)
{
  if (preguntar)
  {
      var respuesta=confirm("En la autoliquidación figura un representante.\nSi desea realizar el pago como representante pulse Aceptar.\nSi desea realizar el pago como sujeto pasivo pulse Cancelar.")
      if (respuesta) 
      {
        document.location.href = "MandarUrlRed?R=true";
      }
      else document.location.href = "MandarUrlRed";
  }
  else document.location.href = "MandarUrlRed";
}


function validarFecha(fecha)
{
  if (isDate(fecha.value)==false) 
  {
    fecha.focus();
    return false;
    }
  else return true;
}



/*
  FUNCION JAVASCRIPT PARA HABILITAR Y DESABILITAR OPCIONES SEGUN LA CLASE DEL VEHICULO
  Si Clase=1, 4 => habilitar potencia fiscal, cerrar el resto
  Si Clase=2 => habilitar numero plazas, cerrar el resto
  Si Clase=3, 5 => habilitar carga útil, cerrar el resto
  Si Clase=6 => habilitar cilindrada, cerrar el resto
  Si Clase=7 => cerrar todos
  Si Clase=9 => habilitar número de plazas, la carga útil y potencia fiscal, cerrar el resto
*/
function activarCampos ()
{
  var habilitarPotenciaFiscal = false;
  var habilitarNumeroPlazas = false;
  var habilitarCargaUtil = false;
  var habilitarCilindrada = false;  
  var clase = document.getElementById('CLAVEH').value;
  if( clase != '' )
  {
    var grupo = clasificacion[ clase.substring(0,2) ];

    if( grupo != null && grupo != '' )
    {
      if ( grupo == '1' || grupo == '4' ) 
        habilitarPotenciaFiscal = true;
      else if ( grupo == '2' )    
        habilitarNumeroPlazas = true;
      else if ( grupo == '3' || grupo == '5' ) 
        habilitarCargaUtil = true;
      else if ( grupo == '6' )    
        habilitarCilindrada = true;
      else if ( grupo == '9' )    
      {
        habilitarNumeroPlazas = true;
        habilitarCargaUtil = true;
        habilitarPotenciaFiscal = true;
      }
      // En cualquier otro caso estaran todos cerrados ( clase=7 o clase=8)    
    }
  }
    
  if( habilitarPotenciaFiscal )      
  {
    document.getElementById('POTVEH').disabled=false;
    document.getElementById('etiqueta_POTVEH').className ='Tit2Text3';
  }
  else
  {
    document.getElementById('POTVEH').disabled=true;
    document.getElementById('POTVEH').value='';
    document.getElementById('etiqueta_POTVEH').className ='TextDeshabilitado';    
  }
  
  if( habilitarCargaUtil )      
  {
    document.getElementById('CARVEH').disabled=false;
    document.getElementById('etiqueta_CARVEH').className ='Tit2Text3';
  }
  else
  {
    document.getElementById('CARVEH').disabled=true;
    document.getElementById('CARVEH').value='';
    document.getElementById('etiqueta_CARVEH').className ='TextDeshabilitado';    
  }

  if( habilitarNumeroPlazas )      
  {
    document.getElementById('PLAVEH').disabled=false;
    document.getElementById('etiqueta_PLAVEH').className ='Tit2Text3';
  }
  else
  {
    document.getElementById('PLAVEH').disabled=true;
    document.getElementById('PLAVEH').value='';
    document.getElementById('etiqueta_PLAVEH').className ='TextDeshabilitado';    
  }
  
  if( habilitarCilindrada )      
  {
    document.getElementById('CILVEH').disabled=false;
    document.getElementById('etiqueta_CILVEH').className ='Tit2Text3';
  }
  else
  {
    document.getElementById('CILVEH').disabled=true;
    document.getElementById('CILVEH').value='';
    document.getElementById('etiqueta_CILVEH').className ='TextDeshabilitado';    
  }      
}


function buscarCalle(nombreCampoVia, nombreCampoCPO, nombreCampoCfi )
{
    document.getElementById(nombreCampoVia).value='';
    
    var nuevaVentana = this.open("buscarCalles.jsp?nombreCampoVia=" + 
                       nombreCampoVia +  "&nombreCampoCPO=" + nombreCampoCPO + 
                       "&nombreCampoCfi=" + nombreCampoCfi, 'calles',
    'toolbar=no,resizable=yes,scrollbars=yes,left=200,top=200,screenX=0,screenY=0,width=400,height=200');
    nuevaVentana.focus();  

}

function rellenarCalleCodificada( calle, codigoPostal, cfi, 
                                  nombreCampoCalle, nombreCampoCodigoPostal, nombreCampoCfi )
{
  window.opener.document.getElementById( nombreCampoCalle ).value = calle;
  if( codigoPostal != '99999' )
  {
    if( nombreCampoCodigoPostal != '' )    
      window.opener.document.getElementById( nombreCampoCodigoPostal ).value = codigoPostal;  
    if( nombreCampoCfi != '' )    
      window.opener.document.getElementById( nombreCampoCfi ).value = cfi;  
  }
  // Si el codigo postal es 99999 guardamos la clave para poder buscar en el tramero el código postal
  else
  {
    if( nombreCampoCodigoPostal != '' )    
      window.opener.document.getElementById( nombreCampoCodigoPostal ).value = '';  
    if( nombreCampoCfi != '' )    
      window.opener.document.getElementById( nombreCampoCfi ).value = cfi;  
  }
  
  // Rellenamos el campo para que al cerrar la ventana sepa que ha seleccionado una calle
  document.getElementById( 'CALLE' ).value = cfi;
  close();
}

//devuelve true o false segun si el municipio es zaragoza o no
function activarCallejero( municipio, campoCalle, lnkCallejero)
{
  if ( municipio.toUpperCase() == 'ZARAGOZA') 
  {
    campoCalle.readOnly=true;
    lnkCallejero.style.display='';
  }
  else
  {
    campoCalle.readOnly=false;
    lnkCallejero.style.display='none';
    
  }
}


/* 
 *17/01/2006 La forma de pago será en efectivo    
 *14/12/2006 La forma de pago puede ser telematica
 */
function activarCuentaBancaria( activar )
{
  
  if( activar )
  {
    document.getElementById("CCCSUJ1").disabled=false;  
    document.getElementById("CCCSUJ2").disabled=false;  
    document.getElementById("CCCSUJ3").disabled=false;  
    document.getElementById("CCCSUJ4").disabled=false;  
    // MOD 12/12/07 CONTROL DE CAMPO NECESARIO PARA PAGAR CON CERTIFICADOS DE PERSONA JURIDICA, EN
    // EL CASO DE QUE HAYA NIF REPRESENTANTE Y SEA PERSONA JURIDICA
    
    if (document.getElementById("REPDIF").checked==true &&
        validarNIFCIF(document.getElementById("NIFREP")) && !esNIF(document.getElementById("NIFREP")))
        document.getElementById("NIFJUR").disabled=false;
    else document.getElementById("NIFJUR").disabled=true;
  }
  else
  {
    document.getElementById("CCCSUJ1").disabled=true;  
    document.getElementById("CCCSUJ2").disabled=true;  
    document.getElementById("CCCSUJ3").disabled=true;  
    document.getElementById("CCCSUJ4").disabled=true;  
    // MOD 12/12/07 CONTROL DE CAMPO NECESARIO PARA PAGAR CON CERTIFICADOS DE PERSONA JURIDICA
    document.getElementById("NIFJUR").disabled=true;  
  }
}


