"use strict";

let main, windows;
let defaultLocation = '/welcome';

function createWelcomeWindow() {
    let win = document.createElement("div");
    win.id = "welcome-win";

    win.innerHTML = `
        <h1>Welcome to Locutus!</h1>
        <a href="#/login">Login</a>`;

    while (windows.lastChild) windows.removeChild(windows.lastChild);
    windows.appendChild(win);
}

function createLoginWindow() {
    let win = document.createElement("div");
    win.id = "login-win";

    win.innerHTML = `
        <h1>Login to USIMP Account</h1>
        <form>
            <input name="account" placeholder="Account name" type="text"/>
            <input name="domain" placeholder="Domain" type="text"/>
            <input name="password" placeholder="Password" type="password"/>
        </form>`;

    while (windows.lastChild) windows.removeChild(windows.lastChild);
    windows.appendChild(win);
}

function handleHash(hash) {
    if (hash[0] === '#') hash = hash.substr(1);
    if (hash === '') hash = defaultLocation;

    switch (hash) {
        case "/welcome": createWelcomeWindow(); break;
        case "/login": createLoginWindow(); break;
        default:
            console.error(`Invalid url hash "${hash}"`);
            hash = defaultLocation;
            break;
    }

    let url = new URL(document.URL);
    url.hash = hash;
    location.href = url.toString();
}

function handleUrl(url) {
    let hash = new URL(url).hash;
    if (hash === '') {
        history.replaceState(null, null, `#${defaultLocation}`);
        hash = defaultLocation;
    }
    handleHash(hash);
}

window.addEventListener("load", function () {
    main = document.getElementsByTagName("main")[0];
    windows = document.getElementById("windows");

    // Remove <noscript> tag
    document.getElementsByTagName("noscript")[0].remove();

    handleUrl(document.URL)
});

window.addEventListener("hashchange", function (evt) {
    handleUrl(evt.newURL);
});
