Join page: ?name=First greets the visitor; on /join/company it says the top spot is reserved for them

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
martbost
2026-09-12 13:25:21 -05:00
parent 3c81df2167
commit fb709ddde9
2 changed files with 10 additions and 1 deletions
+8
View File
@@ -31,6 +31,14 @@
points: ['Every direct buyer pays you 50 percent from their very first package.', 'Two qualifying buyers open level two at 20 percent. Five open level three at 10 percent. Constants in a verified contract.', 'Until a level opens, its share climbs to the next qualified member above, so the plan rewards the people who build.'], points: ['Every direct buyer pays you 50 percent from their very first package.', 'Two qualifying buyers open level two at 20 percent. Five open level three at 10 percent. Constants in a verified contract.', 'Until a level opens, its share climbs to the next qualified member above, so the plan rewards the people who build.'],
cta: 'Start your line. Two buyers is the target.', sub: 'Free account by email. Your invite link and the team-building plays are waiting inside.' } cta: 'Start your line. Two buyers is the target.', sub: 'Free account by email. Your invite link and the team-building plays are waiting inside.' }
}; };
// ?name=First personalises the page (site-owner links, Marty 2026-09-12): letters, spaces, hyphens,
// apostrophes only, 30 chars. On the company placement links it says the top spot is reserved.
const who = String(new URLSearchParams(location.search).get('name') || '').replace(/[^A-Za-z\u00C0-\u024F' -]/g, '').trim().slice(0, 30);
if (who) {
const top = /^\/join\/(company|top)$/i.test(location.pathname);
const h = $('jnHello');
if (h) { h.textContent = who + (top ? ', your spot directly under the company at the top is reserved for you. Activate with the $20 package to claim it.' : ', this invitation is for you.'); h.hidden = false; }
}
const v = new URLSearchParams(location.search).get('v') || (document.cookie.match(/(?:^|; )iap\.angle=([^;]+)/) || [])[1] || ''; const v = new URLSearchParams(location.search).get('v') || (document.cookie.match(/(?:^|; )iap\.angle=([^;]+)/) || [])[1] || '';
const a = v && ANGLES[v]; const a = v && ANGLES[v];
if (a) { if (a) {
+2 -1
View File
@@ -81,6 +81,7 @@
<section class="jn-hero"> <section class="jn-hero">
<div class="jn-spon" id="jnSpon" hidden><img id="jnSponImg" alt="" hidden><span class="small muted">Personal invitation from <b id="jnSponName" style="color:var(--mint)"></b></span></div> <div class="jn-spon" id="jnSpon" hidden><img id="jnSponImg" alt="" hidden><span class="small muted">Personal invitation from <b id="jnSponName" style="color:var(--mint)"></b></span></div>
<p class="jn-brand">Instant<em>AdPay</em> <span id="jnEyebrow">· Advertise and earn on Polygon</span></p> <p class="jn-brand">Instant<em>AdPay</em> <span id="jnEyebrow">· Advertise and earn on Polygon</span></p>
<p class="jn-hello" id="jnHello" hidden style="margin:8px 0 12px;padding:10px 14px;border:1px solid var(--mint);border-radius:12px;color:var(--mint);font-weight:700"></p>
<h1 id="jnHead">Advertise and earn.<br><em>Paid on-chain, instantly.</em></h1> <h1 id="jnHead">Advertise and earn.<br><em>Paid on-chain, instantly.</em></h1>
<p class="lead" id="jnLead">Every ad package splits to real wallets in the same transaction it sells. No pending payouts, no withdraw button, and every payment is public.</p> <p class="lead" id="jnLead">Every ad package splits to real wallets in the same transaction it sells. No pending payouts, no withdraw button, and every payment is public.</p>
</section> </section>
@@ -156,6 +157,6 @@
</div> </div>
</div> </div>
<script src="/assets/common.js?v=20260912b"></script> <script src="/assets/common.js?v=20260912b"></script>
<script src="/assets/join.js?v=20260912a"></script> <script src="/assets/join.js?v=20260912d"></script>
</body> </body>
</html> </html>