/* Minification failed. Returning unminified contents.
(2,22): run-time error CSS1031: Expected selector, found '='
(2,22): run-time error CSS1025: Expected comma or open brace, found '='
(3,29): run-time error CSS1031: Expected selector, found '='
(3,29): run-time error CSS1025: Expected comma or open brace, found '='
(4,25): run-time error CSS1031: Expected selector, found '='
(4,25): run-time error CSS1025: Expected comma or open brace, found '='
(5,23): run-time error CSS1031: Expected selector, found ';'
(5,23): run-time error CSS1025: Expected comma or open brace, found ';'
(6,27): run-time error CSS1031: Expected selector, found ';'
(6,27): run-time error CSS1025: Expected comma or open brace, found ';'
(8,10): run-time error CSS1031: Expected selector, found 'initSession('
(8,10): run-time error CSS1025: Expected comma or open brace, found 'initSession('
(17,10): run-time error CSS1031: Expected selector, found 'sessao_SetIntervalo('
(17,10): run-time error CSS1025: Expected comma or open brace, found 'sessao_SetIntervalo('
(22,10): run-time error CSS1031: Expected selector, found 'sessao_LimpaIntervalo('
(22,10): run-time error CSS1025: Expected comma or open brace, found 'sessao_LimpaIntervalo('
(26,10): run-time error CSS1031: Expected selector, found 'sessao_TeclaPressionada('
(26,10): run-time error CSS1025: Expected comma or open brace, found 'sessao_TeclaPressionada('
(30,10): run-time error CSS1031: Expected selector, found 'sessao_LogOut('
(30,10): run-time error CSS1025: Expected comma or open brace, found 'sessao_LogOut('
(34,10): run-time error CSS1031: Expected selector, found 'sessaoIntervalo('
(34,10): run-time error CSS1025: Expected comma or open brace, found 'sessaoIntervalo('
 */
//classe que contém os métodos responsáveis pelo controle de sessão do usuario logado
var sessao_Intervalo = 6000;
var sessao_expiracaoMinutos = 5;
var sessao_avisoMinutos = 3;
var sessao_intervaloID;
var sessao_ultimaAtividade;

function initSession() 
{
    sessao_ultimaAtividade = new Date();
    sessao_SetIntervalo();
    $(document).bind('keypress.session', function (ed, e) {
        sessao_TeclaPressionada(ed, e);
    });
}

function sessao_SetIntervalo() 
{
    sessao_intervaloID = setInterval('sessaoIntervalo()', sessao_Intervalo);
}

function sessao_LimpaIntervalo() {
    clearInterval(sessao_intervaloID);
}

function sessao_TeclaPressionada(ed, e) {
    sessao_ultimaAtividade = new Date();
}

function sessao_LogOut() {
    window.location.href = 'User/LogOut';
}

function sessaoIntervalo() 
{
    var now = new Date();
    //obtem a diferença de tempo em milisegundos
    var diferencaMilisegundos = now - sessao_ultimaAtividade;
    //obtem o tempo em minutos
    var diferencaMinutos = (diferencaMilisegundos / 1000 / 60);

    if (diferencaMinutos >= sessao_avisoMinutos) 
    {
        //emite o aviso de expiração
        //para o timer
        sessao_LimpaIntervalo();
        //mensagem de alerta
        var ativar = confirm('A sua sessão irá expirar em ' + (sessao_expiracaoMinutos - sessao_avisoMinutos) +
        ' minutos, pressione OK para permanecer logado ' +
        'ou pressione Cancel para fazer o log off. \nAo se desconetar seus dados da sessão serão perdidos.');
        if (ativar == true) {
            now = new Date();
            diferencaMilisegundos = now - sessao_ultimaAtividade;
            diferencaMinutos = (diferencaMilisegundos / 1000 / 60);

            if (diferencaMinutos > sessao_expiracaoMinutos) {
                sessao_LogOut();
            }
            else {
                initSession();
                sessao_SetIntervalo();
                sessao_ultimaAtividade = new Date();
            }
        }
        else {
            sessao_LogOut();
        }
    }
}
