| <!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"> |
| |
| <div class="min-h-screen flex flex-col"> |
| |
| <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 class="flex-grow container mx-auto p-4 md:p-6"> |
| |
| <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> |
| |
| |
| <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"> |
| |
| <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> |
| |
| |
| <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> |
| |
| |
| <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> |
| |
| |
| <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> |
| |
| |
| <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> |
| |
| |
| <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> |
| |
| |
| <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> |
| |
| |
| <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> |
| |
| |
| <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 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>© 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> |
| |
| let selectedCard = null; |
| let selectedCardPrice = 0; |
| let userData = {}; |
| let orderId = 'FAN-' + Math.floor(100000 + Math.random() * 900000); |
| |
| |
| document.addEventListener('DOMContentLoaded', function() { |
| |
| document.getElementById('fanForm').addEventListener('submit', function(e) { |
| e.preventDefault(); |
| processForm(); |
| }); |
| |
| |
| 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]); |
| } |
| }); |
| }); |
| |
| |
| function copyEmail() { |
| navigator.clipboard.writeText('fanprivatepage007@gmail.com'); |
| alert('Email address copied to clipboard!'); |
| } |
| |
| |
| function processForm() { |
| |
| 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 |
| }; |
| |
| |
| if (!userData.firstName || !userData.lastName || !userData.phone || !userData.celebrity || !userData.email) { |
| alert('Please fill in all required fields'); |
| return; |
| } |
| |
| |
| if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(userData.email)) { |
| alert('Please enter a valid email address'); |
| return; |
| } |
| |
| |
| document.getElementById('celebrityNameDisplay').textContent = userData.celebrity; |
| document.getElementById('formSection').classList.add('hidden'); |
| document.getElementById('cardOptionsSection').classList.remove('hidden'); |
| |
| |
| const cards = document.querySelectorAll('.card-option'); |
| cards.forEach((card, index) => { |
| setTimeout(() => { |
| card.classList.add('animate__animated', 'animate__fadeInUp'); |
| }, index * 100); |
| }); |
| } |
| |
| |
| function selectCard(cardType, price) { |
| |
| document.querySelectorAll('.card-option').forEach(card => { |
| card.classList.remove('selected'); |
| card.classList.remove('animate__pulse'); |
| }); |
| |
| |
| const selected = document.getElementById(cardType + 'Card'); |
| selected.classList.add('selected', 'animate__animated', 'animate__pulse'); |
| |
| |
| selectedCard = cardType; |
| selectedCardPrice = price; |
| |
| |
| const proceedBtn = document.getElementById('proceedToPaymentBtn'); |
| proceedBtn.classList.remove('hidden'); |
| proceedBtn.classList.add('animate__animated', 'animate__rubberBand'); |
| setTimeout(() => { |
| proceedBtn.classList.remove('animate__rubberBand'); |
| }, 1000); |
| } |
| |
| |
| function showPaymentSection() { |
| if (!selectedCard) { |
| alert('Please select a card tier'); |
| return; |
| } |
| |
| |
| 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); |
| |
| |
| document.getElementById('cardOptionsSection').classList.add('hidden'); |
| document.getElementById('paymentSection').classList.remove('hidden'); |
| |
| |
| document.getElementById('paymentSection').classList.add('animate__animated', 'animate__fadeIn'); |
| } |
| |
| |
| 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; |
| } |
| |
| |
| 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; |
| } |
| |
| |
| document.getElementById('paymentSection').classList.add('hidden'); |
| document.getElementById('paymentProcessing').classList.remove('hidden'); |
| |
| |
| setTimeout(function() { |
| |
| document.getElementById('paymentProcessing').classList.add('hidden'); |
| document.getElementById('successSection').classList.remove('hidden'); |
| |
| |
| document.getElementById('successCelebrity').textContent = userData.celebrity; |
| document.getElementById('orderId').textContent = '#' + orderId; |
| |
| |
| 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' }); |
| |
| |
| const celebName = userData.celebrity.toLowerCase().replace(/\s+/g, '-'); |
| const img = document.getElementById('previewCelebrityImage'); |
| img.src = `https://source.unsplash.com/300x300/?${celebName},celebrity`; |
| |
| |
| document.getElementById('previewCard').classList.remove('hidden'); |
| document.getElementById('previewCard').classList.add('animate__animated', 'animate__zoomIn'); |
| |
| |
| setTimeout(() => { |
| alert(`A confirmation has been sent to ${userData.email}. Check your inbox!`); |
| }, 1000); |
| }, 3000); |
| } |
| |
| |
| function generatePDF() { |
| |
| const { jsPDF } = window.jspdf; |
| const doc = new jsPDF({ |
| orientation: 'landscape', |
| unit: 'mm', |
| format: [85, 54] |
| }); |
| |
| |
| doc.setFillColor(245, 247, 250); |
| doc.rect(0, 0, 85, 54, 'F'); |
| |
| |
| doc.setDrawColor(200, 200, 200); |
| doc.setLineWidth(0.5); |
| doc.line(5, 5, 80, 5); |
| doc.line(5, 49, 80, 49); |
| |
| |
| doc.setFontSize(16); |
| doc.setTextColor(51, 51, 51); |
| doc.text(userData.celebrity + ' Fan Card', 42.5, 10, { align: 'center' }); |
| |
| |
| doc.setFontSize(8); |
| doc.setTextColor(102, 102, 102); |
| doc.text('Official Fan Membership', 42.5, 15, { align: 'center' }); |
| |
| |
| 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); |
| |
| |
| 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' }); |
| |
| |
| 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' }); |
| |
| |
| 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' }); |
| |
| |
| doc.setFontSize(5); |
| doc.text('This card is non-transferable and subject to terms', 42.5, 52, { align: 'center' }); |
| |
| |
| 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' }); |
| |
| |
| doc.save(userData.celebrity.replace(/\s+/g, '-') + '-fan-card.pdf'); |
| |
| |
| alert('Thank you for being an official fan! Your membership card has been downloaded.'); |
| |
| |
| 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> |