<?php
// --- TAMIM 1280 MASTER FIX START (অটোমেটিক ডিরেক্টরি ডিটেকশন) ---
$sessionPath = __DIR__ . '/sessions'; 
if (!file_exists($sessionPath)) { 
    @mkdir($sessionPath, 0755, true); 
}
if (is_writable($sessionPath)) {
    ini_set('session.save_path', $sessionPath);
}
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
// --- TAMIM 1280 MASTER FIX END ---

// যদি লগইন না থাকে, তবে লগইন পেজে পাঠিয়ে দাও
if (!isset($_SESSION['user_id'])) {
    header("Location: login.php");
    exit();
}

// form.php - Advanced Validation & Theme
if (!isset($_POST['total_players'])) { header("Location: index.php"); exit(); }

$title = $_POST['title'];
$type = $_POST['game_type'];
$total = intval($_POST['total_players']);

// Logic
$per_team = 1;
if ($type == 'DUO') $per_team = 2;
if ($type == 'SQUAD') $per_team = 4;

$total_teams = ceil($total / $per_team);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Data Entry | System</title>
    <!-- CSS ফাইল লিংক (ক্যাশ এড়াতে টাইম স্ট্যাম্প দেওয়া হলো) -->
    <link rel="stylesheet" href="css/style.css?v=<?php echo time(); ?>">
    <!-- ফন্ট অসাম আইকন -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    
    <style>
        /* এই পেজের জন্য স্পেশাল গ্রিড স্টাইল */
        .container {
            max-width: 1200px; /* ফর্ম পেজটি চওড়া হবে */
        }
        
        .form-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
            gap: 20px;
            max-height: 60vh;
            overflow-y: auto;
            padding: 10px;
            margin-bottom: 20px;
            /* স্ক্রলবার স্টাইল */
            scrollbar-width: thin;
            scrollbar-color: var(--primary-color) var(--bg-color);
        }

        /* টিম বক্স ডিজাইন */
        .team-box {
            background: rgba(0, 20, 40, 0.6);
            border: 1px solid var(--secondary-color);
            padding: 15px;
            position: relative;
            transition: 0.3s;
        }
        .team-box:hover {
            border-color: var(--primary-color);
            box-shadow: inset 0 0 15px rgba(0, 234, 255, 0.1);
        }

        .team-label {
            color: var(--primary-color);
            font-family: 'Orbitron', sans-serif;
            font-size: 18px;
            margin-bottom: 10px;
            display: block;
            border-bottom: 1px solid rgba(0, 234, 255, 0.2);
            padding-bottom: 5px;
        }

        /* ইনপুট গ্রুপ ডিজাইন */
        .input-group {
            display: flex;
            align-items: center;
            gap: 5px;
            margin-bottom: 10px;
            background: rgba(0,0,0,0.3);
            padding: 5px;
            border-radius: 4px;
        }

        .input-name {
            flex: 2;
            margin-bottom: 0; /* গ্লোবাল মার্জিন রিসেট */
            font-size: 14px;
        }
        .input-role {
            flex: 1;
            margin-bottom: 0;
            font-size: 14px;
            padding: 12px 5px;
        }

        /* EMPTY Checkbox Design */
        .empty-check-label {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            color: #888;
            font-size: 10px;
            font-weight: bold;
            margin-left: 5px;
        }
        .empty-check-label input {
            width: 15px; height: 15px;
            margin: 0;
            cursor: pointer;
            accent-color: #ff0000; /* লাল চেক বক্স */
        }
        .empty-text { margin-top: 2px; }

        /* DISABLED STATE (যখন চেক করা হবে) */
        .input-group.disabled {
            opacity: 0.5;
            pointer-events: none; /* ক্লিক করা যাবে না */
            filter: grayscale(100%);
        }
        /* চেকবক্স যেন ডিজেবল না হয় */
        .input-group.disabled .empty-check-label {
            pointer-events: auto;
            opacity: 1;
            filter: none;
            color: #ff4d4d;
        }

        /* ERROR STATE (ভ্যালিডেশন এরর) */
        .input-error {
            border: 2px solid #ff0000 !important;
            box-shadow: 0 0 10px #ff0000 !important;
            animation: shake 0.3s ease-in-out;
        }

        @keyframes shake {
            0%, 100% { transform: translateX(0); }
            25% { transform: translateX(-5px); }
            75% { transform: translateX(5px); }
        }

        /* হেডারের তথ্য */
        .info-bar {
            display: flex;
            justify-content: space-between;
            background: rgba(0, 234, 255, 0.1);
            padding: 10px;
            border-radius: 5px;
            margin-bottom: 20px;
            font-size: 14px;
            color: #a0cfff;
            border: 1px solid var(--secondary-color);
        }
    </style>
</head>
<body>

    <div class="container">
        <h1>Develop by 👑 TAMIM 1280 👑</h1>
        
        <div class="info-bar">
            <span>MISSION: <strong style="color:white;"><?php echo htmlspecialchars($title); ?></strong></span>
            <span>MODE: <strong style="color:var(--primary-color);"><?php echo $type; ?></strong></span>
            <span>TEAMS: <strong style="color:white;"><?php echo $total_teams; ?></strong></span>
        </div>

        <form id="squadForm" action="save.php" method="POST" onsubmit="return validateForm()">
            <input type="hidden" name="title" value="<?php echo htmlspecialchars($title); ?>">
            <input type="hidden" name="game_type" value="<?php echo $type; ?>">
            <input type="hidden" name="total_players" value="<?php echo $total; ?>">

            <div class="form-grid">
                <?php for($i=1; $i<=$total_teams; $i++): ?>
                    <div class="team-box">
                        <span class="team-label">TEAM #<?php echo str_pad($i, 2, '0', STR_PAD_LEFT); ?></span>
                        
                        <?php for($j=1; $j<=$per_team; $j++): ?>
                            <div class="input-group" id="group_<?php echo $i.'_'.$j; ?>">
                                <!-- নাম ইনপুট -->
                                <input type="text" class="input-name" 
                                       id="name_<?php echo $i.'_'.$j; ?>"
                                       name="players[<?php echo $i; ?>][<?php echo $j; ?>][name]" 
                                       placeholder="Player <?php echo $j; ?> Name">
                                
                                <!-- রোল সিলেকশন -->
                                <select class="input-role" name="players[<?php echo $i; ?>][<?php echo $j; ?>][role]">
                                    <option value="Member">Member</option>
                                    <option value="Leader">👑 Leader</option>
                                    <option value="Officer">🛡️ Officer</option>
                                    <option value="Sniper">🎯 Sniper</option>
                                    <option value="Rusher">⚔️ Rusher</option>
                                </select>

                                <!-- EMPTY Checkbox -->
                                <label class="empty-check-label" title="Mark as Empty Slot">
                                    <input type="checkbox" onchange="toggleSlot(this, '<?php echo $i.'_'.$j; ?>')">
                                    <span class="empty-text">NO</span>
                                </label>
                            </div>
                        <?php endfor; ?>
                        
                    </div>
                <?php endfor; ?>
            </div>

            <button type="submit">INITIALIZE LIST <i class="fa-solid fa-bolt"></i></button>
        </form>
    </div>

    <!-- JAVASCRIPT LOGIC -->
    <script>
        // ১. স্লট খালি রাখার ফাংশন
        function toggleSlot(checkbox, id) {
            const group = document.getElementById('group_' + id);
            const nameInput = document.getElementById('name_' + id);
            
            if (checkbox.checked) {
                // যদি NO চেক করা হয়
                group.classList.add('disabled'); // ডিজাইন ঝাপসা করবে
                nameInput.value = "EMPTY"; // অটোমেটিক ভ্যালু বসাবে যেন এরর না দেয়
                nameInput.readOnly = true; // এডিট বন্ধ
                // এরর স্টাইল থাকলে সরিয়ে ফেলবে
                nameInput.classList.remove('input-error');
            } else {
                // আনচেক করলে
                group.classList.remove('disabled');
                nameInput.value = ""; // ভ্যালু ক্লিয়ার করবে
                nameInput.readOnly = false; // আবার লেখার অনুমতি দেবে
            }
        }

        // ২. ফর্ম ভ্যালিডেশন (সাবমিট করার আগে চেক করবে)
        function validateForm() {
            let isValid = true;
            const inputs = document.querySelectorAll('.input-name');
            let firstError = null;

            inputs.forEach(input => {
                // যদি ইনপুটটি EMPTY না হয় (অর্থাৎ চেক করা হয়নি) এবং ভ্যালু ফাঁকা থাকে
                if (input.value.trim() === "") {
                    input.classList.add('input-error'); // লাল বর্ডার দেবে
                    isValid = false;
                    
                    // প্রথম যেটায় এরর পাবে সেটা মনে রাখবে
                    if (firstError === null) firstError = input;
                    
                    // টাইপ করার সাথে সাথে লাল দাগ সরে যাবে
                    input.addEventListener('input', function() {
                        if(this.value.trim() !== "") {
                            this.classList.remove('input-error');
                        }
                    });
                }
            });

            if (!isValid) {
                // এরর সাউন্ড বা এলার্ট (অপশনাল)
                alert("⚠️ SYSTEM ALERT: Missing Data Detected!\nPlease fill all slots or mark them as 'NO'.");
                
                // যেখানে সমস্যা সেখানে স্ক্রল করে নিয়ে যাবে
                if (firstError) {
                    firstError.scrollIntoView({ behavior: 'smooth', block: 'center' });
                    firstError.focus();
                }
                return false; // সাবমিট আটকে দেবে
            }

            return true; // সব ঠিক থাকলে সাবমিট হবে
        }
    </script>
</body>
</html>