function validaClienteFinalGM(txtcliente, cliente_final_con_usuario) {
	var error_o = '';
	var error = '';
	var algun_pago_unico_seleccionado = false;
	var num_campos_nombre_completo = 0;
	num_campos_nombre_completo = document.forms[0].num_campos_nombre_completo.value;
	
	// 24-05-2010
	document.forms[0].construir_nombre_completo.value = '0';
	// pregunto si quieren crear el campo
	if ((document.forms[0].nombre.value == '') && (num_campos_nombre_completo > 0)){
		if(confirm('¿Desea construir el nombre completo a partir de los campos especificados?')){
			document.forms[0].construir_nombre_completo.value = '1';
		}
	}
	// 24-05-2010
	
	// if ((document.forms[0].email.value == '') &&
	// (document.forms[0].movil.value == '') && (document.forms[0].nombre.value
	// == '')){
	if ((document.forms[0].email.value == '') && (document.forms[0].movil.value == '') && (document.forms[0].nombre.value == '') && (document.forms[0].construir_nombre_completo.value == '0')){
		error_o += 'Debe introducir al menos el nombre, el email o el número de móvil del ' + txtcliente + '.\r\n';
	}

	if (error_o != '') {
		alert(error_o);
		return false;
	} else {
		if (cliente_final_con_usuario) {
			// si estamos insertando nuevo y no ha introducido clave
			if ((document.forms[0].modificar_clave.value == false)
					&& (document.forms[0].usuario_cliente_final.value != '')
					&& (document.forms[0].clave_cliente_final.value == '')) {
				alert('Debe introducir la clave de acceso a la Extranet para el ' + txtcliente);
				return false;
			} else {
				// si estamos modificando y ha seleccionado la opcion de
				// modificar
				// clave
				if ((document.forms[0].modificar_clave.value)
						&& (document.forms[0].usuario_cliente_final.value != '')
						&& (document.forms[0].modificarclave.checked)
						&& (document.forms[0].clave_cliente_final_modificar.value == '')) {
					alert('Debe introducir la nueva clave de acceso a la Extranet para el ' + txtcliente);
					return false;
				}
			}
		}
		if (document.forms[0].email.value == '') {
			error += 'No ha introducido el Email del '
					+ txtcliente
					+ '. Sin éste el '
					+ txtcliente
					+ ' no podrá recibir los comunicados que se envíen por correo electrónico.\r\n';
		}
		
		if (document.forms[0].movil.value == '') {
			error += 'No ha introducido el número de móvil del '
					+ txtcliente
					+ '. Sin éste el '
					+ txtcliente
					+ ' no podrá recibir los comunicados que se envíen por SMS.\r\n';
		}
		if ((cliente_final_con_usuario)
				&& (document.forms[0].usuario_cliente_final.value == '')) {
			error += 'No ha introducido el nombre de usuario del ' + txtcliente
					+ '. Sin éste el ' + txtcliente
					+ ' no podrá acceder a la Extranet.\r\n';
		}
	}
	if (error != '') {
		if (document.forms[0].accion_extranet.value != 'cuenta') {
			if (confirm(error + '\r\n¿Desea continuar de todas formas?')) {
				document.forms[0].submit();
				return false;
			}else {
				return false;
			}
		} else {
			alert(error);
			return false;
		}
	} else {
		if (confirm('¿Desea actualizar la ficha del ' + txtcliente+'?')) {
			document.forms[0].submit();
			return false;
		}
	}

return false;
}

function validaClienteFinal(txtcliente, cliente_final_con_usuario) {
	var nombre_campo_obligatorio = 'nif_cif';
	nombre_campo_obligatorio = document.forms[0].nb_campo_obligatorio.value;
	var num_campos_nombre_completo = 0;
	num_campos_nombre_completo = document.forms[0].num_campos_nombre_completo.value;
	var error_o = '';
	var error = '';
	var algun_pago_unico_seleccionado = false;
	
	// 24-05-2010
	document.forms[0].construir_nombre_completo.value = '0';
	// pregunto si quieren crear el campo
	if ((document.forms[0].nombre.value == '') && (num_campos_nombre_completo > 0)){
		if(confirm('¿Desea construir el nombre completo a partir de los campos especificados?')){
			document.forms[0].construir_nombre_completo.value = '1';
		}
	}
	// 24-05-2010
	
	// si es obligatorio
	if(nombre_campo_obligatorio == 'num_socio'){
		if (document.forms[0].num_socio.value == '') {
			error_o += 'Debe introducir el Nº de socio del ' + txtcliente + '.\r\n';
		}
	}
	// si es obligatorio
	if(nombre_campo_obligatorio == 'nombre'){
		// if (document.forms[0].nombre.value == ''){
		// 24-05-2010
		if ((document.forms[0].nombre.value == '') && ((num_campos_nombre_completo == 0) || ((num_campos_nombre_completo > 0) && ((document.forms[0].construir_nombre_completo.value == 'false'))))){
			error_o += 'Debe introducir el nombre del ' + txtcliente + '.\r\n';
		}
	}
	// si es obligatorio
	if(nombre_campo_obligatorio == 'nif_cif'){
		if (document.forms[0].nif_cif.value == '') {
			error_o += 'Debe introducir el NIF/CIF del ' + txtcliente + '.\r\n';
		}
	}
	
	/*
	 * if(document.forms[0].email.value == ''){ error_o += 'Debe introducir el
	 * email del '+txtcliente+'.\r\n'; }
	 */

	if (error_o != '') {
		alert(error_o);
		return false;
	} else {
		// 25-05-2010
		// 08-09-2010 -> compruebo tb el envio si el num socio ha cambiado
		// comprobamos si se dara la opcion de enviar el email de alta
		document.forms[0].enviar_email_alta.value = '0';
		// pregunto si quieren enviar el email
		if (((document.forms[0].activo_inicial.value == 'f') || (document.forms[0].num_socio_inicial.value != document.forms[0].num_socio.value)) && (document.forms[0].activo.checked) && (document.forms[0].email.value != '')){
			if(confirm('¿Desea enviar un email al socio informándole de su activación?')){
				document.forms[0].enviar_email_alta.value = '1';
			}
		}
		// 25-05-2010
		
		if (cliente_final_con_usuario) {
			// si estamos insertando nuevo y no ha introducido clave
			if ((document.forms[0].modificar_clave.value == false)
					&& (document.forms[0].usuario_cliente_final.value != '')
					&& (document.forms[0].clave_cliente_final.value == '')) {
				alert('Debe introducir la clave de acceso a la Extranet para el ' + txtcliente);
				return false;
			} else {
				// si estamos modificando y ha seleccionado la opcion de
				// modificar
				// clave
				if ((document.forms[0].modificar_clave.value)
						&& (document.forms[0].usuario_cliente_final.value != '')
						&& (document.forms[0].modificarclave.checked)
						&& (document.forms[0].clave_cliente_final_modificar.value == '')) {
					alert('Debe introducir la nueva clave de acceso a la Extranet para el ' + txtcliente);
					return false;
				}
			}
			// validamos que si ha seleccionado la opcion de enviar usuario y
			// pass al cliente, este tenga user,pass y email
			var mensaje = '';
	        mensaje = validarEnviarUserPass();
	        if(mensaje != ''){
				alert(mensaje);
				return false;
	        }
		}
		
		// compruebo si se ha introducido el nombre o importe de nueva cuota
		// unica personalizada
		if (((document.forms[0].nombre_pago_unico_p.value == '') && (document.forms[0].importe_pago_unico_p.value != '')) || ((document.forms[0].nombre_pago_unico_p.value != '') && (document.forms[0].importe_pago_unico_p.value == ''))) {
			alert('Si desea introducir una nueva cuota única personalizada para el ' + txtcliente+', debe introducir el nombre y el importe.');
			return false;
		} 

		if (document.forms[0].movil.value == '') {
			error += 'No ha introducido el número de móvil del '
					+ txtcliente
					+ '. Sin éste el '
					+ txtcliente
					+ ' no podrá recibir los comunicados que se envíen por SMS.\r\n';
		}
		if (document.forms[0].cta_corriente.value == '') {
			error += 'No ha introducido el número de cuenta del ' + txtcliente + '. Sin éste no podrá emitirle los correspondientes recibos.\r\n';
		}

		// tarifas segun seleccion
		error_tarifas = '';
		error_tarifa_personalizada = '';
		id_tarifa_seleccionada = '';
		id_tarifa_detalle_seleccionada = '';
		var num_tarifas = 0;
		var es_personalizada = false;
		if(parseInt(document.forms[0].num_tarifas.value) > 0){
			num_tarifas = parseInt(document.forms[0].num_tarifas.value) + 1;
			for (t = 0; t < num_tarifas; t++) {
				id_tarifa_recorrida = document.forms[0].cuota_tarifa_id[t].value;
				if (document.forms[0].cuota_tarifa_id[t].checked) {
					// si es la ultima es la personalizada
					if (document.forms[0].cuota_tarifa_id[t].value == 'personalizada') {
						es_personalizada = true;
					}
					id_tarifa_seleccionada = document.forms[0].cuota_tarifa_id[t].value;
					// comprobamos si se ha seleccionado cuota
					if(document.forms[0].num_periodicidades.value > 1){
						for (c = 0; c < document.forms[0].num_periodicidades.value; c++) {
							if (document.forms[0]['cuota_tarifa_periodicidad_' + id_tarifa_seleccionada][c].checked) {
								id_tarifa_detalle_seleccionada = document.forms[0]['cuota_tarifa_periodicidad_' + id_tarifa_seleccionada][c].value;
								c = document.forms[0].num_periodicidades.value;
							}
						}
					}else{
						if (document.forms[0]['cuota_tarifa_periodicidad_' + id_tarifa_seleccionada].checked) {
							id_tarifa_detalle_seleccionada = document.forms[0]['cuota_tarifa_periodicidad_' + id_tarifa_seleccionada].value;
						}
					}
					t = num_tarifas;
				}
			}
		}else{
			id_tarifa_recorrida = document.forms[0].cuota_tarifa_id.value;
			if (document.forms[0].cuota_tarifa_id.checked) {
				id_tarifa_seleccionada = document.forms[0].cuota_tarifa_id.value;
				if(id_tarifa_recorrida == 'personalizada'){
					es_personalizada = true;
				}
				// comprobamos si se ha seleccionado cuota
				for (c = 0; c < document.forms[0].num_periodicidades.value; c++) {
					if (document.forms[0]['cuota_tarifa_periodicidad_' + id_tarifa_seleccionada][c].checked) {
						id_tarifa_detalle_seleccionada = document.forms[0]['cuota_tarifa_periodicidad_' + id_tarifa_seleccionada][c].value;
						c = document.forms[0].num_periodicidades.value;
					}
				}
			}
		}
		// si el cliente_final esta de alta, valido lo correspondiente
		if (document.forms[0].activo.checked) {
			// si es la personalizada, compruebo que se han rellenado los campos
			// obligatorios
			if (es_personalizada) {
				// compruebo si se ha seleccionado cuota
				var txt_periodicidad_mensual = '';
				txt_periodicidad_mensual = document.forms[0]['nombre_periodicidad[0]'].value;
				if (document.forms[0].nombre_tarifa.value == '') {
					error_tarifa_personalizada += 'Debe introducir el nombre de la cuota personalizada.\r\n';
				}
				/*
				 * if (document.forms[0]['precio_' + txt_periodicidad_mensual +
				 * ''].value == '') { error_tarifa_personalizada += 'Debe
				 * introducir el importe mensual de la cuota
				 * personalizada.\r\n'; }
				 */

				if (error_tarifa_personalizada != '') {
					alert(error_tarifa_personalizada);
					return false;
				}
			}
			if (id_tarifa_seleccionada == '') {
				error_tarifas += 'No ha seleccionado cuota para la ' + txtcliente + '. Sin ésta no podrá emitir los correspondientes recibos.\r\n';
			} else {
				if (id_tarifa_detalle_seleccionada == '') {
					// error_tarifas += 'No ha seleccionado la cuota de la cuota
					// para la '+txtcliente+'. Sin ésta no podrá emitir los
					// correspondientes recibos.\r\n';
					alert('No ha seleccionado el importe correspondiente a la cuota para el ' + txtcliente + '. Sin ésta no podrá emitir los correspondientes recibos.\r\n');
					return false;
				}
			}
		} else {
			// si esta de baja, compruebo si se ha cambiado de tarifa => no se
			// permite modificar la tarifa al estar el cliente final de baja
			if ((id_tarifa_seleccionada != document.forms[0].cuota_tarifa_cliente_final_id.value)
					|| (id_tarifa_detalle_seleccionada != document.forms[0].cuota_tarifa_periodicidad_cliente_final_id.value)) {
				alert('El ' + document.forms[0].cliente_final_dominio.value + ' está dado de baja. No puede modificar su cuota.');
				marcaCuotaOriginal();
				return false;
			}
		}

		if (error_tarifas != '') {
			error += error_tarifas;
		}

		if ((cliente_final_con_usuario)
				&& (document.forms[0].usuario_cliente_final.value == '')) {
			error += 'No ha introducido el nombre de usuario del ' + txtcliente
					+ '. Sin éste el ' + txtcliente
					+ ' no podrá acceder a la Extranet.\r\n';
		}
		// comprobamos si la capa esta visible, si lo esta
		// preguntaremos si se han seleccionado los recibos a anular
		var elhtml = document
				.getElementById('capa_recibos_pendientes_cambio_baja');
		var elhtml2 = document.getElementById('capa_mes_anio_primer_recibo');
		// si inicialmente esta la capa visible,es porque el cliente_final no
		// tenia asociada cuota todavia
		if (document.forms[0].capa_mes_anio_primer_recibo_display.value == 'block') {
			elhtml2.style.display = 'block';
		}

		var txt_confirmacion_cambios = '';
		if ((elhtml.style.display == 'block')
				|| (elhtml2.style.display == 'block')) {
			if ((elhtml.style.display == 'block')) {
				txt_confirmacion_cambios += ' que ha seleccionado los recibos a anular';
			}
			if ((elhtml.style.display == 'block')
					&& (elhtml2.style.display == 'block')) {
				txt_confirmacion_cambios += ' y';
			}
			if ((elhtml2.style.display == 'block')) {

				// si tiene cuota seleccionada
				if ((id_tarifa_detalle_seleccionada != '')
						&& (id_tarifa_seleccionada != '')) {
					// compruebo tambien si mes-anio seleccionados son
					// anteriores al
					// mes-anio de la primera remesa
					if ((document.forms[0].mes_primeros_recibos.value != '')
							&& (document.forms[0].anio_primeros_recibos.value != '')) {
						if ((parseInt(document.forms[0].primer_recibo_Year.value) < document.forms[0].anio_primeros_recibos.value)
								|| ((document.forms[0].anio_primeros_recibos.value == parseInt(document.forms[0].primer_recibo_Year.value)) && (parseInt(document.forms[0].primer_recibo_Month.value) < document.forms[0].mes_primeros_recibos.value))) {
							alert('La fecha de generación del primer recibo seleccionada no puede ser anterior a '
									+ document.forms[0].mes_nb_primeros_recibos.value
									+ ' de '
									+ document.forms[0].anio_primeros_recibos.value
									+ '. ');
							return false;
						}
					}

					// compruebo si el mes-anio seleccionados son anteriores al
					// mes-anio de la ultima generacion de recibos
					if ((parseInt(document.forms[0].mes_hasta_generacion.value) != '')
							&& (parseInt(document.forms[0].anio_hasta_generacion.value) != '')) {
						if ((parseInt(document.forms[0].primer_recibo_Year.value) < parseInt(document.forms[0].anio_hasta_generacion.value))
								|| ((parseInt(document.forms[0].anio_hasta_generacion.value) == parseInt(document.forms[0].primer_recibo_Year.value)) && (parseInt(document.forms[0].primer_recibo_Month.value) <= parseInt(document.forms[0].mes_hasta_generacion.value)))) {
							mensajito = 'Ha seleccionado una fecha desde la que generar el primer recibo de la nueva cuota anterior a '
									+ document.forms[0].mes_nb_hasta_generacion.value
									+ ' de '
									+ parseInt(document.forms[0].anio_hasta_generacion.value)
									+ ' (Mes/Año hasta el que hay recibos generados). ';
							if (confirm(mensajito
									+ '\r\n¿Desea generar los recibos correspondientes desde la fecha seleccionada hasta '
									+ document.forms[0].mes_nb_hasta_generacion.value
									+ ' de '
									+ parseInt(document.forms[0].anio_hasta_generacion.value)
									+ '?')) {
								document.forms[0].generar_recibos_anteriores.value = 'true';
							} else {
								document.forms[0].generar_recibos_anteriores.value = 'false';
							}
						}
					}
				}

				txt_confirmacion_cambios += ' que ha seleccionado el mes y año correspondientes al primer recibo a generar';
			}
		}
		
		
		// cuotas unicas generales
		if (document.forms[0].num_pagos_unicos.value > 0){
			for(u=0;u<document.forms[0].num_pagos_unicos.value;u++){
				if(document.forms[0]['pago_unico_id['+u+']'].checked){
					algun_pago_unico_seleccionado = true;
					u = document.forms[0].num_pagos_unicos.value;
				}
			}
			if(algun_pago_unico_seleccionado){
				txt_confirmacion_cambios += ' que desea generar los recibos correspondientes a las cuotas únicas seleccionadas';
			}
		}
		if ((algun_pago_unico_seleccionado == false) && ((document.forms[0].nombre_pago_unico_p.value != '') && (document.forms[0].importe_pago_unico_p.value != ''))){
			// cuotas unicas personalizadas
			txt_confirmacion_cambios += ' que desea crear la nueva cuota única personalizada, y generar su correspondiente recibo';
		} 
		
		if (error != '') {
			if (document.forms[0].accion_extranet.value != 'cuenta') {
				if (confirm(error + '\r\n¿Desea continuar de todas formas?')) {
					if (txt_confirmacion_cambios != '') {
						if (confirm('¿Confirma ' + txt_confirmacion_cambios + '?')) {
							document.forms[0].submit();
						} else {
							document.forms[0].generar_recibos_anteriores.value = 'false';
							return false;
						}
					} else {
						document.forms[0].submit();
					}
				} else {
					document.forms[0].generar_recibos_anteriores.value = 'false';
					return false;
				}
			} else {
				alert(error);
				return false;
			}
		} else {
			// comprobamos si la capa esta visible, si lo esta
			// preguntaremos si se han seleccionado los recibos a anular
			if (txt_confirmacion_cambios != '') {
				if (confirm('¿Confirma ' + txt_confirmacion_cambios + '?')) {
					document.forms[0].submit();
				} else {
					document.forms[0].generar_recibos_anteriores.value = 'false';
					return false;
				}
			} else {
				if (confirm('¿Desea actualizar la ficha del ' + txtcliente+'?')) {
					document.forms[0].submit();
					return false;
				}
			}
		}

	}
	return false;
}

function compruebaBaja(objeto, activo_on) {
	// si estaba seleccionado,
	if (activo_on == 'checked') {
		if (!objeto.checked) {
			if (confirm('¿Confirma que desea dar de baja al ' + document.forms[0].cliente_final_dominio.value + '?')) {
				// si tiene algun plazo pendiente, los mostraremos dando opcion
				// de
				// darlos de baja
				if (document.forms[0].num_plazos_pendientes.value > 0) {
					alert('El '
							+ document.forms[0].cliente_final_dominio.value
							+ ' tiene '
							+ document.forms[0].num_plazos_pendientes.value
							+ ' recibos pendientes.\r\nSeleccione los recibos que desee dar de baja en la parte inferior de la ficha.');
					// mostramos la capa con los recibos pendientes
					xDisplay('capa_recibos_pendientes_cambio_baja', 'block');
					xDisplay('capa_mes_anio_primer_recibo', 'none');
				}
			} else {
				xDisplay('capa_recibos_pendientes_cambio_baja', 'none');
				xDisplay('capa_mes_anio_primer_recibo', 'none');
				objeto.checked = true;
				return false;
			}
		} else {
			xDisplay('capa_recibos_pendientes_cambio_baja', 'none');
			xDisplay('capa_mes_anio_primer_recibo', 'none');
			return false;
		}
	}
}
function compruebaCambioCuota(tipo, objeto, id_cuota) {
	// primero compruebo si el asociado esta dado de baja=> si esta dado de baja
	// no permitire cambiar las cuotas
	if (document.forms[0].activo.checked) {
		if (tipo == 'cuota') {
			if (document.forms[0].cuota_tarifa_cliente_final_id.value != '') {
				// alert('Cuota ' + objeto.value);
				if (document.forms[0].cuota_tarifa_cliente_final_id.value != objeto.value) {
					// muestro la capa de seleccion del mes y anio del primer
					// recibo de la nueva cuota
					xDisplay('capa_mes_anio_primer_recibo', 'block');
					msg_mes_anio = 'Seleccione el mes y año en el que generar el primer recibo de la nueva cuota en la parte inferior de la ficha.';
					if (document.forms[0].num_plazos_pendientes.value > 0) {
						alert('El '
								+ document.forms[0].cliente_final_dominio.value
								+ ' tiene '
								+ document.forms[0].num_plazos_pendientes.value
								+ ' recibos pendientes.\r\nSeleccione los recibos que desee anular en la parte inferior de la ficha.\r\n'
								+ msg_mes_anio);
						// mostramos la capa con los recibos pendientes
						xDisplay('capa_recibos_pendientes_cambio_baja', 'block');
					} else {
						alert(msg_mes_anio);
					}
				}
			}
		} else {
			if (document.forms[0].cuota_tarifa_periodicidad_cliente_final_id.value != '') {
				// alert('Periodicidad ' + objeto.value);
				// marcamos la cuota correspondiente
				num_tarifas = parseInt(document.forms[0].num_tarifas.value) + 1;
				for (t = 0; t < num_tarifas; t++) {
					id_tarifa_recorrida = document.forms[0].cuota_tarifa_id[t].value;
					if (id_tarifa_recorrida == id_cuota) {
						document.forms[0].cuota_tarifa_id[t].checked = true;
					}
					for (c = 0; c < document.forms[0].num_periodicidades.value; c++) {
						if (document.forms[0]['cuota_tarifa_periodicidad_' + id_tarifa_recorrida][c].value != objeto.value) {
							document.forms[0]['cuota_tarifa_periodicidad_' + id_tarifa_recorrida][c].checked = false;
						}
					}
				}

				if (document.forms[0].cuota_tarifa_periodicidad_cliente_final_id.value != objeto.value) {
					// muestro la capa de seleccion del mes y anio del primer
					// recibo de la nueva cuota
					xDisplay('capa_mes_anio_primer_recibo', 'block');
					msg_mes_anio = 'Seleccione el mes y año en el que generar el primer recibo de la nueva cuota en la parte inferior de la ficha.';
					if (document.forms[0].num_plazos_pendientes.value > 0) {
						alert('El '
								+ document.forms[0].cliente_final_dominio.value
								+ ' tiene '
								+ document.forms[0].num_plazos_pendientes.value
								+ ' recibos pendientes.\r\nSeleccione los recibos que desee anular en la parte inferior de la ficha.\r\n'
								+ msg_mes_anio);
						// mostramos la capa con los recibos pendientes
						xDisplay('capa_recibos_pendientes_cambio_baja', 'block');
						xDisplay('capa_mes_anio_primer_recibo', 'block');
					} else {
						alert(msg_mes_anio);
					}
				} else {
					// mostramos la capa con los recibos pendientes
					xDisplay('capa_recibos_pendientes_cambio_baja', 'none');
					xDisplay('capa_mes_anio_primer_recibo', 'none');
				}
			}
		}
	} else {
		// si esta dado de baja, no permito el cambio
		alert('El ' + document.forms[0].cliente_final_dominio.value + ' está dado de baja. No puede modificar su cuota.');
		marcaCuotaOriginal();
		return false;
	}
}

function marcaCuotaOriginal() {
	id_tarifa_seleccionada = '';
	id_tarifa_detalle_seleccionada = '';
	var num_tarifas = 0;
	var es_personalizada = false;
	num_tarifas = parseInt(document.forms[0].num_tarifas.value) + 1;
	// si habia marcada, la buscamos y la marcamos
	if ((document.forms[0].cuota_tarifa_cliente_final_id.value != '')
			&& (document.forms[0].cuota_tarifa_periodicidad_cliente_final_id.value != '')) {
		for (t = 0; t < num_tarifas; t++) {
			id_tarifa_recorrida = document.forms[0].cuota_tarifa_id[t].value;
			if (id_tarifa_recorrida == document.forms[0].cuota_tarifa_cliente_final_id.value) {
				// selecciono la cuota original
				document.forms[0].cuota_tarifa_id[t].checked = true;

				id_tarifa_seleccionada = document.forms[0].cuota_tarifa_id[t].value;
				// comprobamos si se ha seleccionado cuota
				for (c = 0; c < document.forms[0].num_periodicidades.value; c++) {
					if (document.forms[0]['cuota_tarifa_periodicidad_' + id_tarifa_seleccionada][c].value == document.forms[0].cuota_tarifa_periodicidad_cliente_final_id.value) {
						document.forms[0]['cuota_tarifa_periodicidad_' + id_tarifa_seleccionada][c].checked = true;
					}
				}
			} else {
				document.forms[0].cuota_tarifa_id[t].checked = false;
				// comprobamos si se ha seleccionado cuota
				for (c = 0; c < document.forms[0].num_periodicidades.value; c++) {
					document.forms[0]['cuota_tarifa_periodicidad_' + document.forms[0].cuota_tarifa_id[t].value][c].checked = false;
				}
			}
		}
	} else {
		// no habia marcada, asi que desmarcamos todas
		for (t = 0; t < num_tarifas; t++) {
			document.forms[0].cuota_tarifa_id[t].checked = false;
			id_tarifa_seleccionada = document.forms[0].cuota_tarifa_id[t].value;
			// comprobamos si se ha seleccionado cuota
			for (c = 0; c < document.forms[0].num_periodicidades.value; c++) {
				document.forms[0]['cuota_tarifa_periodicidad_' + id_tarifa_seleccionada][c].checked = false;
			}
		}
	}
}

function cambiarEstado(objeto) {
	var txt_accion = '';
	var msg2 = '';
	if (objeto.checked) {
		if (objeto.name == 'pagado') {
			txt_accion = ' pagar el recibo seleccionado';
		} else if (objeto.name == 'dev_importe') {
			txt_accion = ' devolver el importe del recibo seleccionado';
			msg2 += '¿Debe volver a generar el recibo?\r\nSi acepta se cambiará el estado del recibo seleccionado a DEV.IMPORTE, y se le creará un recibo similar con estado PENDIENTE.\r\nSi cancela sólo se cambiará el estado del recibo seleccionado a DEV.IMPORTE.';
		} else if (objeto.name == 'dev_banco') {
			txt_accion = ' cambiar el estado a devuelto banco del recibo seleccionado';
			msg2 += '¿Debe volver a generar el recibo?\r\nSi acepta se cambiará el estado del recibo seleccionado a DEV.BANCO, y se le creará un recibo similar con estado PENDIENTE.\r\nSi cancela sólo se cambiará el estado del recibo seleccionado a DEV.BANCO.';
		} else if (objeto.name == 'anulado') {
			txt_accion = ' anular el recibo seleccionado';
		}
		if (confirm('¿Confirma que desea ' + txt_accion + '?')) {
			if (msg2 == '') {
				document.location.href = document.forms[0].accion_fin.value
						+ objeto.name + '&recibo_id=' + objeto.value;
				return false;
			} else {
				var txt_debe_pagar = '';
				if (confirm(msg2)) {
					txt_debe_pagar = 'debe_pagar';

				}
				document.location.href = document.forms[0].accion_fin.value
						+ objeto.name + '&recibo_id=' + objeto.value
						+ '&debe_pagar=' + txt_debe_pagar;
				return false;
			}
		} else {
			objeto.checked = false;
			return false;
		}
	}
}
/**
 * Funciones migracion
 */
// PASO 1
function validaCampo() {
	if (document.forms[0].nombre.value == '') {
		alert('Debe introducir el nombre del campo.');
		return false;
	} else {
		document.forms[0].action += '&accion2=aniadir_campo';
		document.forms[0].submit();
	}
}
function validaCampoActividad() {
	if (document.forms[0].nombre.value == '') {
		alert('Debe introducir el nombre del campo.');
		return false;
	} else {
		document.forms[0].action += '&accionc=aniadir_campo';
		document.forms[0].submit();
	}
}

function eliminarCampo(objeto, no_eliminar, enlace, tipo) {
	if (no_eliminar == true) {
		alert('No se puede eliminar el ' + tipo + ', ya que tiene información asociada.');
		objeto.checked = false;
		return false;
	} else {
		if (tipo == 'campo') {
			texto = 'Está a punto de eliminar este campo y todos sus posibles valores, ¿está seguro?';
		} else {
			texto = 'Está a punto de eliminar este valor, ¿está seguro?';
		}
		if (confirm(texto)) {
			document.location.href = enlace;
			return false;
		} else {
			objeto.checked = false;
			return false;
		}
	}
}
function actualizarNumSocio(objeto,num_inicial,num_clientes_finales,enlace){
	var txt_condicion = '';
	if(objeto.value != ''){
		if(num_clientes_finales > 0){
			txt_condicion = '\nSe actualizarán los números de socios de los asociados ya existentes en la base de datos.';
		}
		if(confirm('¿Desea actualizar el número de socio de comienzo?'+txt_condicion)){
			document.location.href = enlace+objeto.value ;
			return false;
		}else{
			objeto.value = num_inicial; 
			return false;
		}
	} else {
		return false;
	}
}

function validaNuevoValor(campo_id, nombre_campo) {
	if (document.forms[0]['campo_valor_' + campo_id].value == '') {
		alert('Debe introducir el valor del campo ' + nombre_campo + '.');
		return false;
	} else {
		document.forms[0].action += '&accion2=aniadir_valor_campo&campo_id=' + campo_id;
		document.forms[0].submit();
	}
}
function validaNuevoValorActividad(campo_id, nombre_campo) {
	if (document.forms[0]['campo_valor_' + campo_id].value == '') {
		alert('Debe introducir el valor del campo ' + nombre_campo + '.');
		return false;
	} else {
		document.forms[0].action += '&accionc=aniadir_valor_campo&campo_id=' + campo_id;
		document.forms[0].submit();
	}
}
function actualizaConstruccionNombre() {
	if (confirm('¿Confirma que desea actualizar la selección de campos?')){
		document.forms[0].action += '&accion2=';
		document.forms[0].submit();
	}else{
		return false;
	}
}
// PASO 1
function validaPaso1(enlace, num_campos, txt_cliente_final) {
	var error = '';
	// var alguno_seleccionado = false;
	// var tienen_orden = true;
	// // compruebo si hay algun campo, y si se ha seleccionado alguno como
	// parte
	// // del nombre
	// for (i = 0; i < num_campos; i++) {
	// if (document.forms[0]['seleccionar_nombre_' + i].checked) {
	// alguno_seleccionado = true;
	// if ((document.forms[0]['orden_nombre_' + i].value == '')
	// || (document.forms[0]['orden_nombre_' + i].value == '0')
	// || (is_int(document.forms[0]['orden_nombre_' + i].value) == false)) {
	// tienen_orden = false;
	// }
	// }
	// }
	//
	// if (alguno_seleccionado == false) {
	// error += 'Debe asociar alguno de los campos como nombre completo de los '
	// + txt_cliente_final + 's.';
	// } else if (tienen_orden == false) {
	// error += 'Debe asignar el orden a cada campo seleccionado que formarán el
	// nombre completo de los ' + txt_cliente_final + 's.';
	// }

	if (error) {
		alert(error);
		return false;
	} else {
		if (confirm('¿Confirma que ya tiene los campos que necesita para pasar la importación de datos?')) {
			// document.location.href = enlace + 'paso2';
			document.forms[0].action = enlace + 'paso2';
			document.forms[0].submit();

		} else {
			return false;
		}
	}
}
// PASO 2
function validaPaso2(enlace) {
	var error = '';
	var permitida = false;
	if (document.forms[0].separador.value == '') {
		error += 'Debe introducir el separador utilizado en el fichero.\r\n';
	}
	if (document.forms[0].fichero.value == '') {
		error += 'Debe adjuntar el fichero.\r\n';
	} else {
		// comprobamos la extension del archivo a subir
		var archivo = document.forms[0].fichero.value;
		var extension = (archivo.substring(archivo.lastIndexOf(".")))
				.toLowerCase();
		var extensiones_permitidas = new Array(".txt", ".csv");
		for ( var i = 0; i < extensiones_permitidas.length; i++) {
			if (extensiones_permitidas[i] == extension) {
				permitida = true;
				break;
			}
		}
		if (!permitida) {
			error = error
					+ "Comprueba la extensión del fichero a subir. \nSólo se pueden subir ficheros con extensiones: "
					+ extensiones_permitidas.join();
			document.forms[0].fichero.value = '';
		}
	}
	if (error) {
		alert(error);
		return false;
	} else {
		if (confirm('¿Confirma que desea pasar al Paso 3?')) {
			document.forms[0].action = enlace + 'paso2_fin';
			document.forms[0].submit();
		} else {
			return false;
		}
	}
}

// PASO 3
function validaPaso3(enlace, cliente_final_con_usuario) {
	var error = '';
	var permitida = false;
	// compruebo si se han seleccionado alguno de los campos para los datos de
	// acceso y el otro no.
	if (cliente_final_con_usuario == true) {
		if (!((document.forms[0].nombre_usuario.value != 0) && (document.forms[0].clave_usuario.value != 0))) {
			if ((document.forms[0].nombre_usuario.value != 0)
					|| (document.forms[0].clave_usuario.value != 0)) {
				error += 'Debe asociar tanto el usuario como la clave con un campo si desea generar datos de acceso al usuario.';
			}
		}
	}
	if (error) {
		alert(error);
		return false;
	} else {
		if (confirm('¿Confirma que desea pasar al Paso 4?')) {
			document.forms[0].action = enlace + 'paso3_fin';
			document.forms[0].submit();
		} else {
			return false;
		}
	}
}

/*
 * NORMA 43
 */

// PASO 2
function validaPaso2N43() {
	var error = '';

	if (document.forms[0].fichero.value == '') {
		error += 'Debe adjuntar el fichero.\r\n';
	}
	if (error) {
		alert(error);
		return false;
	} else {
		if (confirm('¿Confirma que desea pasar al Paso 2?')) {
			document.forms[0].submit();
		} else {
			return false;
		}
	}
}

/*
 * COMPROBACIONES
 */

function guardarSeleccionUsuariosEncuesta(accion_fin) {
	var mensaje = '';
	if (document.forms[0].num_usuarios_lista.value == 0) {
		mensaje += 'No ha seleccionado ningún usuario. ¿Desea continuar de todas formas?';
	} else {
		mensaje += '¿Confirma que desea guardar la lista?';
	}
	if (confirm(mensaje)) {
		document.location.href = accion_fin + '&num='
				+ document.forms[0].num_usuarios_lista.value;
		return false;
	} else {
		return false;
	}

}
function validaSeleccionUsuariosEncuesta(accion_fin) {
	var mensaje = '';
	if (document.forms[0].num_usuarios_seleccionados.value == 0) {
		alert('No ha seleccionado ningún usuario.');
		return false;
	} else {
		mensaje += '¿Confirma que desea añadir a la lista los usuarios seleccionados?';
	}
	if (confirm(mensaje)) {
		document.location.href = accion_fin + '&num='
				+ document.forms[0].num_usuarios_seleccionados.value;
		return false;
	} else {
		return false;
	}

}

function validaEdicionListaOtrosContactos(enlace) {
	if (confirm('¿Confirma que desea actualizar la lista?')) {
		document.location.href = enlace;
		return false;
	} else {
		return false;
	}
}

function guardaSesion(objeto, accion) {
	var condicion_destinatario = '';
	var guardaensesion = {
		success : resultado_sesion,
		failure : resultado_sesion
	}
	if (accion != 'editar_otros_contactos') {
		// cliente_final
		condicion_destinatario = '&tipo=cliente_final&cliente_final_id=' + objeto.value;
	} else {
		condicion_destinatario = '&tipo=otro_contacto&destinatario_id=' + objeto.value;
	}

	var request = YAHOO.util.Connect.asyncRequest('GET',
			document.forms[0].dir_ajax.value
					+ "/ajax/guardarSesion.php?selecc=" + objeto.checked
					+ condicion_destinatario + '&accion=' + accion,
			guardaensesion);

	return false;
}
function resultado_sesion(o) {
	var recojo = o.responseText;
	document.forms[0].num_usuarios_seleccionados.value = recojo;

}

function validaSeleccionClienteFinal(objeto, enlace, id_cliente_final) {
	if (confirm('¿Confirma su selección?')) {
		document.location.href = enlace + id_cliente_final;
	} else {
		objeto.checked = false;
	}
}

function validaPersonaCargo(enlace,texto_accion){
	if(document.forms[0].nombre_no_cliente_final.value == ''){
		alert('Debe introducir el nombre de la persona.');
		return false;
	}else{
		if (confirm('¿Confirma que desea añadir esta persona '+texto_accion+'?')) {
			document.location.href = enlace+'f&nombre_no_cliente_final='+document.forms[0].nombre_no_cliente_final.value;
		} else {
			return false;
		}
	}
}
/*
 * Función que pone el numero de usuarios en la ventana padre seleccionados en
 * la ventana hija
 */
function ponNumUsuarios(num_usuarios) {
	document.forms[0].num_usuarios_seleccionados.value = num_usuarios;
}
function ponNumUsuariosOtros(num_usuarios) {
	document.forms[0].num_otros_contactos_seleccionados.value = num_usuarios;
}
function ponClienteFinalId(nombre_cliente_final, cliente_final_id, cargo_id) {
	document.forms[0]['cliente_final_id[' + cargo_id + ']'].value = cliente_final_id;
	document.forms[0]['nombre_cliente_final[' + cargo_id + ']'].value = nombre_cliente_final;
	xDisplay('capa_aniadir_persona_'+cargo_id,'none');
	xDisplay('capa_nombre_'+cargo_id,'block');
}
function borrarClienteFinalId(cargo_id) {
	if (confirm('¿Confirma que desea borrar la persona seleccionada?')) {
		document.forms[0]['nombre_cliente_final[' + cargo_id + ']'].value = '';
		document.forms[0]['cliente_final_id[' + cargo_id + ']'].value = '';
		document.forms[0]['no_cliente_final_id[' + cargo_id + ']'].value = '';
		xDisplay('capa_aniadir_persona_'+cargo_id,'block');
		xDisplay('capa_nombre_'+cargo_id,'none');
	}
	return false;
}
function ponResultadoActNumSocio(accion){
	if(accion == ''){
		alert('Se han actualizado los números de socio correctamente');
		return false;
	}
}
function ponClienteFinalActividadId(nombre_cliente_final, cliente_final_id, actividad_id) {
	var destinada_a = '';var encontrado = false;
	document.forms[0]['cliente_final_id'].value = cliente_final_id;
	document.forms[0]['nombre_cliente_final'].value = nombre_cliente_final;
	xDisplay('capa_aniadir_persona','none');
	xDisplay('capa_nombre_persona','block');
	if (document.forms[0].num_cuotas_actividad.value > 0) {
		if(cliente_final_id == 'f'){
			destinada_a = 'no_socio';
			xDisplay('capa_cuotas','none');
			xDisplay('capa_cuotas_socios','none');
			xDisplay('capa_cuotas_no_socios','block');
			xDisplay('capa_info_no_socio','block');
		}else{
			destinada_a = 'socio';
			xDisplay('capa_cuotas','none');
			xDisplay('capa_cuotas_socios','block');
			xDisplay('capa_cuotas_no_socios','none');
			xDisplay('capa_info_no_socio','none');
		}
		// leemos si hay cuota seleccionada
		encontrado = seleccionarElementoCombo(document.forms[0].id_cuota_seleccionada.value,destinada_a);
		if(encontrado){
			document.forms[0]['actividad_cuota_id'].value = document.forms[0].id_cuota_seleccionada.value;
		}else{
			document.forms[0]['id_cuota_seleccionada'].value = '';
			document.forms[0]['actividad_cuota_id'].value = '';
			document.forms[0]['importe_total'].value = '';
			document.forms[0]['importe_acompaniante_cuota_seleccionada'].value = '';
			document.forms[0]['importe_cuota_seleccionada'].value = '';
		}
		calculaTotalCuota();
	}
	/*
	 * if (document.forms[0].num_cuotas_actividad.value > 0) {
	 * if(cliente_final_id == 'f'){ document.forms[0]['num_acompaniantes'].value =
	 * ''; document.getElementById('capa_acompaniantes_socios').innerHTML = '';
	 * xDisplay('capa_num_acompaniantes_socios','none');
	 * xDisplay('capa_num_acompaniantes_no_socios','block'); }else{
	 * xDisplay('capa_num_acompaniantes_socios','block');
	 * xDisplay('capa_num_acompaniantes_no_socios','none'); }
	 * calculaTotalCuota(); }else{ if(cliente_final_id == 'f'){
	 * document.forms[0]['num_acompaniantes2'].value = '';
	 * document.forms[0]['num_acompaniantes2'].disabled = true;
	 * document.getElementById('capa_acompaniantes_socios2').innerHTML = ''; //
	 * xDisplay('capa_num_acompaniantes_socios2','none');
	 * xDisplay('capa_num_acompaniantes_no_socios2','block'); }else{
	 * document.forms[0]['num_acompaniantes2'].disabled = false; //
	 * xDisplay('capa_num_acompaniantes_socios2','block');
	 * xDisplay('capa_num_acompaniantes_no_socios2','none'); } }
	 */
}
function ponClienteFinalCajaId(nombre_cliente_final, cliente_final_id) {
	document.forms[0]['cliente_final_id'].value = cliente_final_id;
	document.forms[0]['nombre_cliente_final'].value = nombre_cliente_final;
}
function seleccionarElementoCombo(elemento,destinada_a) {
	if(destinada_a == 'socio'){
		var combo = document.forms[0].actividad_cuota_id_s;
	}else if(destinada_a == 'no_socio'){
		var combo = document.forms[0].actividad_cuota_id_ns;
	}else{
		var combo = document.forms[0].actividad_cuota_id;
	}
   var cantidad = combo.length;
   var encontrado = false;
   for (i = 0; i < cantidad; i++) {
      if (combo[i].value == elemento) {
         combo[i].selected = true;
         encontrado = true;
      }   
   }
   return encontrado;
}
function recargaPagina(enlace) {
	document.location.href = enlace;
}
function validaRecibirComunicados(objeto,tipo) {
	if (objeto.checked) {
		if (confirm('¿Confirma que el usuario desea recibir '+tipo+'?')) {
			return false;
		} else {
			objeto.checked = false;
			return false;
		}
	} else {
		if (confirm('¿Confirma que el usuario desea dejar de recibir '+tipo+'?')) {
			return false;
		} else {
			objeto.checked = true;
			return false;
		}
	}
}
function validaEliminarFotoCF(enlace,cliente_final_dominio) {
	mensaje = '¿Confirma que desea elimina la foto del '+cliente_final_dominio+'?';
	if (confirm(mensaje)) {
		document.location.href = enlace;
		return false;
	} else {
		document.forms[0].eliminar_foto.checked = false;
		return false;
	}
}
function confirmaEliminarClienteFinal(enlace,cliente_final_dominio) {
	mensaje = '¿Confirma que desea elimina el '+cliente_final_dominio+'?';
	if (confirm(mensaje)) {
		document.location.href = enlace;
		return false;
	} else {
		return false;
	}
}



/**
 * FUNCIONES DE RECIBOS
 */
function compruebaMostrarFecha(objeto){
	if(objeto.value > 1){xDisplay('capa_fecha_cambio','block');} else {xDisplay('capa_fecha_cambio','none');}
	return false;
}
function debePagar(nb_capa,nb_check,id_recibo,objeto){
	if(objeto.checked){
		xDisplay(nb_capa+id_recibo,'block');
		document.forms[0][nb_check+id_recibo][0].checked = true;
	}else{
		xDisplay(nb_capa+id_recibo,'none');
	}
	return false;
}
function mostrarCuentas(objeto,id_recibo,nb_capa){
	if(objeto.checked){
		if(objeto.value > 1){
			xDisplay(nb_capa+id_recibo,'block');
		} else {xDisplay(nb_capa+id_recibo,'none');}
	}else{
		return false;
	}
}
function activarCuentas(objeto){
	if(objeto.checked){
		if(objeto.value > 1){
			document.forms[0].cuenta.disabled = false;
		} else {
			document.forms[0].cuenta.disabled = true;
		}
	}else{
		return false;
	}
}
function validaActualizarRecibos(enlace){
	var error = '';var estado = '';
	if(document.forms[0].cambio_estado.value == ''){
		alert('Debe seleccionar el estado.');
		return false;
	}else {
		if(document.forms[0].cambio_estado.value == '2'){
			estado = 'pagar';
		}else if(document.forms[0].cambio_estado.value == '7'){
			estado = 'devolver importe';
		}else if(document.forms[0].cambio_estado.value == '6'){
			estado = 'devolver importe banco';
		}else if(document.forms[0].cambio_estado.value == '4'){
			estado = 'anular';
		}
		if(document.forms[0].fecha_cambio.value == ''){
			error += 'Debe introducir la fecha para '+estado+' los recibos seleccionados.\r\n';
		}
		// compruebo si el estado seleccionado es compatible con los recibos
		// seleccionados
		if(error == ''){
			var alguno_seleccionado = false;var error_compatibilidad = false;
			for(a=0;a<document.forms[0].num_recibos.value;a++){
				if(document.forms[0]['recibo_cambiar_estado['+a+']'].checked){
					if(!alguno_seleccionado){alguno_seleccionado = true;}
					// compruebo si hay algun recibo seleccionado no compatible
					if(document.forms[0].cambio_estado.value == '2'){
						// pagar->estado inicial=>pendiente
						if(document.forms[0]['cliente_final_plazo_estado['+a+']'].value != '1'){error_compatibilidad = true;}
					}else if(document.forms[0].cambio_estado.value == '7'){
						// dev.importe->estado inicial=>pagado
						if(document.forms[0]['cliente_final_plazo_estado['+a+']'].value != '2'){error_compatibilidad = true;}
					}else if(document.forms[0].cambio_estado.value == '6'){
						// dev.importe banco->estado inicial=>banco
						if(document.forms[0]['cliente_final_plazo_estado['+a+']'].value != '5'){error_compatibilidad = true;}
					}else if(document.forms[0].cambio_estado.value == '4'){
						// anular->estado inicial=>pendiente
						if(document.forms[0]['cliente_final_plazo_estado['+a+']'].value != '1'){error_compatibilidad = true;}
					}
					
					if(error_compatibilidad){a=document.forms[0].num_recibos.value;}
				}
			}
			if(!alguno_seleccionado){ 
				error += 'Debe seleccionar algún recibo.'; 
			}else if(error_compatibilidad){ 
				error += 'Hay algún recibo que no es compatible con el estado seleccionado ('+estado+').'; 
			}
			
		}
		if(error != ''){
			alert(error);
			return false;
		}else{
			if(confirm('¿Desea actualizar el estado de los recibos seleccionados?')){
				document.forms[0].action = enlace;
				document.forms[0].submit();
			}else{
				return false;
			}
		}
	}
}

function validaImprimirRecibos(enlace){
	var error = '';var estado = '';
	
		
		// compruebo si el estado seleccionado es compatible con los recibos
		// seleccionados
		if(error == ''){
			var alguno_seleccionado = false;var error_compatibilidad = false;
			for(a=0;a<document.forms[0].num_recibos.value;a++){
				if(document.forms[0]['recibo_cambiar_estado['+a+']'].checked){
					if(!alguno_seleccionado){
						alguno_seleccionado = true;
						a=document.forms[0].num_recibos.value;
					}
				}
			}
			if(!alguno_seleccionado){ 
				error += 'Debe seleccionar algún recibo.'; 
			}
		}
		if(error != ''){
			alert(error);
			return false;
		}else{
			if(confirm('¿Desea imprimir los recibos seleccionados?')){
				document.forms[0].action = enlace;
				document.forms[0].submit();
			}else{
				return false;
			}
		}
	}
function validarEnviarUserPass(){
	if($("#enviar_user_pass").is(':checked') ){
		// compruebo si hay usuario
		var usuario = '';
		var contrasena = '';
		var mensaje = '';
		if($("#email").val() != ''){
			if($("#usuario_cliente_final").val() != ''){
				usuario = $("#usuario_cliente_final").val();
				// leemos el valor del hidden modificar_clave
				if($("#modificar_clave").val()){
					if($("#modificarclave").is(':checked')){
						contrasena = $("#clave_cliente_final_modificar").val();
					}
					if(contrasena == ''){
						mensaje = 'Para poder enviarle el usuario y contraseña, ha de modificarle la contraseña.\r\n';
					}
				}else{
					contrasena = $("#clave_cliente_final").val();
					if(contrasena == ''){
						mensaje = 'Para poder enviarle el usuario y contraseña, ha de introducir la contraseña.\r\n';
					}
				}
			}else{
				mensaje = 'Debe tener usuario y contraseña para poder enviárselo.\r\n';
			}
		}else{
			mensaje = 'Para poder enviarle el usuario y contraseña debe tener una dirección de correo en el campo email.\r\n';
		}
		if(mensaje != ''){
			$(this).attr('checked','');
			return mensaje;
		} else {
			return false;
		}
    } else {
		return false;
	}
}
