define([
        'jquery', 'knockout', 'text!./Boundary.html', './LayerData', 'kojqui/selectmenu'
], function(jquery, ko, htmlString, layerData ) {
    
     function ViewModel(params) {
        var self = this;
        
        self.layerData = ko.observableArray([]);
        
        jquery.get('/json/environment/config/boundary?d=2', null, function(data) {

            var assemble = function(data) {
                var l = [];
                data.children.forEach(function(prop) {
                    if (prop.name === 'entry') {
                        var layer = new layerData();
                        l.push(ko.utils.knockprops.propsToObject(prop, layer.PropertyMap, layer ));
                    }
                });
                return l.reverse();
            }

            self.layerData(assemble(data));
        });

    }

//    ViewModel.prototype.dispose = function() {
//    }

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