Ext.namespace('Ext.ux.grid');
Ext.ux.grid.PageSizer = Ext.extend(Ext.CycleButton, {
	initialSize : this.initialSize || 50,
	pageSizes : this.pageSizes || [ 10, 15, 20, 25, 30, 50, 75, 100, 150, 200, 250 ],
	addText : '&nbsp;Entries(s) per page',
	initComponent : function() {
		var ir = [];
		var at = this.addText;
		var is = this.initialSize;
		Ext.each(this.pageSizes, function(ps) {
			ir.push( {
				text : '&nbsp;' + ps + at,
				value : ps,
				checked : ps == is ? true : false
			})
		});
		Ext.apply(this, {
			showText : true,
			prependText : '&nbsp;',
			// forceIcon: Ext.ux.iconMgr.getIcon('/dev/common/icons.nsf/extjs/ux/icons/', 'table_add_del_rows'),
			items : ir
		});

		Ext.ux.grid.PageSizer.superclass.initComponent.apply(this, arguments);
	},
	init : function(pagingToolbar) {
		pagingToolbar.on('render', this.onInitView, this);
	},
	onInitView : function(pagingToolbar) {
		pagingToolbar.insert(12, this);
		pagingToolbar.insert(12, '-');
		this.on('change', this.onPageSizeChanged, pagingToolbar);
	},
	onPageSizeChanged : function(cycleButton) {
		this.pageSize = parseInt(cycleButton.getActiveItem().value);
		this.doLoad(0);
	}
});
