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:'standings',

		resizeTabs:true, // turn on tab resizing

		enableTabScroll:true,

		activeTab:0,

		//plain: true,

		//layoutOnTabChange: true,

		frame: true,

		tabMargin: 10,

		width:930,

		autoHeight: true,

		defaults: {autoScroll:true}

	});



	function renderInt(val) { 

		if (!val) 

			val =0; 

		return String.format("{0}",val); 

	} 

	

	function render3Decimal(val) {

		if (!val) { 

			val = 0; 

		} 

		return String.format("{0}",val.toFixed(3));

	}

	

	function render2Decimal(val) {

		if (!val) { 

			val = 0; 

		} 

		return String.format("{0}",val.toFixed(2));

	}



	ds.load();

	ds.on("load",function(){



		//console.info(ds.getTotalCount());



		for(var i=0;i<ds.getTotalCount();i++) {



			var record = ds.getAt(i);



			//if (record.data.schedulecount> 0 ) {



			var ScheduleRec = new Ext.data.Record.create(

			[

			{name: 'id',type:'int'},

			{ name: 'name', type: 'string'  },

			{ name: 'wins', type: 'int'},

			{name: 'losses',type:'int'},

			{name: 'ties',type: 'int'},
			
			
			//TESTERTESTER
			{name: 'inconfrec', type: 'string'},
			{name: 'outconfrec', type: 'string'},

			{name: 'totalgames',type: 'int'},

			{name: 'totalpoints',type: 'int'},

			{name: 'pave',type: 'float' },

			{name: 'winningperc',type: 'float' },

			{name: 'conferencedivisionname',type: 'string'},

			{name: 'conferencename',type: 'string'},

			{name: 'conferencedivisionid',type: 'int'},

			{name: 'divisionid',type: 'int'},

			{name: 'totalallowed',type: 'int'}

			]

			);



			var dsSchedule = new Ext.data.GroupingStore({

				proxy: new Ext.data.HttpProxy({ url:'index.php?mode=ajax&submode=standings&divisionid=' + record.data.id}),



				reader: new Ext.data.JsonReader({

					root: 'data',

					id: 'id',

					totalProperty: 'count'

				},

				ScheduleRec

				),

				groupField:'conferencedivisionname',

				sortInfo: {field: 'winningperc',direction: 'DESC'}



			});



			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: 'name',

				header: 'Team',

				dataIndex: 'name',

				renderer: renderTeamName

			},{

				id: 'conferencename',

				header: 'Conference',

				dataIndex: 'conferencename',

				width: 50,

				hidden: true

			},{

				id: 'conferencedivisionname',

				header: 'Conference Division',

				dataIndex: 'conferencedivisionname',

				width: 50,

				hidden: true

			},{

				id: 'wins',

				header: 'Wins',

				dataIndex: 'wins',

				width: 20,

				align: 'center'

			},{

				id: 'losses',

				header: 'Losses',

				dataIndex: 'losses',

				width: 20,

				align: 'center'

			},{

				id: 'ties',

				header: 'Ties',

				dataIndex: 'ties',

				width: 20,

				align: 'center'

			},
			
			{

				id: 'inconfrec',

				header: 'In Conf. Record',

				dataIndex: 'inconfrec',

				width: 35,

				align: 'center'

			},{

				id: 'outconfrec',

				header: 'Out Conf. Record',

				dataIndex: 'outconfrec',

				width: 38,

				align: 'center'

			},
			
			
			{

				id:'totalpoints',

				header: 'Pts. Scored',

				dataIndex: 'totalpoints',

				width: 28,

				align: 'center',

				renderer: renderInt

			},{

				id: 'totalallowed',

				header: 'Pts. Allowed',

				dataIndex: 'totalallowed',

				width: 28,

				align: 'center',

				renderer: renderInt

			},{

				id: 'pave',

				header: 'Avg. Pts.',

				dataIndex: 'pave' ,

				width: 25,

				align: 'center',

				renderer: render2Decimal

			} , {

				id: 'winningperc',

				header: 'Winning %',

				dataIndex: 'winningperc',

				width: 30,

				align: 'center',

				renderer: render3Decimal

			}

			]);





			cm.defaultSortable = true;



			var newtabitem = tabs.add({

				title: record.data.name,

				id: 'tab' + record.data.id,

				width: 930,

				autoHeight: true

			}).show();



			var grid = new Ext.grid.GridPanel({

				renderTo: 'tab' + record.data.id,

				store: dsSchedule,

				cm: cm,

				data: dsSchedule.data,

				width: 920,

				autoHeight: true,

				frame: false,

				stripeRows: true,

				loadMask: true,

				//viewConfig: { forceFit:true, emptyText: 'No Data To Display'},

				view: new Ext.grid.GroupingView({

					forceFit: true,

					emptyText: 'There is no data to display',

					groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Teams" : "Team"]})'



				})

			});



			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 == "Team") {

					RenderTeamSchedule(id,record.data.name);

				}

			}



			grid.on("cellclick",ClickSchedule);



			newtabitem.add(grid);

			newtabitem.doLayout();



			//}

		}

	} );

})

