﻿function Login(url, idTxtId, idTxtPwd, chkRmbId, idBtnLogin)
{
    var txtId = document.getElementById(idTxtId);
    var txtPwd = document.getElementById(idTxtPwd);
    var chkRmb = document.getElementById(chkRmbId);
    var btnLogin = document.getElementById(idBtnLogin);
    if ((txtId) && (txtPwd) && (chkRmb) && (btnLogin))
    {
        var loginId = txtId.value;
        var password = txtPwd.value;
        var setCookieValue = chkRmb.checked ? "True" : "False";
        if ((loginId != '') && (password != ''))
        {
            if (ValidateEmailAddress(loginId))
            {
                var postData = "{'loginId':'" + loginId.toString() + "','password':'" + password.toString() + "','setCookie':'" + setCookieValue + "'}";
                txtId.disabled = true;
                txtPwd.disabled = true;
                btnLogin.disabled = true;
                var ajaxUrl = url;
                $.ajax({
                    type: "POST",
                    data: postData,
                    dataType: "json",
                    contentType: "application/json",
                    url: ajaxUrl,
                    success: function (data)
                    {
                        if (data.d != '')
                        {
                            if (data.d)
                            {
                                document.location = document.location;
                            }
                            else
                            {
                                txtId.disabled = false;
                                txtPwd.disabled = false;
                                btnLogin.disabled = false;
                            }
                        }
                        else
                        {
                            txtId.disabled = false;
                            txtPwd.disabled = false;
                            btnLogin.disabled = false;
                            alert('Error: Not logged in');
                        }
                    },
                    error: function ()
                    {
                        txtId.disabled = false;
                        txtPwd.disabled = false;
                        btnLogin.disabled = false;
                        alert('Feil ved forsøk på innlogging.\nVennligst kontakt systemansvarlig.');
                    }
                })
            }
            else
            {
                alert("En gyldig e-post adresse må angis.");
            }
        }
        else
        {
            alert('E-post adresse og passord må angis.');
        }
    }
}

function Logout(url, idBtnLogout)
{
    var btnLogout = document.getElementById(idBtnLogout);
    var ajaxUrl = url;
    if (url != "")
    {
        if (btnLogout)
        {
            btnLogout.disabled = true;
        }
        $.ajax({
            type: "POST",
            dataType: "json",
            contentType: "application/json",
            url: ajaxUrl,
            success: function (data)
            {
                document.location = document.location;
            },
            error: function ()
            {
                if (btnLogout)
                {
                    btnLogout.disabled = false;
                }
                alert('En ukjent feil oppstod.\nVennligst kontakt systemansvarlig.');
            }
        })
    }
}

function RequestPassword(url, serverName, rootUrl, idTxtId, idBtnReq)
{
    var btnReq = document.getElementById(idBtnReq);
    var txtId = document.getElementById(idTxtId);
    if ((btnReq) && (txtId))
    {
        var email = txtId.value;
        if ((email != "") && (ValidateEmailAddress(email)))
        {
            btnReq.disabled = true;
            var postData = "{'email':'" + email + "','serverName':'" + serverName + "','rootUrl':'" + rootUrl + "'}";
            var ajaxUrl = url;
            $.ajax({
                type: "POST",
                data: postData,
                dataType: "json",
                contentType: "application/json",
                url: ajaxUrl,
                success: function (data)
                {
                    if (data.d != '')
                    {
                        if (data.d.toLowerCase() == email.toLowerCase())
                        {
                            document.getElementById("divRequestPassword").style.display = "none";
                            document.getElementById("divPasswordRequested").style.display = "block";
                            btnReq.disabled = false;
                        }
                        else
                        {
                            alert("Ukjent e-post adresse");
                            btnReq.disabled = false;
                        }
                    }
                    else
                    {
                        alert("Ukjent e-post adresse");
                        btnReq.disabled = false;
                    }
                },
                error: function ()
                {
                    alert("FEIL");
                    btnReq.disabled = false;
                }
            })
        }
    }
}

function ChangePassword(url, email, idTxtOld, idTxtNew, idTxtRpt, idBtnChg)
{
    var txtOld = document.getElementById(idTxtOld);
    var txtNew = document.getElementById(idTxtNew);
    var txtRpt = document.getElementById(idTxtRpt);
    var btnChg = document.getElementById(idBtnChg);
    if ((ValidateEmailAddress(email)) && (txtOld) && (txtNew) && (txtRpt) && (btnChg))
    {
        var oldPwd = txtOld.value;
        var newPwd = txtNew.value;
        var rptPwd = txtRpt.value;
        if ((oldPwd != "") && (newPwd != "") && (rptPwd != "") && (oldPwd != newPwd) && (newPwd == rptPwd))
        {
            btnChg.disabled = true;
            var postData = "{'email':'" + email + "','oldPassword':'" + oldPwd + "','newPassword':'" + newPwd + "'}";
            var ajaxUrl = url;
            $.ajax({
                type: "POST",
                data: postData,
                dataType: "json",
                contentType: "application/json",
                url: ajaxUrl,
                success: function (data)
                {
                    if (data.d != '')
                    {
                        if (data.d.toLowerCase() == email.toLowerCase())
                        {
                            btnChg.disabled = false;
                            document.getElementById("divChangePassword").style.display = "none";
                            document.getElementById("divPasswordChanged").style.display = "block";
                        }
                        else
                        {
                            alert("Ugyldig passord");
                            btnChg.disabled = false;
                        }
                    }
                    else
                    {
                        alert("Ukjent passord");
                        btnChg.disabled = false;
                    }
                },
                error: function ()
                {
                    alert("FEIL");
                    btnChg.disabled = false;
                }
            })
        }
        else
        {
            // alert("FEIL");
        }
    }
}

function ValidateEmailAddress(eMailAddress)
{
    var eMailOK = false;
    var emRegExp = "([a-z]|[A-Z]|[0-9]|[-]\.[a-z]|[A-Z]|[0-9]|[-])+\@+([a-z]|[A-Z]|[0-9]|[-])+[.]+([a-z]|[A-Z])+";
    var re = new RegExp(emRegExp);
    eMailOK = re.test(eMailAddress);
    return eMailOK;
}

