var noPermissionPageModule = angular.module('app.noPermissionPage', [])
    .run(['$log', function ($log) {
        $log.debug('app.noPermissionPage.run()...');
    }])
    .config(['$controllerProvider', '$compileProvider', '$filterProvider', '$provide', 'scriptDependencyProvider', '$stateProvider', '$urlRouterProvider',
        function ($controllerProvider, $compileProvider, $filterProvider, $provide, scriptDependencyProvider, $stateProvider, $urlRouterProvider) {
            'use strict';


            // this is required to add controller/directive/filter/service after angular bootstrap
            bindModule(noPermissionPageModule, $controllerProvider, $compileProvider, $filterProvider, $provide);


            $stateProvider.state({
                name: 'noPermissionPage',
                url: '/noPermissionPage',
                views: {
                    '@': {
                        controller: ['$scope', '$stateParams', 'appTranslation',
                       function ($scope, $stateParams, appTranslation) {
                           appTranslation.load([appTranslation.noPermissionPage]);
                       }],
                        template: '<no-permission-page></no-permission-page>'
                    }
                },
                resolve: scriptDependencyProvider.createDependenciesMap(scriptDependencyProvider.noPermissionPage),
                deepStateRedirect: true,
                sticky: true
            });
        }]);

var taxDocumentManageModule = angular.module('app.taxDocumentManage', ['ui.grid', 'ui.grid.selection', 'ui.grid.moveColumns'
    , 'ui.grid.grouping', 'ui.grid.expandable', 'ui.grid.treeView', 'ui.grid.exporter', 'ui.grid.resizeColumns'
    , 'mc.resizer', 'ui.select', 'ngSanitize', 'ui.grid.edit', 'perfect_scrollbar', 'dx', 'ui.grid.pinning'])
    .run(['$log', function ($log) {
        $log.debug('app.taxDocumentManage.run()...');
    }])
    .config(['$controllerProvider', '$urlRouterProvider', '$compileProvider', '$filterProvider', '$provide', '$stateProvider', 'uiSelectConfig', 'scriptDependencyProvider',
        function ($controllerProvider, $urlRouterProvider, $compileProvider, $filterProvider, $provide, $stateProvider, uiSelectConfig, scriptDependencyProvider) {
            'use strict';
            // this is required to add controller/directive/filter/service after angular bootstrap
            bindModule(taxDocumentManageModule, $controllerProvider, $compileProvider, $filterProvider, $provide);

            //uiSelectConfig.theme = 'select2';

            //$urlRouterProvider.when('/taxDocumentManage', '/taxDocumentManage/document-manage/documentManage');


            //$stateProvider.state({
            //    name: 'taxDocumentManage',
            //    url: '/taxDocumentManage',
            //    cache: false,
            //    views: {
            //        '@': {
            //            controller: ['$scope', '$stateParams', 'appTranslation',
            //                function ($scope, $stateParams, appTranslation) {
            //                    appTranslation.load([appTranslation.cit]);
            //                }],
            //            template: '<document-manage></document-manage>',
            //        }
            //    },
            //    resolve: scriptDependencyProvider.createDependenciesMap(scriptDependencyProvider.taxDocumentManage), //???
            //    deepStateRedirect: true,
            //    sticky: true
            //});

        }]);


var taxTaskManageModule = angular.module('app.taxTaskManage', ['ui.grid', 'ui.grid.selection', 'ui.grid.moveColumns'
    , 'ui.grid.grouping', 'ui.grid.expandable', 'ui.grid.treeView', 'ui.grid.exporter', 'ui.grid.resizeColumns'
    , 'mc.resizer', 'ui.select', 'ngSanitize', 'ui.grid.edit', 'perfect_scrollbar', 'dx', 'ui.grid.pinning'])
    .run(['$log', function ($log) {
        $log.debug('app.taxTaskManage.run()...');
    }])
    .config(['$controllerProvider', '$urlRouterProvider', '$compileProvider', '$filterProvider', '$provide', '$stateProvider', 'uiSelectConfig', 'scriptDependencyProvider',
        function ($controllerProvider, $urlRouterProvider, $compileProvider, $filterProvider, $provide, $stateProvider, uiSelectConfig, scriptDependencyProvider) {
            'use strict';
            // this is required to add controller/directive/filter/service after angular bootstrap
            bindModule(taxTaskManageModule, $controllerProvider, $compileProvider, $filterProvider, $provide);

            $stateProvider.state({
                name: 'taxTaskManage',
                url: '/taxTaskManage?{code:string}',
                cache: false,
                views: {
                    '@': {
                        controller: ['$scope', '$stateParams', 'appTranslation',
                            function ($scope, $stateParams, appTranslation) {
                                console.log("taxTaskManageModule $stateParams:" + $stateParams.code);
                                $scope.code = $stateParams.code;
                                console.log("taxTaskManageModule $scope.code:" + $scope.code);
                                appTranslation.load([appTranslation.cit]);
                            }],
                        template: '<tax-task-manage code="code"></tax-task-manage>',
                    }
                },
                resolve: scriptDependencyProvider.createDependenciesMap(scriptDependencyProvider.taxTaskManage),
                deepStateRedirect: false,
                sticky: false
            });
        }]);

var dataImportModule = angular.module('app.dataImport', [])
    .run(['$log', function ($log) {
        $log.debug('app.dataImport.run()...');
    }])
    .config(['$controllerProvider', '$compileProvider', '$filterProvider', '$provide', 'scriptDependencyProvider', '$stateProvider', '$urlRouterProvider',
        function ($controllerProvider, $compileProvider, $filterProvider, $provide, scriptDependencyProvider, $stateProvider, $urlRouterProvider) {
            'use strict';

            // this is required to add controller/directive/filter/service after angular bootstrap
            bindModule(dataImportModule, $controllerProvider, $compileProvider, $filterProvider, $provide);

            $stateProvider.state({
                name: 'GlobalDataImportLayout',
                url: '/globalDataImportLayout',
                template: '<div global-data-import-layout></div>',
                controller: ['$scope', '$stateParams', 'appTranslation', function ($scope, $stateParams, appTranslation) {
                    appTranslation.load([appTranslation.appPart]);
                }],
                resolve: scriptDependencyProvider.createDependenciesMap(scriptDependencyProvider.dataImport),
                deepStateRedirect: true,
                sticky: true
            });

            $stateProvider.state({
                name: 'GlobalDataImportView',
                url: '/globalDataImportView',
                params: {
                    "organization": null,
                    "dataType": null,
                    "periodYear": null,
                    "periodMonth": null,
                    "project": null,
                    "isBatchImport": null
                },
                template: '<div global-data-import-view="stateParams"></div>',
                controller: ['$scope', '$stateParams', 'appTranslation', function ($scope, $stateParams, appTranslation) {
                    appTranslation.load([appTranslation.appPart]);
                    $scope.stateParams = $stateParams;
                }],
                resolve: scriptDependencyProvider.createDependenciesMap(scriptDependencyProvider.dataImport),
                deepStateRedirect: true,
                sticky: true
            });
        }]);