(function () {
    'use strict';

    angular
        .module('app')
        .controller('ConfiguracaoVisualizacaoController', ConfiguracaoVisualizacaoController);

    ConfiguracaoVisualizacaoController.$inject = ['$scope', '$interval', '$location', 'Consulta', 'Comando', 'CompartilharScope', 'GlobalVariable', 'UtilService', '$rootScope'];

    function ConfiguracaoVisualizacaoController($scope, $interval, $location, Consulta, Comando, CompartilharScope, GlobalVariable, UtilService, $rootScope) {

        $scope.ConfiguracaoVisualizacao;
        $scope.CodigoPainel = 0;
        $scope.TempoReal = 0;

        $scope.Previsoes = [
            { name: "Chegadas", value: 1 },
            { name: "Saídas", value: 0 }
        ]

        $scope.$watch('ConfiguracaoVisualizacao', function (newV, oldV) {
            if (newV != oldV && oldV)
                $rootScope.Alterado = true;
        }, true);

        function successCallBack(data) {
            if (data.data.TempoPaginacao) data.data.TempoPaginacao = new Date(data.data.TempoPaginacao);
            $scope.ConfiguracaoVisualizacao = data.data;
            $scope.ConfiguracaoVisualizacao.ConsiderarEnlaces = data.data.ConsiderarEnlaces.toString();
            if ($scope.ConfiguracaoVisualizacao.ExibirDoisPontos) $scope.TempoReal = 1

            CompartilharScope.getScope('PainelFinalServiceController').TempoPaginacao = UtilService.getMillisecondsFromDate(data.data.TempoPaginacao);

            $rootScope.Alterado = false;
        }

        function errorCallBack(error) {
        }

        $scope.CodigoPainel = GlobalVariable.getPainelFinal();

        if ($scope.CodigoPainel && $scope.CodigoPainel != 0)
            Consulta.CarregarConfiguracaoVisualizacaoPorCodigoPainel($scope.CodigoPainel, successCallBack, errorCallBack);

        $scope.SalvarConfiguracaoVisualizacao = function () {

            $scope.ConfiguracaoVisualizacao.ExibirChegadaPrevisao = $scope.TempoReal;

            if ($scope.ConfiguracaoVisualizacao.ExibirTempoReal == 0)
                $scope.ConfiguracaoVisualizacao.IconeTempoReal = false;

            $scope.ConfiguracaoVisualizacao.CodigoPainel = $scope.CodigoPainel;
            Comando.SalvarConfiguracaoVisualizacao($scope.ConfiguracaoVisualizacao, successCallBack, errorCallBack);

        }

        CompartilharScope.addScope("ConfiguracaoVisualizacaoController", $scope);
    }
})();
