(function () {
    var modeText = ko.observable('FMS'),
        isBemsMode = ko.observable(),
        navComponent = null;

    isBemsMode.subscribe(function (value) {
        modeText(value ? 'FMS' : 'BEMS');
    });

    var bemsFmsMode = BWA.BemsFmsMode = {
        text: modeText,
        isBemsMode: isBemsMode
    };

    bemsFmsMode.onContentReadyActionInNav = function (e) {

        if (!navComponent) {
            navComponent = e.component;
        }
        if (_.isUndefined(isBemsMode())) {
            if (_.isEmpty(navComponent.option('items')) === false) {
                this.setBemsMode(true);
            }
        }
    }.bind(bemsFmsMode);

    bemsFmsMode.handleToggleChangeMode = function () {

        this.setBemsMode(!isBemsMode());
        // 2016 02 18
        if (isBemsMode()) {
            BWA.app.navigate('RealtimeEnergyConsumption');
        }
        else {
            BWA.app.navigate('FacilityTaskReport');
        }

    }.bind(bemsFmsMode);

    bemsFmsMode.setNavId = function (navId) {

        if (navId == null) navId = "navEnergy";

        var items = navComponent.option('items');
        var navItem = _.find(items, function (item) {
            return item.id === navId;
        });
        //this.setBemsMode(navItem.mode === 'bems'); // hcLee 2017 01 02

    }.bind(bemsFmsMode);

    bemsFmsMode.setBemsMode = function (isBems) {

        if (isBems === this.isBemsMode()) return;

        var items = navComponent.option('items');

        this.isBemsMode(isBems);

        _.each(items, function (item) {

            switch (item.mode) {

                case 'bems':
                    item.visible = isBems;
                    break;
                case 'fms':
                    item.visible = !isBems;
                    break;
            }
        });
        navComponent.repaint();

    }.bind(bemsFmsMode);

})();