<?php
defined( 'ABSPATH' ) || exit;
$avi_lang = 'es';
$is_fr    = false;
$is_es    = true;

$avi_meta_title = function_exists( 'avi_get_content' )
	? avi_get_content( 'nonprofits', 'meta_title', 'Organizaciones sin ánimo de lucro — Avision' )
	: 'Organizaciones sin ánimo de lucro — Avision';
$avi_meta_desc  = function_exists( 'avi_get_content' )
	? avi_get_content( 'nonprofits', 'meta_desc', 'Apoyo para organizaciones sin ánimo de lucro que dependen de la visibilidad local para servir a sus comunidades.' )
	: 'Apoyo para organizaciones sin ánimo de lucro que dependen de la visibilidad local para servir a sus comunidades.';

add_action(
	'wp_enqueue_scripts',
	function () {
		wp_enqueue_style(
			'avi-np-caveat',
			'https://fonts.googleapis.com/css2?family=Caveat:wght@500;600&display=swap',
			array(),
			null
		);
	},
	20
);

avi_get_layout( 'header' );
?>

<?php
avi_component(
	'hero',
	array(
		'badge'       => 'Programa para ONG',
		'title'       => function_exists( 'avi_get_content' ) ? avi_get_content( 'nonprofits', 'hero_title', 'Acceso gratuito para ONG y asociaciones.' ) : 'Acceso gratuito para ONG y asociaciones.',
		'subtitle'    => function_exists( 'avi_get_content' ) ? avi_get_content( 'nonprofits', 'hero_sub', 'El acceso a AVI es completamente gratuito para las ONG y asociaciones registradas. Disfruta de un 50% de descuento en opciones premium — y hasta un 100% gratuito contribuyendo a la comunidad Avision.' ) : 'El acceso a AVI es completamente gratuito para las ONG y asociaciones registradas. Disfruta de un 50% de descuento en opciones premium — y hasta un 100% gratuito contribuyendo a la comunidad Avision.',
		'align' => 'center',
		'size'  => 'small',
	)
);
?>

<div style="text-align:center;padding:8px 0 4px;margin-bottom:8px;">
<span style="font-size:56px;line-height:1;display:inline-block;animation:avi-np-handshake 2s ease-in-out infinite;">🤝</span>
</div>
<style>
@keyframes avi-np-handshake {
  0%,100% { transform: scale(1); }
  50%      { transform: scale(1.08); }
}
</style>

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Caveat:wght@500;600&display=swap" rel="stylesheet">
<div style="text-align:center;max-width:600px;margin:0 auto 32px;padding:0 24px;">
<p style="font-family:'Caveat','Segoe Script','Comic Sans MS','Bradley Hand',cursive;font-size:22px;font-weight:500;color:#cbd5e1;line-height:1.7;margin:0 0 12px;font-style:normal;">
«Cada organización que sirve a una comunidad merece ser visible. Este programa es mi compromiso contigo.»
</p>
<p style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-style:normal;font-size:13px;font-weight:600;color:#DAA520;margin:0;">
— Anthony, fundador de Avision
</p>
</div>

<section class="avi-content-section">
	<div class="avi-content-block">
		<?php
		$avi_body_override = function_exists( 'avi_get_content' ) ? (string) avi_get_content( 'nonprofits', 'body', '' ) : '';
		if ( $avi_body_override !== '' ) {
			echo wp_kses_post( $avi_body_override );
		} else {
			?>
			<div style="background:rgba(108,63,197,0.08);border-left:4px solid #6C3FC5;border-radius:12px;padding:32px 36px;margin-bottom:32px;">

			<h2 style="margin-top:0;color:#fff;font-size:22px;">
			AVI Access — gratuito para ONG y asociaciones
			</h2>

			<p style="color:#cbd5e1;line-height:1.8;">
			Si tu organización sirve a una comunidad local — ONG, asociación, fundación, empresa social — tu Google Business Profile importa tanto como el de cualquier negocio comercial. La gente te busca. Los colaboradores te consultan. Los beneficiarios necesitan encontrarte.
			</p>

			<p style="color:#cbd5e1;line-height:1.8;">
			AVI Access ofrece a tu organización una auditoría completa de visibilidad, un score /100, un plan de acción guiado y AVI Intelligence — completamente gratis. Sin tarjeta de crédito. Sin límite de tiempo.
			</p>

			<ul style="color:#cbd5e1;list-style:none;padding:0;margin:20px 0;line-height:2;">
			<li>✅ Auditoría completa de visibilidad local</li>
			<li>✅ Informe de optimización GBP</li>
			<li>✅ AVI Intelligence — acceso completo</li>
			<li>✅ Score de visibilidad /100 + acciones prioritarias</li>
			<li>✅ Growth Radar — 20 palabras clave mensuales</li>
			<li>✅ Sistema de progresión guiada</li>
			<li>✅ Feed de Google Updates</li>
			</ul>

			</div>

			<div style="background:linear-gradient(135deg,rgba(108,63,197,0.12) 0%,rgba(218,165,32,0.08) 100%);border:1px solid rgba(218,165,32,0.25);border-radius:12px;padding:28px 32px;margin-bottom:32px;text-align:center;">
			<p style="color:#e2e8f0;font-size:18px;font-weight:600;line-height:1.6;margin:0 0 8px;">
			Detrás de cada búsqueda en Google,<br>
			alguien te necesita.
			</p>
			<p style="color:#DAA520;font-size:20px;font-weight:700;line-height:1.4;margin:0 0 24px;">
			Tu organización merece ser encontrada.
			</p>
			<a href="#avi-np-form-wrap" onclick="document.getElementById('avi-np-form-wrap').scrollIntoView({behavior:'smooth'});return false;" style="display:inline-block;background:linear-gradient(135deg,#B8860B,#DAA520);color:#0a1628;font-weight:700;padding:14px 32px;border-radius:10px;font-size:16px;text-decoration:none;box-shadow:0 4px 20px rgba(218,165,32,0.3);transition:opacity 0.2s;">
			Unirse al programa gratis →
			</a>
			</div>

			<div style="background:#0f1e35;border-radius:12px;padding:32px 36px;margin-bottom:32px;">

			<h2 style="margin-top:0;color:#fff;font-size:22px;">
			Opciones premium — del -50% al -100%
			</h2>

			<p style="color:#cbd5e1;line-height:1.8;">
			Cuando tu organización quiera ir más lejos, nuestras opciones premium (automatización, seguimiento de posicionamiento, protección del perfil) están disponibles con un 50% de descuento — sin obligación. Tu acceso al dashboard es 100% gratuito, con o sin opciones premium.
			</p>

			<p style="color:#cbd5e1;line-height:1.8;">
			Cuantas más empresas locales refieras a Avision, mayor será tu descuento — hasta un 100% gratuito para los embajadores más activos.
			</p>

			<p style="color:#cbd5e1;line-height:1.8;">
			Y por cada empresa local que refieras a Avision, tu organización recibe el 50% de los ingresos generados en forma de donación.
			</p>

			<div style="background:rgba(218,165,32,0.06);border:1px solid rgba(218,165,32,0.2);border-radius:10px;padding:20px 24px;margin-top:20px;">
			<p style="margin:0 0 12px;color:#DAA520;font-weight:600;font-size:14px;">
			💡 Cuanto más refieres, más ganas:
			</p>
			<ul style="color:#cbd5e1;list-style:none;padding:0;margin:0;line-height:2.2;font-family:monospace;font-size:13px;">
			<li>1&nbsp;&nbsp;afiliado&nbsp;&nbsp;× 69 € = 69 €&nbsp;&nbsp;&nbsp;&nbsp;→ 34 € donados + 70% dto. opciones</li>
			<li>11 afiliados × 69 € = 759 €&nbsp;&nbsp;→ 379 € donados + 80% dto. opciones</li>
			<li>21 afiliados × 69 € = 1.449 € → 724 € donados + 90% dto. opciones</li>
			<li>30 afiliados × 69 € = 2.070 € → 1.035 € donados + 100% gratis 🎉</li>
			</ul>
			<p style="color:#64748b;font-size:12px;margin:12px 0 0;">
			Cada referido genera una donación única (50% del precio de compra). Cuantas más empresas refieras, más recibe tu organización — y mayor será tu descuento en opciones premium.<br><br><em>Tu dashboard es tu herramienta más poderosa para la visibilidad local. Compártelo. Crece con él.</em>
			</p>

			<!-- Engagement partage réseau -->
			<div style="background:rgba(218,165,32,0.06);border:1px solid rgba(218,165,32,0.15);border-radius:10px;padding:20px 24px;margin-top:20px;">
			<p style="color:#DAA520;font-weight:700;font-size:14px;margin:0 0 8px;">
			📣 Compromiso de difusión en redes
			</p>
			<p style="color:#94a3b8;font-size:13px;line-height:1.7;margin:0 0 12px;">
			Como Embajador de Avision, te pedimos que compartas una publicación sobre Avision en tus redes (Facebook, Instagram, LinkedIn o cualquier canal activo de tu organización) <strong style="color:#e2e8f0;">dos veces al año</strong>. Esto mantiene tu organización activa y conserva tu descuento premium.
			</p>
			<p style="color:#64748b;font-size:12px;margin:0;">
			Envía tu prueba desde tu dashboard una vez conectado — o envía un enlace a <a href="mailto:contact@avision.org" style="color:#DAA520;">contact@avision.org</a>
			</p>
			</div>
			</div>

			</div>

			<div style="background:#0f1e35;border-radius:12px;padding:32px 36px;margin-bottom:32px;">
			<h2 style="margin-top:0;color:#fff;font-size:20px;">
			Cómo acceder a tu cuenta gratuita
			</h2>
			<p style="color:#cbd5e1;line-height:1.8;">
			Completa el formulario con el número de registro oficial de tu organización. Verificamos tu estado y activamos tu acceso gratuito en 48 horas.
			</p>
			</div>

			<!-- Bloc formulaire candidature -->
			<div id="avi-np-form-wrap" class="avi-nonprofit-page" style="background:#0f1e35;border-radius:12px;padding:32px 36px;margin-bottom:32px;">

			<h2 style="margin-top:0;color:#fff;font-size:20px;">
			Solicita acceso gratuito para organizaciones sin ánimo de lucro
			</h2>

			<p style="color:#cbd5e1;line-height:1.8;margin-bottom:24px;">
			Completa el formulario. Verificamos tu estatus y te enviamos el acceso en 48 horas.
			</p>

			<div id="avi-np-form-fields">

			<div style="margin-bottom:16px;">
			<label style="color:#94a3b8;font-size:13px;display:block;margin-bottom:6px;">
			Nombre de la organización *
			</label>
			<input type="text" id="avi-np-org-name" placeholder="Cruz Roja Madrid" style="width:100%;padding:10px 14px;border-radius:8px;border:1px solid #1e3a5f;background:#0a1628;color:#fff;font-size:14px;box-sizing:border-box;">
			</div>

			<div style="margin-bottom:16px;">
			<label style="color:#94a3b8;font-size:13px;display:block;margin-bottom:6px;">
			País *
			</label>
			<select id="avi-np-country" style="width:100%;padding:10px 14px;border-radius:8px;border:1px solid #1e3a5f;background:#0a1628;color:#fff;font-size:14px;box-sizing:border-box;">
			<option value="">— Selecciona tu país —</option>
			<option value="US">🇺🇸 Estados Unidos (EIN)</option>
			<option value="CA">🇨🇦 Canadá (ARC)</option>
			<option value="GB">🇬🇧 Reino Unido (Asociación / CIC)</option>
			<option value="FR">🇫🇷 Francia (RNA)</option>
			<option value="AU">🇦🇺 Australia (ABN)</option>
			<option value="ES">🇪🇸 España</option>
			<option value="DE">🇩🇪 Alemania</option>
			<option value="IT">🇮🇹 Italia</option>
			<option value="NL">🇳🇱 Países Bajos</option>
			<option value="BE">🇧🇪 Bélgica</option>
			<option value="CH">🇨🇭 Suiza</option>
			<option value="PT">🇵🇹 Portugal</option>
			<option value="SE">🇸🇪 Suecia</option>
			<option value="NO">🇳🇴 Noruega</option>
			<option value="DK">🇩🇰 Dinamarca</option>
			<option value="OTHER">🌍 Otro país</option>
			</select>
			<p style="font-size:12px;color:#64748b;margin:6px 0 0;line-height:1.5;">
			⏳ Verificación en 48 horas tras la creación de tu cuenta.
			</p>
			<div id="avi-np-other-country-wrap" style="display:none;margin-top:10px;">
			<label style="color:#94a3b8;font-size:13px;display:block;margin-bottom:6px;" id="avi-np-other-country-label">
			Especifica tu país *
			</label>
			<input type="text" id="avi-np-other-country" placeholder="ej. Brasil, Japón, México..." style="width:100%;padding:10px 14px;border-radius:8px;border:1px solid #1e3a5f;background:#0a1628;color:#fff;font-size:14px;box-sizing:border-box;">
			<p style="font-size:11px;color:#64748b;margin:6px 0 0;">
			Tu país será añadido a nuestra lista de verificación.
			</p>
			</div>
			</div>

			<div style="margin-bottom:16px;" id="avi-np-number-wrap">
			<label style="color:#94a3b8;font-size:13px;display:block;margin-bottom:6px;" id="avi-np-number-label">
			Número de registro *
			<span style="color:#64748b;font-size:11px;" id="avi-np-number-hint"></span>
			</label>
			<input type="text" id="avi-np-org-number" placeholder="EIN, charity number, RNA..." style="width:100%;padding:10px 14px;border-radius:8px;border:1px solid #1e3a5f;background:#0a1628;color:#fff;font-size:14px;box-sizing:border-box;">
			</div>

			<div style="margin-bottom:16px;">
			<label style="color:#94a3b8;font-size:13px;display:block;margin-bottom:6px;">
			Nombre en Google Business Profile *
			</label>
			<input type="text" id="avi-np-gbp-name" placeholder="Nombre exacto como aparece en Google Maps" style="width:100%;padding:10px 14px;border-radius:8px;border:1px solid #1e3a5f;background:#0a1628;color:#fff;font-size:14px;box-sizing:border-box;">
			</div>

			<div style="margin-bottom:16px;">
			<label style="color:#94a3b8;font-size:13px;display:block;margin-bottom:6px;">
			Sitio web de la organización
			</label>
			<input type="url" id="avi-np-website" placeholder="https://tuorganizacion.org" style="width:100%;padding:10px 14px;border-radius:8px;border:1px solid #1e3a5f;background:#0a1628;color:#fff;font-size:14px;box-sizing:border-box;">
			</div>

			<div style="margin-bottom:16px;">
			<label style="color:#94a3b8;font-size:13px;display:block;margin-bottom:6px;">
			Email de contacto *
			</label>
			<input type="email" id="avi-np-email" placeholder="contacto@tuorganizacion.org" style="width:100%;padding:10px 14px;border-radius:8px;border:1px solid #1e3a5f;background:#0a1628;color:#fff;font-size:14px;box-sizing:border-box;">
			</div>

			<div style="margin-bottom:16px;">
			<label style="color:#94a3b8;font-size:13px;display:block;margin-bottom:6px;">
			Ciudad *
			</label>
			<input type="text" id="avi-np-city" placeholder="Madrid" style="width:100%;padding:10px 14px;border-radius:8px;border:1px solid #1e3a5f;background:#0a1628;color:#fff;font-size:14px;box-sizing:border-box;">
			</div>

			<div style="margin-bottom:16px;">
			<label style="color:#94a3b8;font-size:13px;display:block;margin-bottom:6px;">
			Barrio / Distrito *
			</label>
			<input type="text" id="avi-np-neighborhood" placeholder="Centro, Salamanca..." style="width:100%;padding:10px 14px;border-radius:8px;border:1px solid #1e3a5f;background:#0a1628;color:#fff;font-size:14px;box-sizing:border-box;">
			</div>

			<div style="margin-bottom:16px;">
			<label style="color:#94a3b8;font-size:13px;display:block;margin-bottom:6px;">
			Contraseña * (mín. 8 caracteres)
			</label>
			<input type="password" id="avi-np-password" placeholder="••••••••" style="width:100%;padding:10px 14px;border-radius:8px;border:1px solid #1e3a5f;background:#0a1628;color:#fff;font-size:14px;box-sizing:border-box;">
			</div>

			<div style="margin-bottom:20px;">
			<label style="color:#94a3b8;font-size:13px;display:block;margin-bottom:6px;">
			Confirmar contraseña *
			</label>
			<input type="password" id="avi-np-password-confirm" placeholder="••••••••" style="width:100%;padding:10px 14px;border-radius:8px;border:1px solid #1e3a5f;background:#0a1628;color:#fff;font-size:14px;box-sizing:border-box;">
			</div>

			<?php
			$avi_lang       = 'es';
			$avi_terms_mode = 'nonprofit';
			include __DIR__ . '/../partials/avi-terms-checkbox.php';
			?>

			<input type="text" id="avi-np-hp" name="avi-np-hp" value="" tabindex="-1" autocomplete="off" style="position:absolute;left:-9999px;opacity:0;height:0;width:0;" aria-hidden="true">

			<div id="avi-np-form-error" style="display:none;color:#f87171;font-size:13px;margin-bottom:12px;padding:10px 14px;background:rgba(248,113,113,0.08);border-radius:8px;"></div>

			<button type="button" id="avi-np-submit" style="background:linear-gradient(135deg,#B8860B,#DAA520);color:#0a1628;font-weight:700;padding:12px 28px;border:none;border-radius:8px;font-size:15px;cursor:pointer;width:100%;">
			Enviar mi solicitud →
			</button>

			<p style="color:#64748b;font-size:12px;margin-top:12px;text-align:center;">
			Sin tarjeta de crédito. Verificación en 48 horas.
			</p>
			</div>

			<div id="avi-np-form-success" style="display:none;text-align:center;padding:24px 0;">
			<div style="font-size:48px;margin-bottom:12px;">✅</div>
			<h3 style="color:#fff;margin-bottom:8px;">
			¡Solicitud recibida!
			</h3>
			<p style="color:#cbd5e1;line-height:1.8;">
			Te hemos enviado un email con el enlace para conectar tu Google Business Profile y completar tu registro.
			</p>
			<p style="color:#cbd5e1;line-height:1.8;">
			Revisa tu bandeja de entrada — el email proviene de <strong>no-reply@avision.org</strong>.
			</p>
			<p style="color:#64748b;font-size:13px;margin-top:8px;">
			¿Aún no tienes un Google Business Profile? <a href="https://business.google.com/create?hl=es" target="_blank" rel="noopener" style="color:#DAA520;">Créalo aquí</a> y usa el enlace del email para continuar.
			</p>
			</div>

			</div>

			<!-- Section GBP manquante -->
			<div class="avi-nonprofit-page" style="background:rgba(184,134,11,0.08);border-left:4px solid #DAA520;border-radius:12px;padding:24px 28px;margin-bottom:32px;">

			<h3 style="margin-top:0;color:#DAA520;font-size:16px;">
			📍 ¿Aún no tienes un Google Business Profile?
			</h3>

			<p style="color:#cbd5e1;line-height:1.8;margin-bottom:16px;">
			Avision funciona con tu Google Business Profile existente. Si tu organización aún no está en Google Maps, primero debes crear tu ficha — es gratis y toma unos 10 minutos.
			</p>

			<a href="https://business.google.com/create?hl=es" target="_blank" rel="noopener" style="display:inline-block;background:transparent;border:1px solid #DAA520;color:#DAA520;padding:10px 20px;border-radius:8px;font-size:14px;text-decoration:none;font-weight:600;">
			Crear tu Google Business Profile →
			</a>

			<p style="color:#64748b;font-size:13px;margin-top:12px;margin-bottom:0;">
			Una vez tu ficha esté activa (normalmente 3–7 días tras la verificación), vuelve aquí para completar tu registro nonprofit.
			</p>

			</div>

			<div class="avi-info-card" style="margin-top:0;">
			<p style="margin:0;color:#94a3b8;font-size:14px;">
			<strong style="color:#fff;">Quién califica:</strong> ONG registradas, fundaciones, asociaciones, empresas sociales, organizaciones comunitarias, organizaciones religiosas, refugios de animales, bancos de alimentos, organizaciones juveniles, sociedades de ayuda mutua, cooperativas y CIC (UK). Sin umbral de ingresos — si sirves a una comunidad, calificas. Verificación mediante registro oficial.
			</p>
			</div>
			<?php
		}
		?>
	</div>
</section>

<script>
(function() {
	var countryHints = {
		'US':    'EIN (ej. 12-3456789)',
		'CA':    'Número ARC (9 dígitos)',
		'GB':    'Número de asociación (6-7 dígitos) o número CIC',
		'FR':    'Número RNA (ej. W751234567)',
		'AU':    'ABN (11 dígitos)',
		'ES':    'NIF / CIF (ej. G12345678)',
		'DE':    'Vereinsregisternummer',
		'IT':    'Codice Fiscale',
		'NL':    'Número KvK',
		'BE':    'Número de empresa (BCE)',
		'CH':    'UID / IDE (CHE-xxx.xxx.xxx)',
		'PT':    'NIF (9 dígitos)',
		'SE':    'Organisationsnummer',
		'NO':    'Organisasjonsnummer',
		'DK':    'Número CVR',
		'OTHER': 'Número de registro oficial'
	};

	var sel = document.getElementById('avi-np-country');
	if (sel) {
		sel.addEventListener('change', function() {
			var hint = document.getElementById('avi-np-number-hint');
			if (hint) {
				hint.textContent = countryHints[this.value]
					? '(' + countryHints[this.value] + ')' : '';
			}
			var otherWrap = document.getElementById('avi-np-other-country-wrap');
			if (otherWrap) {
				otherWrap.style.display =
					this.value === 'OTHER' ? 'block' : 'none';
			}
		});
	}

	var submitLabel  = 'Enviar mi solicitud →';
	var sendingLabel = 'Creando tu cuenta...';
	var submitErrors = {
		required: 'Por favor completa todos los campos requeridos.',
		email: 'Dirección de email inválida.',
		password_short: 'La contraseña debe tener al menos 8 caracteres.',
		password_mismatch: 'Las contraseñas no coinciden.',
		email_exists: 'Ya existe una cuenta con este email.',
		generic: 'Ocurrió un error. Por favor intenta de nuevo.',
		connection: 'Error de conexión. Por favor intenta de nuevo.'
	};
	var btn = document.getElementById('avi-np-submit');
	if (!btn) return;

	function showNpError(msg) {
		var box = document.getElementById('avi-np-form-error');
		if (box) {
			box.textContent = msg;
			box.style.display = 'block';
		}
	}

	btn.addEventListener('click', function() {
		var orgName  = (document.getElementById('avi-np-org-name').value || '').trim();
		var country  = (document.getElementById('avi-np-country').value || '').trim();
		var otherCountry = '';
		if (country === 'OTHER') {
			otherCountry = (document.getElementById('avi-np-other-country') || {}).value || '';
			otherCountry = otherCountry.trim();
		}
		var orgNum   = (document.getElementById('avi-np-org-number').value || '').trim();
		var gbpName  = (document.getElementById('avi-np-gbp-name').value || '').trim();
		var website  = (document.getElementById('avi-np-website').value || '').trim();
		var email    = (document.getElementById('avi-np-email').value || '').trim();
		var city     = (document.getElementById('avi-np-city').value || '').trim();
		var neighborhood = (document.getElementById('avi-np-neighborhood').value || '').trim();
		var password = (document.getElementById('avi-np-password').value || '');
		var passwordConfirm = (document.getElementById('avi-np-password-confirm').value || '');
		var errBox   = document.getElementById('avi-np-form-error');
		var hp       = (document.getElementById('avi-np-hp') || {}).value || '';

		errBox.style.display = 'none';

		if (hp !== '') {
			document.getElementById('avi-np-form-fields').style.display = 'none';
			document.getElementById('avi-np-form-success').style.display = 'block';
			return;
		}

		if (!orgName || !country || !orgNum || !gbpName || !email || !city || !neighborhood || !password) {
			errBox.textContent = submitErrors.required;
			errBox.style.display = 'block';
			return;
		}
		if (country === 'OTHER' && !otherCountry) {
			errBox.textContent = submitErrors.required;
			errBox.style.display = 'block';
			return;
		}
		if (email.indexOf('@') < 0) {
			errBox.textContent = submitErrors.email;
			errBox.style.display = 'block';
			return;
		}
		if (password.length < 8) {
			errBox.textContent = submitErrors.password_short;
			errBox.style.display = 'block';
			return;
		}
		if (password !== passwordConfirm) {
			errBox.textContent = submitErrors.password_mismatch;
			errBox.style.display = 'block';
			return;
		}
		if (!document.getElementById('avi_accept_terms') || !document.getElementById('avi_accept_terms').checked) {
			showNpError('Por favor acepta los Términos y Condiciones.');
			return;
		}
		if (!document.getElementById('avi_accept_ambassador') || !document.getElementById('avi_accept_ambassador').checked) {
			showNpError('Por favor acepta las reglas del Programa Embajador.');
			return;
		}

		btn.disabled = true;
		btn.textContent = sendingLabel;

		var fd = new FormData();
		fd.append('action', 'avision_nonprofit_apply');
		fd.append('nonce', '<?php echo esc_js( wp_create_nonce( 'avision_nonprofit_apply' ) ); ?>');
		fd.append('org_name', orgName);
		fd.append('country', country);
		fd.append('other_country', otherCountry);
		fd.append('org_number', orgNum);
		fd.append('gbp_name', gbpName);
		fd.append('website', website);
		fd.append('email', email);
		fd.append('lang', '<?php echo esc_js( $avi_lang ); ?>');
		fd.append('hp', hp);

		fetch('<?php echo esc_url( admin_url( 'admin-ajax.php' ) ); ?>', { method: 'POST', body: fd })
			.then(function(r) { return r.json(); })
			.then(function(res1) {
				var npId = (res1.success && res1.data && res1.data.np_id) ? res1.data.np_id : 0;
				return fetch('<?php echo esc_js( rest_url( 'avision/v1/nonprofit-register' ) ); ?>', {
					method: 'POST',
					headers: { 'Content-Type': 'application/json' },
					credentials: 'include',
					body: JSON.stringify({
						email: email,
						org_name: orgName,
						org_number: orgNum,
						country: country,
						city: city,
						neighborhood: neighborhood,
						gbp_name: gbpName,
						website: website,
						password: password,
						password_confirm: passwordConfirm,
						language: '<?php echo esc_js( $avi_lang ); ?>',
						np_id: npId
					})
				});
			})
			.then(function(r) { return r.json(); })
			.then(function(res2) {
				if (res2.success && res2.redirect) {
					window.location.href = res2.redirect;
					return;
				}
				var msg = res2.message || res2.error || '';
				if (msg === 'email_exists') {
					msg = submitErrors.email_exists;
				} else if (msg === 'password_mismatch') {
					msg = submitErrors.password_mismatch;
				} else if (msg === 'password_too_short') {
					msg = submitErrors.password_short;
				} else if (!msg) {
					msg = submitErrors.generic;
				}
				errBox.textContent = msg;
				errBox.style.display = 'block';
				btn.disabled = false;
				btn.textContent = submitLabel;
			})
			.catch(function() {
				errBox.textContent = submitErrors.connection;
				errBox.style.display = 'block';
				btn.disabled = false;
				btn.textContent = submitLabel;
			});
	});
})();
</script>

<?php $GLOBALS['avi_template_footer_rendered'] = true; avi_get_layout( 'footer' ); ?>
