/* Minification failed. Returning unminified contents.
(109,21,111,22): run-time error JS1314: Implicit property name must be identifier: getLastNewspaperInfo() {
                        return $http.get(getLastNewspaperInfoUrl);
                    }
(113,21,122,22): run-time error JS1314: Implicit property name must be identifier: pdfSearch(data) {
                        var dateFrom = data.dateFrom ? '&dateFrom=' + data.dateFrom : '';
                        var dateTo = data.dateTo ? '&dateTo=' + data.dateTo : '';

                        location.href = pdfSearchUrl
                            .replace('{{query}}', data.query)
                            .replace('{{dateFrom}}', dateFrom)
                            .replace('{{dateTo}}', dateTo)
                            .replace('{{sortType}}', data.sortType);
                    }
 */
(function(angular) {
    var ngNewspaperBlock = function(constants) {
        return {
            controller: function() {

            },
            controllerAs: 'npblCtrl',
            replace: true,
            templateUrl: function () {
                return '/Areas/Subscribe/Scripts/app/templates/newspaper-block/' +
                    (constants.isMobile ? 'mobile' : 'desktop') +
                    '.template.html?v=2.0.1008-master';
            }
    }
    };

    angular.module('dp.app.directives').directive('ngNewspaperBlock', ['AppConstants', ngNewspaperBlock]);

})(angular);;
(function (angular) {
    var ngPdfSearchBlock = function($window, constants) {
        return {
            controller: [
                'NewspaperService',
                'MetrikaService',
                function(newspaperService, metrikaService) {
                    var self = this;

                    this.data = {
                        query: '',
                        dateFrom: '',
                        dateTo: '',
                        sortType: 'Date'
                    };

                    this.options = {
                        datePicker: {
                            options: {
                                startingDay: 1,
                                appendToBody: true
                            },
                            isOpened: {
                                from: false,
                                to: false
                            },
                            inputFormats: ['dd-MM-yyyy', 'dd.MM.yyyy', 'dd-MM-yy', 'dd.MM.yy', 'yy-MM-dd', 'yy.MM.dd']
                        }
                    };

                    this.init = function(query, dateFrom, dateTo, sortType) {
                        self.data.query = query;
                        self.data.dateFrom = dateFrom ? new Date(Date.parse(dateFrom)) : '';
                        self.data.dateTo = dateTo ? new Date(Date.parse(dateTo)) : '';
                        self.data.sortType = sortType || 'Date';
                    };

                    this.openDatePicker = function(type) {
                        self.options.datePicker.isOpened[type] = true;
                    };

                    this.setSortType = function(sortType) {
                        self.data.sortType = sortType;
                    };

                    this.submit = function() {
                        metrikaService.reachGoal('search_archiv');
                        newspaperService.pdfSearch({
                            query: self.data.query,
                            dateFrom: self.dateToString(self.data.dateFrom) || '',
                            dateTo: self.dateToString(self.data.dateTo) || '',
                            sortType: self.data.sortType
                        });
                    };

                    this.dateToString = function(date) {
                        if (date instanceof Date) {
                            var mm = date.getMonth() + 1;
                            var dd = date.getDate();
                            return [date.getFullYear(), (mm > 9 ? '' : '0') + mm, (dd > 9 ? '' : '0') + dd].join('-');
                        }

                        return date;
                    };
                }
            ],
            controllerAs: 'psblCtrl',
            replace: true,
            templateUrl: function(element, attrs) {
                return '/Areas/Subscribe/Scripts/app/templates/pdf-search-block/' + 
                    attrs.templateType + '-' +
                    (constants.isMobile ? 'mobile' : 'desktop') +
                    '.template.html?v=2.0.1008-master';
            }
        };
    };

    angular.module('dp.app.directives').directive('ngPdfSearchBlock', ['$window', 'AppConstants', ngPdfSearchBlock]);

})(angular);;
(function(angular) {
    var newspaperProvider = function (appConstants) {
        var getLastNewspaperInfoUrl = appConstants.apiBaseUri + 'newspaper/getLastNewspaperInfo';
        var pdfSearchUrl = 'https://' + (appConstants.isMobile ? appConstants.mobileSiteHostName : appConstants.newSiteHostName) +
                           '/subscribe/search?query={{query}}{{dateFrom}}{{dateTo}}&sortType={{sortType}}';

        this.$get = [
            '$http', function($http) {
                return {
                    getLastNewspaperInfo() {
                        return $http.get(getLastNewspaperInfoUrl);
                    },

                    pdfSearch(data) {
                        var dateFrom = data.dateFrom ? '&dateFrom=' + data.dateFrom : '';
                        var dateTo = data.dateTo ? '&dateTo=' + data.dateTo : '';

                        location.href = pdfSearchUrl
                            .replace('{{query}}', data.query)
                            .replace('{{dateFrom}}', dateFrom)
                            .replace('{{dateTo}}', dateTo)
                            .replace('{{sortType}}', data.sortType);
                    }
                }
            }
        ];
    };

    angular.module('dp.app.providers').provider('NewspaperProvider', ['AppConstants', newspaperProvider]);

})(angular);;
(function(angular) {
    var newspaperService = function(newspaperProvider) {
        this.getLastNewspaperInfo = function() {
            return newspaperProvider.getLastNewspaperInfo();
        };

        this.pdfSearch = function(data) {
            return newspaperProvider.pdfSearch(data);
        };
    };

    angular.module('dp.app.services').service('NewspaperService', ['NewspaperProvider', newspaperService]);

})(angular);;
