(function () {
    "use strict";

    angular.module('pos').factory('licencaService', factory);
    factory.$inject = [];

    function factory() {
        var logado;
        //0 - Licença ok; 2 - Licença em véspera de expiração; 3 - Licença expirada
        var mensagens = [{ status: 0 },
                         { status: 1, mensagem: "A sua licença está expirando", subMensagem: "Esta loja precisa ativar a licença", icone: "update" },
                         { status: 2, mensagem: "Esta loja precisa ativar a licença", subMensagem: "Licença expirada", icone: "pan_tool" }
        ];



        var _setarLicenca = function (status, mensagem, expirado) {
            localStorage.setItem("status", status);

            var mensagem = _setarMensagem(mensagem);

            _setarSubMensagem(mensagem);
        };

        var _buscarLicenca = function () {
            return localStorage.status;
        };

        var _destruirLicenca = function () {
            localStorage.setItem("status", "");
            localStorage.setItem("subMensagem", "");
            localStorage.setItem("mensagem", "");
            localStorage.setItem("logado", "");
        };

        var _mensagemLicenca = function () {
            var indice = _getIndice(_buscarLicenca());

            //Altera mensagem default
            if (localStorage.mensagem && localStorage.mensagem != "")
                mensagens[indice].mensagem = localStorage.mensagem;

            if (localStorage.subMensagem && localStorage.subMensagem != "")
                mensagens[indice].subMensagem = localStorage.subMensagem;

            mensagens[indice].logado = _visualizacaoLicenca();

            return mensagens[indice];
        };

        var _exibirLicenca = function () {
            localStorage.setItem("logado", "1");
        }

        var _suprimirLicenca = function () {
            localStorage.setItem("logado", "0");
        }

        var _visualizacaoLicenca = function () {
            return localStorage.logado;
        }



        //Inicio Private
        var _setarMensagem = function (mensagem) {
            if (mensagem) {
                mensagem = mensagem.replace("em 0 dias", "hoje")
                localStorage.setItem("mensagem", mensagem);
            }
            else
                localStorage.setItem("mensagem", "");
            return mensagem;
        }

        var _setarSubMensagem = function (mensagem, expirado) {
            if (expirado || expirado == "0")
                localStorage.setItem("subMensagem", mensagem);
            else
                localStorage.setItem("subMensagem", "");
        }

        var _getIndice = function (licenca) {
            var indice = 0;

            switch (licenca) {
                case "1":
                    indice = 1;
                    break;
                case "-2":
                    indice = 2;
                    break;
            }

            return indice;
        }
        //Fim Private


        return {
            setarLicenca: _setarLicenca,
            buscarLicenca: _buscarLicenca,
            destruirLicenca: _destruirLicenca,
            mensagemLicenca: _mensagemLicenca,
            exibirLicenca: _exibirLicenca,
            suprimirLicenca: _suprimirLicenca,
            visualizacaoLicenca: _visualizacaoLicenca,
        };
    }

})();