lessonplansRetrieveGrid = function() {
	var colSelect = new Ext.grid.CheckboxSelectionModel({
		singleSelect: true
	});
	var columns = [
	colSelect,
	//{header: 'Course', id:'course', width: 75, sortable: true, dataIndex: 'course'},
	{
		header: 'Course ID',
		width: 50,
		sortable: true,
		dataIndex: 'courseid',
		id: 'courseid'
	}, //groupField
	{
		header: 'Week',
		sortable: true,
		dataIndex: 'weekno',
		id: 'weekno'
	},
	{
		header: 'From',
		width: 120,
		sortable: true,
		dataIndex: 'datefrom',
		id: 'datefrom'
	},
	{
		header: 'To',
		width: 120,
		sortable: true,
		dataIndex: 'dateto',
		id: 'dateto'
	}];
	lessonplansRetrieveGrid.superclass.constructor.call(this, {
		tbar: {
			xtype: 'toolbar',
			defaults: {
				style: 'margin-left: 5px;'
			},
			items: [{
				xtype: 'label',
				text: 'Teacher:'
			},
			new SchoolDynamics.extendedAccessCombo({
				id: 'lp_retrieve_teacher',
				width: 150,
				storeArray: ['lp_retrieve_store'],
				listeners: {
					select: function(combobox, record, index) {
						var gridstore = this.ownerCt.ownerCt.store;
						gridstore.baseParams.weekof = Ext.getCmp('lessonplan_weekof').value;
						gridstore.load();
					}
				}
			})]
		},
		store: new Ext.data.GroupingStore({
			storeId: 'lp_retrieve_store',
			url: 'teacher_tools/lessonplans_data.json.php',
			baseParams: {
				command: 'retrieveLessonPlans'
			},
			reader: new Ext.data.JsonReader({
				root: 'lastyear'
			}, [{
				name: 'lplanid'
			},
			{
				name: 'course'
			},
			{
				name: 'courseid'
			},
			{
				name: 'datefrom'
			},
			{
				name: 'dateto'
			},
			{
				name: 'weekno',
				type: 'int'
			}]),
			autoLoad: false,
			groupField: 'courseid',
			sortInfo: {
				field: 'courseid',
				direction: "ASC"
			},
			listeners: {
				load: function(store, records, options) {
					var grid = Ext.getCmp('lp_retrieve_grid');
					var courseid = Ext.getCmp('lessonplan_course').getValue();
					if (!courseid) {
						grid.getView().collapseAllGroups();
						return true;
					}
					var groups = grid.getView().getGroups();
					for (var i = 0, len = groups.length; i < len; i++) {
						if (groups[i].id.match(courseid)) grid.getView().toggleGroup(groups[i], true);
					}
				}
			}
		}),
		id: 'lp_retrieve_grid',
		sm: colSelect,
		columns: columns,
		border: false,
		view: new Ext.grid.GroupingView({
			autoHeight: true,
			enableColumnHide: false,
			enableColumnMove: false,
			enableColumnResize: false,
			stripeRows: true,
			showGroupName: false,
			enableNoGroups: false,
			// REQUIRED!
			hideGroupedColumn: true,
			groupTextTpl: '{[values.rs[0].data["course"]]} <span class="floatRight">{text}</span>',
			listeners: {
				toggleGroup: function(view, group, expanded) {
					if (expanded) {
						var groups = this.getGroups();
						for (var i = 0, len = groups.length; i < len; i++) {
							if (!groups[i].id.match(group.id)) {
								this.toggleGroup(groups[i], false);
							}
						}
					}
				}
			}
		}),
		autoScroll: true,
		autoExpandColumn: 'weekno',
		listeners: {
			rowdblclick: function(grid, rowIndex, e) {
				Ext.getCmp('lp_retrieve').fireEvent('click');
			}
		}
	});
}
Ext.extend(lessonplansRetrieveGrid, Ext.grid.GridPanel);

