angular.module('appWrapperDemo')
    .controller('appWrapperDemoController', [
        '$scope',
        '$rootScope',
        '$timeout',
        function($scope, $rootScope, $timeout) {
            $scope.usarTeclado = false;
            $rootScope.$broadcast('usarTeclado', false);
            $scope.mostrarTeclado = false;
            //Envía broadcast para avisar que el teclado está en funcionamiento o no
            //para su uso cambiar ng-click del boton por esta función
            $scope.cambioUsoTeclado = function() {
                if($scope.usarTeclado) {
                    $scope.usarTeclado = false;
                    $rootScope.$broadcast('usarTeclado', false);
                    return;
                }
                $scope.usarTeclado = true;
                $rootScope.$broadcast('usarTeclado', true);
            };

            $rootScope.$on('focus', function() {
                if(!$scope.usarTeclado) {
                    return;
                }
                $scope.mostrarTeclado = true;
                $timeout.cancel($scope.timeout);
                if(!$scope.$$phase) {
                    $scope.$apply();
                }
            });
            $rootScope.$on('blur', function() {
                $scope.timeout = $timeout(function() {
                    $scope.mostrarTeclado = false;
                    if(!$scope.$$phase) {
                        $scope.$apply();
                    }
                }, 150);
            });
        }
    ]);
