<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Player Selection and Score Calculation</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      margin: 20px;
    }
    .container {
      max-width: 800px;
      margin: 0 auto;
    }
    .team, .batter {
      margin-bottom: 20px;
    }
    table {
      width: 100%;
      border-collapse: collapse;
      margin-bottom: 20px;
    }
    th, td {
      border: 1px solid #ddd;
      padding: 8px;
      text-align: left;
    }
    th {
      background-color: #f2f2f2;
    }
    button {
      padding: 10px 20px;
      font-size: 16px;
      cursor: pointer;
    }
    .hidden {
      display: none;
    }
    input[type="text"], input[type="number"] {
      padding: 5px;
      width: 100%;
      box-sizing: border-box;
    }
  </style>
</head>
<body>
  <div class="container">
    <h1>Player Selection and Score Calculation</h1>

    <!-- Enter Team Names -->
    <div id="team-names">
      <h2>Enter Team Names</h2>
      <label for="team1-name">Team 1 Name:</label>
      <input type="text" id="team1-name" placeholder="Enter Team 1 Name">
      <br><br>
      <label for="team2-name">Team 2 Name:</label>
      <input type="text" id="team2-name" placeholder="Enter Team 2 Name">
      <br><br>
      <button id="submit-team-names">Submit Team Names</button>
    </div>

    <!-- Enter Player Names -->
    <div id="player-names" class="hidden">
      <h2>Enter Player Names</h2>
      <div id="team1-players-input">
        <h3 id="team1-name-display"></h3>
        <div id="team1-player-fields"></div>
      </div>
      <div id="team2-players-input">
        <h3 id="team2-name-display"></h3>
        <div id="team2-player-fields"></div>
      </div>
      <button id="submit-player-names">Submit Player Names</button>
    </div>

    <!-- Display Fixed Players -->
    <div id="fixed-players" class="hidden">
      <h2>Players</h2>
      <div id="team1-players-list"></div>
      <div id="team2-players-list"></div>
    </div>

    <!-- Batter Selection -->
    <div id="batter-selection" class="hidden">
      <h2>Batters</h2>
      <table id="batter-table">
        <thead>
          <tr>
            <th>Batter</th>
            <th>Player 1</th>
            <th>Player 2</th>
            <th>Player 3</th>
            <th>Player 4</th>
          </tr>
        </thead>
        <tbody id="batter-body"></tbody>
      </table>
      <button id="submit-selection">Submit Selection</button>
    </div>

    <!-- Runs and Wickets Input -->
    <div id="runs-wickets" class="hidden">
      <h2>Enter Runs and Wickets</h2>
      <table id="runs-wickets-table">
        <thead>
          <tr>
            <th>Player</th>
            <th>Runs</th>
            <th>Wickets</th>
          </tr>
        </thead>
        <tbody id="runs-wickets-body"></tbody>
      </table>
      <button id="calculate-scores">Calculate Scores</button>
    </div>

    <!-- Display Scores -->
    <div id="scores" class="hidden">
      <h2>Scores</h2>
      <table id="scores-table">
        <thead>
          <tr>
            <th>Player</th>
            <th>Runs</th>
            <th>Wickets</th>
            <th>Score</th>
          </tr>
        </thead>
        <tbody id="scores-body"></tbody>
      </table>
    </div>
  </div>

  <script>
    // Step 1: Enter Team Names
    const teamNamesSection = document.getElementById('team-names');
    const team1NameInput = document.getElementById('team1-name');
    const team2NameInput = document.getElementById('team2-name');
    const submitTeamNamesBtn = document.getElementById('submit-team-names');

    // Step 2: Enter Player Names
    const playerNamesSection = document.getElementById('player-names');
    const team1NameDisplay = document.getElementById('team1-name-display');
    const team2NameDisplay = document.getElementById('team2-name-display');
    const team1PlayerFields = document.getElementById('team1-player-fields');
    const team2PlayerFields = document.getElementById('team2-player-fields');
    const submitPlayerNamesBtn = document.getElementById('submit-player-names');

    // Step 3: Display Fixed Players
    const fixedPlayersSection = document.getElementById('fixed-players');
    const team1PlayersList = document.getElementById('team1-players-list');
    const team2PlayersList = document.getElementById('team2-players-list');

    // Step 4: Batter Selection
    const batterSelectionSection = document.getElementById('batter-selection');
    const batterBody = document.getElementById('batter-body');

    // Step 5: Runs and Wickets Input
    const runsWicketsSection = document.getElementById('runs-wickets');
    const runsWicketsBody = document.getElementById('runs-wickets-body');

    // Step 6: Display Scores
    const scoresSection = document.getElementById('scores');
    const scoresBody = document.getElementById('scores-body');

    // Track selected players
    const selectedPlayers = new Set();

    // Team and Player Data
    let team1Name = '';
    let team2Name = '';
    let team1Players = [];
    let team2Players = [];
    const batters = Array.from({ length: 5 }, (_, i) => `Batter ${i + 1}`);

    // Step 1: Submit Team Names
    submitTeamNamesBtn.addEventListener('click', () => {
      team1Name = team1NameInput.value.trim();
      team2Name = team2NameInput.value.trim();

      if (!team1Name || !team2Name) {
        alert('Please enter both team names.');
        return;
      }

      teamNamesSection.classList.add('hidden');
      playerNamesSection.classList.remove('hidden');

      // Display team names
      team1NameDisplay.textContent = team1Name;
      team2NameDisplay.textContent = team2Name;

      // Create input fields for players
      for (let i = 1; i <= 10; i++) {
        team1PlayerFields.innerHTML += `
          <label for="team1-player${i}">Player ${i}:</label>
          <input type="text" id="team1-player${i}" placeholder="Enter Player ${i} Name">
          <br>
        `;
        team2PlayerFields.innerHTML += `
          <label for="team2-player${i}">Player ${i}:</label>
          <input type="text" id="team2-player${i}" placeholder="Enter Player ${i} Name">
          <br>
        `;
      }
    });

    // Step 2: Submit Player Names
    submitPlayerNamesBtn.addEventListener('click', () => {
      team1Players = [];
      team2Players = [];

      for (let i = 1; i <= 10; i++) {
        const team1Player = document.getElementById(`team1-player${i}`).value.trim();
        const team2Player = document.getElementById(`team2-player${i}`).value.trim();

        if (!team1Player || !team2Player) {
          alert('Please enter all player names.');
          return;
        }

        team1Players.push(team1Player);
        team2Players.push(team2Player);
      }

      playerNamesSection.classList.add('hidden');
      fixedPlayersSection.classList.remove('hidden');

      // Display fixed players
      team1PlayersList.innerHTML = `<h3>${team1Name}</h3><ul>${team1Players.map(player => `<li>${player}</li>`).join('')}</ul>`;
      team2PlayersList.innerHTML = `<h3>${team2Name}</h3><ul>${team2Players.map(player => `<li>${player}</li>`).join('')}</ul>`;

      // Proceed to batter selection
      batterSelectionSection.classList.remove('hidden');
      initializeBatterSelection();
    });

    // Step 3: Initialize Batter Selection
    function initializeBatterSelection() {
      const allPlayers = [...team1Players, ...team2Players];

      batters.forEach(batter => {
        const row = document.createElement('tr');
        row.innerHTML = `
          <td>${batter}</td>
          <td><select class="player-select"></select></td>
          <td><select class="player-select"></select></td>
          <td><select class="player-select"></select></td>
          <td><select class="player-select"></select></td>
        `;
        batterBody.appendChild(row);

        // Populate dropdowns
        const selects = row.querySelectorAll('.player-select');
        selects.forEach(select => {
          allPlayers.forEach(player => {
            const option = document.createElement('option');
            option.value = player;
            option.textContent = player;
            select.appendChild(option);
          });

          // Disable already selected players
          select.addEventListener('change', (e) => {
            const selectedPlayer = e.target.value;
            if (selectedPlayers.has(selectedPlayer)) {
              alert('Player already selected by another batter!');
              e.target.value = '';
            } else {
              selectedPlayers.add(selectedPlayer);
            }
          });
        });
      });
    }

    // Step 4: Submit Selection
    const submitSelectionBtn = document.getElementById('submit-selection');
    submitSelectionBtn.addEventListener('click', () => {
      runsWicketsSection.classList.remove('hidden');

      // Display Runs and Wickets Input
      runsWicketsBody.innerHTML = '';
      selectedPlayers.forEach(player => {
        const row = document.createElement('tr');
        row.innerHTML = `
          <td>${player}</td>
          <td><input type="number" class="runs" min="0"></td>
          <td><input type="number" class="wickets" min="0"></td>
        `;
        runsWicketsBody.appendChild(row);
      });
    });

    // Step 5: Calculate Scores
    const calculateScoresBtn = document.getElementById('calculate-scores');
    calculateScoresBtn.addEventListener('click', () => {
      scoresBody.innerHTML = '';
      const rows = runsWicketsBody.querySelectorAll('tr');
      rows.forEach(row => {
        const player = row.querySelector('td').textContent;
        const runs = parseInt(row.querySelector('.runs').value) || 0;
        const wickets = parseInt(row.querySelector('.wickets').value) || 0;
        const score = runs + (wickets * 20);

        const scoreRow = document.createElement('tr');
        scoreRow.innerHTML = `
          <td>${player}</td>
          <td>${runs}</td>
          <td>${wickets}</td>
          <td>${score}</td>
        `;
        scoresBody.appendChild(scoreRow);
      });
      scoresSection.classList.remove('hidden');
    });
  </script>
</body>
</html>