Ext.onReady(function(){


	function renderDate(value,p,r) {
		//console.info("Birthdate(" + r.data.id +  ")="  + value);

		if (!value) return "";

		var sDate = value.format('m/d/Y h:i A');

		if (sDate == "12/31/1969") {
			return "";
		} else {
			return String.format('{0}',sDate);
		}
	}

	var DivisionRec = new Ext.data.Record.create(
	[
	{name: 'id',type:'int'},
	{ name: 'name', type: 'string'  },
	{ name: 'schedulecount', type: 'int'}
	]
	);

	var ds = new Ext.data.Store({
		proxy: new Ext.data.HttpProxy({ url:'index.php?mode=ajax&submode=divisions&takeaction=loadallwithschedulecount'  }),
		reader: new Ext.data.JsonReader({
			root: 'data',
			totalProperty: 'count'
		},
		DivisionRec
		)
	});

	var tabs = new Ext.TabPanel({
		renderTo:'footballschedulesro',
		resizeTabs:true, // turn on tab resizing
		enableTabScroll:false,
		activeTab:0,
		//plain: true,
		frame: true,
		width:900,
		autoHeight: true,
		defaults: {autoScroll:true}
	});

	ds.load();
	ds.on("load",function(){

		//console.info(ds.getTotalCount());

		for(var i=0;i<ds.getTotalCount();i++) {

			var record = ds.getAt(i);

			var ScheduleRec = new Ext.data.Record.create(
			[
			{name: 'id',type:'int'},
			{ name: 'homename', type: 'string'  },
			{ name: 'homeid', type: 'int'},
			{name: 'visitorname',type:'string'},
			{name: 'visitorid',type: 'int'},
			{name: 'divisionname',type: 'string'},
			{name: 'divisionid',type: 'int'},
			{name: 'gamedatetime',type: 'date' , dateFormat:'Y-m-d H:i:s'} ,
			{name: 'week', type: 'string'},
			{name: 'location',type:'string'},
			{name: 'homescore',type: 'int'},
			{name: 'visitorscore',type: 'int'},
			{name: 'conference',type: 'string'}
			]
			);

			var dsSchedule = new Ext.data.GroupingStore({
				proxy: new Ext.data.HttpProxy({ url:'index.php?mode=ajax&submode=schedules&takeaction=loadall&divisionid=' + record.data.id}),
				reader: new Ext.data.JsonReader({
					root: 'data',
					id: 'id',
					totalProperty: 'count'
				},
				ScheduleRec
				),
				groupField: 'week',
				sortInfo: {field: 'gamedatetime',direction: 'ASC'}
			});


			dsSchedule.on('load', function(){
				//store is loaded, now you can work with it's records, etc.
				//console.log('Data Store listener fired (load), arguments:',arguments);
				//console.log('Store count = ',dsFootballPlayers.getCount());
			}
			);

			dsSchedule.on('loadexception',function(httpProxy, dataObject, args, exception) {
				//console.log('** - Data Store listener fired (loadexception), arguments:',arguments);
			}
			);

			dsSchedule.load();

			function renderTeamName(val,obj,record) {
				return "<a>" + val + "</a>";
			}


			var cm = new Ext.grid.ColumnModel([
			{
				id: 'gamedatetime',
				header: 'Date/Time',
				dataIndex: 'gamedatetime',
				renderer: renderDate
			},{
				id: 'week',
				header: 'Week #',
				dataIndex: 'week'
			},{
				id: 'conference',
				header: 'Conference',
				dataIndex: 'conference'
			},{
				id: 'homename',
				header: 'Home',
				dataIndex: 'homename',
				renderer: renderTeamName
			},{
				id:'visitorname',
				header: 'Visitor',
				dataIndex: 'visitorname',
				renderer: renderTeamName
			},{
				id: 'homescore',
				header: 'Home Score',
				dataIndex: 'homescore' ,
				width: 70
			},{
				id: 'visitorscore',
				header: 'Visitor Score',
				dataIndex: 'visitorscore' ,
				width: 70
			} , {
				id: 'divisionname',
				header: 'Division',
				dataIndex: 'divisionname',
				hidden: true
			}, {
				id: 'location',
				header: 'Location',
				dataIndex: 'location'
			}
			]);


			cm.defaultSortable = true;

			var newtabitem = tabs.add({
				title: record.data.name,
				id: 'tab' + record.data.id,
				autoHeight: true,
				width: 900
			}).show();

			var grid = new Ext.grid.GridPanel({
				renderTo: 'tab' + record.data.id,
				store: dsSchedule,
				cm: cm,
				data: dsSchedule.data,
				width: 900,
				autoHeight: true,
				frame: false,
				stripeRows: true,
				loadMask: true,
				view: new Ext.grid.GroupingView({
					forceFit: true,
					emptyText: 'There is no data to display',
					groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Games" : "Game"]})'

				})
			});

			function ClickSchedule(grid, rowIndex, columnIndex, e) {

				var record = grid.getStore().getAt(rowIndex);  // Get the Record
				var fieldName = grid.getColumnModel().getDataIndex(columnIndex); // Get field name
				var colHeader = grid.getColumnModel().getColumnHeader(columnIndex);
				var data = record.get(fieldName);
				var id = record.get('id');

				if (colHeader == "Home") {
					RenderTeamSchedule(record.data.homeid,data);
				} else if (colHeader == "Visitor") {
					RenderTeamSchedule(record.data.visitorid,data);
				}
			}

			grid.on("cellclick",ClickSchedule);

			newtabitem.add(grid);
			newtabitem.doLayout();


		}
	} );

})
