<?php


function initRouter(): bool
{
    global $routerRequest;
    global $routerConfig;

    $routerRequest["requestAddress"] = array_slice(explode('.', $_SERVER['HTTP_HOST']), -3, 3); //get the last 3 elements

    $needsRedirect = false;

    if(count($routerRequest["requestAddress"]) < 3){
        // Root domain accessed directly
        $needsRedirect = true;

        $routerRequest["subdomain"] = $routerConfig["default_site"];
        $routerRequest["domain"] = basename($routerRequest["requestAddress"][0]);
        $routerRequest["tld"] = basename($routerRequest["requestAddress"][1]);

    } else {
        $routerRequest["subdomain"] = basename($routerRequest["requestAddress"][0]);
        $routerRequest["domain"] = basename($routerRequest["requestAddress"][1]);
        $routerRequest["tld"] = basename($routerRequest["requestAddress"][2]);

        $routerRequest["page_name"] = basename($_SERVER["QUERY_STRING"]);

        if (empty($routerRequest["page_name"])) {
            // Page name is empty
            $needsRedirect = true;
            $routerRequest["page_name"] = $routerConfig["default_page"];
        }
    }

    if ($needsRedirect) {
        $redirectAddress = $routerConfig["protocol"] .
            $routerRequest["subdomain"] . "." .
            $routerRequest["domain"] . "." .
            $routerRequest["tld"] . "/" .
            $routerRequest["page_name"];
        // Redirect with default page name
        header("Location: $redirectAddress");
    }
    else{
        if($_SERVER["REQUEST_METHOD"] == "POST"){
            $routerRequest["type"] =  "api";
        }
        if(empty($routerRequest["type"])){
            $routerRequest["type"] = "page";
        }
    }

    return !$needsRedirect;
}