﻿var RolesProvider = function()
{
    var _fUserInfoRetrieved = false;
    var _userInfo = {
        Username: '',
        FirstName: '',
        LastName: '',
        EmailAddress: ''
    };

    function _getUserInfo(aAttr)
    {
        var attr = aAttr || {
            onSuccess: null
        };

        _fUserInfoRetrieved = true;
        $.ajax({
            type: 'POST',
            url: '/RolesProviderService.asmx/GetUserInfo',
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            data: "{}",
            success: function(d)
            {
                var msg = d.d;
                _userInfo = msg;
                if (attr.onSuccess != null)
                {
                    attr.onSuccess(_userInfo);
                }
            },
            error: function(xhr, msg)
            {
                _userInfo = {
                    Username: '',
                    FirstName: '',
                    LastName: '',
                    EmailAddress: ''
                };
                _fUserInfoRetrieved = false;
            }
        });
    }

    return {
        getUserInfo: _getUserInfo,
        userName: _userInfo.Username,
        isLoggedIn: function()
        {
            if (_userInfo.Username.length > 0)
                return true;
        }
    }
} ();