﻿App.module("login", function (exports, require) {

    var App = require("app");
    var Utils = require("utils");
    var $ = require("jQuery");

    App.addActions({
        login: LoginAction,
        logout: LogoutAction
    });

    function LoginAction($el) {
        Utils.formPost("login", $el, function (response, formValues) {
            App.displayInfo("logging you in...");
            try {
                SSOLogin(
                    formValues.Username,
                    formValues.Password,
                    AppSettings.SessionDuration,
                    null, // return url
                    AppSettings.ConnectSSOHandler,
                    null, // begin callback
                // we really dont care if sso login succeeds, they are already loggen in on our site
                    function () { window.location.reload(); }, // error callback
                    function () { window.location.reload(); } // timeout callback
                );
            } catch (e) {
                window.location.reload();
            }

            // hard timeout to reload the page
            // if sso login takes to long force reload.
            setTimeout(function () {
                window.location.reload();
            }, 40 * 1000);

        });
    }

    function LogoutAction($el) {
        App.log("logout");
        App.post("logout", {}, function (err, data) {
            if (err) {
                if (err) return App.displayError(err, $el.closest(".error-message"));
                return;
            }
            App.displayInfo("logging you out...");
            try {
                SSOLogout(
                    data.url, // success url
                    null, // begin callback
                    function () { window.location = data.url; } // timeout callback
                );
            } catch (e) {
                window.location = data.url;
            }

            // hard timeout to reload the page
            // if sso logout takes to long force reload.
            setTimeout(function () {
                window.location = data.url;
            }, 40 * 1000);

        });
    }
});
