var community_panel = function(window, controller, settings, cache) {
    /* Private properties */
    var _root_selector   = '#community_panel_wrapper';
    var _root_el         = null;

    var _templates       = {};
    var _parser          = TrimPath.parseDOMTemplate;
    
    var _messenger       = window;
    var _settings        = settings;
    var _controller      = controller;
    var _cache           = cache;
    
    var _sid             = '';
    var _state           = null;

    var _profile_display_name = '';

    /* Private Methods */
    function _init_map_ui() {
    
    };
    

    /* View methods */
    function _show_home(e, d) {

        return false;
    }

    /* Public Functions and Variables */
    return {
        /**
        * Init function
        *
        * @method init
        * @public
        */
        init: function() {
            /* Don't show this panel unless user is logged in */
            _profile_display_name = _settings['profile_display_name'];
            if (!_profile_display_name) {
                return false;
            }
            
            _controller.setCommunityPanel(this);
            
            /* Parse _templates */
            _templates['community_panel_box'] = _parser('community_panel_box_tpl');
            
            
            /* Initialize local vars */
            _sid      = _settings.curr_state;
            _state    = _settings.states[_sid];
            _root_el  = $(_root_selector)[0];

            // Render content
            var html = _templates['community_panel_box'].process({
                base_url          : _settings['base_url'],
                display_name      : _settings['profile_display_name']
            });
            $(_root_el).html(html);
            $(_root_el).show();

            /* Register message responders */
            //$(_messenger).bind('view::home',    _show_home);


            /* Local DOM responders */
            $('a[@rel=add_hotspot]', _root_el).
            livequery('click', function() {
                $(_messenger).trigger('all::open::clicked', ['hotspot', {view: 'start'}]);

                return false;
            });
        },
        /**
        * 
        *
        * @method getState
        * @public
        */
        getState: function() {
            return  '';
        }
    };
}(window, controller, settings, cache);

$(function() {
    community_panel.init();
});
