usdt-2 / index.html
Kingmaxjj's picture
Add 2 files
1602d6a verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Official Celebrity Fan Card Membership</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js"></script>
<style>
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
.animate-pulse {
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.card-option {
transition: all 0.3s ease;
cursor: pointer;
}
.card-option:hover {
transform: translateY(-5px);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}
.card-option.selected {
border: 3px solid #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.3);
}
.gradient-bg {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
.success-checkmark {
width: 80px;
height: 80px;
margin: 0 auto;
position: relative;
}
.success-checkmark .check-icon {
width: 80px;
height: 80px;
position: relative;
border-radius: 50%;
box-sizing: content-box;
border: 4px solid #4CAF50;
}
.success-checkmark .check-icon::before,
.success-checkmark .check-icon::after {
content: '';
height: 100px;
position: absolute;
background: transparent;
transform: rotate(-45deg);
}
.success-checkmark .check-icon::before {
top: 3px;
left: -2px;
width: 30px;
transform-origin: 100% 50%;
border-radius: 100px 0 0 100px;
}
.success-checkmark .check-icon::after {
top: 0;
left: 30px;
width: 60px;
transform-origin: 0 50%;
border-radius: 0 100px 100px 0;
animation: rotate-circle 4.25s ease-in;
}
.success-checkmark .check-icon .icon-line {
height: 5px;
background-color: #4CAF50;
display: block;
border-radius: 2px;
position: absolute;
z-index: 10;
}
.success-checkmark .check-icon .icon-line.line-tip {
top: 46px;
left: 14px;
width: 25px;
transform: rotate(45deg);
animation: icon-line-tip 0.75s;
}
.success-checkmark .check-icon .icon-line.line-long {
top: 38px;
right: 8px;
width: 47px;
transform: rotate(-45deg);
animation: icon-line-long 0.75s;
}
@keyframes rotate-circle {
0% { transform: rotate(-45deg); }
5% { transform: rotate(-45deg); }
12% { transform: rotate(-405deg); }
100% { transform: rotate(-405deg); }
}
@keyframes icon-line-tip {
0% { width: 0; left: 1px; top: 19px; }
54% { width: 0; left: 1px; top: 19px; }
70% { width: 50px; left: -8px; top: 37px; }
84% { width: 17px; left: 21px; top: 48px; }
100% { width: 25px; left: 14px; top: 46px; }
}
@keyframes icon-line-long {
0% { width: 0; right: 46px; top: 54px; }
65% { width: 0; right: 46px; top: 54px; }
84% { width: 55px; right: 0px; top: 35px; }
100% { width: 47px; right: 8px; top: 38px; }
}
#previewCard {
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
border-radius: 15px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}
.ticket-number {
font-family: 'Courier New', monospace;
letter-spacing: 3px;
}
.file-upload {
border: 2px dashed #cbd5e0;
transition: all 0.3s ease;
}
.file-upload:hover {
border-color: #667eea;
}
.glow-text {
text-shadow: 0 0 10px rgba(102, 126, 234, 0.7);
}
.celebrity-badge {
background: linear-gradient(135deg, #ff9a9e 0%, #fad0c4 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.card-shine {
position: relative;
overflow: hidden;
}
.card-shine::after {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: linear-gradient(
to bottom right,
rgba(255, 255, 255, 0) 0%,
rgba(255, 255, 255, 0) 45%,
rgba(255, 255, 255, 0.5) 48%,
rgba(255, 255, 255, 0.8) 50%,
rgba(255, 255, 255, 0.5) 52%,
rgba(255, 255, 255, 0) 55%,
rgba(255, 255, 255, 0) 100%
);
transform: rotate(30deg);
animation: shine 3s infinite;
}
@keyframes shine {
0% { transform: translateX(-100%) rotate(30deg); }
20% { transform: translateX(100%) rotate(30deg); }
100% { transform: translateX(100%) rotate(30deg); }
}
</style>
</head>
<body class="bg-gray-100 font-sans">
<!-- Main Container -->
<div class="min-h-screen flex flex-col">
<!-- Header -->
<header class="gradient-bg text-white p-6 shadow-md">
<div class="container mx-auto text-center">
<h1 class="text-4xl font-bold glow-text">Official Celebrity Fan Card</h1>
<p class="mt-2 text-lg">Join the exclusive fan club of your favorite stars!</p>
<div class="mt-4 flex justify-center space-x-4">
<div class="bg-white bg-opacity-20 px-3 py-1 rounded-full text-sm">
<i class="fas fa-star mr-1"></i> Verified Memberships
</div>
<div class="bg-white bg-opacity-20 px-3 py-1 rounded-full text-sm">
<i class="fas fa-shield-alt mr-1"></i> Secure Payments
</div>
</div>
</div>
</header>
<!-- Main Content -->
<main class="flex-grow container mx-auto p-4 md:p-6">
<!-- Form Section -->
<div id="formSection" class="bg-white rounded-xl shadow-xl p-6 mb-8 card-shine">
<h2 class="text-3xl font-bold text-gray-800 mb-6 text-center">
<span class="celebrity-badge">Create Your Exclusive Fan Card</span>
</h2>
<form id="fanForm" class="space-y-6">
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<div>
<label for="firstName" class="block text-sm font-medium text-gray-700 mb-1">First Name *</label>
<input type="text" id="firstName" required
class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-purple-500">
</div>
<div>
<label for="lastName" class="block text-sm font-medium text-gray-700 mb-1">Last Name *</label>
<input type="text" id="lastName" required
class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-purple-500">
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<div>
<label for="email" class="block text-sm font-medium text-gray-700 mb-1">Email *</label>
<input type="email" id="email" required
class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-purple-500">
</div>
<div>
<label for="phone" class="block text-sm font-medium text-gray-700 mb-1">Phone Number *</label>
<input type="tel" id="phone" required
class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-purple-500">
</div>
</div>
<div>
<label for="celebrity" class="block text-sm font-medium text-gray-700 mb-1">Celebrity Name *</label>
<div class="relative">
<input type="text" id="celebrity" required
class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-purple-500"
placeholder="E.g. Taylor Swift, Cristiano Ronaldo, etc.">
<div class="absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none">
<i class="fas fa-search text-gray-400"></i>
</div>
</div>
</div>
<div class="pt-4">
<button type="submit" class="w-full gradient-bg text-white py-4 rounded-lg font-bold text-lg hover:opacity-90 transform hover:scale-105 transition-transform">
<i class="fas fa-id-card mr-2"></i> Generate Fan Card Options
</button>
</div>
</form>
</div>
<!-- Card Options Section (Initially Hidden) -->
<div id="cardOptionsSection" class="hidden bg-white rounded-xl shadow-xl p-6 mb-8">
<h2 class="text-3xl font-bold text-gray-800 mb-6 text-center">
Choose Your Exclusive Fan Tier
</h2>
<p class="text-gray-600 mb-6 text-center">Select the perfect membership level for
<span id="celebrityNameDisplay" class="font-bold text-purple-600"></span>
</p>
<div class="grid grid-cols-1 md:grid-cols-5 gap-4 mb-8">
<!-- Diamond Card -->
<div id="diamondCard" class="card-option bg-gradient-to-br from-blue-50 to-blue-100 rounded-xl p-4 text-center border-2 border-blue-300" onclick="selectCard('diamond', 500)">
<div class="bg-white rounded-full w-16 h-16 flex items-center justify-center mx-auto mb-3 shadow-md">
<i class="fas fa-gem text-3xl text-blue-500"></i>
</div>
<h3 class="font-bold text-xl">Diamond</h3>
<p class="text-gray-600 text-sm mb-2">Ultimate Fan Experience</p>
<div class="bg-white rounded-lg p-2 shadow-inner">
<p class="font-bold text-blue-600 text-lg">$500</p>
</div>
<div class="mt-3 text-xs text-blue-500">
<p><i class="fas fa-check-circle mr-1"></i> VIP Access</p>
<p><i class="fas fa-check-circle mr-1"></i> Meet & Greet</p>
<p><i class="fas fa-check-circle mr-1"></i> Exclusive Merch</p>
</div>
</div>
<!-- Gold Card -->
<div id="goldCard" class="card-option bg-gradient-to-br from-yellow-50 to-yellow-100 rounded-xl p-4 text-center border-2 border-yellow-300" onclick="selectCard('gold', 250)">
<div class="bg-white rounded-full w-16 h-16 flex items-center justify-center mx-auto mb-3 shadow-md">
<i class="fas fa-award text-3xl text-yellow-500"></i>
</div>
<h3 class="font-bold text-xl">Gold</h3>
<p class="text-gray-600 text-sm mb-2">Premium Fan Experience</p>
<div class="bg-white rounded-lg p-2 shadow-inner">
<p class="font-bold text-yellow-600 text-lg">$250</p>
</div>
<div class="mt-3 text-xs text-yellow-500">
<p><i class="fas fa-check-circle mr-1"></i> Early Access</p>
<p><i class="fas fa-check-circle mr-1"></i> Signed Merch</p>
<p><i class="fas fa-check-circle mr-1"></i> Backstage Pass</p>
</div>
</div>
<!-- Silver Card -->
<div id="silverCard" class="card-option bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl p-4 text-center border-2 border-gray-300" onclick="selectCard('silver', 150)">
<div class="bg-white rounded-full w-16 h-16 flex items-center justify-center mx-auto mb-3 shadow-md">
<i class="fas fa-star text-3xl text-gray-500"></i>
</div>
<h3 class="font-bold text-xl">Silver</h3>
<p class="text-gray-600 text-sm mb-2">Standard Fan Experience</p>
<div class="bg-white rounded-lg p-2 shadow-inner">
<p class="font-bold text-gray-600 text-lg">$150</p>
</div>
<div class="mt-3 text-xs text-gray-500">
<p><i class="fas fa-check-circle mr-1"></i> Priority Tickets</p>
<p><i class="fas fa-check-circle mr-1"></i> Fan Kit</p>
<p><i class="fas fa-check-circle mr-1"></i> Newsletter</p>
</div>
</div>
<!-- Bronze Card -->
<div id="bronzeCard" class="card-option bg-gradient-to-br from-amber-50 to-amber-100 rounded-xl p-4 text-center border-2 border-amber-300" onclick="selectCard('bronze', 100)">
<div class="bg-white rounded-full w-16 h-16 flex items-center justify-center mx-auto mb-3 shadow-md">
<i class="fas fa-certificate text-3xl text-amber-600"></i>
</div>
<h3 class="font-bold text-xl">Bronze</h3>
<p class="text-gray-600 text-sm mb-2">Basic Fan Experience</p>
<div class="bg-white rounded-lg p-2 shadow-inner">
<p class="font-bold text-amber-600 text-lg">$100</p>
</div>
<div class="mt-3 text-xs text-amber-500">
<p><i class="fas fa-check-circle mr-1"></i> Event Tickets</p>
<p><i class="fas fa-check-circle mr-1"></i> Fan Badge</p>
<p><i class="fas fa-check-circle mr-1"></i> Updates</p>
</div>
</div>
<!-- Brazz Card -->
<div id="brazzCard" class="card-option bg-gradient-to-br from-pink-50 to-pink-100 rounded-xl p-4 text-center border-2 border-pink-300" onclick="selectCard('brazz', 50)">
<div class="bg-white rounded-full w-16 h-16 flex items-center justify-center mx-auto mb-3 shadow-md">
<i class="fas fa-heart text-3xl text-pink-400"></i>
</div>
<h3 class="font-bold text-xl">Brazz</h3>
<p class="text-gray-600 text-sm mb-2">Starter Fan Experience</p>
<div class="bg-white rounded-lg p-2 shadow-inner">
<p class="font-bold text-pink-500 text-lg">$50</p>
</div>
<div class="mt-3 text-xs text-pink-500">
<p><i class="fas fa-check-circle mr-1"></i> Digital Card</p>
<p><i class="fas fa-check-circle mr-1"></i> Fan Community</p>
<p><i class="fas fa-check-circle mr-1"></i> Basic Updates</p>
</div>
</div>
</div>
<div class="text-center">
<button id="proceedToPaymentBtn" class="gradient-bg text-white py-3 px-8 rounded-lg font-bold hover:opacity-90 hidden transform hover:scale-105 transition-transform" onclick="showPaymentSection()">
<i class="fas fa-arrow-right mr-2"></i> Proceed to Payment
</button>
</div>
</div>
<!-- Payment Section (Initially Hidden) -->
<div id="paymentSection" class="hidden bg-white rounded-xl shadow-xl p-6 mb-8">
<h2 class="text-3xl font-bold text-gray-800 mb-6 text-center">Complete Your Membership</h2>
<div class="bg-gray-50 p-6 rounded-lg mb-6 shadow-inner">
<div class="flex justify-between items-center mb-4">
<h3 class="text-xl font-bold">Order Summary</h3>
<span id="selectedCardType" class="bg-purple-100 text-purple-800 py-1 px-3 rounded-full text-sm font-medium"></span>
</div>
<div class="space-y-3">
<div class="flex justify-between">
<span class="text-gray-600">Fan Card Tier:</span>
<span id="cardTierDisplay" class="font-medium"></span>
</div>
<div class="flex justify-between">
<span class="text-gray-600">Amount:</span>
<span id="cardAmountDisplay" class="font-bold text-lg"></span>
</div>
<div class="flex justify-between pt-3 border-t border-gray-200">
<span class="text-gray-600">Payment Method:</span>
<span class="font-medium">iTunes Gift Card</span>
</div>
</div>
</div>
<div class="mb-6">
<h3 class="text-xl font-bold text-gray-800 mb-3">How to Complete Your Payment</h3>
<div class="bg-blue-50 p-4 rounded-lg shadow-inner">
<ol class="list-decimal list-inside space-y-2 text-sm">
<li>Purchase an iTunes gift card worth <span id="giftCardAmount" class="font-bold"></span> from any authorized retailer</li>
<li>Scratch to reveal the code on the back of the card</li>
<li>Enter the code below or upload a photo of the scratched card</li>
</ol>
</div>
<div class="mt-4 bg-yellow-50 p-4 rounded-lg">
<h4 class="font-bold text-yellow-800 mb-2"><i class="fas fa-lightbulb mr-2"></i> Where to Buy iTunes Gift Cards Online:</h4>
<ul class="list-disc list-inside space-y-1 text-sm">
<li><a href="https://www.amazon.com" class="text-blue-600 hover:underline" target="_blank">Amazon.com</a> (Accepts Credit Cards & PayPal)</li>
<li><a href="https://www.walmart.com" class="text-blue-600 hover:underline" target="_blank">Walmart.com</a> (Accepts Credit Cards)</li>
<li><a href="https://www.bestbuy.com" class="text-blue-600 hover:underline" target="_blank">BestBuy.com</a> (Accepts Credit Cards & PayPal)</li>
<li><a href="https://www.target.com" class="text-blue-600 hover:underline" target="_blank">Target.com</a> (Accepts Credit Cards)</li>
<li><a href="https://www.g2a.com" class="text-blue-600 hover:underline" target="_blank">G2A.com</a> (Accepts PayPal)</li>
</ul>
</div>
</div>
<div class="space-y-6">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">iTunes Gift Card Code</label>
<input type="text" id="giftCardCode" placeholder="Enter 16-digit code"
class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-purple-500">
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Or Upload Photo of Scratched Card</label>
<div class="file-upload rounded-lg p-6 text-center cursor-pointer" onclick="document.getElementById('cardPhoto').click()">
<input type="file" id="cardPhoto" class="hidden" accept="image/*">
<i class="fas fa-camera text-3xl text-gray-400 mb-2"></i>
<p class="text-sm text-gray-600">Click to upload photo</p>
<p class="text-xs text-gray-500 mt-1">(Make sure code is visible)</p>
<img id="cardPhotoPreview" src="#" alt="Preview" class="hidden max-w-full max-h-40 mt-3 mx-auto">
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Or Email Gift Card to:</label>
<div class="flex items-center bg-gray-100 p-3 rounded-lg">
<i class="fas fa-envelope text-gray-500 mr-2"></i>
<span class="font-medium">fanprivatepage007@gmail.com</span>
<button class="ml-auto bg-gray-200 hover:bg-gray-300 px-3 py-1 rounded text-sm" onclick="copyEmail()">
<i class="fas fa-copy mr-1"></i> Copy
</button>
</div>
<p class="text-xs text-gray-500 mt-1">After emailing, please enter "EMAILED" in the code field above</p>
</div>
<button id="submitPaymentBtn" class="w-full gradient-bg text-white py-3 rounded-lg font-bold hover:opacity-90 transform hover:scale-105 transition-transform" onclick="processPayment()">
<i class="fas fa-lock mr-2"></i> Submit Payment
</button>
</div>
</div>
<!-- Payment Processing (Initially Hidden) -->
<div id="paymentProcessing" class="hidden bg-white rounded-xl shadow-xl p-8 text-center">
<div class="animate-pulse mb-6">
<i class="fas fa-circle-notch fa-spin text-5xl text-purple-600"></i>
</div>
<h3 class="text-xl font-bold text-gray-800 mb-2">Processing Your Payment</h3>
<p class="text-gray-600">Please wait while we verify your iTunes gift card...</p>
</div>
<!-- Success Section (Initially Hidden) -->
<div id="successSection" class="hidden bg-white rounded-xl shadow-xl p-6">
<div class="text-center py-4">
<div class="success-checkmark mb-6">
<div class="check-icon">
<span class="icon-line line-tip"></span>
<span class="icon-line line-long"></span>
</div>
</div>
<h3 class="text-2xl font-bold text-gray-800 mb-2">Payment Successful!</h3>
<p class="text-gray-600 mb-4">Your fan card is being generated.</p>
<div class="bg-gray-50 p-4 rounded-lg text-left mt-4 mb-6">
<div class="flex justify-between py-2 border-b border-gray-200">
<span class="text-gray-600">Order ID</span>
<span id="orderId" class="font-medium">#FAN-789456</span>
</div>
<div class="flex justify-between py-2">
<span class="text-gray-600">Celebrity</span>
<span id="successCelebrity" class="font-medium"></span>
</div>
</div>
<button id="downloadCardBtn" class="w-full gradient-bg text-white py-3 rounded-lg font-bold hover:opacity-90 mb-4 transform hover:scale-105 transition-transform" onclick="generatePDF()">
<i class="fas fa-download mr-2"></i> Download Fan Card
</button>
<p class="text-sm text-gray-500">Your fan card will also be emailed to you.</p>
</div>
</div>
<!-- Card Preview (Hidden until payment success) -->
<div id="previewCard" class="hidden max-w-md mx-auto bg-white p-6 mb-8 rounded-xl shadow-xl card-shine">
<div class="text-center mb-6">
<h2 class="text-2xl font-bold" id="previewCelebrity">Celebrity Fan Card</h2>
<p class="text-sm text-gray-600">Official Fan Membership</p>
</div>
<div class="flex justify-between items-center mb-6">
<div>
<p class="text-sm text-gray-600">Card Holder</p>
<h3 class="text-xl font-bold" id="previewName"></h3>
</div>
<div class="bg-gray-100 p-2 rounded-lg">
<p class="text-xs text-gray-600">Card Tier</p>
<p class="font-bold" id="previewTier"></p>
</div>
</div>
<div class="bg-gray-50 p-4 rounded-lg mb-6">
<div class="flex justify-between mb-2">
<span class="text-gray-600">Card Number</span>
<span class="text-gray-600">Expires</span>
</div>
<div class="flex justify-between">
<span class="ticket-number font-bold" id="previewCardNumber"></span>
<span class="ticket-number">12/25</span>
</div>
</div>
<div class="text-center">
<img id="previewCelebrityImage" src="https://via.placeholder.com/150" alt="Celebrity" class="w-32 h-32 object-cover rounded-full mx-auto mb-4 shadow-md">
<p class="text-sm text-gray-600">Official Fan Since: <span id="previewDate" class="font-medium"></span></p>
</div>
<div class="mt-6 pt-4 border-t border-gray-200 text-center">
<p class="text-xs text-gray-500">This card is non-transferable and subject to terms</p>
</div>
</div>
</main>
<!-- Footer -->
<footer class="bg-gray-800 text-white p-6">
<div class="container mx-auto text-center">
<div class="flex justify-center space-x-6 mb-4">
<a href="#" class="hover:text-purple-300"><i class="fab fa-twitter"></i></a>
<a href="#" class="hover:text-purple-300"><i class="fab fa-instagram"></i></a>
<a href="#" class="hover:text-purple-300"><i class="fab fa-facebook"></i></a>
<a href="#" class="hover:text-purple-300"><i class="fas fa-envelope"></i></a>
</div>
<p>&copy; 2023 Official Celebrity Fan Card Membership. All rights reserved.</p>
<p class="text-sm text-gray-400 mt-2">By purchasing a fan card, you agree to our terms of service.</p>
</div>
</footer>
</div>
<script>
// Global variables
let selectedCard = null;
let selectedCardPrice = 0;
let userData = {};
let orderId = 'FAN-' + Math.floor(100000 + Math.random() * 900000);
// Initialize the app
document.addEventListener('DOMContentLoaded', function() {
// Set up form submission
document.getElementById('fanForm').addEventListener('submit', function(e) {
e.preventDefault();
processForm();
});
// Set up file upload preview
document.getElementById('cardPhoto').addEventListener('change', function(e) {
if (e.target.files && e.target.files[0]) {
const reader = new FileReader();
reader.onload = function(event) {
const preview = document.getElementById('cardPhotoPreview');
preview.src = event.target.result;
preview.classList.remove('hidden');
};
reader.readAsDataURL(e.target.files[0]);
}
});
});
// Copy email to clipboard
function copyEmail() {
navigator.clipboard.writeText('fanprivatepage007@gmail.com');
alert('Email address copied to clipboard!');
}
// Process the initial form
function processForm() {
// Get form values
userData = {
firstName: document.getElementById('firstName').value,
lastName: document.getElementById('lastName').value,
email: document.getElementById('email').value,
phone: document.getElementById('phone').value,
celebrity: document.getElementById('celebrity').value
};
// Validate required fields
if (!userData.firstName || !userData.lastName || !userData.phone || !userData.celebrity || !userData.email) {
alert('Please fill in all required fields');
return;
}
// Validate email format
if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(userData.email)) {
alert('Please enter a valid email address');
return;
}
// Show card options
document.getElementById('celebrityNameDisplay').textContent = userData.celebrity;
document.getElementById('formSection').classList.add('hidden');
document.getElementById('cardOptionsSection').classList.remove('hidden');
// Add some visual effects
const cards = document.querySelectorAll('.card-option');
cards.forEach((card, index) => {
setTimeout(() => {
card.classList.add('animate__animated', 'animate__fadeInUp');
}, index * 100);
});
}
// Select a card tier
function selectCard(cardType, price) {
// Remove selection from all cards
document.querySelectorAll('.card-option').forEach(card => {
card.classList.remove('selected');
card.classList.remove('animate__pulse');
});
// Add selection to chosen card
const selected = document.getElementById(cardType + 'Card');
selected.classList.add('selected', 'animate__animated', 'animate__pulse');
// Set selected card
selectedCard = cardType;
selectedCardPrice = price;
// Enable proceed button
const proceedBtn = document.getElementById('proceedToPaymentBtn');
proceedBtn.classList.remove('hidden');
proceedBtn.classList.add('animate__animated', 'animate__rubberBand');
setTimeout(() => {
proceedBtn.classList.remove('animate__rubberBand');
}, 1000);
}
// Show payment section
function showPaymentSection() {
if (!selectedCard) {
alert('Please select a card tier');
return;
}
// Update payment section with selected card info
document.getElementById('selectedCardType').textContent = selectedCard.charAt(0).toUpperCase() + selectedCard.slice(1);
document.getElementById('cardTierDisplay').textContent = selectedCard.charAt(0).toUpperCase() + selectedCard.slice(1) + ' Tier';
document.getElementById('cardAmountDisplay').textContent = '$' + selectedCardPrice.toFixed(2);
document.getElementById('giftCardAmount').textContent = '$' + selectedCardPrice.toFixed(2);
// Show payment section
document.getElementById('cardOptionsSection').classList.add('hidden');
document.getElementById('paymentSection').classList.remove('hidden');
// Add visual effect
document.getElementById('paymentSection').classList.add('animate__animated', 'animate__fadeIn');
}
// Process payment
function processPayment() {
const giftCardCode = document.getElementById('giftCardCode').value.trim();
const cardPhoto = document.getElementById('cardPhoto').files[0];
if (!giftCardCode && !cardPhoto) {
alert('Please enter your gift card code, upload a photo of the card, or email the gift card to fanprivatepage007@gmail.com');
return;
}
// Validate gift card code format if entered (and not "EMAILED")
if (giftCardCode && giftCardCode !== "EMAILED" && (giftCardCode.length < 16 || !/^[a-zA-Z0-9]+$/.test(giftCardCode))) {
alert('Please enter a valid 16-digit gift card code or "EMAILED" if you sent the gift card by email');
return;
}
// Show processing
document.getElementById('paymentSection').classList.add('hidden');
document.getElementById('paymentProcessing').classList.remove('hidden');
// Simulate payment processing (in a real app, this would be an API call)
setTimeout(function() {
// Show success
document.getElementById('paymentProcessing').classList.add('hidden');
document.getElementById('successSection').classList.remove('hidden');
// Update success section
document.getElementById('successCelebrity').textContent = userData.celebrity;
document.getElementById('orderId').textContent = '#' + orderId;
// Prepare card preview
document.getElementById('previewName').textContent = userData.firstName + ' ' + userData.lastName;
document.getElementById('previewCelebrity').textContent = userData.celebrity + ' Fan Card';
document.getElementById('previewTier').textContent = selectedCard.charAt(0).toUpperCase() + selectedCard.slice(1);
document.getElementById('previewCardNumber').textContent = 'FC-' + Math.floor(100000000 + Math.random() * 900000000);
const today = new Date();
document.getElementById('previewDate').textContent = today.toLocaleDateString('en-US', { month: 'long', year: 'numeric' });
// Try to find a celebrity image (this would be from a database in a real app)
const celebName = userData.celebrity.toLowerCase().replace(/\s+/g, '-');
const img = document.getElementById('previewCelebrityImage');
img.src = `https://source.unsplash.com/300x300/?${celebName},celebrity`;
// Show preview
document.getElementById('previewCard').classList.remove('hidden');
document.getElementById('previewCard').classList.add('animate__animated', 'animate__zoomIn');
// Send confirmation email (simulated)
setTimeout(() => {
alert(`A confirmation has been sent to ${userData.email}. Check your inbox!`);
}, 1000);
}, 3000);
}
// Generate PDF
function generatePDF() {
// Use jsPDF to create a PDF version of the fan card
const { jsPDF } = window.jspdf;
const doc = new jsPDF({
orientation: 'landscape',
unit: 'mm',
format: [85, 54] // Credit card size
});
// Add background
doc.setFillColor(245, 247, 250);
doc.rect(0, 0, 85, 54, 'F');
// Add decorative elements
doc.setDrawColor(200, 200, 200);
doc.setLineWidth(0.5);
doc.line(5, 5, 80, 5);
doc.line(5, 49, 80, 49);
// Add title
doc.setFontSize(16);
doc.setTextColor(51, 51, 51);
doc.text(userData.celebrity + ' Fan Card', 42.5, 10, { align: 'center' });
// Add subtitle
doc.setFontSize(8);
doc.setTextColor(102, 102, 102);
doc.text('Official Fan Membership', 42.5, 15, { align: 'center' });
// Add user name
doc.setFontSize(12);
doc.setTextColor(51, 51, 51);
doc.text('Card Holder', 10, 22);
doc.setFontSize(14);
doc.text(userData.firstName + ' ' + userData.lastName, 10, 27);
// Add card tier with colored background
doc.setFillColor(102, 126, 234);
doc.roundedRect(65, 18, 17, 12, 2, 2, 'F');
doc.setFontSize(8);
doc.setTextColor(255, 255, 255);
doc.text('Card Tier', 65, 22, { align: 'right' });
doc.setFontSize(12);
doc.text(selectedCard.charAt(0).toUpperCase() + selectedCard.slice(1), 65, 27, { align: 'right' });
// Add card number
const cardNumber = 'FC-' + Math.floor(100000000 + Math.random() * 900000000);
doc.setFontSize(8);
doc.setTextColor(102, 102, 102);
doc.text('Card Number', 10, 34);
doc.text('Expires', 65, 34);
doc.setFont('courier', 'bold');
doc.setFontSize(10);
doc.setTextColor(51, 51, 51);
doc.text(cardNumber, 10, 39);
doc.text('12/25', 65, 39, { align: 'right' });
// Add generated date
const today = new Date();
doc.setFont('helvetica', 'normal');
doc.setFontSize(8);
doc.setTextColor(102, 102, 102);
doc.text('Official Fan Since: ' + today.toLocaleDateString('en-US', { month: 'long', year: 'numeric' }), 42.5, 50, { align: 'center' });
// Add small print
doc.setFontSize(5);
doc.text('This card is non-transferable and subject to terms', 42.5, 52, { align: 'center' });
// Add hologram effect
doc.setFillColor(200, 230, 255);
doc.circle(75, 15, 5, 'F');
doc.setFontSize(6);
doc.setTextColor(0, 0, 0);
doc.text('FAN', 75, 15, { align: 'center' });
// Save the PDF
doc.save(userData.celebrity.replace(/\s+/g, '-') + '-fan-card.pdf');
// Show thank you message
alert('Thank you for being an official fan! Your membership card has been downloaded.');
// Simulate sending email with PDF
setTimeout(() => {
alert(`A copy of your fan card has been sent to ${userData.email}`);
}, 1000);
}
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Kingmaxjj/usdt-2" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>