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

$avi_meta_title = 'Associations — Avision';
$avi_meta_desc  = 'Accompagnement des associations et organisations à but non lucratif qui comptent sur la visibilité locale pour servir leurs communautés.';

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'    => 'Programme associations',
		'title'    => 'Accès gratuit pour associations et ONG.',
		'subtitle' => 'L\'accès à AVI est entièrement gratuit pour les associations et organismes sans but lucratif enregistrés. Profitez de 50 % de réduction sur les options premium — et jusqu\'à 100 % gratuit en contribuant à la communauté 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;">
« Chaque organisation qui sert une communauté mérite d'être visible. Ce programme est mon engagement envers vous. »
</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, fondateur d'Avision
</p>
</div>

<section class="avi-content-section">
	<div class="avi-content-block">
			<!-- Bloc offre principale -->
			<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 — gratuit pour les associations
			</h2>

			<p style="color:#cbd5e1;line-height:1.8;">
			Si votre organisation sert une communauté locale — association, fondation, entreprise sociale — votre Google Business Profile compte autant que pour une entreprise commerciale. On vous cherche. Les donateurs vous consultent. Les bénéficiaires doivent vous trouver.
			</p>

			<p style="color:#cbd5e1;line-height:1.8;">
			AVI Access offre un audit de visibilité complet, un score /100, un plan d'action guidé et AVI Intelligence — entièrement gratuit. Sans carte bancaire. Sans limite de durée.
			</p>

			<ul style="color:#cbd5e1;list-style:none;padding:0;margin:20px 0;line-height:2;">
			<li>✅ Audit de visibilité locale complet</li>
			<li>✅ Rapport d'optimisation GBP</li>
			<li>✅ AVI Intelligence — accès complet</li>
			<li>✅ Score de visibilité /100 + actions prioritaires</li>
			<li>✅ Growth Radar — 20 mots-clés par mois</li>
			<li>✅ Parcours de progression guidé</li>
			<li>✅ Fil 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;">
			Derrière chaque recherche Google,<br>
			quelqu'un a besoin de vous.
			</p>
			<p style="color:#DAA520;font-size:20px;font-weight:700;line-height:1.4;margin:0 0 24px;">
			Votre association mérite d'être trouvée.
			</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;">
			Rejoindre le programme gratuitement →
			</a>
			</div>

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

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

			<p style="color:#cbd5e1;line-height:1.8;">
			Lorsque votre organisation souhaite aller plus loin, nos options premium (automatisation, suivi de positionnement, protection de fiche) sont disponibles à 50 % du tarif standard — sans obligation. Votre accès au dashboard reste 100 % gratuit, avec ou sans options premium.
			</p>

			<p style="color:#cbd5e1;line-height:1.8;">
			Plus vous référez d'entreprises locales à Avision, plus votre réduction augmente — jusqu'à 100 % gratuit pour les ambassadeurs les plus actifs.
			</p>

			<p style="color:#cbd5e1;line-height:1.8;">
			Et pour chaque entreprise locale que vous référez à Avision, votre organisation reçoit 50 % des revenus générés sous forme de dons.
			</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;">
			💡 Plus vous référez, plus vous gagnez :
			</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;affilié&nbsp;&nbsp;× 69 € = 69 €&nbsp;&nbsp;&nbsp;&nbsp;→ 34 € reversés + 70 % options</li>
			<li>11 affiliés × 69 € = 759 €&nbsp;&nbsp;→ 379 € reversés + 80 % options</li>
			<li>21 affiliés × 69 € = 1 449 € → 724 € reversés + 90 % options</li>
			<li>30 affiliés × 69 € = 2 070 € → 1 035 € reversés + 100 % offert 🎉</li>
			</ul>
			<p style="color:#64748b;font-size:12px;margin:12px 0 0;">
			Chaque parrainage génère un don unique (50 % du prix d'achat). Plus vous référez d'entreprises, plus votre association reçoit — et plus votre réduction sur les options premium augmente.<br><br><em>Votre dashboard est votre meilleur outil de visibilité locale. Partagez-le. Grandissez avec lui.</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;">
			📣 Engagement partage réseau
			</p>
			<p style="color:#94a3b8;font-size:13px;line-height:1.7;margin:0 0 12px;">
			En tant qu'Ambassadeur Avision, nous vous demandons de partager une publication sur Avision sur vos réseaux (Facebook, Instagram, LinkedIn ou tout canal actif de votre association) <strong style="color:#e2e8f0;">deux fois par an</strong>. Cela maintient votre organisation active et préserve votre réduction premium.
			</p>
			<p style="color:#64748b;font-size:12px;margin:0;">
			Soumettez votre preuve depuis votre dashboard une fois connecté — ou envoyez un lien à <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;">
			Comment obtenir votre compte gratuit
			</h2>
			<p style="color:#cbd5e1;line-height:1.8;">
			Remplissez le formulaire ci-dessous avec le numéro d'enregistrement officiel de votre organisation. Nous vérifions votre statut et activons votre accès gratuit sous 48 heures.
			</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;">
			Candidater pour un accès nonprofit gratuit
			</h2>

			<p style="color:#cbd5e1;line-height:1.8;margin-bottom:24px;">
			Remplissez le formulaire ci-dessous. Nous vérifions votre statut et vous envoyons votre accès sous 48 h.
			</p>

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

			<div style="margin-bottom:16px;">
			<label style="color:#94a3b8;font-size:13px;display:block;margin-bottom:6px;">
			Nom de l'organisation *
			</label>
			<input type="text" id="avi-np-org-name" placeholder="Croix-Rouge Paris" 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;">
			Pays *
			</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="">— Sélectionnez votre pays —</option>
			<option value="US">🇺🇸 États-Unis (EIN)</option>
			<option value="CA">🇨🇦 Canada (ARC)</option>
			<option value="GB">🇬🇧 Royaume-Uni (Association / CIC)</option>
			<option value="FR">🇫🇷 France (RNA)</option>
			<option value="AU">🇦🇺 Australie (ABN)</option>
			<option value="ES">🇪🇸 Espagne</option>
			<option value="DE">🇩🇪 Allemagne</option>
			<option value="IT">🇮🇹 Italie</option>
			<option value="NL">🇳🇱 Pays-Bas</option>
			<option value="BE">🇧🇪 Belgique</option>
			<option value="CH">🇨🇭 Suisse</option>
			<option value="PT">🇵🇹 Portugal</option>
			<option value="SE">🇸🇪 Suède</option>
			<option value="NO">🇳🇴 Norvège</option>
			<option value="DK">🇩🇰 Danemark</option>
			<option value="OTHER">🌍 Autre pays</option>
			</select>
			<p style="font-size:12px;color:#64748b;margin:6px 0 0;line-height:1.5;">
			⏳ Vérification sous 48 heures après la création de votre compte.
			</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">
			Précisez votre pays *
			</label>
			<input type="text" id="avi-np-other-country" placeholder="ex. Brésil, Japon, Mexique..." 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;">
			Votre pays sera ajouté à notre liste de vérification.
			</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">
			Numéro d'enregistrement *
			<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;">
			Nom Google Business Profile *
			</label>
			<input type="text" id="avi-np-gbp-name" placeholder="Nom exact tel qu'il apparaît sur 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;">
			Site web de l'organisation
			</label>
			<input type="url" id="avi-np-website" placeholder="https://votreorganisation.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 contact *
			</label>
			<input type="email" id="avi-np-email" placeholder="contact@votreorganisation.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;">
			Ville *
			</label>
			<input type="text" id="avi-np-city" placeholder="Paris" 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;">
			Quartier / Arrondissement *
			</label>
			<input type="text" id="avi-np-neighborhood" placeholder="Marais, Bastille..." 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;">
			Mot de passe * (min. 8 caractères)
			</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;">
			Confirmer le mot de passe *
			</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       = 'fr';
			$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%;">
			Soumettre ma candidature →
			</button>

			<p style="color:#64748b;font-size:12px;margin-top:12px;text-align:center;">
			Aucune carte bancaire requise. Vérification sous 48 h.
			</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;">
			Candidature reçue !
			</h3>
			<p style="color:#cbd5e1;line-height:1.8;">
			Nous vous avons envoyé un email avec le lien pour connecter votre Google Business Profile et finaliser votre inscription.
			</p>
			<p style="color:#cbd5e1;line-height:1.8;">
			Vérifiez votre boîte de réception — l'email provient de <strong>no-reply@avision.org</strong>.
			</p>
			<p style="color:#64748b;font-size:13px;margin-top:8px;">
			Pas encore de Google Business Profile ? <a href="https://business.google.com/create?hl=fr" target="_blank" rel="noopener" style="color:#DAA520;">Créez-en un ici</a> puis utilisez le lien dans l'email pour continuer.
			</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;">
			📍 Vous n'avez pas encore de Google Business Profile ?
			</h3>

			<p style="color:#cbd5e1;line-height:1.8;margin-bottom:16px;">
			Avision fonctionne avec votre Google Business Profile existant. Si votre organisation n'est pas encore sur Google Maps, vous devez d'abord créer votre fiche — c'est gratuit et prend environ 10 minutes.
			</p>

			<a href="https://business.google.com/create?hl=fr" 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;">
			Créer votre Google Business Profile →
			</a>

			<p style="color:#64748b;font-size:13px;margin-top:12px;margin-bottom:0;">
			Une fois votre fiche en ligne (généralement 3 à 7 jours après vérification), revenez ici pour finaliser votre inscription.
			</p>

			</div>

			<!-- Bloc éligibilité -->
			<div class="avi-info-card" style="margin-top:0;">
			<p style="margin:0;color:#94a3b8;font-size:14px;">
			<strong style="color:#fff;">Qui est éligible :</strong> associations, fondations, ONG, entreprises sociales, organisations communautaires, organisations religieuses, refuges pour animaux, banques alimentaires, organisations de jeunesse, sociétés de secours mutuel, coopératives et CIC (UK). Pas de seuil de revenus — si vous servez une communauté, vous êtes éligible. Vérification via registre officiel.
			</p>
			</div>
	</div>
</section>

<script>
(function() {
	var countryHints = {
		'US':    'EIN (ex. 12-3456789)',
		'CA':    'Numéro ARC (9 chiffres)',
		'GB':    'Numéro association (6-7 chiffres) ou numéro CIC',
		'FR':    'Numéro RNA (ex. W751234567)',
		'AU':    'ABN (11 chiffres)',
		'ES':    'NIF / CIF (ex. G12345678)',
		'DE':    'Vereinsregisternummer',
		'IT':    'Codice Fiscale',
		'NL':    'Numéro KvK',
		'BE':    'Numéro d\'entreprise (BCE)',
		'CH':    'UID / IDE (CHE-xxx.xxx.xxx)',
		'PT':    'NIF (9 chiffres)',
		'SE':    'Organisationsnummer',
		'NO':    'Organisasjonsnummer',
		'DK':    'Numéro CVR',
		'OTHER': 'Numéro d\'enregistrement officiel'
	};

	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  = 'Soumettre ma candidature →';
	var sendingLabel = 'Création de votre compte...';
	var submitErrors = {
		required: 'Veuillez remplir tous les champs obligatoires.',
		email: 'Adresse email invalide.',
		password_short: 'Le mot de passe doit contenir au moins 8 caractères.',
		password_mismatch: 'Les mots de passe ne correspondent pas.',
		email_exists: 'Un compte existe déjà avec cette adresse email.',
		generic: 'Une erreur est survenue. Veuillez réessayer.',
		connection: 'Erreur de connexion. Veuillez réessayer.'
	};
	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('Veuillez accepter les CGU.');
			return;
		}
		if (!document.getElementById('avi_accept_ambassador') || !document.getElementById('avi_accept_ambassador').checked) {
			showNpError('Veuillez accepter les règles du Programme Ambassadeur.');
			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 avi_get_layout( 'footer' ); ?>
