// vim: et:ts=4:sw=4:sts=4:ft=javascript

'use strict';

pandora.ui.viewSelect = function() {
    var ui = pandora.user.ui,
        sortKey = !ui.item ? 'listSort' : 'itemSort',
        viewKey = !ui.item ? 'listView' : 'itemView',
        items = pandora.site[viewKey + 's'].filter(function(view) {
            return view.id != 'data' && view.id != 'media';
        }).map(function(view) {
            return {id: view.id, title: Ox._('View {0}', [Ox._(view.title)])};
        }),
        that;
    if (
        viewKey == 'itemView'
        && pandora.site.capabilities.canSeeExtraItemViews[pandora.user.level]
    ) {
        items = items.concat([
            {},
            {id: 'data', title: Ox._('View Data')},
            {id: 'media', title: Ox._('View Media')}
        ]);
    }
    that = Ox.Select({
            id: 'viewSelect',
            items: items,
            value: ui[viewKey],
            width: !ui.item ? 144 : 128
        })
        .css({
            float: 'left',
            margin: '4px 0 0 4px'
        })
        .bindEvent({
            change: function(data) {
                pandora.UI.set(viewKey, data.value);
            },
            pandora_listview: function(data) {
                !ui.item && that.value(data.value);
            },
            pandora_itemview: function(data) {
                ui.item && that.value(data.value);
            }
        });
    return that;
};