Random Story button tries to generate story 1-1000

The “Random Story” button tries to generate story 1-1000

argentina.html

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Stories</title>
    <link rel="stylesheet" href="../CSS/usa.css">
</head>
<body>
    <header>
        <h1>Stories</h1>
    </header>
    <main>
        <div id="content-wrapper">
            <div id="get-container">
                <input type="text" id="story-number" placeholder="Enter story number">
                <button id="get" type="button">Get Story</button>
                <button id="getRandom" type="button">Random Story</button>
            </div>
            <div id="story-container">
                <!-- Story content will be displayed here -->
                <div id="generated-text"></div>
                <button id="clear">Clear</button>
            </div>
        </div>
    </main>
    <script src="Scripts/argentina.js"></script>
</body>
</html>ript src="Scripts/argentina.js"></script>
</body>
</html>

argentina.js

document.addEventListener('DOMContentLoaded', function () {
    var totalStories = 1000;
    var currentStory = null;
    var storyContainer = document.getElementById('story-container');
    var contentWrapper = document.getElementById('content-wrapper');
    var storyNumberInput = document.getElementById('story-number');
    var getButton = document.getElementById('get');
    var getRandomButton = document.getElementById('getRandom');
    var clearButton = document.getElementById('clear');

    function clearStoryContainer() {
        if (storyContainer) {
            storyContainer.style.display = 'none';
            var generatedTextElement = document.getElementById('generated-text');
            if (generatedTextElement) {
                generatedTextElement.innerHTML = '';
            }
            if (contentWrapper) {
                contentWrapper.style.marginTop = '0px';
            }
            currentStory = null;
            storyNumberInput.value = ''; // Clear the input text
        }
    }

    function fetchStory(storyNumber) {
        clearStoryContainer();
        var xhr = new XMLHttpRequest();
        xhr.open('GET', 'PHP/argentina.php?story=' + storyNumber, true);
        xhr.onload = function () {
            if (xhr.status === 200) {
                if (storyContainer) {
                    storyContainer.style.display = 'block';
                    var generatedText = xhr.responseText;
                    var generatedTextElement = document.getElementById('generated-text');
                    if (generatedTextElement) {
                        generatedTextElement.innerHTML = parseAndStyleTitles(generatedText);
                    } else {
                        console.log('Generated text element not found.');
                    }
                    if (contentWrapper) {
                        contentWrapper.style.marginTop = '0';
                    }
                    currentStory = storyNumber;
                } else {
                    console.log('Story container element not found.');
                }
            } else {
                console.log('Error fetching story. Status code: ' + xhr.status);
                clearStoryContainer();
                if (xhr.status === 404) {
                    displayErrorMessage('Please enter a valid number between 1 and ' + totalStories + '.');
                } else {
                    displayErrorMessage('Error fetching story.');
                }
            }
        };
        xhr.onerror = function () {
            console.log('Network error while fetching story.');
            clearStoryContainer();
            displayErrorMessage('Network error while fetching story.');
        };
        xhr.send();
    }

    function displayErrorMessage(errorMessage) {
        if (storyContainer) {
            storyContainer.style.display = 'block';
        }
        var generatedTextElement = document.getElementById('generated-text');
        if (generatedTextElement) {
            generatedTextElement.innerHTML = errorMessage;
        }
        if (contentWrapper) {
            contentWrapper.style.marginTop = '60px';
        }
        currentStory = null;
    }

    function parseAndStyleTitles(text) {
        return text.replace(/[[(.*?)]]/g, function (match, title) {
            return '<span>' + title + '</span>';
        });
    }

    getButton.addEventListener('click', function () {
        var storyNumber = parseInt(storyNumberInput.value);

        if (!isNaN(storyNumber) && storyNumber >= 1 && storyNumber <= totalStories) {
            fetchStory(storyNumber);
        } else {
            displayErrorMessage('Please enter a valid number between 1 and ' + totalStories + '.');
        }
    });

    getRandomButton.addEventListener('click', function () {
        var randomStoryNumber = Math.floor(Math.random() * totalStories) + 1;
        fetchStory(randomStoryNumber);
    });

    clearButton.addEventListener('click', function () {
        clearStoryContainer();
    });

    storyNumberInput.addEventListener('keyup', function (event) {
        if (event.key === 'Enter') {
            getButton.click();
        }
    });
});

argentina.php

<?php
// Read the requested story number from the URL parameter
$storyNumber = $_GET['story'];

// Read the content of argentina.txt (relative to the location of this PHP file)
$storiesFile = file_get_contents('../../Stories/argentina.txt');

// Split the content into stories based on the unique delimiter (<!-- Unique delimiter separating stories -->)
$stories = preg_split('/<!-- Unique delimiter separating stories -->/', $storiesFile);

// Determine the actual number of stories
$actualTotalStories = count($stories);

if ($storyNumber >= 1 && $storyNumber <= $actualTotalStories) {
    // Check if the requested story exists
    $requestedStory = trim($stories[$storyNumber - 1]);
    $formattedStory = nl2br($requestedStory);
    echo $formattedStory;
} else {
    echo 'Error: Story not found.';
}
?>

I want to have it set to 1000 in the JavaScript because that’s the amount of stories that will be added in the end. But when I have 5 stories in the argentina.txt file I want the code to read 1-5, then when I add a new story I want it to read 1-6, etc.

How could I make this work? Would really appreciate some help on this!