const form = document.getElementById("form");
form.addEventListener('submit',  formHandler);

const form_status = document.getElementById("formStatus");

const button = document.getElementById("button");
button.addEventListener('submit', formHandler);

async function formHandler(listener) {
    listener.preventDefault();
    const formData = new FormData(form);
    const pass = formData.get("pass");

    if (pass !== formData.get("confirm")) {
        form_status.innerHTML = `<span style='background-color: red; color: white'>Passwords don't match</span>`;
        return;
    }


    const urlParam = new URLSearchParams(new URL(window.location.href).search);
    const auth = urlParam.get("auth");

    // if there is no auth value then return here
    if(!auth){
        return;
    }

    const user = formData.get("user");
    const body = {auth: auth, user: user, pass: pass};

    let url = 'https://api.account.skynet.ie/ldap/new/account';
    let req;

    try {
        req = await fetch(url, {
            method: 'POST',
            body: JSON.stringify(body),
            mode: "cors"
        });
    } catch (e) {
        form_status.innerHTML = `<span style='background-color: red; color: white'>${e}</span>`;
        return;
    }

    if (req.status !== 200) {
        form_status.innerHTML = "<span style='background-color: red; color: white'>Failure</span>";
        return;
    }

    let temp = await req.json();
    if (temp.result === 'error') {
        form_status.innerHTML = `<span style='background-color: red; color: white'>${temp.error}</span>`;
    } else {
        form_status.innerHTML = "<span style='background-color: green; color: white'>Success</span>";
    }
}