/*global define */
'use strict';

define([
    'flight/lib/component',
    './with_filters',
    'text!templates/stats.html',
    'app/utils'
], function (defineComponent, withFilters, statsTmpl, utils) {
    function stats() {
        var template = utils.tmpl(statsTmpl);

        this.attributes({
            clearCompletedSelector: '#clear-completed'
        });

        this.render = function (e, data) {
            var toggle = data.all > 0;

            this.$node.html(template(data));
            this.$node.toggle(toggle);
            this.markSelected(data.filter);
        };

        this.clearCompleted = function () {
            this.trigger('uiClearRequested');
        };

        this.after('initialize', function () {
            this.$node.hide();
            this.on(document, 'dataStatsCounted', this.render);
            this.on('click', { 'clearCompletedSelector': this.clearCompleted });
        });
    }

    return defineComponent(stats, withFilters);
});
