<?php
session_start();
require 'config/db.php';
require_once 'includes/functions.php';
include 'includes/header.php';

// 1. Security Check
if (!isset($_SESSION['user_id'])) {
    header("Location: login.php"); exit();
}

// 2. Fetch Payment Settings
try {
    $stmtSet = $pdo->query("SELECT * FROM payment_settings WHERE id=1");
    $paySettings = $stmtSet->fetch();
} catch (Exception $e) { $paySettings = []; }

// Payment Data
$upi_id = $paySettings['upi_id'] ?? 'paytmqr@paytm';
$binance_id = $paySettings['binance_id'] ?? '762917711';
$binance_name = $paySettings['binance_name'] ?? 'Akash Bhau';
$qr_image_path = !empty($paySettings['qr_image']) ? $paySettings['qr_image'] : 'assets/img/qrcode.png';
$en_cards = $paySettings['enable_cards'] ?? 0; // Used for Bank/PKR here
$card_txt = $paySettings['card_details'] ?? '';

// PKR Details (Static for now)
$bank_name = "Telenor Microfinance Bank";
$account_title = "MUHAMMAD MUBASHIR HANIF";
$iban = "PK75TMFB0000000081923926";
$easypaisa_qr_path = "assets/img/easypaisa.jpg";

// 3. HANDLE DEPOSIT SUBMISSION
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $amount = $_POST['amount'];
    $payment_method = $_POST['payment_method'];
    $user_id = $_SESSION['user_id'];
    
    // Basic Validation
    if ($amount < 1) {
        echo "<script>alert('Minimum deposit is 1.'); window.history.back();</script>"; exit();
    }

    // A. HANDLE PAYPAL (INSTANT SUCCESS)
    if ($payment_method == 'paypal') {
        $txn_id = $_POST['paypal_txn_id'];
        
        // 1. Log Transaction
        $pdo->prepare("INSERT INTO wallet_transactions (user_id, amount, payment_method, status, proof_img) VALUES (?, ?, 'PayPal', 'approved', ?)")
            ->execute([$user_id, $amount, "TXN: $txn_id"]);
            
        // 2. Add Funds Instantly
        $pdo->prepare("UPDATE users SET wallet_balance = wallet_balance + ? WHERE id = ?")
            ->execute([$amount, $user_id]);
            
        echo "<script>alert('Funds Added Successfully!'); window.location='profile.php';</script>";
        exit();
    }

    // B. HANDLE MANUAL PAYMENTS (PENDING APPROVAL)
    $proof_path = NULL;
    $file_input = '';
    
    if ($payment_method == 'manual_upi') $file_input = 'proof_upi';
    elseif ($payment_method == 'crypto') $file_input = 'proof_crypto';
    elseif ($payment_method == 'bank_pkr') $file_input = 'proof_bank';

    if ($file_input != '' && isset($_FILES[$file_input])) {
        if ($_FILES[$file_input]['error'] == 0) {
            $ext = strtolower(pathinfo($_FILES[$file_input]['name'], PATHINFO_EXTENSION));
            $allowed = ['jpg', 'jpeg', 'png', 'webp'];
            
            if (in_array($ext, $allowed)) {
                if (!is_dir('uploads')) mkdir('uploads', 0777, true);
                $new_name = "wallet_" . time() . "_" . rand(100,999) . "." . $ext;
                if (move_uploaded_file($_FILES[$file_input]['tmp_name'], "uploads/" . $new_name)) {
                    $proof_path = "uploads/" . $new_name;
                }
            }
        }
    }

    if ($proof_path) {
        $pdo->prepare("INSERT INTO wallet_transactions (user_id, amount, payment_method, proof_img, status) VALUES (?, ?, ?, ?, 'pending')")
            ->execute([$user_id, $amount, $payment_method, $proof_path]);
        echo "<script>alert('Deposit Request Submitted! Admin will verify shortly.'); window.location='profile.php';</script>";
    } else {
        echo "<script>alert('Please upload a screenshot.'); window.history.back();</script>";
    }
}
?>

<script src="https://www.paypal.com/sdk/js?client-id=AfmoPp05hci-hCjDRuFGhYzf8GFtxlXAuIKBJfFT5e5W-Qt_Nh7_KkYzvM5jvsyPcHs1avXSNnx7Furz&currency=USD"></script>

<style>
    .deposit-container { max-width: 700px; margin: 40px auto; background: white; padding: 30px; border-radius: 12px; box-shadow: 0 5px 20px rgba(0,0,0,0.05); }
    .form-group { margin-bottom: 20px; }
    .form-control { width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 6px; font-size: 16px; box-sizing: border-box; }
    
    /* Payment Options */
    .payment-option { border: 1px solid #ddd; padding: 15px; border-radius: 8px; margin-bottom: 10px; cursor: pointer; transition: all 0.2s; background: #fff; position: relative; }
    .payment-option:hover { border-color: #3498db; background: #f8faff; }
    .payment-option.selected { border: 2px solid #3498db; background: #f0f8ff; }
    .payment-header { display: flex; align-items: center; gap: 10px; font-weight: bold; color: #2c3e50; }
    .payment-details { display: none; margin-top: 15px; padding-top: 15px; border-top: 1px dashed #ccc; }
    
    .qr-box img { max-width: 180px; border: 1px solid #eee; padding: 5px; }
    .copy-text { font-family: monospace; background: #333; color: #0f0; padding: 5px 10px; border-radius: 4px; cursor: pointer; }
</style>

<div class="container">
    <div class="deposit-container">
        <h1 style="text-align: center; margin-bottom: 30px; color:#2c3e50;">Add Funds to Wallet</h1>
        
        <form method="POST" enctype="multipart/form-data" id="depositForm">
            
            <div class="form-group">
                <label style="font-weight: bold;">Enter Amount</label>
                <input type="number" name="amount" id="amountInput" placeholder="e.g. 500" required class="form-control" min="1" oninput="updateCalculations()">
            </div>

            <h3 style="margin: 25px 0 15px;">Select Payment Method</h3>

            <div class="payment-option selected" onclick="selectPayment('manual_upi', this)">
                <div class="payment-header">
                    <input type="radio" name="payment_method" value="manual_upi" checked> 
                    <i class="fas fa-qrcode" style="color: #2c3e50;"></i> UPI / QR Code (India)
                </div>
                <div class="payment-details" id="details_manual_upi" style="display: block;">
                    <div style="text-align: center;">
                        <p>Scan QR to Pay</p>
                        <div class="qr-box"><img src="<?php echo $qr_image_path; ?>"></div>
                        <p style="margin-top: 10px; font-family: monospace; background:#f9f9f9; padding:5px;"><?php echo $upi_id; ?></p>
                        <div style="text-align: left; margin-top: 15px;">
                            <label style="font-size: 13px; font-weight: bold;">Upload Screenshot:</label>
                            <input type="file" name="proof_upi" accept="image/*" style="width: 100%;">
                        </div>
                    </div>
                </div>
            </div>

            <div class="payment-option" onclick="selectPayment('paypal', this)">
                <div class="payment-header">
                    <input type="radio" name="payment_method" value="paypal"> 
                    <i class="fab fa-paypal" style="color: #003087;"></i> PayPal (Auto)
                </div>
                <div class="payment-details" id="details_paypal">
                    <p>Amount in USD: <strong>$<span id="usdDisplay">0.00</span></strong></p>
                    <div id="paypal-button-container"></div>
                    <input type="hidden" name="paypal_txn_id" id="paypal_txn_id">
                </div>
            </div>

            <div class="payment-option" onclick="selectPayment('crypto', this)">
                <div class="payment-header">
                    <input type="radio" name="payment_method" value="crypto"> 
                    <i class="fab fa-bitcoin" style="color: #f39c12;"></i> Binance / Crypto
                </div>
                <div class="payment-details" id="details_crypto">
                    <div style="background: #222; color:#0f0; padding: 15px; border-radius: 5px;">
                        ID: <span class="copy-text" onclick="copyText('<?php echo $binance_id; ?>')"><?php echo $binance_id; ?></span><br>
                        Name: <strong><?php echo $binance_name; ?></strong>
                    </div>
                    <div style="margin-top: 15px;">
                        <label style="font-weight: bold;">Upload Screenshot:</label>
                        <input type="file" name="proof_crypto" accept="image/*" style="width: 100%;">
                    </div>
                </div>
            </div>

            <div class="payment-option" onclick="selectPayment('bank_pkr', this)">
                <div class="payment-header">
                    <input type="radio" name="payment_method" value="bank_pkr"> 
                    <i class="fas fa-university" style="color: #27ae60;"></i> Bank Transfer (PKR)
                </div>
                <div class="payment-details" id="details_bank_pkr">
                    <p>Pay approx <strong>PKR <span id="pkrDisplay">0</span></strong></p>
                    <div style="background: #f0f9eb; padding: 15px; border: 1px solid #c3e6cb; border-radius: 5px;">
                        <strong>Bank:</strong> <?php echo $bank_name; ?><br>
                        <strong>Title:</strong> <?php echo $account_title; ?><br>
                        <strong>IBAN:</strong> <span class="copy-text" onclick="copyText('<?php echo $iban; ?>')"><?php echo $iban; ?></span>
                    </div>
                    <div style="margin-top: 15px;">
                        <label style="font-weight: bold;">Upload Receipt:</label>
                        <input type="file" name="proof_bank" accept="image/*" style="width: 100%;">
                    </div>
                </div>
            </div>

            <button type="submit" id="submitBtn" class="btn btn-primary" style="width:100%; padding:15px; margin-top:20px; font-size:18px; background:#2c3e50; border:none;">
                Submit Request
            </button>

        </form>
    </div>
</div>

<script>
    let currentAmount = 0;
    let usdAmount = 0;

    function updateCalculations() {
        let val = parseFloat(document.getElementById('amountInput').value) || 0;
        currentAmount = val;
        usdAmount = (val * 0.012).toFixed(2); // Approx conversion
        let pkrAmount = Math.round(val * 3.35);
        
        document.getElementById('usdDisplay').innerText = usdAmount;
        document.getElementById('pkrDisplay').innerText = pkrAmount;
    }

    function selectPayment(method, element) {
        document.querySelectorAll('.payment-option').forEach(el => el.classList.remove('selected'));
        element.classList.add('selected');
        document.querySelectorAll('.payment-details').forEach(el => el.style.display = 'none');
        document.getElementById('details_' + method).style.display = 'block';
        element.querySelector('input[type="radio"]').checked = true;
        
        const btn = document.getElementById('submitBtn');
        if(method === 'paypal') btn.style.display = 'none'; 
        else btn.style.display = 'block';
    }

    function copyText(text) {
        navigator.clipboard.writeText(text);
        alert("Copied: " + text);
    }

    // PayPal Logic
    paypal.Buttons({
        createOrder: function(data, actions) {
            if(currentAmount <= 0) { alert("Please enter amount first"); return; }
            return actions.order.create({
                purchase_units: [{ amount: { value: usdAmount } }]
            });
        },
        onApprove: function(data, actions) {
            return actions.order.capture().then(function(details) {
                document.getElementById('paypal_txn_id').value = details.id;
                document.getElementById('depositForm').submit();
            });
        }
    }).render('#paypal-button-container');
</script>

<?php include 'includes/footer.php'; ?>