define([
        'knockout', 'text!./Environment.html'
], function(ko, htmlString) {
    ko.components.register('Environment/Date & Time', {
        require : 'topics/Environment/DateTime'
    });

    ko.components.register('Environment/Weather', {
        require : 'topics/Environment/Weather'
    });

    ko.components.register('Environment/Position', {
        require : 'topics/Environment/Position'
    });

    function ViewModel(params) {
        var self = this;
        
        
        self.topics = [
                'Date & Time', 
                'Weather', 
                'Position',
        ];
        
        self.selectedTopic = ko.observable();
        
        self.selectedComponent = ko.pureComputed(function(){
            return "Environment/" + self.selectedTopic();
        });

        self.selectTopic = function(topic) {
            self.selectedTopic(topic);
        }

       self.selectTopic(self.topics[0]);

    }

    ViewModel.prototype.dispose = function() {
    }

    // Return component definition
    return {
        viewModel : ViewModel,
        template : htmlString
    };
});