<?PHP
/**
 * Functions for forming the HTML output.
 */


/**
 * Prints the head element of an HTML page
 *
 * @param string $page  Name / ID of the current page.
 * @param string $title Title of the page.
 *
 * @return string
 */
function printBackendHead(string $page = "home", string $title = "Home"):string {

    $output = '<!DOCTYPE html>
<html lang="en" id="' . $page . '">
<head>

	<title>' . $title . '</title>
    <link rel="stylesheet" type="text/css" href="themes/imports.css">
    <link rel="stylesheet" type="text/css" href="themes/default/default.css">
    <meta http-equiv="content-type" content="text/html;charset=utf-8">';

    $output .= '
    <meta name="robots" content="none" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />

    <script type="text/javascript" src="./js/newToolTip.js"></script>

</head>
<body>
';

    if (isset($_SESSION['editHistory'])) {
        $output .= "<p class='editLine ".$_SESSION['editHistory'][0]."'>".$_SESSION['editHistory'][1]."</p>";
        unset($_SESSION['editHistory']);
    }

    return $output;

}

/**
 * Prints the header element of an HTML page.
 *
 * @param string $title    Title of the page.
 * @param string $helpText Additional help text for the page. Optional.
 *
 * @return string
 */
function printBackendHeader(string $title = "Home", string $helpText = ""):string {

    $output = '

        <header id="mainHeader">

            <span id="toggleNavigation"></span>
            <h1>' . $title . '</h1>
            <span>
                <span id="toggleTextBlocks"></span>';
    if ($helpText) $output .= '
                <span class="newToolTipTag" data-for="pageHelp" id="helpText">
                    <span>?</span>
                    <div class="newToolTip" id="tooltip_pageHelp" data-title="' . $title . '">
                        ' . $helpText . '
                    </div>
                </span>';
    $output .= '
                <span id="uploadFile"></span>
            </span>

        </header>
    ';

    return $output;

}

/**
 * Returns HTML code for a help icon and its attached tooltip.
 *
 * @param string $tooltipName Name / ID of the tooltip to generate.
 * @param string $title       Title to print in the tooltip.
 * @param string $helpText    Text to print into the tooltip.
 *
 * @return string
 */
function generateHelpToolTip(string $tooltipName, string $title, string $helpText):string {
    $output = '
                <span class="newToolTipTag helpToolTip" data-for="' . $tooltipName . '">
                    <div class="newToolTip" id="tooltip_' . $tooltipName . '" data-title="' . $title . '">
                        ' . $helpText . '
                    </div>
                </span>';
    return $output;
}

/**
 * Prints the navigation for the backend.
 *
 * @param string[]  $translations Translation variable.
 * @param integer[] $numbers      Count of the given values.
 *
 * @return string
 */
function printBackendNav(array $translations, $numbers = []):string {

    $output = '

        <nav id="mainNav">

            <div>
                <span>' . $translations['edit'] . '</span>
                <div>
                    <a href=".">' . $translations['start'] . '</a>
                </div>
                <div>
                    <a href="pages.php">' . $translations['pages'] . '</a>
                    <a href="page.php"> + </a>';
    if (isset($numbers['pages'])) $output .= '
                    <a href="users.php#listUsers">' . $numbers['pages'] . '</a>';
    $output .= '
                </div>
                <div>
                    <a href="fileUpload.php">' . $translations['fileUpload'] . '</a>
                </div>
            </div>
            <div>
                <span>' . $translations['administration'] . '</span>
                <div>
                    <a href="users.php#listUsers">' . $translations['users'] . '</a>
                    <a href="users.php#addUser"> + </a>';
    if (isset($numbers['users'])) $output .= '
                    <a href="users.php#listUsers">' . $numbers['users'] . '</a>';
    $output .= '
                </div>
            </div>

        </nav>
    ';

    return $output;

}

/**
 * Prints the finishing elements of an HTML page.
 *
 * @return string
 */
function printBackendEnd():string {

    $output = '
</body>
</html>';

    return $output;

}

?>