function ActivarFormaPago(control){

	//Misión:
	//	Función encargada de activar la forma de pago indicada y de desactivar
	//	las restantes.
	//
	//Parámetros entrada:
	//	* control : forma de pago que se desea activar.

	if (control < 0 || control > 3) return false;
	
	document.forms.solicitud.FORMA_PAGO[control].checked = true;
	
	switch(control){
		case 0: //fin de mes.
			document.forms.solicitud.TIPO_DE_CREDITO_ROTATIVO.selectedIndex = 0;
			document.forms.solicitud.TIPO_DE_CREDITO_ROTATIVO_FIJO.selectedIndex = 0;
			break;
		case 1: //% mensual
			document.forms.solicitud.TIPO_DE_CREDITO_ROTATIVO_FIJO.selectedIndex = 0;
			break;
		case 2: //cantidad fija mensual
			document.forms.solicitud.TIPO_DE_CREDITO_ROTATIVO.selectedIndex = 0;
	}
	
	return true;

}

function BloquearDesbloquearEmpresa(control){

	//Misión:
	//	Función encargada de decidir si se deben o no bloquear los datos de la
	//	empresa de la persona autorizada o del titular.
	//
	//Parámetros entrada:
	//	* control : nos indica si se está refiriendo a la persona autorizada o al
	//		titular.

	var profesion;
	
	if (control == 'PA')
		profesion = trim(document.forms.solicitud.PA_PROFESION.value);
	else
		profesion = trim(document.forms.solicitud.PROFESION.value);
	
	//Comprobamos si la profesión es SUS LABORES o PENSIONISTA.
	if ((profesion.indexOf('701') < 0) && (profesion.indexOf('703') < 0))
		DesbloquearEmpresa(control);
	else
		BloquearEmpresa(control);
		
	return true;
}

function BloquearEmpresa(control){

	//Misión:
	//	Función encargada de inicilizar los campos de la empresa y bloquearlos 
	//	de la persona autorizada o del titular.
	//
	//Parámetros entrada:
	//	* control : nos indica si se está refiriendo al titular o a la persona
	//		autorizada.

	if (control == 'PA'){ //Persona autorizada.
		
		document.forms.solicitud.PA_EMPRESA.value = '';
		document.forms.solicitud.PA_EMPRESA.disabled = true;
		
		document.forms.solicitud.PA_TIPO_EMPRESA.selectedIndex = 0;
		document.forms.solicitud.PA_TIPO_EMPRESA.disabled = true;

		document.forms.solicitud.PA_ACTIVIDAD_EMPRESA.selectedIndex = 0;
		document.forms.solicitud.PA_ACTIVIDAD_EMPRESA.disabled = true;

		document.forms.solicitud.PA_DOMICILIO_PROFESIONAL.value = '';
		document.forms.solicitud.PA_DOMICILIO_PROFESIONAL.disabled = true;
			
		document.forms.solicitud.PA_LOCALIDAD_EMPRESA.value = '';
		document.forms.solicitud.PA_LOCALIDAD_EMPRESA.disabled = true;
		
		document.forms.solicitud.PA_CP_EMPRESA1.value = '';
		document.forms.solicitud.PA_CP_EMPRESA1.disabled = true;
		
		document.forms.solicitud.PA_CP_EMPRESA2.value = '';
		document.forms.solicitud.PA_CP_EMPRESA2.disabled = true;
		
		document.forms.solicitud.PA_DESIGNACION_EMPRESA.value = '';
		document.forms.solicitud.PA_DESIGNACION_EMPRESA.disabled = true;
		
		document.forms.solicitud.PA_TLF_EMPRESA.value = '';
		document.forms.solicitud.PA_TLF_EMPRESA.disabled = true;
		
		document.forms.solicitud.PA_EXTENSION.value = '';
		document.forms.solicitud.PA_EXTENSION.disabled = true;
		
		document.forms.solicitud.PA_TIPO_CONTRATO.selectedIndex = 0;
		document.forms.solicitud.PA_TIPO_CONTRATO.disabled = true;
		
		document.forms.solicitud.PA_ANO_ADMISION_EMPRESA.value = '';
		document.forms.solicitud.PA_ANO_ADMISION_EMPRESA.disabled = true;
	
	}else{ //Titular.
	
		document.forms.solicitud.EMPRESA.value = '';
		document.forms.solicitud.EMPRESA.disabled = true;
		
		document.forms.solicitud.TIPO_DE_EMPRESA.selectedIndex = 0;
		document.forms.solicitud.TIPO_DE_EMPRESA.disabled = true;

		document.forms.solicitud.ACTIVIDAD_EMPRESA.selectedIndex = 0;
		document.forms.solicitud.ACTIVIDAD_EMPRESA.disabled = true;

		document.forms.solicitud.DOMICILIO_PROFESIONAL.value = '';
		document.forms.solicitud.DOMICILIO_PROFESIONAL.disabled = true;
			
		document.forms.solicitud.LOCALIDAD_EMPRESA.value = '';
		document.forms.solicitud.LOCALIDAD_EMPRESA.disabled = true;
		
		document.forms.solicitud.CP_EMPRESA1.value = '';
		document.forms.solicitud.CP_EMPRESA1.disabled = true;
		
		document.forms.solicitud.CP_EMPRESA2.value = '';
		document.forms.solicitud.CP_EMPRESA2.disabled = true;
					
		document.forms.solicitud.DESIGNACION_EMPRESA.value = '';
		document.forms.solicitud.DESIGNACION_EMPRESA.disabled = true;
		
		document.forms.solicitud.TLF_EMPRESA.value = '';
		document.forms.solicitud.TLF_EMPRESA.disabled = true;
		
		document.forms.solicitud.EXTENSION.value = '';
		document.forms.solicitud.EXTENSION.disabled = true;
		
		document.forms.solicitud.TIPO_CONTRATO_LABORAL.selectedIndex = 0;
		document.forms.solicitud.TIPO_CONTRATO_LABORAL.disabled = true;
		
		document.forms.solicitud.ANO_ADMISION_EMPRESA.value = '';
		document.forms.solicitud.ANO_ADMISION_EMPRESA.disabled = true;
	
	}
	
	return true;
	
}

function BorrarSolicitud(){

	//Misión:
	//	Función encargada de borrar todos los datos introducidos en el formulario
	//	de la solicitud.

	document.forms.solicitud.TIPO_DOCUMENTO.selectedIndex = 0;
	document.forms.solicitud.NBI1.value = "";
	document.forms.solicitud.NBI2.value = "";
	document.forms.solicitud.NIF1.value = "";
	document.forms.solicitud.NIF2.value = "";
	document.forms.solicitud.PAIS_RESIDENCIA.selectedIndex = 0;
	document.forms.solicitud.TRATAMIENTO.selectedIndex = 0;
	document.forms.solicitud.NOMBRE_DNI.value = "";
	document.forms.solicitud.APELLIDOS_DNI.value = "";
	document.forms.solicitud.NOMBRE_TARJETA.value = "";
	document.forms.solicitud.APELLIDOS_TARJETA.value = "";
	document.forms.solicitud.DOMICILIO.value = "";
	document.forms.solicitud.LOCALIDAD.value = "";
	document.forms.solicitud.DESIGNACION.value = "";
	document.forms.solicitud.CP1.value = "";
	document.forms.solicitud.CP2.value = "";
	document.forms.solicitud.TELEFONO_PART.value = "";
	document.forms.solicitud.TELEFONO_MOVIL.value = "";
	document.forms.solicitud.NACIONALIDAD.selectedIndex = 0;
	document.forms.solicitud.EMAIL.value = "";
	document.forms.solicitud.SEXO.selectedIndex = 0;
	document.forms.solicitud.FECHA_NAC_DIA.value = "";
	document.forms.solicitud.FECHA_NAC_MES.value = "";
	document.forms.solicitud.FECHA_NAC_ANO.value = "";
	document.forms.solicitud.ESTADO_CIVIL.selectedIndex = 0;
	document.forms.solicitud.N_HIJOS.value = "";
	document.forms.solicitud.REGIMEN.selectedIndex = 0;
	document.forms.solicitud.TIPO_DE_VIVIENDA.selectedIndex = 0;
	document.forms.solicitud.ANOS_EN_VIVIENDA.value = "";
	document.forms.solicitud.GRUPO_PROFESION.selectedIndex = 0;
	document.forms.solicitud.PROFESION.selectedIndex = 0;
	document.forms.solicitud.EMPRESA.value = "";
	document.forms.solicitud.TIPO_DE_EMPRESA.selectedIndex = 0;
	document.forms.solicitud.ACTIVIDAD_EMPRESA.selectedIndex = 0;
	document.forms.solicitud.DOMICILIO_PROFESIONAL.value = "";
	document.forms.solicitud.LOCALIDAD_EMPRESA.value = "";
	document.forms.solicitud.CP_EMPRESA1.value = "";
	document.forms.solicitud.CP_EMPRESA2.value = "";
	document.forms.solicitud.DESIGNACION_EMPRESA.value = "";
	document.forms.solicitud.TLF_EMPRESA.value = "";
	document.forms.solicitud.EXTENSION.value = "";
	document.forms.solicitud.CARGO_EN_LA_EMPRESA.selectedIndex = 0;
	document.forms.solicitud.TIPO_CONTRATO_LABORAL.selectedIndex = 0;
	document.forms.solicitud.ANO_ADMISION_EMPRESA.value = "";
	document.forms.solicitud.INGRESOS_AL_MES.value = "";
	document.forms.solicitud.OTROS_INGRESOS.value = "";
		
	document.forms.solicitud.PA_TIPO_DOCUMENTO.selectedIndex = 0;
	document.forms.solicitud.PA_NBI1.value = "";
	document.forms.solicitud.PA_NBI2.value = "";
	document.forms.solicitud.PA_NIF1.value = "";
	document.forms.solicitud.PA_NIF2.value = "";
	document.forms.solicitud.PA_PAIS_RESIDENCIA.selectedIndex = 0;
	document.forms.solicitud.PA_TRATAMIENTO.selectedIndex = 0;
	document.forms.solicitud.PA_NOMBRE_DNI.value = "";
	document.forms.solicitud.PA_APELLIDOS_DNI.value = "";
	document.forms.solicitud.PA_NOMBRE_TARJETA.value = "";
	document.forms.solicitud.PA_APELLIDOS_TARJETA.value = "";
	document.forms.solicitud.PA_NACIONALIDAD.selectedIndex = 0;
	document.forms.solicitud.PA_SEXO.selectedIndex = true;
	document.forms.solicitud.PA_FECHA_NAC_DIA.value = "";
	document.forms.solicitud.PA_FECHA_NAC_MES.value = "";
	document.forms.solicitud.PA_FECHA_NAC_ANO.value = "";
	document.forms.solicitud.PA_RELACION_TITULAR.selectedIndex = 0;
	document.forms.solicitud.PA_GRUPO_PROFESION.selectedIndex = 0;
	document.forms.solicitud.PA_PROFESION.selectedIndex = 0;
	document.forms.solicitud.PA_EMPRESA.value = "";
	document.forms.solicitud.PA_TIPO_EMPRESA.selectedIndex = 0;
	document.forms.solicitud.PA_ACTIVIDAD_EMPRESA.selectedIndex = 0;
	document.forms.solicitud.PA_DOMICILIO_PROFESIONAL.value = "";
	document.forms.solicitud.PA_LOCALIDAD_EMPRESA.value = "";
	document.forms.solicitud.PA_CP_EMPRESA1.value = "";
	document.forms.solicitud.PA_CP_EMPRESA2.value = "";
	document.forms.solicitud.PA_DESIGNACION_EMPRESA.value = "";
	document.forms.solicitud.PA_TLF_EMPRESA.value = "";
	document.forms.solicitud.PA_EXTENSION.value = "";
	document.forms.solicitud.PA_CARGO_EMPRESA.selectedIndex = 0;
	document.forms.solicitud.PA_TIPO_CONTRATO.selectedIndex = 0;
	document.forms.solicitud.PA_ANO_ADMISION_EMPRESA.value = "";
	document.forms.solicitud.PA_INGRESOS_AL_MES.value = "";
	document.forms.solicitud.PA_OTROS_INGRESOS.value = "";
	
	document.forms.solicitud.NOMBRE_ENTIDAD.value = "";
	document.forms.solicitud.SUCURSAL_ENTIDAD.value = "";
	document.forms.solicitud.ANO_APERTURA_CUENTA.value = "";
	document.forms.solicitud.CCC_ENTIDAD.value = "";
	document.forms.solicitud.CCC_OFICINA.value = "";
	document.forms.solicitud.CCC_DC.value = "";
	document.forms.solicitud.CCC_NUMERO_CUENTA.value = "";
	document.forms.solicitud.CCC_RELACION_TITULAR.selectedIndex = 0;
	document.forms.solicitud.CCC_NOMBRE.value = "";
	document.forms.solicitud.CCC_APELLIDOS.value = "";
	
	document.forms.solicitud.FORMA_PAGO[0].checked = true;
	document.forms.solicitud.TIPO_DE_CREDITO_ROTATIVO.selectedIndex = 0;
	document.forms.solicitud.TIPO_DE_CREDITO_ROTATIVO_FIJO.selectedIndex = 0;
	
	document.forms.solicitud.EMISOR_TARJETA_1.selectedIndex = 0;
	document.forms.solicitud.N_TARJETA_1.value = "";
	document.forms.solicitud.EMISOR_TARJETA_2.selectedIndex = 0;
	document.forms.solicitud.N_TARJETA_2.value = "";
	document.forms.solicitud.PROPIEDADES.value = "";
	document.forms.solicitud.BANCOS.value = "";
	document.forms.solicitud.OTRAS.value = "";
	
	return true;
}

// FUNCIÓN QUE CALCULA LA EDAD A PARTIR DE LA FECHA DE NACIMIENTO

function CalcularEdad(dia, mes, anio){

	//Misión:
	//	Función encargada de calcular la edad a partir de la 
	//	fecha de nacimiento recibida por parámetro.
	//
	//Parámetros entrada:
	//	* dia : día de la fecha de nacimiento.
	//	* mes : mes de la fecha de nacimiento.
	//	* ano : ano de la fecha de nacimiento.
	//
	//Parámetros salida:
	//	* edad calculada hasta el día actual.

	var edad_temporal;
	var hoy = new Date();
	var dia_hoy = hoy.getDate();
	var mes_hoy = hoy.getMonth() + 1;
	var anio_hoy = hoy.getYear();
	
	// Esto lo hago pq Netscape con el método getYear() recupera el año
	// a partir de 1900.  
	if (navigator.appName == "Netscape") 
		anio_hoy = anio_hoy + 1900;
  
 	if (dia.length == 0 || mes.length == 0 || anio.length == 0) return -1;
		
	edad_temporal = anio_hoy - anio;
				
	if (mes > mes_hoy) edad_temporal = edad_temporal - 1;
				
	if (mes == mes_hoy)
		if (dia > dia_hoy) edad_temporal = edad_temporal - 1;
									
	return edad_temporal;
}

function ComprobarDC(entidad, oficina, dc, cuenta){

	//Misión:
	//	Función que comprueba la validez de la cuenta bancaria recibida por 
	//	parámetro.
	//
	//Parámetros entrada:
	//	* entidad : parte de la cuenta bancaria que identifica a la entidad.
	//	* oficina : parte de la cuenta bancaria que identifica a la sucursal.
	//	* dc : dígitos de control de la cuenta bancaria.
	//	* cuenta : número de la cuenta bancaria.
	//
	//Parámetros salida:
	//	* true/false : número de cuenta válido o no.
	

	var ctaban = entidad + "" + oficina + "" + cuenta;
   
	var tabla = new Array(21);
	
	tabla[0] = 1;
	tabla[1] = 10;
	tabla[2] = 3;
	tabla[3] = 30;
	tabla[4] = 9;
	tabla[5] = 90;
	tabla[6] = 27;
	tabla[7] = 76;
	tabla[8] = 81;
	tabla[9] = 34;
	tabla[10] = 49;
	tabla[11] = 5;
	tabla[12] = 50;
	tabla[13] = 15;
	tabla[14] = 53;
	tabla[15] = 45;
	tabla[16] = 62;
	tabla[17] = 38;
	tabla[18] = 89;
	tabla[19] = 17;
	tabla[20] = 73;
	
	var Numero2 = ctaban + "00";
   
	var j, k, Digito;
   
	Digito = 0;
	k = 20;
	
	for (j = 0; j < 21; j++){
		Digito = Digito + Numero2.substring(j, j + 1) * tabla[k];
		k = k - 1;
	}
	
	Digito = 98 - (Digito % 97);
   
	if (Digito != dc) return false;
	else return true;
   
}		

function ComprobarDocumentoIdentificacion(control, numero, dc){

	//Misión:
	//	Función encargada de validar el número de documento de identificación 
	//	recibido y su dígito de control.
	//
	//Parámetros entrada:
	//	* control : nos indica el tipo de validación que debemos seguir,
	//	* numero : número de documento de identificación recibido.
	//	* dc : dígito de control del documento de identificación.
	//
	//Parámetros salida:
	//	* true/false.
	
	
	var contador; //Contador para recorrer los dígitos del número de documento.
	var multiplicador; //Cantidad para multiplicar cada dígito del número de documento.
	var resultado = 0; //Variable auxiliar como acumulador de cantidades.
	var resto; //Resto de división entera.
	var digitocontrol; //Dígito de control calculado.
			
	if (control == 'DNI'){ //Validación modalidad DNI.
	
		multiplicador = 2;
		
		for (contador = 0; contador < 8; contador++){
			resultado = resultado + (parseInt(numero.substring(contador, contador + 1),10) * multiplicador);
			multiplicador++;
		}
		
		resto = resultado % 11;
	
		if (resto == 10) digitocontrol = 0;
		else digitocontrol = resto;					
		
	}else{ //Validación modalidad NIF.
	
		multiplicador = 9;
		
		for (contador = 0; contador < 8; contador++){
			resultado = resultado + (parseInt(numero.substring(contador, contador + 1),10) * multiplicador);
			multiplicador--;
		}
		
		resto = resultado % 11;
		resultado = 11 - resto;
		
		if (resultado == 10 || resultado == 11) digitocontrol = 0;
		else digitocontrol = resultado;	
		
	}
	
	if (digitocontrol == parseInt(dc,10)) return true;
	else return false;
	
}

function ComprobarEmisor(control){
	
	//Misión:
	//	Función que no permite introducir el número de referencia de una tarjeta
	//	de crédito mientras no se haya seleccionado un emisor de tarjeta.
	//
	//Parámetros entrada:
	//	* control : número de tarjeta de crédito que se desea controlar.
	
	if (control < 1 || control > 2) return false;
	
	switch(control){
		case 1:
			if(document.forms.solicitud.EMISOR_TARJETA_1.selectedIndex == 0){
				document.forms.solicitud.N_TARJETA_1.value = "";
				document.forms.solicitud.EMISOR_TARJETA_1.focus();
				return false;
			}
			break;
		case 2:
			if(document.solicitud.EMISOR_TARJETA_2.selectedIndex == 0){
				document.forms.solicitud.N_TARJETA_2.value = "";
				document.forms.solicitud.EMISOR_TARJETA_2.focus();
				return false;
			}
			break;
	} // del switch
	
	return true;
	
}

function ComprobarProfesion(arrProfesiones, control){

	//Misión:
	//	Función encargada de comprobar el grupo de profesión seleccionado y de 
	//	modificar, si procede, las profesiones.
	//
	//Parámetro entrada:
	//	* arrProfesiones : array con los datos de todas las profesiones.
	//	* control : nos indica si debemos comprobar el grupo de profesión y las
	//		profesiones del titular o de la persona autorizada.

	var grupoProfesion;
	var contadorProfesiones;
	var contadorOpciones = 0;
	var codigoProfesion, descripcionProfesion;
	var condicion1, condicion2;
	
	//Obtenemos el grupo de profesión seleccionado.
	if (control == 'PA') //Persona autorizada.
		grupoProfesion = trim(document.forms.solicitud.PA_GRUPO_PROFESION.value);
	else //Titular.
		grupoProfesion = trim(document.forms.solicitud.GRUPO_PROFESION.value);

	//Recorremos el array de profesiones y las analizamos.
	for (contadorProfesiones = 0; contadorProfesiones < arrProfesiones.length; contadorProfesiones++){
	
		//Sacamos los datos de la profesión.
		codigoProfesion = arrProfesiones[contadorProfesiones].substr(0,3);
		descripcionProfesion = arrProfesiones[contadorProfesiones].substr(3,15);
	
		condicion1 = (!(parseInt(grupoProfesion,10) > 59)) && (codigoProfesion.substr(0,2) == grupoProfesion);
		condicion2 = (parseInt(grupoProfesion,10) > 59) && (codigoProfesion.substr(0,1) == grupoProfesion.substr(0,1));
				
		if (condicion1 || condicion2)
			
			if (control == 'PA'){ //Persona autorizada.
				
				document.forms.solicitud.PA_PROFESION.length = contadorOpciones + 1;
				document.forms.solicitud.PA_PROFESION.options[contadorOpciones].value = codigoProfesion + " " + descripcionProfesion;
				document.forms.solicitud.PA_PROFESION.options[contadorOpciones].text = descripcionProfesion;
				contadorOpciones++;
				
			}else{ //Titular.
		
				document.forms.solicitud.PROFESION.length = contadorOpciones + 1;
				document.forms.solicitud.PROFESION.options[contadorOpciones].value = codigoProfesion + " " + descripcionProfesion;
				document.forms.solicitud.PROFESION.options[contadorOpciones].text = descripcionProfesion;
				contadorOpciones++;
				
			}
	
	}
	
	//Por defecto establecemos la primera opción por defecto.
	if (control == 'PA') //Persona autorizada.
		document.forms.solicitud.PA_PROFESION.selectedIndex = 0;
	else
		document.forms.solicitud.PROFESION.selectedIndex = 0;
	
	BloquearDesbloquearEmpresa(control);
	
	return true;
	
}

function ComprobarTipoDocumento(control){

	//Misión:
	//	Función encargada de comprobar la nacionalidad y de modificar, si 
	//	procede, el país tipo de documento de identificación.
	//
	//Parámetro entrada:
	//	* control : nos indica si debemos comprobar el tipo de documento y el país de 
	//		residencia del titular o de la persona autorizada.

	var nacionalidad;
	
	if (control == 'PA') //Persona autorizada.
		nacionalidad = trim(document.forms.solicitud.PA_NACIONALIDAD.value);
	else //Titular.
		nacionalidad = trim(document.forms.solicitud.NACIONALIDAD.value);
			
	if (nacionalidad.indexOf('040') < 0) //Nacionalidad distinta de 'Portuguesa'.
		if (control == 'PA'){ //Persona autorizada.
			document.forms.solicitud.PA_TIPO_DOCUMENTO.length = 1;
			document.forms.solicitud.PA_TIPO_DOCUMENTO.options[0].value = "102 Reside";
			document.forms.solicitud.PA_TIPO_DOCUMENTO.options[0].text = "Residêntes";
		}else{ //Titular.
			document.forms.solicitud.TIPO_DOCUMENTO.length = 1;
			document.forms.solicitud.TIPO_DOCUMENTO.options[0].value = "102 Reside";
			document.forms.solicitud.TIPO_DOCUMENTO.options[0].text = "Residêntes";
		}
	else //Nacionalidad 'Portuguesa'.
		if (control == 'PA'){ //Persona autorizada.
			document.forms.solicitud.PA_TIPO_DOCUMENTO.length = 5;
			document.forms.solicitud.PA_TIPO_DOCUMENTO.options[0].value = "101 BI";
			document.forms.solicitud.PA_TIPO_DOCUMENTO.options[0].text = "B.I.";
			document.forms.solicitud.PA_TIPO_DOCUMENTO.options[1].value = "201 Polici";
			document.forms.solicitud.PA_TIPO_DOCUMENTO.options[1].text = "Policía";
			document.forms.solicitud.PA_TIPO_DOCUMENTO.options[2].value = "202 Milita";
			document.forms.solicitud.PA_TIPO_DOCUMENTO.options[2].text = "Mílitar";
			document.forms.solicitud.PA_TIPO_DOCUMENTO.options[3].value = "501 NIF";
			document.forms.solicitud.PA_TIPO_DOCUMENTO.options[3].text = "N.I.F.";
			document.forms.solicitud.PA_TIPO_DOCUMENTO.options[4].value = "502 NIF Ad";
			document.forms.solicitud.PA_TIPO_DOCUMENTO.options[4].text = "N.I.F. Advogado";
		}else{ //Titular.
			document.forms.solicitud.TIPO_DOCUMENTO.length = 5;
			document.forms.solicitud.TIPO_DOCUMENTO.options[0].value = "101 BI";
			document.forms.solicitud.TIPO_DOCUMENTO.options[0].text = "B.I.";
			document.forms.solicitud.TIPO_DOCUMENTO.options[1].value = "201 Polici";
			document.forms.solicitud.TIPO_DOCUMENTO.options[1].text = "Policía";
			document.forms.solicitud.TIPO_DOCUMENTO.options[2].value = "202 Milita";
			document.forms.solicitud.TIPO_DOCUMENTO.options[2].text = "Mílitar";
			document.forms.solicitud.TIPO_DOCUMENTO.options[3].value = "501 NIF";
			document.forms.solicitud.TIPO_DOCUMENTO.options[3].text = "N.I.F.";
			document.forms.solicitud.TIPO_DOCUMENTO.options[4].value = "502 NIF Ad";
			document.forms.solicitud.TIPO_DOCUMENTO.options[4].text = "N.I.F. Advogado";
		}
		
	return true;
	
}

function DesbloquearEmpresa(control){

	//Misión:
	//	Función encargada de desbloquear los campos de la empresa de la persona
	//	autorizada o del titular.
	//
	//Parámetros entrada:
	//	* control : nos indica si se está refiriendo al titular o a la persona
	//		autorizada.

	if (control == 'PA'){ //Persona autorizada.
		
		document.forms.solicitud.PA_EMPRESA.disabled = false;
		document.forms.solicitud.PA_TIPO_EMPRESA.disabled = false;
		document.forms.solicitud.PA_ACTIVIDAD_EMPRESA.disabled = false;
		document.forms.solicitud.PA_DOMICILIO_PROFESIONAL.disabled = false;
		document.forms.solicitud.PA_LOCALIDAD_EMPRESA.disabled = false;
		document.forms.solicitud.PA_CP_EMPRESA1.disabled = false;
		document.forms.solicitud.PA_CP_EMPRESA2.disabled = false;
		document.forms.solicitud.PA_DESIGNACION_EMPRESA.disabled = false;
		document.forms.solicitud.PA_TLF_EMPRESA.disabled = false;
		document.forms.solicitud.PA_EXTENSION.disabled = false;
		document.forms.solicitud.PA_TIPO_CONTRATO.disabled = false;
		document.forms.solicitud.PA_ANO_ADMISION_EMPRESA.disabled = false;	
		
	}else{ //Titular.
	
		document.forms.solicitud.EMPRESA.disabled = false;
		document.forms.solicitud.TIPO_DE_EMPRESA.disabled = false;
		document.forms.solicitud.ACTIVIDAD_EMPRESA.disabled = false;
		document.forms.solicitud.DOMICILIO_PROFESIONAL.disabled = false;
		document.forms.solicitud.LOCALIDAD_EMPRESA.disabled = false;
		document.forms.solicitud.CP_EMPRESA1.disabled = false;
		document.forms.solicitud.CP_EMPRESA2.disabled = false;
		document.forms.solicitud.DESIGNACION_EMPRESA.disabled = false;
		document.forms.solicitud.TLF_EMPRESA.disabled = false;
		document.forms.solicitud.EXTENSION.disabled = false;
		document.forms.solicitud.TIPO_CONTRATO_LABORAL.disabled = false;
		document.forms.solicitud.ANO_ADMISION_EMPRESA.disabled = false;	
	
	}
	
	return true;
	
}					

function EliminarEspacios(){

	//Misión:
	//	Función encargada de eliminar espacios en blanco al principio y al final 
	//	de todos los cuadros de texto de la solicitud de tarjeta.

	document.forms.solicitud.NBI1.value = trim(document.forms.solicitud.NBI1.value);
	document.forms.solicitud.NBI2.value = trim(document.forms.solicitud.NBI2.value);
	document.forms.solicitud.NIF1.value = trim(document.forms.solicitud.NIF1.value);
	document.forms.solicitud.NIF2.value = trim(document.forms.solicitud.NIF2.value);
	document.forms.solicitud.APELLIDOS_DNI.value = trim(document.forms.solicitud.APELLIDOS_DNI.value);
	document.forms.solicitud.NOMBRE_DNI.value = trim(document.forms.solicitud.NOMBRE_DNI.value);
	document.forms.solicitud.APELLIDOS_TARJETA.value = trim(document.forms.solicitud.APELLIDOS_TARJETA.value);
	document.forms.solicitud.NOMBRE_TARJETA.value = trim(document.forms.solicitud.NOMBRE_TARJETA.value);
	document.forms.solicitud.DOMICILIO.value = trim(document.forms.solicitud.DOMICILIO.value);
	document.forms.solicitud.LOCALIDAD.value = trim(document.forms.solicitud.LOCALIDAD.value);
	document.forms.solicitud.DESIGNACION.value = trim(document.forms.solicitud.DESIGNACION.value);
	document.forms.solicitud.CP1.value = trim(document.forms.solicitud.CP1.value);
	document.forms.solicitud.CP2.value = trim(document.forms.solicitud.CP2.value);
	document.forms.solicitud.TELEFONO_PART.value = trim(document.forms.solicitud.TELEFONO_PART.value);
	document.forms.solicitud.TELEFONO_MOVIL.value = trim(document.forms.solicitud.TELEFONO_MOVIL.value);
	document.forms.solicitud.EMAIL.value = trim(document.forms.solicitud.EMAIL.value);
	document.forms.solicitud.FECHA_NAC_DIA.value = trim(document.forms.solicitud.FECHA_NAC_DIA.value);
	document.forms.solicitud.FECHA_NAC_MES.value = trim(document.forms.solicitud.FECHA_NAC_MES.value);
	document.forms.solicitud.FECHA_NAC_ANO.value = trim(document.forms.solicitud.FECHA_NAC_ANO.value);
	document.forms.solicitud.N_HIJOS.value = trim(document.forms.solicitud.N_HIJOS.value);
	document.forms.solicitud.ANOS_EN_VIVIENDA.value = trim(document.forms.solicitud.ANOS_EN_VIVIENDA.value);
	document.forms.solicitud.EMPRESA.value = trim(document.forms.solicitud.EMPRESA.value);
	document.forms.solicitud.DOMICILIO_PROFESIONAL.value = trim(document.forms.solicitud.DOMICILIO_PROFESIONAL.value);
	document.forms.solicitud.LOCALIDAD_EMPRESA.value = trim(document.forms.solicitud.LOCALIDAD_EMPRESA.value);
	document.forms.solicitud.CP_EMPRESA1.value = trim(document.forms.solicitud.CP_EMPRESA1.value);
	document.forms.solicitud.CP_EMPRESA2.value = trim(document.forms.solicitud.CP_EMPRESA2.value);
	document.forms.solicitud.DESIGNACION_EMPRESA.value = trim(document.forms.solicitud.DESIGNACION_EMPRESA.value);
	document.forms.solicitud.TLF_EMPRESA.value = trim(document.forms.solicitud.TLF_EMPRESA.value);
	document.forms.solicitud.EXTENSION.value = trim(document.forms.solicitud.EXTENSION.value);
	document.forms.solicitud.ANO_ADMISION_EMPRESA.value = trim(document.forms.solicitud.ANO_ADMISION_EMPRESA.value);
	document.forms.solicitud.INGRESOS_AL_MES.value = trim(document.forms.solicitud.INGRESOS_AL_MES.value);
	document.forms.solicitud.OTROS_INGRESOS.value = trim(document.forms.solicitud.OTROS_INGRESOS.value);
		
	document.forms.solicitud.PA_NBI1.value = trim(document.forms.solicitud.PA_NBI1.value);
	document.forms.solicitud.PA_NBI2.value = trim(document.forms.solicitud.PA_NBI2.value);
	document.forms.solicitud.PA_NIF1.value = trim(document.forms.solicitud.PA_NIF1.value);
	document.forms.solicitud.PA_NIF2.value = trim(document.forms.solicitud.PA_NIF2.value);
	document.forms.solicitud.PA_NOMBRE_DNI.value = trim(document.forms.solicitud.PA_NOMBRE_DNI.value);
	document.forms.solicitud.PA_APELLIDOS_DNI.value = trim(document.forms.solicitud.PA_APELLIDOS_DNI.value);
	document.forms.solicitud.PA_NOMBRE_TARJETA.value = trim(document.forms.solicitud.PA_NOMBRE_TARJETA.value);
	document.forms.solicitud.PA_APELLIDOS_TARJETA.value = trim(document.forms.solicitud.PA_APELLIDOS_TARJETA.value);
	document.forms.solicitud.PA_FECHA_NAC_DIA.value = trim(document.forms.solicitud.PA_FECHA_NAC_DIA.value);
	document.forms.solicitud.PA_FECHA_NAC_MES.value = trim(document.forms.solicitud.PA_FECHA_NAC_MES.value);
	document.forms.solicitud.PA_FECHA_NAC_ANO.value = trim(document.forms.solicitud.PA_FECHA_NAC_ANO.value);
	document.forms.solicitud.PA_EMPRESA.value = trim(document.forms.solicitud.PA_EMPRESA.value);
	document.forms.solicitud.PA_DOMICILIO_PROFESIONAL.value = trim(document.forms.solicitud.PA_DOMICILIO_PROFESIONAL.value);
	document.forms.solicitud.PA_LOCALIDAD_EMPRESA.value = trim(document.forms.solicitud.PA_LOCALIDAD_EMPRESA.value);
	document.forms.solicitud.PA_CP_EMPRESA1.value = trim(document.forms.solicitud.PA_CP_EMPRESA1.value);
	document.forms.solicitud.PA_CP_EMPRESA2.value = trim(document.forms.solicitud.PA_CP_EMPRESA2.value);
	document.forms.solicitud.PA_DESIGNACION_EMPRESA.value = trim(document.forms.solicitud.PA_DESIGNACION_EMPRESA.value);
	document.forms.solicitud.PA_TLF_EMPRESA.value = trim(document.forms.solicitud.PA_TLF_EMPRESA.value);
	document.forms.solicitud.PA_EXTENSION.value = trim(document.forms.solicitud.PA_EXTENSION.value);
	document.forms.solicitud.PA_ANO_ADMISION_EMPRESA.value = trim(document.forms.solicitud.PA_ANO_ADMISION_EMPRESA.value);
	document.forms.solicitud.PA_INGRESOS_AL_MES.value = trim(document.forms.solicitud.PA_INGRESOS_AL_MES.value);
	document.forms.solicitud.PA_OTROS_INGRESOS.value = trim(document.forms.solicitud.PA_OTROS_INGRESOS.value);
		
	document.forms.solicitud.NOMBRE_ENTIDAD.value = trim(document.forms.solicitud.NOMBRE_ENTIDAD.value);
	document.forms.solicitud.SUCURSAL_ENTIDAD.value = trim(document.forms.solicitud.SUCURSAL_ENTIDAD.value);
	document.forms.solicitud.ANO_APERTURA_CUENTA.value = trim(document.forms.solicitud.ANO_APERTURA_CUENTA.value);
	document.forms.solicitud.CCC_ENTIDAD.value = trim(document.forms.solicitud.CCC_ENTIDAD.value);
	document.forms.solicitud.CCC_OFICINA.value = trim(document.forms.solicitud.CCC_OFICINA.value);
	document.forms.solicitud.CCC_DC.value = trim(document.forms.solicitud.CCC_DC.value);
	document.forms.solicitud.CCC_NUMERO_CUENTA.value = trim(document.forms.solicitud.CCC_NUMERO_CUENTA.value);
	document.forms.solicitud.CCC_APELLIDOS.value = trim(document.forms.solicitud.CCC_APELLIDOS.value);
	document.forms.solicitud.CCC_NOMBRE.value = trim(document.forms.solicitud.CCC_NOMBRE.value);
		
	document.forms.solicitud.N_TARJETA_1.value = trim(document.forms.solicitud.N_TARJETA_1.value);
	document.forms.solicitud.N_TARJETA_2.value = trim(document.forms.solicitud.N_TARJETA_2.value);
	document.forms.solicitud.PROPIEDADES.value = trim(document.forms.solicitud.PROPIEDADES.value);
	document.forms.solicitud.BANCOS.value = trim(document.forms.solicitud.BANCOS.value);
	document.forms.solicitud.OTRAS.value = trim(document.forms.solicitud.OTRAS.value);
		
	return true;
}	

function EnviarSolicitud(){

	//Misión:
	//	Función encargada de preparar los datos y validarlos antes de llamar
	//	a la transacción.
	
	EliminarEspacios();	
	GuardarIndices();
	if (ValidarSolicitud())
		document.forms.solicitud.submit();
		
	return false;
		
}

function EsBisiesto(anno){

	//Misión:
	//	Función que nos indica si el año recibido por parámetro es bisiesto o no.
	//
	//Parámetros entrada:
	//	* anno : año que se desea comprobar.
	//
	//Parámetros salida:
	//	* true/false.

	return ((((anno % 4) == 0) && ((anno % 100) != 0 )) || ((anno % 400) == 0));
	
}

function GuardarIndices(){

	//Misión:
	//	Función encargada de guardar los índices de las opciones seleccionadas en los
	//	desplegables.

	document.forms.solicitud.indice_tipo_documento.value = document.forms.solicitud.TIPO_DOCUMENTO.selectedIndex;		
	document.forms.solicitud.indice_pais_residencia.value = document.forms.solicitud.PAIS_RESIDENCIA.selectedIndex;
	document.forms.solicitud.indice_tratamiento.value = document.forms.solicitud.TRATAMIENTO.selectedIndex;				
	document.forms.solicitud.indice_nacionalidad.value = document.forms.solicitud.NACIONALIDAD.selectedIndex;		
	document.forms.solicitud.indice_sexo.value = document.forms.solicitud.SEXO.selectedIndex;		
	document.forms.solicitud.indice_estado_civil.value = document.forms.solicitud.ESTADO_CIVIL.selectedIndex;
	document.forms.solicitud.indice_regimen.value = document.forms.solicitud.REGIMEN.selectedIndex;
	document.forms.solicitud.indice_tipo_de_vivienda.value = document.forms.solicitud.TIPO_DE_VIVIENDA.selectedIndex;
	document.forms.solicitud.indice_grupo_profesion.value = document.forms.solicitud.GRUPO_PROFESION.selectedIndex;
	document.forms.solicitud.indice_profesion.value = document.forms.solicitud.PROFESION.selectedIndex;
	document.forms.solicitud.indice_tipo_de_empresa.value = document.forms.solicitud.TIPO_DE_EMPRESA.selectedIndex;
	document.forms.solicitud.indice_actividad_empresa.value = document.forms.solicitud.ACTIVIDAD_EMPRESA.selectedIndex;
	document.forms.solicitud.indice_cargo_empresa.value = document.forms.solicitud.CARGO_EN_LA_EMPRESA.selectedIndex;
	document.forms.solicitud.indice_tipo_contrato_laboral.value = document.forms.solicitud.TIPO_CONTRATO_LABORAL.selectedIndex;
		
	document.forms.solicitud.indice_pa_tipo_documento.value = document.forms.solicitud.PA_TIPO_DOCUMENTO.selectedIndex;		
	document.forms.solicitud.indice_pa_pais_residencia.value = document.forms.solicitud.PA_PAIS_RESIDENCIA.selectedIndex;
	document.forms.solicitud.indice_pa_tratamiento.value = document.forms.solicitud.PA_TRATAMIENTO.selectedIndex;				
	document.forms.solicitud.indice_pa_nacionalidad.value = document.forms.solicitud.PA_NACIONALIDAD.selectedIndex;		
	document.forms.solicitud.indice_pa_sexo.value = document.forms.solicitud.PA_SEXO.selectedIndex;		
	document.forms.solicitud.indice_pa_relacion_titular.value = document.forms.solicitud.PA_RELACION_TITULAR.selectedIndex;
	document.forms.solicitud.indice_pa_grupo_profesion.value = document.forms.solicitud.PA_GRUPO_PROFESION.selectedIndex;
	document.forms.solicitud.indice_pa_profesion.value = document.forms.solicitud.PA_PROFESION.selectedIndex;
	document.forms.solicitud.indice_pa_tipo_empresa.value = document.forms.solicitud.PA_TIPO_EMPRESA.selectedIndex;
	document.forms.solicitud.indice_pa_actividad_empresa.value = document.forms.solicitud.PA_ACTIVIDAD_EMPRESA.selectedIndex;
	document.forms.solicitud.indice_pa_cargo_empresa.value = document.forms.solicitud.PA_CARGO_EMPRESA.selectedIndex;
	document.forms.solicitud.indice_pa_tipo_contrato.value = document.forms.solicitud.PA_TIPO_CONTRATO.selectedIndex;
	
	document.solicitud.indice_ccc_relacion_titular.value = document.solicitud.CCC_RELACION_TITULAR.selectedIndex;

	document.solicitud.indice_tipo_de_credito_rotativo.value = document.solicitud.TIPO_DE_CREDITO_ROTATIVO.selectedIndex;
	document.solicitud.indice_tipo_de_credito_rotativo_fijo.value = document.solicitud.TIPO_DE_CREDITO_ROTATIVO_FIJO.selectedIndex;	
	
	document.solicitud.indice_emisor_tarjeta_1.value = document.solicitud.EMISOR_TARJETA_1.selectedIndex;
	document.solicitud.indice_emisor_tarjeta_2.value = document.solicitud.EMISOR_TARJETA_2.selectedIndex;
		
	return true;
}	

function isEmail(s){	if ((s == null) || (s.length == 0))
		if (isEmail.arguments.length == 1) return defaultEmptyOK;
		else return (isEmail.arguments[1] == true);
   
    if (isWhitespace(s)) return false;
    
    var i = 1;
    var sLength = s.length;

    while ((i < sLength) && (s.charAt(i) != "@")) i++;

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    while ((i < sLength) && (s.charAt(i) != ".")) i++;

    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function isInt (texto){

	//Misión:
	//	Función encargada de comprobar si el dato recibido por parámetro está 
	//	compuesto exclisivamente por dígitos.
	//
	//Parámetros entrada:
	//	* texto : cadena que se desea comprobar.
	//
	//Parámetros salida:
	//	* true/false : indica si la cadena está compuesta exclusivamente por dígitos.
	
	for (var i = 0; i != texto.length; i++){
		letra = texto.substring(i, i+1)
		if (letra < '0' || letra > '9') return false;
	}
	return true;
}

var whitespace = " \t\n\r";
var defaultEmptyOK = true;

function isWhitespace(s){	var i;

    if ((s == null) || (s.length == 0)) return true;

    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
		if (whitespace.indexOf(c) == -1) return false;
    }

    return true;
}

function SubirTarjeta(control){

	//Misión:
	//	Función encargada de controlar que se introduzcan las tarjetas en orden. Es decir, 
	//	no permite introducir los datos de la tarjetas 2 mientras esté vacía la 
	//	tarjeta 1.
	//
	//Parámetros entrada:
	//	* control : número de tarjeta de crédito que se desea "subir".
	
	if (control < 1 || control > 2) return false;
	
	switch (control){
		case 1:
			if (document.forms.solicitud.EMISOR_TARJETA_1.selectedIndex == 0){
				document.forms.solicitud.EMISOR_TARJETA_1.selectedIndex = document.forms.solicitud.EMISOR_TARJETA_2.selectedIndex;
				document.forms.solicitud.N_TARJETA_1.value = document.forms.solicitud.N_TARJETA_2.value;
							
				document.forms.solicitud.EMISOR_TARJETA_2.selectedIndex = 0;
				document.forms.solicitud.N_TARJETA_2.value = "";
			}
			break;
		case 2:
			if(document.solicitud.EMISOR_TARJETA_2.selectedIndex == 0)
				document.forms.solicitud.N_TARJETA_2.value = "";
			else if(document.forms.solicitud.EMISOR_TARJETA_1.selectedIndex == 0){
				document.forms.solicitud.EMISOR_TARJETA_1.selectedIndex = document.forms.solicitud.EMISOR_TARJETA_2.selectedIndex;
				document.forms.solicitud.N_TARJETA_1.value = document.forms.solicitud.N_TARJETA_2.value;
			
				document.forms.solicitud.EMISOR_TARJETA_2.selectedIndex = 0;
				document.forms.solicitud.N_TARJETA_2.value = "";
			
				document.forms.solicitud.N_TARJETA_1.focus();
			}
			break;
	}
	return true;
}		

function trim(texto) {

	//Misión:
	//	Función encargada de eliminar los espacios a derecha e izquierda de una
	//	cadena recibida.
	//
	//Parámetros entrada:
	//	* texto : texto que se desea limpiar de espacios en blanco.
	//
	//Parámetros salida: texto limpio de espacios en blanco a derecha e izquierda

	nuevotexto = String(texto);
	
	// por la derecha
	letra = nuevotexto.substring(nuevotexto.length - 1, nuevotexto.length);
	while(letra == ' ' && nuevotexto.length > 0){
		nuevotexto = nuevotexto.substring(0, nuevotexto.length - 1);
		letra = nuevotexto.substring(nuevotexto.length - 1, nuevotexto.length);
	} 
  
	// por la izda
	letra = nuevotexto.substring(0, 1);
	while(letra == ' ' && nuevotexto.length > 0){
		nuevotexto = nuevotexto.substring(1, nuevotexto.length);
		letra = nuevotexto.substring(0, 1);
	} 
	
	return nuevotexto;
}

function ValidarSolicitud(){
	
	//Misión:
	//	Función encargada de validar TODOS los datos de la solicitud de tarjeta.
	//
	//Parámetros salida:
	//	* true/false.
	
	
		
	//****************************************
	//**	VALIDACIÓN DATOS DEL TITULAR	**
	//****************************************
		
	switch (document.forms.solicitud.NBI1.value.length){
		case 0:
			alert("O campo Nº bilhete identidade não pode estar vazio.");
			document.forms.solicitud.NBI1.focus();
			return false;
			break;
		case 8:
			if (!isInt(document.forms.solicitud.NBI1.value)){
				alert("O campo Nº bilhete identidade deve se numérico.");
				document.forms.solicitud.NBI1.focus();
				return false;
			}
			break;
		default:
			alert("É obrigatório introduzir 9 digitos numéricos no campo Nº bilhete identidade.");
			document.forms.solicitud.NBI1.focus();
			return false;
	}
	
	if (document.forms.solicitud.NBI2.value.length == 0){
		alert("O campo Nº bilhete identidade não pode estar vazio.");
		document.forms.solicitud.NBI2.focus();
		return false;
	}else
		if (!isInt(document.forms.solicitud.NBI2.value)){
			alert("O campo Nº bilhete identidade deve se numérico.");
			document.forms.solicitud.NBI2.focus();
			return false;
		}
	
	var tipo_documento = document.forms.solicitud.TIPO_DOCUMENTO.value.substring(0,3);
	
	switch (tipo_documento){
		case "101":
			if (!ComprobarDocumentoIdentificacion("DNI", document.forms.solicitud.NBI1.value, document.forms.solicitud.NBI2.value)){
				alert("O campo Nº bilhete identidade inválido.");
				document.forms.solicitud.NBI1.focus();
				return false;
			}
			break;
		case "501": case "502":
			if (!ComprobarDocumentoIdentificacion("NIF", document.forms.solicitud.NBI1.value, document.forms.solicitud.NBI2.value)){
				alert("O campo Nº bilhete identidade inválido.");
				document.forms.solicitud.NBI1.focus();
				return false;
			}
	}
		
	switch (document.forms.solicitud.NIF1.value.length){
		case 0:
			alert("O campo Nº contribuinte não pode estar vazio.");
			document.forms.solicitud.NIF1.focus();
			return false;
			break;
		case 8:
			if (!isInt(document.forms.solicitud.NIF1.value)){
				alert("O campo Nº contribuinte deve se numérico.");
				document.forms.solicitud.NIF1.focus();
				return false;
			}
			break;
		default:
			alert("É obrigatório introduzir 9 digitos numéricos no campo Nº contribuinte.");
			document.forms.solicitud.NIF1.focus();
			return false;
	}
	
	if (document.forms.solicitud.NIF2.value.length == 0){
		alert("O campo Nº contribuinte não pode estar vazio.");
		document.forms.solicitud.NIF2.focus();
		return false;
	}else
		if (!isInt(document.forms.solicitud.NIF2.value)){
			alert("O campo Nº contribuinte deve se numérico.");
			document.forms.solicitud.NIF2.focus();
			return false;
		}
		
	if (!ComprobarDocumentoIdentificacion("NIF", document.forms.solicitud.NIF1.value, document.forms.solicitud.NIF2.value)){
		alert("O campo Nº contribuinte inválido.");
		document.forms.solicitud.NIF1.focus();
		return false;
	}
		
	if (document.forms.solicitud.APELLIDOS_DNI.value.length == 0){
		alert("O campo Apellidos não pode estar vazio.");
		document.forms.solicitud.APELLIDOS_DNI.focus();
		return false;
	}
	
	if (document.forms.solicitud.NOMBRE_DNI.value.length == 0){
		alert("O campo Nome não pode estar vazio.");
		document.forms.solicitud.NOMBRE_DNI.focus();
		return false;
	}
	
	if (document.forms.solicitud.APELLIDOS_TARJETA.value.length == 0){
		alert("O campo Apellidos não pode estar vazio.");
		document.forms.solicitud.APELLIDOS_TARJETA.focus();
		return false;
	}
	
	if (document.forms.solicitud.NOMBRE_TARJETA.value.length == 0){
		alert("O campo Nome não pode estar vazio.");
		document.forms.solicitud.NOMBRE_TARJETA.focus();
		return false;
	}	
	
	if (document.forms.solicitud.DOMICILIO.value.length == 0){
		alert("O campo Morada não pode estar vazio.");
		document.forms.solicitud.DOMICILIO.focus();
		return false;
	}

	if (document.forms.solicitud.LOCALIDAD.value.length == 0){
		alert("O campo Localidade não pode estar vazio.");
		document.forms.solicitud.LOCALIDAD.focus();
		return false;
	}

	if (document.forms.solicitud.DESIGNACION.value.length == 0){
		alert("O campo Designação postal não pode estar vazio.");
		document.forms.solicitud.DESIGNACION.focus();
		return false;
	}
	
	switch (document.forms.solicitud.CP1.value.length){
		case 0:
			alert("O campo Código postal não pode estar vazio.");
			document.forms.solicitud.CP1.focus();
			return false;
			break;
		case 4:
			if (!isInt(document.forms.solicitud.CP1.value)){
				alert("O campo Código postal deve se numérico.");
				document.forms.solicitud.CP1.focus();
				return false;
			}
			break;
		default:
			alert("É obrigatório introduzir 7 digitos numéricos no campo Código postal.");
			document.forms.solicitud.CP1.focus();
			return false;
	}

	switch (document.forms.solicitud.CP2.value.length){
		case 0:
			alert("O campo Código postal não pode estar vazio.");
			document.forms.solicitud.CP2.focus();
			return false;
			break;
		case 3:
			if (!isInt(document.forms.solicitud.CP2.value)){
				alert("O campo Código postal deve se numérico.");
				document.forms.solicitud.CP2.focus();
				return false;
			}
			break;
		default:
			alert("É obrigatório introduzir 7 digitos numéricos no campo Código postal.");
			document.forms.solicitud.CP2.focus();
			return false;
	}
	
	switch (document.forms.solicitud.TELEFONO_PART.value.length){
		case 0:
			alert("O campo Telefone não pode estar vazio.");
			document.forms.solicitud.TELEFONO_PART.focus();
			return false;
			break;
		case 9:
			if (!isInt(document.forms.solicitud.TELEFONO_PART.value)){
				alert("O campo Telefone deve se numérico.");
				document.forms.solicitud.TELEFONO_PART.focus();
				return false;
			}else
				if (document.forms.solicitud.TELEFONO_PART.value.substring(0,1) != '2' && document.solicitud.TELEFONO_PART.value.substring(0,1) != '9'){
					alert("O campo Telefone deve começar por 9 ou por 2.");
					document.forms.solicitud.TELEFONO_PART.focus();
					return false;
				}
			break;
		default:
			alert("É obrigatório introduzir 9 digitos numéricos no campo Telefone.");
			document.forms.solicitud.TELEFONO_PART.focus();
			return false;
	}
	
	switch (document.forms.solicitud.TELEFONO_MOVIL.value.length){
		case 0:
			break;
		case 9:
			if (!isInt(document.forms.solicitud.TELEFONO_MOVIL.value)){
				alert("O campo Telemóvel deve se numérico.");
				document.forms.solicitud.TELEFONO_MOVIL.focus();
				return false;
			}else
				if (document.solicitud.TELEFONO_MOVIL.value.substring(0,1) != '9'){
					alert("O campo Telefone deve começar por 9.");
					document.forms.solicitud.TELEFONO_MOVIL.focus();
					return false;
				}
			break;
		default:
			alert("É obrigatório introduzir 9 digitos numéricos no campo Telemóvel.");
			document.forms.solicitud.TELEFONO_MOVIL.focus();
			return false;
	}
	
	if (document.forms.solicitud.EMAIL.value.length != 0)
		if (!isEmail(document.forms.solicitud.EMAIL.value)){
			alert("O campo Email inválido.");
			document.forms.solicitud.EMAIL.focus();
			return false;
		}
			
	if (document.forms.solicitud.FECHA_NAC_DIA.value.length == 0){
		alert("O campo Data de Nascimento não pode estar vazio.");
		document.forms.solicitud.FECHA_NAC_DIA.focus();
		return false;
	}else
		if (!isInt(document.forms.solicitud.FECHA_NAC_DIA.value)){
			alert("O campo Data de Nascimento deve se numérico.");
			document.forms.solicitud.FECHA_NAC_DIA.focus();
			return false;
		}
	
	if (document.forms.solicitud.FECHA_NAC_MES.value.length == 0){
		alert("O campo Data de Nascimento não pode estar vazio.");
		document.forms.solicitud.FECHA_NAC_DIA.focus();
		return false;
	}else
		if (!isInt(document.forms.solicitud.FECHA_NAC_MES.value)){
			alert("O campo Data de Nascimento deve se numérico.");
			document.forms.solicitud.FECHA_NAC_MES.focus();
			return false;
		}
	
	switch (document.forms.solicitud.FECHA_NAC_ANO.value.length){
		case 0:
			alert("O campo Data de Nascimento não pode estar vazio.");
			document.forms.solicitud.FECHA_NAC_ANO.focus();
			return false;
			break;
		case 4:
			if (!isInt(document.forms.solicitud.FECHA_NAC_ANO.value)){
				alert("O campo Data de Nascimento deve se numérico.");
				document.forms.solicitud.FECHA_NAC_ANO.focus();
				return false;
			}
			break;
		default:
			alert("É obrigatório introduzir 4 digitos numéricos no campo Ano de Nascimento.");
			document.forms.solicitud.FECHA_NAC_ANO.focus();
			return false;
	}
	
	//Comprobamos que es una fecha válida.
	switch (parseInt(document.forms.solicitud.FECHA_NAC_MES.value),10){
		case 1: case 3: case 5: case 7: case 8: case 10: case 12:
			if (document.forms.solicitud.FECHA_NAC_DIA.value < 0 || document.forms.solicitud.FECHA_NAC_DIA.value > 31){
				alert("O campo Data de Nascimento inválido.")
				document.forms.solicitud.FECHA_NAC_DIA.focus();
				return false;				
			}
			break;
		case 4: case 6: case 9: case 11:
			if (document.forms.solicitud.FECHA_NAC_DIA.value < 0 || document.forms.solicitud.FECHA_NAC_DIA.value > 30){
				alert("O campo Data de Nascimento inválido.")
				document.forms.solicitud.FECHA_NAC_DIA.focus();
				return false;				
			}
			break;
		case 2:
			if (EsBisiesto(document.forms.solicitud.FECHA_NAC_ANO.value))
				if (document.forms.solicitud.FECHA_NAC_DIA.value < 0 || document.forms.solicitud.FECHA_NAC_DIA.value > 29){
					alert("O campo Data de Nascimento inválido.")
					document.forms.solicitud.FECHA_NAC_DIA.focus();
					return false;					
				}
			else
				if (document.forms.solicitud.FECHA_NAC_DIA.value < 0 || document.forms.solicitud.FECHA_NAC_DIA.value > 28){
					alert("O campo Data de Nascimento inválido.")
					document.forms.solicitud.FECHA_NAC_DIA.focus();
					return false;					
				}
			break;
		default:
			alert("O campo Data de Nascimento inválido.")
			document.forms.solicitud.FECHA_NAC_DIA.focus();
			return false;
	}
	
	//Comprobamos la edad del titular.
	var edad = CalcularEdad(document.forms.solicitud.FECHA_NAC_DIA.value, document.forms.solicitud.FECHA_NAC_MES.value, document.forms.solicitud.FECHA_NAC_ANO.value);
	if (edad < 0){
		alert("O campo Data de Nascimento inválido.")
		document.forms.solicitud.FECHA_NAC_DIA.focus();
		return false;
	}else
		if (edad < 18){
			alert("Não pode ser menor de 18.");
			document.forms.solicitud.FECHA_NAC_DIA.focus();
			return false;
		}else
			if (edad > 100){
				alert("Não pode ser mayor de 100.");
				document.forms.solicitud.FECHA_NAC_DIA.focus();
				return false;
			}
		
	if (document.forms.solicitud.N_HIJOS.value.length == 0){
		alert("O campo Nº de filhos não pode estar vazio.");
		document.forms.solicitud.N_HIJOS.focus();
		return false;
	}else
		if (!isInt(document.forms.solicitud.N_HIJOS.value)){
			alert("O campo Nº de filhos deve se numérico.");
			document.forms.solicitud.N_HIJOS.focus();
			return false;
		}		

	if (document.forms.solicitud.ANOS_EN_VIVIENDA.value.length == 0){
		alert("O campo Anos na morada não pode estar vazio.");
		document.forms.solicitud.ANOS_EN_VIVIENDA.focus();
		return false;
	}else
		if (!isInt(document.forms.solicitud.ANOS_EN_VIVIENDA.value)){
			alert("O campo Anos na morada deve se numérico.");
			document.forms.solicitud.ANOS_EN_VIVIENDA.focus();
			return false;
		}

	if ((document.solicitud.PROFESION.value.indexOf('701') < 0) && (document.solicitud.PROFESION.value.indexOf('703') < 0)){
		//Cuando la profesión no es 'Pensionista'/'Sus labores'.
		
		if (document.solicitud.EMPRESA.value.length == 0){
			alert("O campo Empresa não pode estar vazio.");
			document.forms.solicitud.EMPRESA.focus();
			return false;
		}
												
		if (document.solicitud.DOMICILIO_PROFESIONAL.value.length == 0){
			alert("O campo Morada não pode estar vazio.");
			document.forms.solicitud.DOMICILIO_PROFESIONAL.focus();
			return false;
		}

		if (document.solicitud.LOCALIDAD_EMPRESA.value.length == 0){
			alert("O campo Localidade não pode estar vazio.");
			document.forms.solicitud.LOCALIDAD_EMPRESA.focus();
			return false;
		}
		
		if (document.solicitud.DESIGNACION_EMPRESA.value.length == 0){
			alert("O campo Designação postal não pode estar vazio.");
			document.forms.solicitud.DESIGNACION_EMPRESA.focus();
			return false;
		}		
										
		switch (document.forms.solicitud.CP_EMPRESA1.value.length){
			case 0:
				alert("O campo Código postal não pode estar vazio.");
				document.forms.solicitud.CP_EMPRESA1.focus();
				return false;
				break;
			case 4:
				if (!isInt(document.forms.solicitud.CP_EMPRESA1.value)){
					alert("O campo Código postal deve se numérico.");
					document.forms.solicitud.CP_EMPRESA1.focus();
					return false;
				}
				break;
			default:
				alert("É obrigatório introduzir 7 digitos numéricos no campo Código postal.");
				document.forms.solicitud.CP_EMPRESA1.focus();
				return false;
		}	

		switch (document.forms.solicitud.CP_EMPRESA2.value.length){
			case 0:
				alert("O campo Código postal não pode estar vazio.");
				document.forms.solicitud.CP_EMPRESA2.focus();
				return false;
				break;
			case 3:
				if (!isInt(document.forms.solicitud.CP_EMPRESA2.value)){
					alert("O campo Código postal deve se numérico.");
					document.forms.solicitud.CP_EMPRESA2.focus();
					return false;
				}
				break;
			default:
				alert("É obrigatório introduzir 7 digitos numéricos no campo Código postal.");
				document.forms.solicitud.CP_EMPRESA2.focus();
				return false;
		}		
		
		switch (document.forms.solicitud.TLF_EMPRESA.value.length){
			case 0:
				alert("O campo Telefone não pode estar vazio.");
				document.forms.solicitud.TLF_EMPRESA.focus();
				return false;
				break;
			case 9:
				if (!isInt(document.forms.solicitud.TLF_EMPRESA.value)){
					alert("O campo Telefone deve se numérico.");
					document.forms.solicitud.TLF_EMPRESA.focus();
					return false;
				}else
					if (document.forms.solicitud.TLF_EMPRESA.value.substring(0,1) != '2' && document.solicitud.TLF_EMPRESA.value.substring(0,1) != '9'){
						alert("O campo Telefone deve começar por 9 ou por 2.");
						document.forms.solicitud.TLF_EMPRESA.focus();
						return false;
					}
				break;
			default:
				alert("É obrigatório introduzir 9 digitos numéricos no campo Telefone.");
				document.forms.solicitud.TLF_EMPRESA.focus();
				return false;
		}	
		
		if (document.forms.solicitud.EXTENSION.value.length != 0)
			if (!isInt(document.forms.solicitud.EXTENSION.value)){
				alert("O campo Extensão deve se numérico.");
				document.forms.solicitud.EXTENSION.focus();
				return false;
			}
		
		switch (document.forms.solicitud.ANO_ADMISION_EMPRESA.value.length){
			case 0:
				alert("O campo Ano de admissão não pode estar vazio.");
				document.forms.solicitud.ANO_ADMISION_EMPRESA.focus();
				return false;
				break;
			case 4:
				if (!isInt(document.forms.solicitud.ANO_ADMISION_EMPRESA.value)){
					alert("O campo Ano de admissão deve se numérico.");
					document.forms.solicitud.ANO_ADMISION_EMPRESA.focus();
					return false;
				}else
					if (!(parseInt(document.forms.solicitud.ANO_ADMISION_EMPRESA.value,10) >= (parseInt(document.forms.solicitud.FECHA_NAC_ANO.value,10) + 14))){
						alert("O campo Ano de admissão inválido.")
						document.forms.solicitud.ANO_ADMISION_EMPRESA.focus();
						return false;
					}
				break;
			default:
				alert("É obrigatório introduzir 4 digitos numéricos no campo Ano de admissão.");
				document.forms.solicitud.ANO_ADMISION_EMPRESA.focus();
				return false;
		}
		
		if (document.forms.solicitud.INGRESOS_AL_MES.value.length == 0){
			alert("O campo Rendimentos não pode estar vazio.");
			document.forms.solicitud.INGRESOS_AL_MES.focus();
			return false;
		}else
			if (!isInt(document.forms.solicitud.INGRESOS_AL_MES.value)){
				alert("O campo Rendimentos deve se numérico.");
				document.forms.solicitud.INGRESOS_AL_MES.focus();
				return false;
			}
				
	}else{ 
		//Cuando la profesión es 'sus labores/pensionista'.
		
		if (document.forms.solicitud.INGRESOS_AL_MES.value.length != 0)
			if (!isInt(document.forms.solicitud.INGRESOS_AL_MES.value)){
				alert("O campo Rendimentos deve se numérico.");
				document.forms.solicitud.INGRESOS_AL_MES.focus();
				return false;
			}
			
	}
	
	if (document.forms.solicitud.OTROS_INGRESOS.value.length != 0)
		if (!isInt(document.forms.solicitud.OTROS_INGRESOS.value)){
			alert("O campo Outros rendimentos deve se numérico.");
			document.forms.solicitud.OTROS_INGRESOS.focus();
			return false;
		}
	
	
	//************************************************************
	//**	VALIDACIÓN DE LOS DATOS DE LA PERSONA AUTORIZADA.	**
	//************************************************************

	if (document.forms.solicitud.PA_NBI1.value.length != 0){
		
		switch (document.forms.solicitud.PA_NBI1.value.length){
			case 0:
				alert("O campo Nº bilhete identidade não pode estar vazio.");
				document.forms.solicitud.PA_NBI1.focus();
				return false;
				break;
			case 8:
				if (!isInt(document.forms.solicitud.PA_NBI1.value)){
					alert("O campo Nº bilhete identidade deve se numérico.");
					document.forms.solicitud.PA_NBI1.focus();
					return false;
				}
				break;
			default:
				alert("É obrigatório introduzir 9 digitos numéricos no campo Nº bilhete identidade.");
				document.forms.solicitud.PA_NBI1.focus();
				return false;
		}	
	
		if (document.forms.solicitud.PA_NBI2.value.length == 0){
			alert("O campo Nº bilhete identidade não pode estar vazio.");
			document.forms.solicitud.PA_NBI2.focus();
			return false;
		}else
			if (!isInt(document.forms.solicitud.PA_NBI2.value)){
				alert("O campo Nº bilhete identidade deve se numérico.");
				document.forms.solicitud.PA_NBI2.focus();
				return false;
			}
	
		tipo_documento = document.forms.solicitud.PA_TIPO_DOCUMENTO.value.substring(0,3);
		
		switch (tipo_documento){
			case "101":
				if (!ComprobarDocumentoIdentificacion("DNI", document.forms.solicitud.PA_NBI1.value, document.forms.solicitud.PA_NBI2.value)){
					alert("O campo Nº bilhete identidade inválido.");
					document.forms.solicitud.PA_NBI1.focus();
					return false;
				}
				break;
			case "501": case "502":
				if (!ComprobarDocumentoIdentificacion("NIF", document.forms.solicitud.PA_NBI1.value, document.forms.solicitud.PA_NBI2.value)){
					alert("O campo Nº bilhete identidade inválido.");
					document.forms.solicitud.PA_NBI1.focus();
					return false;
				}
		}
			
		if ((document.forms.solicitud.NBI1.value == document.forms.solicitud.PA_NBI1.value) && (document.forms.solicitud.NBI2.value == document.forms.solicitud.PA_NBI2.value)){
			alert("O campo Nº bilhete identidade inválido.");
			document.forms.solicitud.PA_NBI1.focus();
			return false;
		}	
	
		switch (document.forms.solicitud.PA_NIF1.value.length){
			case 0:
				alert("O campo Nº contribuinte não pode estar vazio.");
				document.forms.solicitud.PA_NIF1.focus();
				return false;
				break;
			case 8:
				if (!isInt(document.forms.solicitud.PA_NIF1.value)){
					alert("O campo Nº contribuinte deve se numérico.");
					document.forms.solicitud.PA_NIF1.focus();
					return false;
				}
				break;
			default:
				alert("É obrigatório introduzir 9 digitos numéricos no campo Nº contribuinte.");
				document.forms.solicitud.PA_NIF1.focus();
				return false;
		}
	
		if (document.forms.solicitud.PA_NIF2.value.length == 0){
			alert("O campo Nº contribuinte não pode estar vazio.");
			document.forms.solicitud.PA_NIF2.focus();
			return false;
		}else
			if (!isInt(document.forms.solicitud.PA_NIF2.value)){
				alert("O campo Nº contribuinte deve se numérico.");
				document.forms.solicitud.NIF2.focus();
				return false;
			}
		
		if (!ComprobarDocumentoIdentificacion("NIF", document.forms.solicitud.PA_NIF1.value, document.forms.solicitud.PA_NIF2.value)){
			alert("O campo Nº contribuinte inválido.");
			document.forms.solicitud.PA_NIF1.focus();
			return false;
		}
		
		if ((document.forms.solicitud.NIF1.value == document.forms.solicitud.PA_NIF1.value) && (document.forms.solicitud.NIF2.value == document.forms.solicitud.PA_NIF2.value)){
			alert("O campo Nº contribuinte inválido.");
			document.forms.solicitud.PA_NIF1.focus();
			return false;
		}	
	
		if (document.forms.solicitud.PA_APELLIDOS_DNI.value.length == 0){
			alert("O campo Apellidos não pode estar vazio.");
			document.forms.solicitud.PA_APELLIDOS_DNI.focus();
			return false;
		}
	
		if (document.forms.solicitud.PA_NOMBRE_DNI.value.length == 0){
			alert("O campo Nome não pode estar vazio.");
			document.forms.solicitud.PA_NOMBRE_DNI.focus();
			return false;
		}
	
		if (document.forms.solicitud.PA_APELLIDOS_TARJETA.value.length == 0){
			alert("O campo Apellidos não pode estar vazio.");
			document.forms.solicitud.PA_APELLIDOS_TARJETA.focus();
			return false;
		}
	
		if (document.forms.solicitud.PA_NOMBRE_TARJETA.value.length == 0){
			alert("O campo Nome não pode estar vazio.");
			document.forms.solicitud.PA_NOMBRE_TARJETA.focus();
			return false;
		}

		if (document.forms.solicitud.PA_FECHA_NAC_DIA.value.length == 0){
			alert("O campo Data de Nascimento não pode estar vazio.");
			document.forms.solicitud.PA_FECHA_NAC_DIA.focus();
			return false;
		}else
			if (!isInt(document.forms.solicitud.PA_FECHA_NAC_DIA.value)){
				alert("O campo Data de Nascimento deve se numérico.");
				document.forms.solicitud.PA_FECHA_NAC_DIA.focus();
				return false;
			}
	
		if (document.forms.solicitud.PA_FECHA_NAC_MES.value.length == 0){
			alert("O campo Data de Nascimento não pode estar vazio.");
			document.forms.solicitud.PA_FECHA_NAC_DIA.focus();
			return false;
		}else
			if (!isInt(document.forms.solicitud.PA_FECHA_NAC_MES.value)){
				alert("O campo Data de Nascimento deve se numérico.");
				document.forms.solicitud.PA_FECHA_NAC_MES.focus();
				return false;
			}
	
		switch (document.forms.solicitud.PA_FECHA_NAC_ANO.value.length){
			case 0:
				alert("O campo Data de Nascimento não pode estar vazio.");
				document.forms.solicitud.PA_FECHA_NAC_ANO.focus();
				return false;
				break;
			case 4:
				if (!isInt(document.forms.solicitud.PA_FECHA_NAC_ANO.value)){
					alert("O campo Data de Nascimento deve se numérico.");
					document.forms.solicitud.PA_FECHA_NAC_ANO.focus();
					return false;
				}
				break;
			default:
				alert("É obrigatório introduzir 4 digitos numéricos no campo Ano de Nascimento.");
				document.forms.solicitud.PA_FECHA_NAC_ANO.focus();
				return false;
		}
	
		//Comprobamos que es una fecha válida.
		switch (parseInt(document.forms.solicitud.PA_FECHA_NAC_MES.value,10)){
			case 1: case 3: case 5: case 7: case 8: case 10: case 12:
				if (document.forms.solicitud.PA_FECHA_NAC_DIA.value < 0 || document.forms.solicitud.PA_FECHA_NAC_DIA.value > 31){
					alert("O campo Data de Nascimento inválido.")
					document.forms.solicitud.PA_FECHA_NAC_DIA.focus();
					return false;				
				}
				break;
			case 4: case 6: case 9: case 11:
				if (document.forms.solicitud.PA_FECHA_NAC_DIA.value < 0 || document.forms.solicitud.PA_FECHA_NAC_DIA.value > 30){
					alert("O campo Data de Nascimento inválido.")
					document.forms.solicitud.PA_FECHA_NAC_DIA.focus();
					return false;				
				}
				break;
			case 2:
				if (EsBisiesto(document.forms.solicitud.PA_FECHA_NAC_ANO.value))
					if (document.forms.solicitud.PA_FECHA_NAC_DIA.value < 0 || document.forms.solicitud.PA_FECHA_NAC_DIA.value > 29){
						alert("O campo Data de Nascimento inválido.")
						document.forms.solicitud.PA_FECHA_NAC_DIA.focus();
						return false;					
					}
				else
					if (document.forms.solicitud.PA_FECHA_NAC_DIA.value < 0 || document.forms.solicitud.PA_FECHA_NAC_DIA.value > 28){
						alert("O campo Data de Nascimento inválido.")
						document.forms.solicitud.PA_FECHA_NAC_DIA.focus();
						return false;					
					}
				break;
			default:
				alert("O campo Data de Nascimento inválido.")
				document.forms.solicitud.PA_FECHA_NAC_DIA.focus();
				return false;
		}
	
		//Comprobamos la edad del titular.
		edad = CalcularEdad(document.forms.solicitud.PA_FECHA_NAC_DIA.value, document.forms.solicitud.PA_FECHA_NAC_MES.value, document.forms.solicitud.PA_FECHA_NAC_ANO.value);
		if (edad < 0){
			alert("O campo Data de Nascimento inválido.")
			document.forms.solicitud.PA_FECHA_NAC_DIA.focus();
			return false;
		}else
			if (edad < 18){
				alert("Não pode ser menor de 18.");
				document.forms.solicitud.PA_FECHA_NAC_DIA.focus();
				return false;
			}else
				if (edad > 100){
					alert("Não pode ser mayor de 100.");
					document.forms.solicitud.PA_FECHA_NAC_DIA.focus();
					return false;
				}
		
		if ((document.solicitud.PA_PROFESION.value.indexOf('701') < 0) && (document.solicitud.PA_PROFESION.value.indexOf('703') < 0)){
			//Cuando la profesión no es 'Pensionista'/'Sus labores'.
		
			if (document.solicitud.PA_EMPRESA.value.length == 0){
				alert("O campo Empresa não pode estar vazio.");
				document.forms.solicitud.PA_EMPRESA.focus();
				return false;
			}
												
			if (document.solicitud.PA_DOMICILIO_PROFESIONAL.value.length == 0){
				alert("O campo Morada não pode estar vazio.");
				document.forms.solicitud.PA_DOMICILIO_PROFESIONAL.focus();
				return false;
			}

			if (document.solicitud.PA_LOCALIDAD_EMPRESA.value.length == 0){
				alert("O campo Localidade não pode estar vazio.");
				document.forms.solicitud.PA_LOCALIDAD_EMPRESA.focus();
				return false;
			}
		
			if (document.solicitud.PA_DESIGNACION_EMPRESA.value.length == 0){
				alert("O campo Designação postal não pode estar vazio.");
				document.forms.solicitud.PA_DESIGNACION_EMPRESA.focus();
				return false;
			}		
										
			switch (document.forms.solicitud.PA_CP_EMPRESA1.value.length){
				case 0:
					alert("O campo Código postal não pode estar vazio.");
					document.forms.solicitud.PA_CP_EMPRESA1.focus();
					return false;
					break;
				case 4:
					if (!isInt(document.forms.solicitud.PA_CP_EMPRESA1.value)){
						alert("O campo Código postal deve se numérico.");
						document.forms.solicitud.PA_CP_EMPRESA1.focus();
						return false;
					}
					break;
				default:
					alert("É obrigatório introduzir 7 digitos numéricos no campo Código postal.");
					document.forms.solicitud.PA_CP_EMPRESA1.focus();
					return false;
			}	

			switch (document.forms.solicitud.PA_CP_EMPRESA2.value.length){
				case 0:
					alert("O campo Código postal não pode estar vazio.");
					document.forms.solicitud.PA_CP_EMPRESA2.focus();
					return false;
					break;
				case 3:
					if (!isInt(document.forms.solicitud.PA_CP_EMPRESA2.value)){
						alert("O campo Código postal deve se numérico.");
						document.forms.solicitud.PA_CP_EMPRESA2.focus();
						return false;
					}
					break;
				default:
					alert("É obrigatório introduzir 7 digitos numéricos no campo Código postal.");
					document.forms.solicitud.PA_CP_EMPRESA2.focus();
					return false;
			}		
		
			switch (document.forms.solicitud.PA_TLF_EMPRESA.value.length){
				case 0:
					alert("O campo Telefone não pode estar vazio.");
					document.forms.solicitud.PA_TLF_EMPRESA.focus();
					return false;
					break;
				case 9:
					if (!isInt(document.forms.solicitud.PA_TLF_EMPRESA.value)){
						alert("O campo Telefone deve se numérico.");
						document.forms.solicitud.PA_TLF_EMPRESA.focus();
						return false;
					}else
						if (document.forms.solicitud.PA_TLF_EMPRESA.value.substring(0,1) != '2' && document.solicitud.PA_TLF_EMPRESA.value.substring(0,1) != '9'){
							alert("O campo Telefone deve começar por 9 ou por 2.");
							document.forms.solicitud.PA_TLF_EMPRESA.focus();
							return false;
						}
					break;
				default:
					alert("É obrigatório introduzir 9 digitos numéricos no campo Telefone.");
					document.forms.solicitud.PA_TLF_EMPRESA.focus();
					return false;
			}	
		
			if (document.forms.solicitud.PA_EXTENSION.value.length != 0)
				if (!isInt(document.forms.solicitud.PA_EXTENSION.value)){
					alert("O campo Extensão deve se numérico.");
					document.forms.solicitud.PA_EXTENSION.focus();
					return false;
				}
		
			switch (document.forms.solicitud.PA_ANO_ADMISION_EMPRESA.value.length){
				case 0:
					alert("O campo Ano de admissão não pode estar vazio.");
					document.forms.solicitud.PA_ANO_ADMISION_EMPRESA.focus();
					return false;
					break;
				case 4:
					if (!isInt(document.forms.solicitud.PA_ANO_ADMISION_EMPRESA.value)){
						alert("O campo Ano de admissão deve se numérico.");
						document.forms.solicitud.PA_ANO_ADMISION_EMPRESA.focus();
						return false;
					}else
						if (!(parseInt(document.forms.solicitud.PA_ANO_ADMISION_EMPRESA.value,10) >= (parseInt(document.forms.solicitud.PA_FECHA_NAC_ANO.value,10) + 14))){
							alert("O campo Ano de admissão inválido.")
							document.forms.solicitud.PA_ANO_ADMISION_EMPRESA.focus();
							return false;
						}
					break;
				default:
					alert("É obrigatório introduzir 4 digitos numéricos no campo Ano de admissão.");
					document.forms.solicitud.PA_ANO_ADMISION_EMPRESA.focus();
					return false;
			}
		
			if (document.forms.solicitud.PA_INGRESOS_AL_MES.value.length == 0){
				alert("O campo Rendimentos não pode estar vazio.");
				document.forms.solicitud.PA_INGRESOS_AL_MES.focus();
				return false;
			}else
				if (!isInt(document.forms.solicitud.PA_INGRESOS_AL_MES.value)){
					alert("O campo Rendimentos deve se numérico.");
					document.forms.solicitud.PA_INGRESOS_AL_MES.focus();
					return false;
				}
				
		}else{ 
			//Cuando la profesión es 'sus labores/pensionista'.
		
			if (document.forms.solicitud.PA_INGRESOS_AL_MES.value.length != 0)
				if (!isInt(document.forms.solicitud.PA_INGRESOS_AL_MES.value)){
					alert("O campo Rendimentos deve se numérico.");
					document.forms.solicitud.PA_INGRESOS_AL_MES.focus();
					return false;
				}
			
		}
	
		if (document.forms.solicitud.PA_OTROS_INGRESOS.value.length != 0)
			if (!isInt(document.forms.solicitud.PA_OTROS_INGRESOS.value)){
				alert("O campo Outros rendimentos deve se numérico.");
				document.forms.solicitud.PA_OTROS_INGRESOS.focus();
				return false;
			}
	
	}
	
	
	//********************************************
	//**	VALIDACIÓN DE LOS DATOS BANCARIOS.	**
	//********************************************
		
	if (document.forms.solicitud.NOMBRE_ENTIDAD.value.length == 0){
		alert("O campo Banco não pode estar vazio.");
		document.forms.solicitud.NOMBRE_ENTIDAD.focus();
		return false;
	}
	
	if (document.forms.solicitud.SUCURSAL_ENTIDAD.value.length == 0){
		alert("O campo Balcão não pode estar vazio.");
		document.forms.solicitud.SUCURSAL_ENTIDAD.focus();
		return false;
	}
	
	switch (document.forms.solicitud.CCC_ENTIDAD.value.length){
		case 0:
			alert("O campo NIB não pode estar vazio.");
			document.forms.solicitud.CCC_ENTIDAD.focus();
			return false;
			break;
		case 4:
			if (!isInt(document.forms.solicitud.CCC_ENTIDAD.value)){
				alert("O campo NIB deve se numérico.");
				document.forms.solicitud.CCC_ENTIDAD.focus();
				return false;				
			}		
			break;	
		default:
			alert("É obrigatório introduzir 21 digitos numéricos no campo NIB.");
			document.forms.solicitud.CCC_ENTIDAD.focus();
			return false;
	}
	
	switch (document.forms.solicitud.CCC_OFICINA.value.length){
		case 0:
			alert("O campo NIB não pode estar vazio.");
			document.forms.solicitud.CCC_OFICINA.focus();
			return false;
			break;
		case 4:
			if (!isInt(document.forms.solicitud.CCC_OFICINA.value)){
				alert("O campo NIB deve se numérico.");
				document.forms.solicitud.CCC_OFICINA.focus();
				return false;				
			}		
			break;	
		default:
			alert("É obrigatório introduzir 21 digitos numéricos no campo NIB.");
			document.forms.solicitud.CCC_OFICINA.focus();
			return false;
	}
	
	switch (document.forms.solicitud.CCC_NUMERO_CUENTA.value.length){
		case 0:
			alert("O campo NIB não pode estar vazio.");
			document.forms.solicitud.CCC_NUMERO_CUENTA.focus();
			return false;
			break;
		case 11:
			if (!isInt(document.forms.solicitud.CCC_NUMERO_CUENTA.value)){
				alert("O campo NIB deve se numérico.");
				document.forms.solicitud.CCC_NUMERO_CUENTA.focus();
				return false;				
			}		
			break;	
		default:
			alert("É obrigatório introduzir 21 digitos numéricos no campo NIB.");
			document.forms.solicitud.CCC_NUMERO_CUENTA.focus();
			return false;
	}
	
	switch (document.forms.solicitud.CCC_DC.value.length){
		case 0:
			alert("O campo NIB não pode estar vazio.");
			document.forms.solicitud.CCC_DC.focus();
			return false;
			break;
		case 2:
			if (!isInt(document.forms.solicitud.CCC_DC.value)){
				alert("O campo NIB deve se numérico.");
				document.forms.solicitud.CCC_DC.focus();
				return false;				
			}		
			break;	
		default:
			alert("É obrigatório introduzir 21 digitos numéricos no campo NIB.");
			document.forms.solicitud.CCC_DC.focus();
			return false;
	}
	
	if (!ComprobarDC(document.forms.solicitud.CCC_ENTIDAD.value,document.forms.solicitud.CCC_OFICINA.value,document.forms.solicitud.CCC_DC.value,document.forms.solicitud.CCC_NUMERO_CUENTA.value)){
		alert("O campo NIB inválido.");
		document.forms.solicitud.CCC_OFICINA.focus();
		return false;
	}
		
	if (document.forms.solicitud.LOCALIDAD_ENTIDAD.value.length == 0){
		alert("O campo Localidade não pode estar vazio.");
		document.forms.solicitud.LOCALIDAD_ENTIDAD.focus();
		return false;
	}
	
	switch (document.forms.solicitud.ANO_APERTURA_CUENTA.value.length){
		case 0:
			alert("O campo Ano de abertura não pode estar vazio.");
			document.forms.solicitud.ANO_APERTURA_CUENTA.focus();
			return false;
			break;
		case 4:
			if (!isInt(document.forms.solicitud.ANO_APERTURA_CUENTA.value)){
				alert("O campo Ano de abertura deve se numérico.");
				document.forms.solicitud.ANO_APERTURA_CUENTA.focus();
				return false;
			}
			break;
		default:
			alert("É obrigatório introduzir 4 digitos numéricos no campo Ano de abertura.");
			document.forms.solicitud.ANO_APERTURA_CUENTA.focus();
			return false;
	}
	
	if (document.forms.solicitud.CCC_APELLIDOS.value.length != 0 || document.forms.solicitud.CCC_NOMBRE.value.length != 0){
		if (document.forms.solicitud.CCC_APELLIDOS.value.length == 0){
			alert("O campo Apellidos não pode estar vazio.");
			document.forms.solicitud.CCC_APELLIDOS.focus();
			return false;
		}
				
		if (document.forms.solicitud.CCC_NOMBRE.value.length == 0){
			alert("O campo Nome não pode estar vazio.");
			document.forms.solicitud.CCC_NOMBRE.focus();
			return false;
		}		

	}else{
		document.forms.solicitud.CCC_RELACION_TITULAR.options[0].selected = true;
	}	
	
		
	//********************************************************
	//**	VALIDACIÓN DE LOS DATOS DE LA FORMA DE PAGO.	**
	//********************************************************


	if (document.solicitud.FORMA_PAGO[1].checked && (document.solicitud.TIPO_DE_CREDITO_ROTATIVO.selectedIndex == 0)){
		alert("O campo % Saldo disposto não pode estar vazio.");
		document.forms.solicitud.TIPO_DE_CREDITO_ROTATIVO.focus();
		return false;
	}

	if (document.solicitud.FORMA_PAGO[2].checked && (document.solicitud.TIPO_DE_CREDITO_ROTATIVO_FIJO.selectedIndex == 0)){
		alert("O campo Quantidade fixa mensal não pode estar vazio.");
		document.forms.solicitud.TIPO_DE_CREDITO_ROTATIVO_FIJO.focus();
		return false;
	}


	//************************************************************
	//**	VALIDACIÓN DE LOS DATOS DE LAS TARJETAS DE CRÉDITO	**
	//************************************************************


	if (document.forms.solicitud.EMISOR_TARJETA_1.selectedIndex != 0)
		if (document.forms.solicitud.N_TARJETA_1.value == ""){
			alert("O campo Nº não pode estar vazio.");
			document.forms.solicitud.N_TARJETA_1.focus();
			return false;
		}else
			if (!isInt(document.forms.solicitud.N_TARJETA_1.value)){
				alert("O campo Nº deve se numérico.");
				document.forms.solicitud.N_TARJETA_1.focus();
				return false;
			}
	
	if (document.forms.solicitud.EMISOR_TARJETA_2.selectedIndex != 0)
		if (document.forms.solicitud.N_TARJETA_2.value == ""){
			alert("O campo Nº não pode estar vazio.");
			document.forms.solicitud.N_TARJETA_2.focus();
			return false;
		}else
			if (!isInt(document.forms.solicitud.N_TARJETA_2.value)){
				alert("O campo Nº deve se numérico.");
				document.forms.solicitud.N_TARJETA_2.focus();
				return false;
			}
								
	if (document.forms.solicitud.PROPIEDADES.value.length > 200){
		alert("O campo Propriedades não pode superar os 200 caracteres.")
		document.forms.solicitud.PROPIEDADES.value = document.forms.solicitud.PROPIEDADES.value.substr(0,200);
		document.forms.solicitud.PROPIEDADES.focus();
		return false;
	}
	
	if (document.forms.solicitud.BANCOS.value.length > 200){
		alert("O campo Bancos não pode superar os 200 caracteres.")
		document.forms.solicitud.BANCOS.value = document.forms.solicitud.BANCOS.value.substr(0,200);
		document.forms.solicitud.BANCOS.focus();
		return false;
	}
	
	if (document.forms.solicitud.OTRAS.value.length > 200){
		alert("O campo Outros dados não pode superar os 200 caracteres.")
		document.forms.solicitud.OTRAS.value = document.forms.solicitud.OTRAS.value.substr(0,200);
		document.forms.solicitud.OTRAS.focus();
		return false;
	}	

	return true;

}