﻿function LoginDialog() {
    
    $('select, object, embed, #flashcontent, .youtube').hide();

    var screenH = $(window).height();
    var screenW = $(window).width();
    var loginW = $("div.loginPopup").width();
    var loginH = $("div.loginPopup").height();

    $("div.loginOverlay").show();

    $("div.loginPopup").css("top", (screenH / 3) - (loginH / 2) + "px");
    $("div.loginPopup").css("left", (screenW / 2) - (loginW / 2) + "px");
    $("div.loginPopup").show();

    $("div.loginPopup input:text:first").focus();
    $("div.loginPopup input:text:first").keydown(LoginDialog_OnKeyDown);
    $("div.loginPopup input:password:first").keydown(LoginDialog_OnKeyDown);
    $("div.loginPopup input:checkbox:first").keydown(LoginDialog_OnKeyDown);
    
    return false;
}

function LoginCloseDialog() {
    $('select, object, embed, #flashcontent, .youtube').show();
    $("div.loginPopup").hide();
    $("div.loginOverlay").hide();
    return false;
}

function DoLogin() {
    var userName = $("div.loginPopup input:text:first").val();
    var password = $("div.loginPopup input:password:first").val();
    var autoLogin = $("div.loginPopup input:checkbox:first").attr("checked");
    if (autoLogin == null) autoLogin = false;
    Sys.Net.WebServiceProxy.invoke
    (
        CommonServices,
        'LoginUser',
        false,
        {"UserName":userName, "Password":password, "autoLogin":autoLogin},
        function(res) {
            if (res == "OK") {
                LoginCloseDialog();
                document.location.reload();
            }
            else {
                $("div.loginPopup div.errorMessage").html(res + "<br/><br/>");
            }
        },
        function(err) { alert("Tekniskt fel"); }
    );
/*
    ws.CommonServices.LoginUser(userName, password, autoLogin,
                    function(res) {
                        if (res == "OK") {
                            LoginCloseDialog();
                            document.location.reload();
                        }
                        else {
                            $("div.loginPopup div.errorMessage").html(res + "<br/><br/>");
                        }
                    }
                    , function(err) {
                        alert("error 1\n" + err._message);
                    }
                    , function(err) {
                        alert("error 2\n" + err._message);
                    }
                );
                */
    return;
}

function LoginDialog_OnKeyDown(e) {
    var inputType = $(this).attr("type").toLowerCase();

    if (e.which == 9 || e.which == '\t') {
        if (inputType == "text") {
            $("div.loginPopup input:password:first").focus();
        }
        else {
            if (inputType == "password") {
                $("div.loginPopup input:checkbox:first").focus();
            }
            else {
                $("div.loginPopup input:text:first").focus();
            }
        }
        return false;
    }

    if (e.which == 27) {
        LoginCloseDialog();
        return false;
    }

    if (e.which == 13) {
        if (inputType == "text") {
            $("div.loginPopup input:password:first").focus();
            return false;
        }
        else {
            DoLogin();
            return false;
        }

    }
    return true;
}


function LogoutUser() {
    Sys.Net.WebServiceProxy.invoke
    (
        CommonServices,
        'Logoutuser',
        false,
        null,
        function(res) { document.location.reload(); },
        function(err) {}
    );
    
    /*    
    ws.CommonServices.LogoutUser(
                    function(res) {
                        document.location.reload();
                    }
                    , function(err) {
                        alert("error 1\n" + err._message);
                    }
                    , function(err) {
                        alert("error 2\n" + err._message);
                    }
                );
    */
    return;
}
