/**
 * Created by aghassaei on 5/27/15.
 */


define(['jquery', 'underscore', 'backbone', 'text!navViewMenuTemplate'], function($, _, Backbone, template){

    return Backbone.View.extend({

        el: "#navViewMenu",

        events: {
            "click a.boolProperty":                              "_makeSelection",
            "click #reset3DView":                            "_reset3DNavigation"
        },

        initialize: function(){

            _.bindAll(this, "render");
        },


        _makeSelection: function(e){
            e.preventDefault();
            var $target = $(e.target);
            var property = $target.data("property");
            var owner = this._getPropertyOwner($target);
            if (owner) owner.set(property, !owner.get(property));
        },

        _getPropertyOwner: function($target){
            if ($target.hasClass("appState")) return this.model;
            console.warn("no owner found for " + $target);
            return null;
        },

        _reset3DNavigation: function(){
            e.preventDefault();
        },

        render: function(){
            this.$el.html(this.template(this.model.toJSON()));

            var self = this;
            _.each($(".boolProperty"), function(item){
                var $item = $(item);
                if (self.model.get($item.data("property"))) $item.html('<span class="fui-check"></span>' + $item.html());
            })
        },

        template: _.template(template)
    });
});