/*
JS con el javascript de la aplicacion svjo_web. Al inicio las funciones
generales. Despues se incluiran las funciones de cada jsp. El nombre
de estas funciones comenzaran con el codigo del jsp que la utiliza.
Comentado en cada jsp se indicar� el codigo de ese jsp.
CODIGOS:
- rse -> rellenarSolicitud.jsp
- aaa -> acceso.jsp
- ces -> detalleEstadoSolicitud.jsp
- dst -> datosSolicitud.jsp
- rns -> rellenaPdf.jsp (Nueva solicitud desde datos de la solicitud)
- msl -> modificarSolicitud.jsp
- ltp -> listaPromotores.jsp
- lts -> listaSolicitudes.jsp
--------------------------------------------------------
--------------- Funciones genericas --------------------
--------------------------------------------------------
- trim(cadena) //eliminar caracteres en blanco al principio y al final
- bValidarEmail (strEmail) //Validacion de emails
- isDate(fecha) //Validar fechas
- validarTelefonoFijo(tlf) //Valida telefono fijo
- validarMovil(tlf) //Validaci�n telefono movil
- onKeyPressNumber() //Captura evento pulsar tecla y no permite caracteres no num�ricos
- onKeyPressFecha(campo) //Va introduciendo las / seg�n vamos escribiendo la fecha
- nCompararFechas(strFecha1, strFecha2) //Compara dos fechas con formato dd/MM/yyyy
- dStrToDate (strDate, strPatron) //Obtiene objeto date a partir de un string y un patron
- bFechaValidaSolicitud(strFecha) //Devuelve false si la fecha es superior a hoy o si es > 35 a�os
- onKeyPressDni() //Permite introducir unicamente n�meros y letras a-z y A-Z
- onKeyPressNumReg() //Permite introducir �nicamente numeros / y .
- ArrayBidimensional(x,y) //Devuelve un array de dos dimensiones inicializado con x e y.
- go(form,accion) //Establece la accion al formulario y hace submit
- onKeyPressTelefono(campo) //�nicamente deja introducir n�meros y un + en la primera posicion
- setFocus(campo) //Establece el foco en el campo que se pasa como par�metro
- bFechaMenorHoy(strFecha) // Funcion que valida si la fecha pasada es de un d�a superior a hoy. Si es superior a hoy debe dar error y devuelve false

*/

//Establece el foco en el campo que se pasa como par�metro
function setFocus(campo){
  campo.focus();
}


  //unicamente deja introducir valores num�ricos y un + en la primera posicion
  function onKeyPressTelefono(campo){

      tam = campo.value.length;
      if ((event.keyCode > 47 && event.keyCode < 58 ) || event.keyCode == 43){
       	  if(event.keyCode == 43 && (tam > 0)){
              event.returnValue=false;
       	  }
      }else{
          event.returnValue=false;
      }

  }


  //Funcion que recibe el formulario y la acci�n a ejecutar y hace submit
  function go(form,accion){
    form.action = accion;
    form.submit();
  }

  //Devuelve un array de dos dimensiones pasadas como par�metro
  function ArrayBidimensional(x, y) {

    for (var i = 0; i < x; i++) {
      this[i] = new Array(y);
    }
    this.ascisas   = x;
    this.ordenadas = y;
  }

  /*
  Validamos que s�lo se introducen numeros, puntos o la barra del siete.
  Ademas establecemos una mascara por si �nicamente van introduciendo
  d�gitos vamos completando las barras y el punto
  */
  function onKeyPressNumReg()
  {
      // 46 Punto(.), 47 barra del siete(/)
      if ((event.keyCode > 31 && event.keyCode < 46 ) || event.keyCode > 57){
              event.returnValue=false;
      }else{

         valor = trim(document.identificacion.txtNumReg.value);
         tam = valor.length;
         if(tam!=2 && tam!=9 && tam!=11){
           if(event.keyCode==46 || event.keyCode==47){
             event.returnValue=false;
           }
         }
         if(tam==2){
           if(event.keyCode==46){
             event.returnValue=false;
           }else if(event.keyCode!=47){
              document.identificacion.txtNumReg.value = valor+'/';
           }
         }else if(tam==9){
           if(event.keyCode==47){
             event.returnValue=false;
           }else if(event.keyCode!=46){

           	document.identificacion.txtNumReg.value = valor+'.';
           }
         }else if(tam==11){
           if(event.keyCode==46){
             event.returnValue=false;
           }else if(event.keyCode!=47){
              document.identificacion.txtNumReg.value = valor+'/';
           }
         }
      }

  }

  /*
  Funcion que permite filtrar los datos que se introducen. En este caso s�lo se pueden introducir
  n�meros (48-57)
  letras minusculas (97-122 + la �(241))
  letras mayusculas (65-90 + la �(209))
  */
  function onKeyPressDni(){

	if((event.keyCode > 64 && event.keyCode < 91 ) || (event.keyCode > 47 && event.keyCode < 58 ) || (event.keyCode > 96 && event.keyCode < 123 ) || event.keyCode == 209  || event.keyCode == 241 ){

	}else{
          event.returnValue=false;
	}
  }


/**
 * Funcion que valida si la fecha pasada es de un d�a superior a hoy.
 * Si es superior a hoy debe dar error y devuelve false
 */
function bFechaMenorHoy(strFecha){
  var FechaActual =	new Date( );
  var FechaSolicitud = dStrToDate(strFecha,'dd/MM/yyyy');
  if(FechaActual < FechaSolicitud){
     return false;
  }else{
     return true;
  }
}

/*
Funci�n que valida que la fecha que se introduce es de un menor de 36
y que ademas no es una fecha superior a hoy.
*/
function bFechaValidaSolicitud(strFecha){

      var FechaActual =	new Date( );
      var FechaSolicitud = dStrToDate(strFecha,'dd/MM/yyyy');
      var anioActual = FechaActual.getFullYear();
      var diferencia = FechaActual - FechaSolicitud;
      if(FechaActual < FechaSolicitud){
        return false;
      }
      if (  (diferencia) >= 1136073600000){
          return false;
      }

      return true;
      //if ((diferencia) < 567993600000)
      //{
        //  alert( " El solicitante menor de 18 a�os debe estar legalmente emancipado. " );
      //}
  }

// -------------------------------------------------------------------
// Funcion dStrToDate( strDate , strPatron )
// Obtiene un objeto fecha a partir de una cadena y un formato dado
// This function takes a date string and a format string. It matches
// Parametros: strdate --> fecha que se quiere obtener.
//             strPatron --> patron que se le pasa del tipo dd/MM/yyyy
// Retorno: getTime() de la fecha obtenida si concuerda con el patron
//            0 en el caos que no concuerde
// -------------------------------------------------------------------
function dStrToDate(strDate,strPatron) {
	strDate=strDate+"";
	strPatron=strPatron+"";
	var i_val=0;
	var i_format=0;
	var c="";
	var token="";
	var token2="";
	var x,y;
	var now=new Date();
	var year=now.getYear();
	var month=now.getMonth()+1;
	var date=1;
	var hh=now.getHours();
	var mm=now.getMinutes();
	var ss=now.getSeconds();
	var ampm="";

	while (i_format < strPatron.length) {
		// Get next token from format string
		c=strPatron.charAt(i_format);
		token="";
		while ((strPatron.charAt(i_format)==c) && (i_format < strPatron.length)) {
			token += strPatron.charAt(i_format++);
			}
		// Extract contents of value based on format token
		if (token=="yyyy" || token=="yy" || token=="y") {
			if (token=="yyyy") { x=4;y=4; }
			if (token=="yy")   { x=2;y=2; }
			if (token=="y")    { x=2;y=4; }
			year=_getInt(strDate,i_val,x,y);
			if (year==null) { return 0; }
			i_val += year.length;
			if (year.length==2) {
				if (year > 70) { year=1900+(year-0); }
				else { year=2000+(year-0); }
				}
			}
		else if (token=="MMM"||token=="NNN"){
			month=0;
			for (var i=0; i<MONTH_NAMES.length; i++) {
				var month_name=MONTH_NAMES[i];
				if (strDate.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {
					if (token=="MMM"||(token=="NNN"&&i>11)) {
						month=i+1;
						if (month>12) { month -= 12; }
						i_val += month_name.length;
						break;
						}
					}
				}
			if ((month < 1)||(month>12)){return 0;}
			}
		else if (token=="EE"||token=="E"){
			for (var i=0; i<DAY_NAMES.length; i++) {
				var day_name=DAY_NAMES[i];
				if (strDate.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) {
					i_val += day_name.length;
					break;
					}
				}
			}
		else if (token=="MM"||token=="M") {
			month=_getInt(strDate,i_val,token.length,2);
			if(month==null||(month<1)||(month>12)){return 0;}
			i_val+=month.length;}
		else if (token=="dd"||token=="d") {
			date=_getInt(strDate,i_val,token.length,2);
			if(date==null||(date<1)||(date>31)){return 0;}
			i_val+=date.length;}
		else if (token=="hh"||token=="h") {
			hh=_getInt(strDate,i_val,token.length,2);
			if(hh==null||(hh<1)||(hh>12)){return 0;}
			i_val+=hh.length;}
		else if (token=="HH"||token=="H") {
			hh=_getInt(strDate,i_val,token.length,2);
			if(hh==null||(hh<0)||(hh>23)){return 0;}
			i_val+=hh.length;}
		else if (token=="KK"||token=="K") {
			hh=_getInt(strDate,i_val,token.length,2);
			if(hh==null||(hh<0)||(hh>11)){return 0;}
			i_val+=hh.length;}
		else if (token=="kk"||token=="k") {
			hh=_getInt(strDate,i_val,token.length,2);
			if(hh==null||(hh<1)||(hh>24)){return 0;}
			i_val+=hh.length;hh--;}
		else if (token=="mm"||token=="m") {
			mm=_getInt(strDate,i_val,token.length,2);
			if(mm==null||(mm<0)||(mm>59)){return 0;}
			i_val+=mm.length;}
		else if (token=="ss"||token=="s") {
			ss=_getInt(strDate,i_val,token.length,2);
			if(ss==null||(ss<0)||(ss>59)){return 0;}
			i_val+=ss.length;}
		else if (token=="a") {
			if (strDate.substring(i_val,i_val+2).toLowerCase()=="am") {ampm="AM";}
			else if (strDate.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm="PM";}
			else {return 0;}
			i_val+=2;}
		else {
			if (strDate.substring(i_val,i_val+token.length)!=token) {return 0;}
			else {i_val+=token.length;}
			}
		}
	// If there are any trailing characters left in the value, it doesn't match
	if (i_val != strDate.length) { return 0; }
	// Is date valid for month?
	if (month==2) {
		// Check for leap year
		if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year
			if (date > 29){ return 0; }
			}
		else { if (date > 28) { return 0; } }
		}
	if ((month==4)||(month==6)||(month==9)||(month==11)) {
		if (date > 30) { return 0; }
		}
	// Correct hours value
	if (hh<12 && ampm=="PM") { hh=hh-0+12; }
	else if (hh>11 && ampm=="AM") { hh-=12; }
	var newdate=new Date(year,month-1,date,hh,mm,ss);
	return newdate.getTime();
}

// ------------------------------------------------------------------
// Utility functions for parsing in getDateFromFormat()
// ------------------------------------------------------------------
function _isInteger(val) {
	var digits="1234567890";
	for (var i=0; i < val.length; i++) {
		if (digits.indexOf(val.charAt(i))==-1) { return false; }
		}
	return true;
}
function _getInt(str,i,minlength,maxlength) {
	for (var x=maxlength; x>=minlength; x--) {
		var token=str.substring(i,i+x);
		if (token.length < minlength) { return null; }
		if (_isInteger(token)) { return token; }
		}
	return null;
}

// ---------------------------------------------------
// Funcion nCompararFechas(strFecha1,strFecha2)
// Compara dos fechas para ver cual es mayor.
// Parametros: strFecha1 --> primera fecha a comparar
//             strFecha2 --> segunda fecha a comparar
// Retorno: 1 si la fecha1 es mayor que la fecha2
//          0 si la fecha2 es mayor que la fecha1
//          2 si las fechas son iguales
//          -1 si alguna de las fechas son incorrectas
// ---------------------------------------------------
function nCompararFechas(strFecha1,strFecha2) {
    var tieneBarra1 = strFecha1.indexOf('/');
    var tieneBarra2 = strFecha2.indexOf('/');
    var dateFormat1, dateFormat2;

    if(tieneBarra1==-1){
        dateFormat1 = "ddMMyyyy";
    }else{
        dateFormat1 = "dd/MM/yyyy";
    }

    if(tieneBarra2==-1){
        dateFormat2 = "ddMMyyyy";
    }else{
        dateFormat2 = "dd/MM/yyyy";
    }

    var d1=dStrToDate(strFecha1,dateFormat1);
    var d2=dStrToDate(strFecha2,dateFormat2);
    if (d1==0 || d2==0) {
            return -1;
            }
    else if (d1 > d2) {
            return 1;
    }else if (d1 == d2){
                return 2;
    }
    return 0;
}




//Valida seg�n se est� escribiendo en un campo la fecha para ir a�adiendo las "/"
  function onKeyPressFecha(campo){

      tam = campo.value.length;
      if ((event.keyCode > 31 && event.keyCode < 47 ) || event.keyCode > 57){
              event.returnValue=false;
      }else{

       	  if(event.keyCode == 47 && (tam == 2 || tam == 5)){

       	  }else{
           if(tam==2){
             campo.value = campo.value+'/';
           }else if(tam==5){
             campo.value = campo.value+'/';
           }
       	  }
      }

  }

 //Llamado desde el onkeypress no permite introducir caracteres no numericos
 function onKeyPressNumber(){
    if ((event.keyCode > 31 && event.keyCode < 48 ) || event.keyCode > 57){
         event.returnValue = false;
    }
  }

//Valida n�meros
 function validarEntero(nNumero){
    if (nNumero != '') {
      return !isNaN(nNumero);
    } else {
      return false;
    }
 }

//Validaci�n telefono movil
function validarMovil(tlf){
     movil =trim(tlf);
     movilOK = true;
     tamTel = movil.length;
     if(tamTel < 1){

     }else if(tamTel < 9){
       movilOK = false;
     }else if(tamTel == 9){
       movilOK = validarEntero(movil);
       document.solicitud.Movil.value = '+34'+movil;
     }else if(tamTel < 12){
       movilOK = false;
     }else{
       prim = movil.substring(0,1);
       if(prim.charAt(0) != "+"){
         movilOK = false;
       }else{
         cod = movil.substring(1,movil.length-9);
         if(!validarEntero(cod)){
           movilOK = false;
         }
       }
     }
     return (movilOK);
     //FIN validacion de telefonos
}

//Validacion de telefonos fijos
function validarTelefonoFijo(tlf){
 //validacion de telefonos/FAX
     fijo = trim(tlf);
     fijoOK = true;

     tamTel = fijo.length;
     if(tamTel < 1){

     }else if(tamTel < 9){
       fijoOK = false;
     }else if(tamTel == 9){
       fijoOK = validarEntero(fijo);
       document.solicitud.Telefono.value = '+34'+fijo;
     }else if(tamTel < 12){
       fijoOK = false;
     }else{
       prim = fijo.substring(0,1);
       if(prim.charAt(0) != "+"){
         fijoOK = false;
       }else{
         cod = fijo.substring(1,fijo.length-9);
         if(!validarEntero(cod)){
           fijoOK = false;
         }
       }
     }
   return (fijoOK);
}

///Validacion de fecha
function isDate(s)
{	var day,month,year,mod,chr
    if (s==null || s.length==0)
        return false
    if (s.length!=10)
        return false

    for (var ij=0;ij<10;ij++)
    {	chr=s.charAt(ij)
        if (ij!=2 && ij!=5)
        {	if (chr<"0"||chr>"9") return false
        }
        else
        {	if (chr!="/") return false
        }
    }

	tempoDate=s.split("/");
	day=parseInt(tempoDate[0],10);
    month=parseInt(tempoDate[1],10);
    year=parseInt(tempoDate[2],10);

    if (1>day || day>31)
        return false
    if (1>month || month>12)
        return false
    if ((1>year)&&(year.length!=4))
        return false
    if ((month==4 || month==6 || month==9 || month==11) && day==31)
        return false
    if (month==2)
    {
        mod=year%4
    	if (mod==0)
    	{
            mod=year%100
	    if(mod==0)
	    {
                var mod2=year%400
                if(mod2==0 &&  day>29)
                    return false
                else if(mod2!=0 && day>28)
                    return false
            }
	    else if(day>29)
	        return false
        }
        else if (day>28)
            return false
    }
    return true
}

//--------------------------------------------------------------------------------------------------
// Funcion bValidarEmail (strEmail)
// Valida si una direcci?n de correo electr?nico es correcta.
// Par?metros: 'strEmail' -> cadena sobre la que se quiere realizar la validaci?n.
// Retorno: true en caso de que la direcci?n sea correcta.
//          false en caso de que la direcci?n no sea correcta.
//--------------------------------------------------------------------------------------------------
function bValidarEmail(strEmail){

	var patron1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var patron2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)$/; // valid
	if (!patron1.test(strEmail) && patron2.test(strEmail))
		return true;
	else
		return false;
}

/*
Funci�n que pasada una cadena elimina los espacios en blanco al
principio y al final
*/
function trim(cadena) {
      for(i=0; i<cadena.length; ) {
              if(cadena.charAt(i)==" ")
                      cadena=cadena.substring(i+1, cadena.length);
              else break;
      }
      for(i=cadena.length-1; i>=0; i=cadena.length-1){
              if(cadena.charAt(i)==" ")
                      cadena=cadena.substring(0,i);
              else break;
      }
      return cadena;
  }


//###########################################################
//###########################################################
//############ JAVASCRIPT DE LOS JSPS CONCRETOS ############
//###########################################################
//###########################################################



 /*
 Valida el formulario de Nueva Solicitud de la Entrada
 de la aplicacion
 rellenarSolicitud.jsp
 */
function rseComprobar(param, combo){

  error = 0;
  apellido1            = document.solicitud.Apellido1.value;
  apellido2            = document.solicitud.Apellido2.value;
  nombre               = document.solicitud.Nombre.value;
  dni                  = document.solicitud.Dni.value;
  fnac                 = document.solicitud.Fnac.value;
  muniEmp              = document.solicitud.MunicipioEmp.value;
  indice               = document.solicitud.TipoVia.selectedIndex
  tipoVia              = document.solicitud.TipoVia[indice].value;
  nombreVia            = document.solicitud.NombreVia.value;
  numVia               = document.solicitud.NumVia.value;
  escalera             = document.solicitud.Escalera.value;
  piso                 = document.solicitud.Piso.value;
  puerta               = document.solicitud.Puerta.value;
  codPostal            = document.solicitud.CodPostal.value;
  municipio            = document.solicitud.Municipio.value;
  provincia            = document.solicitud.Provincia.value;
  telefono             = document.solicitud.Telefono.value;
  movil 	             = document.solicitud.Movil.value;
  email 	             = document.solicitud.Email.value;
  municipioSolicitado  = document.solicitud.MunicipioSolicitado.value;
  movilidadReducida    = document.solicitud.MovilidadReducida[0].checked;
  autoriza             = document.solicitud.Autoriza.checked;


   if(apellido1==""){
       document.solicitud.Apellido1.focus();
       document.Siguiente.ErrApellido1.value = 'true';
       error=1
     }
       document.Siguiente.Apellido1.value= apellido1;

    if(nombre==""){
       document.solicitud.Nombre.focus();
       document.Siguiente.ErrNombre.value = 'true';
       error=1
     }
       document.Siguiente.Nombre.value= nombre;

    if(dni==""){
       document.solicitud.Dni.focus();
       document.Siguiente.ErrDni.value = 'true';
       error=1
     }
       document.Siguiente.Dni.value= dni;

    if(fnac==""||!isDate(fnac)||!bFechaValidaSolicitud(fnac)){
       document.solicitud.Fnac.focus();
       document.Siguiente.ErrFnac.value = 'true';
       error=1
     }
       document.Siguiente.Fnac.value= fnac;

    if(muniEmp=="-1"){
       document.solicitud.MunicipioEmp.focus();
       document.Siguiente.ErrMunicipioEmp.value = 'true';
       error=1
     }
       document.Siguiente.MunicipioEmp.value= muniEmp;

    if(tipoVia=="Seleccione el tipo de Vía" || tipoVia=="-1"){
       document.solicitud.TipoVia.focus();
       document.Siguiente.ErrTipoVia.value = 'true';
       error=1
     }
       document.Siguiente.TipoVia.value= tipoVia;

    if(nombreVia==""){
       document.solicitud.NombreVia.focus();
       document.Siguiente.ErrNombreVia.value = 'true';
       error=1
     }
       document.Siguiente.NombreVia.value= nombreVia;

    if(numVia==""){
       document.solicitud.NumVia.focus();
       document.Siguiente.ErrNumVia.value = 'true';
       error=1
     }
       document.Siguiente.NumVia.value= numVia;

    if(codPostal=="" || codPostal.length < 5){
       document.solicitud.CodPostal.focus();
       document.Siguiente.ErrCodPostal.value = 'true';
       error=1
     }
       document.Siguiente.CodPostal.value= codPostal;

    if(municipio=="-1"){
       document.solicitud.Municipio.focus();
       document.Siguiente.ErrMunicipio.value = 'true';
       error=1
     }
       document.Siguiente.Municipio.value= municipio;

    if(municipioSolicitado=="-1"){
       document.solicitud.MunicipioSolicitado.focus();
       document.Siguiente.ErrMunicipioSolicitado.value = 'true';
       error=1
     }
       document.Siguiente.MunicipioSolicitado.value= municipioSolicitado;

    if(movilidadReducida)
     document.Siguiente.MovilidadReducida.value= "S";
    else  if (document.solicitud.MovilidadReducida[1].checked)
      document.Siguiente.MovilidadReducida.value= "N";
       else {document.Siguiente.ErrMovilidadReducida.value=true;
             error=1;
       }
    if (provincia=="-1"){
       document.solicitud.Provincia.focus();
       document.Siguiente.ErrProvincia.value = 'true';
       error=1
    }

    if (email.length>0 && !bValidarEmail(email)){
	document.solicitud.Email.focus();
       document.Siguiente.ErrEmail.value = 'true';
       error=1
    }

    if (!validarTelefonoFijo(telefono)){
       document.solicitud.Telefono.focus();
       document.Siguiente.ErrTelefono.value = 'true';
       error=1
    }

    if (!validarMovil(movil)){
       document.solicitud.Movil.focus();
       document.Siguiente.ErrMovil.value = 'true';
       error=1
    }
    document.Siguiente.Provincia.value= provincia;

/*Campos no obligatorios, simplemente se pone su valor en el formulario
Siguiente */
       document.Siguiente.Autoriza.value = autoriza;
       document.Siguiente.Email.value= email;
       document.Siguiente.Telefono.value= telefono;
       document.Siguiente.Movil.value= movil;
       document.Siguiente.Escalera.value= escalera;
       document.Siguiente.Piso.value= piso;
       document.Siguiente.Puerta.value= puerta;
       document.Siguiente.Apellido2.value= apellido2;

/*Ponemos los valores seleccionados en los combos*/
    if (muniEmp!=""){
	indice = document.solicitud.MunicipioEmp.selectedIndex;
	nombre = document.solicitud.MunicipioEmp[indice].text;
	document.Siguiente.NombreMunicipioEmp.value = nombre;
    } else {
	document.Siguiente.NombreMunicipioEmp.value="";
    }
    if(municipio!=""){
        indice = document.solicitud.Municipio.selectedIndex;
	nombre = document.solicitud.Municipio[indice].text;
	document.Siguiente.NombreMunicipio.value = nombre;
    }else{
       document.Siguiente.NombreMunicipio.value="";
    }

        indice = document.solicitud.Provincia.selectedIndex;
	nombre = document.solicitud.Provincia[indice].text;
	document.Siguiente.NombreProvincia.value = nombre;

        indice = document.solicitud.MunicipioSolicitado.selectedIndex;
        nombre = document.solicitud.MunicipioSolicitado[indice].text;
	document.Siguiente.NombreMunicipioSolicitado.value = nombre;

        document.Siguiente.ErrAnt.value= document.solicitud.errAnt.value;

	 if ((error!=1)&&(param=="G")){
            document.Siguiente.action='GenerarNuevoPDF.icm';
	 }
        else {
          if (param=="C"){
            if (combo=="emp"){
              document.Siguiente.MunicipioEmp.value = "-1";
            }
            if (combo=="con")
             document.Siguiente.Municipio.value = "-1";

              document.Siguiente.action='RellenarComboMunicipios.icm';
            }
	 else {
           document.Siguiente.action='RellenarSolicitud.icm';
	 }
        }
    document.Siguiente.submit();
}

  /*
  Funcion que en el onkeypress del campo numero de registro comprueba
  que �nicamente se introducen n�meros y los caracteres . y / y si se
  pulsa Enter hace submit
  acceso.jsp
  */
  function aaaOnKeyPressGo(){

    onKeyPressNumReg();
    if (event.keyCode == 13){
         aaaEjecutaAccion();
    }
  }

  //Borra la plantilla que hay en el n�mero de registro
  //acceso.jsp
  function aaaBorraPlantilla(){
    val = document.identificacion.txtNumReg.value;
    if(val.indexOf('_')>-1){
      document.identificacion.txtNumReg.value='';
    }
  }

  //realiza las validaciones y hace submit
  //acceso.jsp
  function aaaEjecutaAccion(){
    dni = trim(document.identificacion.txtDni.value);
    numRegistro = trim(document.identificacion.txtNumReg.value);
    if(numRegistro.indexOf('/')<0 || numRegistro.indexOf('_')>-1 || numRegistro.length < 14){
      document.identificacion.txtNumReg.value = '';
      numRegistro = '';
    }
    if(dni == "" || numRegistro == ""){
	document.identificacion.action = "Acceso.icm";
	document.identificacion.submit();
    } else {
	document.identificacion.action = "ListaSolicitudes.icm";
	document.identificacion.submit();
    }
  }

  //Establece tipoPDF y hace submit a la ruta especificada
  //datosSolicitud.jsp
  function cesEjecutaAccion(ruta,tipoPDF){

    	document.pdf.TIPO_PDF.value = tipoPDF;
        go(document.pdf,ruta);

  }

  /**
   * Ejecuta la baja o baja y anulacion
   //datosSolicitud.jsp*
   */
  function dstEjecutaBaja(param, ruta){
    document.general.TIPO_BAJA.value = param;
    document.general.target = '_self';
    go(document.general,ruta);
  }

  //Genera Replica
  //datosSolicitud.jsp
  function dstGeneraReplica(){
    document.general.target = '_blank';
    go(document.general,'GeneraPDF.icm');

  }

//Realiza las validaciones y comprobaciones del formulario
//de alta de una nueva solicitud desde dentro de la aplicacion
//rellenaPdf.jsp
function rnsComprobar(param, combo){
  error = 0;
  apellido1            = document.solicitud.Apellido1.value;
  apellido2            = document.solicitud.Apellido2.value;
  nombre               = document.solicitud.Nombre.value;
  dni                  = document.solicitud.Dni.value;
  fnac                 = document.solicitud.Fnac.value;



  muniEmp              = document.solicitud.MunicipioEmp.value;
  indice               = document.solicitud.TipoVia.selectedIndex
  tipoVia              = document.solicitud.TipoVia[indice].value;
  nombreVia            = document.solicitud.NombreVia.value;
  numVia               = document.solicitud.NumVia.value;
  escalera             = document.solicitud.Escalera.value;
  piso                 = document.solicitud.Piso.value;
  puerta               = document.solicitud.Puerta.value;
  codPostal            = document.solicitud.CodPostal.value;
  municipio            = document.solicitud.Municipio.value;
  provincia            = document.solicitud.Provincia.value;
  telefono             = document.solicitud.Telefono.value;
  movil 	        = document.solicitud.Movil.value;
  email 	        = document.solicitud.Email.value;
  municipioSolicitado  = document.solicitud.MunicipioSolicitado.value;
  movilidadReducida    = document.solicitud.MovilidadReducida[0].checked;
  autoriza             = document.solicitud.Autoriza.checked;


  if(apellido1==""){
       document.solicitud.Apellido1.focus();
       document.Siguiente.ErrApellido1.value = 'true';
       error=1
  }
  document.Siguiente.Apellido1.value= apellido1;

  if(nombre==""){
       document.solicitud.Nombre.focus();
       document.Siguiente.ErrNombre.value = 'true';
       error=1
  }
  document.Siguiente.Nombre.value= nombre;

  if(dni==""){
       document.solicitud.Dni.focus();
       document.Siguiente.ErrDni.value = 'true';
       error=1
   }
       document.Siguiente.Dni.value= dni;

if(fnac==""||!isDate(fnac)||! bFechaValidaSolicitud(fnac)){
       document.solicitud.Fnac.focus();
       document.Siguiente.ErrFnac.value = 'true';
       error=1
     }
       document.Siguiente.Fnac.value= fnac;

if(muniEmp=="-1"){
       document.solicitud.MunicipioEmp.focus();
       document.Siguiente.ErrMunicipioEmp.value = 'true';
       error=1
     }
       document.Siguiente.MunicipioEmp.value= muniEmp;

if(tipoVia=="Seleccione el tipo de V�a"|| tipoVia=="-1"){
       document.solicitud.TipoVia.focus();
       document.Siguiente.ErrTipoVia.value = 'true';
       error=1
     }
       document.Siguiente.TipoVia.value= tipoVia;

if(nombreVia==""){
       document.solicitud.NombreVia.focus();
       document.Siguiente.ErrNombreVia.value = 'true';
       error=1
     }
       document.Siguiente.NombreVia.value= nombreVia;

if(numVia==""){
       document.solicitud.NumVia.focus();
       document.Siguiente.ErrNumVia.value = 'true';
       error=1
     }
       document.Siguiente.NumVia.value= numVia;

if(codPostal=="" || codPostal.length < 5){
       document.solicitud.CodPostal.focus();
       document.Siguiente.ErrCodPostal.value = 'true';
       error=1
     }
       document.Siguiente.CodPostal.value= codPostal;

if(municipio=="-1"){
       document.solicitud.Municipio.focus();
       document.Siguiente.ErrMunicipio.value = 'true';
       error=1
     }
       document.Siguiente.Municipio.value= municipio;

if(municipioSolicitado=="-1"){
       document.solicitud.MunicipioSolicitado.focus();
       document.Siguiente.ErrMunicipioSolicitado.value = 'true';
       error=1
     }
       document.Siguiente.MunicipioSolicitado.value= municipioSolicitado;

if(movilidadReducida)
     document.Siguiente.MovilidadReducida.value= "S";
else  if (document.solicitud.MovilidadReducida[1].checked)
      document.Siguiente.MovilidadReducida.value= "N";
       else {document.Siguiente.ErrMovilidadReducida.value=true;
             error=1;
       }

if (provincia=="-1"){
       document.solicitud.Provincia.focus();
       document.Siguiente.ErrProvincia.value = 'true';
       error=1
}

document.Siguiente.Provincia.value= provincia;

if (email.length>0 && !bValidarEmail(email)){
	document.solicitud.Email.focus();
       document.Siguiente.ErrEmail.value = 'true';
       error=1
}

if (!validarTelefonoFijo(telefono)){
       document.solicitud.Telefono.focus();
       document.Siguiente.ErrTelefono.value = 'true';
       error=1
}

if (!validarMovil(movil)){
       document.solicitud.Movil.focus();
       document.Siguiente.ErrMovil.value = 'true';
       error=1
}
/*Campos no obligatorios, simplemente se pone su valor en el formulario
Siguiente */
       document.Siguiente.Autoriza.value = autoriza;
       document.Siguiente.Telefono.value= telefono;
       document.Siguiente.Movil.value= movil;
       document.Siguiente.Email.value= email;
       document.Siguiente.Escalera.value= escalera;
       document.Siguiente.Piso.value= piso;
       document.Siguiente.Puerta.value= puerta;
       document.Siguiente.Apellido2.value= apellido2;

/*Ponemos los valores seleccionados en los combos*/
if (muniEmp!=""){
	indice = document.solicitud.MunicipioEmp.selectedIndex;
	nombre = document.solicitud.MunicipioEmp[indice].text;
	document.Siguiente.NombreMunicipioEmp.value = nombre;
} else {
	document.Siguiente.NombreMunicipioEmp.value="";
}
if(municipio!=""){
        indice = document.solicitud.Municipio.selectedIndex;
	nombre = document.solicitud.Municipio[indice].text;
	document.Siguiente.NombreMunicipio.value = nombre;
}    else{
  	document.Siguiente.NombreMunicipio.value="";
}

        indice = document.solicitud.Provincia.selectedIndex;
	nombre = document.solicitud.Provincia[indice].text;
	document.Siguiente.NombreProvincia.value = nombre;

        indice = document.solicitud.MunicipioSolicitado.selectedIndex;
        nombre = document.solicitud.MunicipioSolicitado[indice].text;
        document.Siguiente.NombreMunicipioSolicitado.value = nombre;
        document.Siguiente.ErrAnt.value=document.solicitud.errorAnt.value;

        document.Siguiente.MUNICIPIOSOLICITUDORIGEN.value=document.solicitud.muniSolOrigen.value;
        document.Siguiente.NUMREG.value   =document.solicitud.numReg.value;
        document.Siguiente.NUMSOLIC.value =document.solicitud.numSol.value;

        document.Siguiente.FECHASOL.value =document.solicitud.fechaSol.value;

	 if ((error!=1)&&(param=="G")){
            document.Siguiente.action='GenerarNuevoPDF.icm';
	 }
        else {
          if (param=="C"){
            if (combo=="emp"){
              document.Siguiente.MunicipioEmp.value = "-1";
            }
            if (combo=="con")
             document.Siguiente.Municipio.value = "-1";

              document.Siguiente.action='RellenarCombosMunicipios.icm';
            }
	 else {
           document.Siguiente.action='RellenaPDF.icm';
	 }
        }
    document.Siguiente.submit();
}

//Realiza las validaciones y comprobaciones del formulario
//de modificacion de una solicitud desde dentro de la aplicacion
//modificarSolicitud.jsp
function mslComprobar(param, combo){
   error = 0;
   apellido1            = document.solicitud.Apellido1.value;
   apellido2            = document.solicitud.Apellido2.value;
   nombre               = document.solicitud.Nombre.value;
   dni                  = document.solicitud.Dni.value;
   fnac                 = document.solicitud.Fnac.value;
   muniEmp              = document.solicitud.MunicipioEmp.value;
   indice               = document.solicitud.TipoVia.selectedIndex
   tipoVia              = document.solicitud.TipoVia[indice].value;
   nombreVia            = document.solicitud.NombreVia.value;
   numVia               = document.solicitud.NumVia.value;
   escalera             = document.solicitud.Escalera.value;
   piso                 = document.solicitud.Piso.value;
   puerta               = document.solicitud.Puerta.value;
   codPostal            = document.solicitud.CodPostal.value;
   municipio            = document.solicitud.Municipio.value;
   provincia            = document.solicitud.Provincia.value;
   telefono             = document.solicitud.Telefono.value;
   movil	        = document.solicitud.Movil.value;
   email 	        = document.solicitud.Email.value;
   municipioSolicitado  = document.solicitud.MunicipioSolicitado.value;
   movilidadReducida    = document.solicitud.MovilidadReducida[0].checked;
   autoriza             = document.solicitud.Autoriza.checked;
   aplicarTodas         = document.solicitud.Todas.checked;


    if(apellido1==""){
       document.solicitud.Apellido1.focus();
       document.Siguiente.ErrApellido1.value = 'true';
       error=1
     }
       document.Siguiente.Apellido1.value= apellido1;

    if(nombre==""){
       document.solicitud.Nombre.focus();
       document.Siguiente.ErrNombre.value = 'true';
       error=1
     }
       document.Siguiente.Nombre.value= nombre;

    if(dni==""){
       document.solicitud.Dni.focus();
       document.Siguiente.ErrDni.value = 'true';
       error=1
     }
       document.Siguiente.Dni.value= dni;

    if(fnac==""||!isDate(fnac) || !bFechaMenorHoy(fnac)){
       document.solicitud.Fnac.focus();
       document.Siguiente.ErrFnac.value = 'true';
       error=1
     }
       document.Siguiente.Fnac.value= fnac;

    if(muniEmp=="-1"|| muniEmp=="Seleccione un Municipio"){
       document.solicitud.MunicipioEmp.focus();
       document.Siguiente.ErrMunicipioEmp.value = 'true';
       error=1
     }
       document.Siguiente.MunicipioEmp.value= muniEmp;

   if(tipoVia=="Seleccione el tipo de V�a"|| tipoVia=="-1"){
       document.solicitud.TipoVia.focus();
       document.Siguiente.ErrTipoVia.value = 'true';
       error=1
     }
       document.Siguiente.TipoVia.value= tipoVia;

    if(nombreVia==""){
       document.solicitud.NombreVia.focus();
       document.Siguiente.ErrNombreVia.value = 'true';
       error=1
     }
       document.Siguiente.NombreVia.value= nombreVia;

    if(numVia==""){
       document.solicitud.NumVia.focus();
       document.Siguiente.ErrNumVia.value = 'true';
       error=1
     }
       document.Siguiente.NumVia.value= numVia;

    if(codPostal=="" || codPostal.length <5){
       document.solicitud.CodPostal.focus();
       document.Siguiente.ErrCodPostal.value = 'true';
       error=1
     }
       document.Siguiente.CodPostal.value= codPostal;

    if(municipio=="-1"|| municipio=="Seleccione un Municipio"){
       document.solicitud.Municipio.focus();
       document.Siguiente.ErrMunicipio.value = 'true';
       error=1
     }
       document.Siguiente.Municipio.value= municipio;

    if(municipioSolicitado=="-1"|| municipioSolicitado =="Seleccione un Municipio"){
       document.solicitud.MunicipioSolicitado.focus();
       document.Siguiente.ErrMunicipioSolicitado.value = 'true';
       error=1
     }
       document.Siguiente.MunicipioSolicitado.value= municipioSolicitado;

    if(movilidadReducida)
       document.Siguiente.MovilidadReducida.value= "S";
    else  if (document.solicitud.MovilidadReducida[1].checked){
       document.Siguiente.MovilidadReducida.value= "N";
    }else {document.Siguiente.ErrMovilidadReducida.value=true;
             error=1;
     }

   if (provincia=="-1" || provincia=="Seleccione una Provincia"){
       document.solicitud.Provincia.focus();
       document.Siguiente.ErrProvincia.value = 'true';
       error=1
   }

   document.Siguiente.Provincia.value= provincia;

   if (email.length>0 && !bValidarEmail(email)){
	document.solicitud.Email.focus();
       document.Siguiente.ErrEmail.value = 'true';
       error=1
    }

    if (!validarTelefonoFijo(telefono)){
       document.solicitud.Telefono.focus();
       document.Siguiente.ErrTelefono.value = 'true';
       error=1
    }

    if (!validarMovil(movil)){
       document.solicitud.Movil.focus();
       document.Siguiente.ErrMovil.value = 'true';
       error=1
    }
/*Campos no obligatorios, simplemente se pone su valor en el formulario
Siguiente */
       document.Siguiente.Autoriza.value = autoriza;
       document.Siguiente.Todas.value = aplicarTodas;
       document.Siguiente.Telefono.value= telefono;
       document.Siguiente.Movil.value= movil;
       document.Siguiente.Email.value= email;
       document.Siguiente.Escalera.value= escalera;
       document.Siguiente.Piso.value= piso;
       document.Siguiente.Puerta.value= puerta;
       document.Siguiente.Apellido2.value= apellido2;

    /*Ponemos los valores seleccionados en los combos*/
   if (muniEmp!=""){
	indice = document.solicitud.MunicipioEmp.selectedIndex;
	nombre = document.solicitud.MunicipioEmp[indice].text;
	document.Siguiente.NombreMunicipioEmp.value = nombre;
   } else {
	document.Siguiente.NombreMunicipioEmp.value="";
   }

   if(municipio!=""){
        indice = document.solicitud.Municipio.selectedIndex;
	nombre = document.solicitud.Municipio[indice].text;
	document.Siguiente.NombreMunicipio.value = nombre;
   } else    document.Siguiente.NombreMunicipio.value="";

        indice = document.solicitud.Provincia.selectedIndex;
	nombre = document.solicitud.Provincia[indice].text;
	document.Siguiente.NombreProvincia.value = nombre;


        nombre = document.solicitud.MunicipioSolicitado.value;
	document.Siguiente.NombreMunicipioSolicitado.value = nombre;

        document.Siguiente.ErrAnt.value = document.solicitud.errorAnt.value;

	 if ((error!=1)&&(param=="G")){
            document.Siguiente.action='GenerarPDFModificacion.icm';
	 }
        else {
          if (param=="C"){
             if (combo=="emp"){
                document.Siguiente.MunicipioEmp.value = "-1";
             }
             if (combo=="con"){
                 document.Siguiente.Municipio.value = "-1";
             }
              document.Siguiente.action='RellenarCombosMunicipios.icm';
          }
	   else {
              document.Siguiente.action='ModificarSolicitud.icm';
	   }
        }
    document.Siguiente.submit();
}


  /*
  Funcion que actualiza el valor del intervalo de la paginacion
  listaPromotores.jsp
  */
  function ltpCambiaIntervalo(valor){
    document.Promotores.intervalo.value = valor;
  }

  /*
  Funcion que actualiza el municipio por el que se filtra
  listaPromotores.jsp
  */
  function ltpCambiaMunicipio(valor){
    document.Promotores.MUNICIPIO.value = valor;
  }

  /*
  Funcion que ejecuta la accion de mostrar la lista con otro intervalo de paginacion
  listaPromotores.jsp
  */
  function ltpActualizaListaIntervalo(intervalo){
    if(document.Promotores.intervalo.value != intervalo){
        go(document.Promotores,'ListaPromotores.icm');
    }
  }

  /*
  Recogemos el indice del array donde tenemos todos los datos y cogemos todos los
  datos de la solicitud seleccionada.
  listaSolicitudes.jsp
  */
  function ltsMuestraSolicitud(indice){
    var misDatos = arrayListaSol[indice];
    document.DatosSolicitud.NUMSOLIC.value = misDatos[26];
    document.DatosSolicitud.NUMREG.value = misDatos[0];
    document.DatosSolicitud.NIF.value = misDatos[1];
    document.DatosSolicitud.NOMBRE.value = misDatos[2];
    document.DatosSolicitud.APELLIDO1.value = misDatos[3];
    document.DatosSolicitud.APELLIDO2.value = misDatos[4];
    document.DatosSolicitud.MUNICIPIOSOL.value = misDatos[5];
    document.DatosSolicitud.ESTADO.value = misDatos[6];
    document.DatosSolicitud.FECHANAC.value = misDatos[7];
    //En misDatos[8] antes estaba FAMILIANUMEROSA
    document.DatosSolicitud.MUNICIPIOEMPADRONA.value = misDatos[9];
    //En misDatos[10] antes estaba provincia de empadronamiento
    document.DatosSolicitud.TIPOVIA.value = misDatos[11];
    document.DatosSolicitud.NOMBREVIA.value = misDatos[12];
    document.DatosSolicitud.PORTAL.value = misDatos[13];
    document.DatosSolicitud.ESCALERA.value = misDatos[14];
    document.DatosSolicitud.PUERTA.value = misDatos[15];
    document.DatosSolicitud.CODPOSTAL.value = misDatos[16];
    document.DatosSolicitud.TELEFONO.value = misDatos[17];
    document.DatosSolicitud.TELMOVIL.value = misDatos[18];
    document.DatosSolicitud.PROVINCIA.value = misDatos[19];
    document.DatosSolicitud.EMAIL.value = misDatos[20];
    document.DatosSolicitud.DETALLE.value = misDatos[21];
    document.DatosSolicitud.PISO.value = misDatos[22];
    document.DatosSolicitud.MOVILIDAD.value = misDatos[23];
    document.DatosSolicitud.CONCESION.value = misDatos[24];
    document.DatosSolicitud.MUNICIPIO.value = misDatos[25];
    document.DatosSolicitud.FECHASOL.value = misDatos[27];
    document.DatosSolicitud.action = "DatosSolicitud.icm";
    document.DatosSolicitud.submit();

  }

  /*
  Funcion que cambia el filtro del estado.
  listaSolicitudes.jsp
  */
  function ltsCambiaFiltroEstado(){
    document.ListaSolicitudes.filtroEstado.value = document.getElementById("cboFiltroEstado").value;
  }

  /*
  Funcion que cambia el intervalo de datos a mostrar en la paginacion
  listaSolicitudes.jsp
  */
  function ltsCambiaIntervalo(valor){
    document.ListaSolicitudes.intervalo.value = valor;
  }

  /*
  Funci�n que ejecuta la actualizacion de la lista con el nuevo intervalo
  listaSolicitudes.jsp
  */
  function ltsActualizaListaIntervalo(intervalo){
    if(document.ListaSolicitudes.intervalo.value != intervalo ){
	    go(document.ListaSolicitudes,'ListaSolicitudes.icm');
    }
  }


/*
Funci�n que muestra el detalle de la solicitud seleccionada
listaSolicitudes.jsp
*/
function ltsMuestradetalleEstado(indice){
    var misDatos = arrayListaSol[indice];
    document.DatosSolicitud.NUMSOLIC.value = misDatos[26];
    document.DatosSolicitud.NUMREG.value = misDatos[0];
    document.DatosSolicitud.NIF.value = misDatos[1];
    document.DatosSolicitud.NOMBRE.value = misDatos[2];
    document.DatosSolicitud.APELLIDO1.value = misDatos[3];
    document.DatosSolicitud.APELLIDO2.value = misDatos[4];
    document.DatosSolicitud.MUNICIPIOSOL.value = misDatos[5];
    document.DatosSolicitud.ESTADO.value = misDatos[6];
    document.DatosSolicitud.FECHANAC.value = misDatos[7];
    //En misDatos[8] antes estaba FAMILIANUMEROSA
    document.DatosSolicitud.MUNICIPIOEMPADRONA.value = misDatos[9];
    //En misDatos[10] antes estaba provincia de empadronamiento
    document.DatosSolicitud.TIPOVIA.value = misDatos[11];
    document.DatosSolicitud.NOMBREVIA.value = misDatos[12];
    document.DatosSolicitud.PORTAL.value = misDatos[13];
    document.DatosSolicitud.ESCALERA.value = misDatos[14];
    document.DatosSolicitud.PUERTA.value = misDatos[15];
    document.DatosSolicitud.CODPOSTAL.value = misDatos[16];
    document.DatosSolicitud.TELEFONO.value = misDatos[17];
    document.DatosSolicitud.TELMOVIL.value = misDatos[18];
    document.DatosSolicitud.PROVINCIA.value = misDatos[19];
    document.DatosSolicitud.EMAIL.value = misDatos[20];
    document.DatosSolicitud.DETALLE.value = misDatos[21];
    document.DatosSolicitud.PISO.value = misDatos[22];
    document.DatosSolicitud.MOVILIDAD.value = misDatos[23];
    document.DatosSolicitud.CONCESION.value = misDatos[24];
    document.DatosSolicitud.MUNICIPIO.value = misDatos[25];
    document.DatosSolicitud.FECHASOL.value = misDatos[27];
    document.DatosSolicitud.action = "DetalleEstadoSolicitud.icm";
    document.DatosSolicitud.submit();

  }





