Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXTREME 13.1 Demos/DXSK8/DXSK8.Desktop/views/
Upload File :
Current File : C:/Users/Public/Documents/DXTREME 13.1 Demos/DXSK8/DXSK8.Desktop/views/Stores.js

DXSK8.Desktop.Stores = function(params) {
    var utils = DXSK8.Desktop.utils;

    var selectedStore;

    var viewModel = {
        markers: ko.observableArray([]),
        stores: {
            store: DXSK8.db.Stores,
            postProcess: function(stores) {
                var markers = $.map(stores, function(store) {
                    return {
                        location: store.address,
                        tooltip: {
                            content: "<b>" + store.address + "</b><br />",
                            close: function(tooltip) {
                                if(selectedStore)
                                    selectedStore.selected(false);
                            },
                            opened: false
                        },
                        clickAction: function() {
                            store.setSelectedItem();
                            return false;
                        }
                    }
                });
                viewModel.markers(markers);
                return stores;
            },
            map: function(store, index) {
                return {
                    phones: store.Phones,
                    notes: store.Notes,
                    address: utils.getFullAddressOfStore(store.Address),
                    selected: ko.observable(false),
                    setSelectedItem: function() {
                        var m = viewModel.markers(),
                            tooltip = m[index].tooltip;

                        $.each(m, function(i) {
                            this.tooltip.opened = index === i;
                        });

                        viewModel.markers(m.slice(0));

                        if(selectedStore)
                            selectedStore.selected(false);
                        selectedStore = this;
                        selectedStore.selected(true);

                        this.selected(true);
                    }
                };
            }
        }
    };

    return viewModel;
};