$m.core.register('.reorderItems', function (hub) {
    var items, displayOrder, self = {
        construct: function () {
            items = $m.jQuery(hub.find('#Items')[0]);
            displayOrder = hub.find('#displayorder')[0];

            items.sortable({
                handle: '.handle',
                update: self.itemsUpdate
            });
        },

        destruct: function () {
            items.sortable('disable');
        },

        itemsUpdate: function () {
            var keys = items.sortable('serialize').split('&'), value = '', i, length = keys.length, lastIndex = length - 1;

            for (i = 0; i < length; i++) {
                value += keys[i].split('=')[1];
                if (i < lastIndex) {
                    value += ',';
                }
            }

            displayOrder.value = value;
        }
    };
    return self;
});
