(function () {
    'use strict';
    angular
        .module('controleApp')
        .controller('editaralertaController', editaralertaController);

    editaralertaController.$inject = ['$scope', 'Comando', '$routeParams', 'Consulta', '$location'];

    function editaralertaController($scope, Comando, $routeParams, Consulta, $location) {
        /*jshint validthis:true*/
        this.toggleModal = {};
        this.notificationMessages = {};

        $scope.CodigoAlerta = $routeParams.id;
        var confirm = false;

        $scope.EditarAlerta = EditarAlerta;
        $scope.RedirecionarAlertas = RedirecionarAlertas;

        function RedirecionarAlertas() {
            $location.path("/Controle" + $scope.editaralertaCtrl.toggleModal.redirectMensagem);
            confirm = true;
        }

        $scope.$on('$locationChangeStart', function (event, next, current) {
            if (next != current && !confirm) {
                $scope.editaralertaCtrl.toggleModal.sairSemSalvarAlerta(next.split('Controle')[1]);
                event.preventDefault();
            }
            confirm = false;
        });

        function CarregarAlertaPorCodigo() {
            $(".loading-div").fadeIn();
            Consulta.CarregarAlertaPorCodigo($scope.CodigoAlerta, function (data) {
                if (data && data.data) {
                    $scope.editaralertaCtrl.Alerta = data.data;
                } else {
                    $scope.showError("Ocorreu algum erro ao buscar a mensagem r�pida.");
                }
                $(".loading-div").fadeOut();
            }, function (error) {
                $scope.showError(error.statusText);
            });
        }

        function EditarAlerta() {
            var obj = {
                Codigo: $scope.editaralertaCtrl.Alerta.Codigo,
                DataInsercao: $scope.editaralertaCtrl.Alerta.DataInsercao,
                Critico: $scope.editaralertaCtrl.Alerta.Critico ? $scope.editaralertaCtrl.Alerta.Critico : "0",
                Descricao: $scope.editaralertaCtrl.Alerta.Descricao,
                ClasseIcone: $scope.iconClass ? $scope.iconClass : $scope.editaralertaCtrl.Alerta.ClasseIcone
            };
            if ((obj.Critico && obj.Critico !== 0) && obj.Descricao && obj.ClasseIcone) {
                $(".loading-div").fadeIn();

                Comando.SalvarAlerta(obj, function (data) {
                    if (data.data.IsSucesso) {
                        localStorage.setItem("MensagemSucesso", data.data.Mensagem);
                        confirm = true;
                        $location.path("/Controle/Alertas");
                    } else {
                        $scope.showError(data.data.Mensagem);
                        $(".loading-div").fadeOut();
                    }
                }, function (error) {
                    $scope.showError(error.statusText);
                });

            } else {
                $scope.showWarning("Existem campos obrigatórios não preenchidos, por favor, preencha todos os campos obrigatórios!");
            }
        }

        CarregarAlertaPorCodigo();
    }

})();
