   // ------------------------------------------------------------- XML READERS / STORE MODELS -----------------------------------------------------------------------
	
	race_details_store = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: 'racing_scripts/GetBatMarket.php', method: 'GET' }),
		reader: new Ext.data.XmlReader({record: 'Info'},[
		     {name: 'MarketID', type: 'int'},
			 {name: 'PlcMarketID', type: 'int'},
			 {name: 'VenueName'},
			 {name: 'RaceNum'},
			 {name: 'StartTime'},
			 {name: 'TrackCond'},
			 {name: 'EventName'},
			 {name: 'EventClass'},
			 {name: 'EventLength'},
			 {name: 'MarketType'},
			 {name: 'Country'},
			 {name: 'SPmarket'},
			 {name: 'BFmarket'},
			 {name: 'Weather'},
			 {name: 'MarketStatus'},
			 {name: 'NumRunners'},
			 {name: 'ServiceStatus', type: 'string'},
			 {name: 'UPD_TIME'},
			 {name: 'POOL_BFWIN'},
			 {name: 'POOL_BFWINPERC'},
			 {name: 'POOL_BFWINLAYPERC'},
			 {name: 'POOL_BFPLACE'},
			 {name: 'POOL_BFPLACEPERC'},
			 {name: 'POOL_BFPLACELAYPERC'},
			 {name: 'POOL_NSWWIN'},
			 {name: 'POOL_NSWWINPERC'},
			 {name: 'POOL_NSWPLACE'},
			 {name: 'POOL_NSWPLACEPERC'},
			 {name: 'POOL_STABWIN'},
			 {name: 'POOL_STABWINPERC'},
			 {name: 'POOL_STABPLACE'},
			 {name: 'POOL_STABPLACEPERC'},
			 {name: 'POOL_UNIWIN'}, 
			 {name: 'POOL_UNIWINPERC'}, 
			 {name: 'POOL_UNIPLACE'},
			 {name: 'POOL_UNIPLACEPERC'},
			 {name: 'EXPOOL_Trifecta'},
			 {name: 'EXPOOL_Execta'},
			 {name: 'EXPOOL_Quinella'},
			 {name: 'EXPOOL_FirstFour'},
			 {name: 'EXODD_Execta'},
			 {name: 'EXODD_Trifecta'},
			 {name: 'EXODD_Quinella'},
			 {name: 'EXODD_FirstFour'}
		]	 
	)});	

	race_date_store = new Ext.data.GroupingStore({ 
		sortInfo: {field: 'RaceJump', direction: "ASC"},
        groupField: false,
		proxy: new Ext.data.HttpProxy({ url: 'racing_scripts/GetBatDate.php', method: 'GET' }),
		reader: new Ext.data.XmlReader({record: 'RaceList > race', totalRecords: '@total'},
			[{name: 'RaceJump'},
			{name: 'RaceNumber', type: "int"},
			{name: 'TrackName'},
			{name: 'TrackCode'},
			{name: 'Market_status'},
			{name: 'Market_type'},
			{name: 'MarketID', type: "int"},
			{name: 'CountryCode'},
			{name: 'RaceName'}
			]
		)
	}); 
	/*
	race_date_store = new Ext.data.Store({
		proxy: new Ext.data.HttpProxy({ url: 'racing_scripts/GetBatDate.php', method: 'GET' }),
		reader: new Ext.data.XmlReader({record: 'RaceList > race', totalRecords: '@total'},
			[{name: 'RaceJump'},
			{name: 'RaceNumber', type: "int"},
			{name: 'TrackName'},
			{name: 'Market_status'},
			{name: 'Market_type'},
			{name: 'MarketID', type: "int"},
			{name: 'PlcMarketID', type: "int"},
			{name: 'CountryCode'}
			]
		)
	}); */

    race_date_cols = 
    [
     	{	width: 18,
     		id: 'Market_type',

     		tooltip: 'Market Type: Gallop, Greyhound or Harness',
     		dataIndex: 'Market_type',
     		sortable: true,
     		hideable: false,
     		css: 'text-align: center;',
     		renderer: render_code
     	},
		{	width: 18,
     		id: 'Market_status',
     		dataIndex: 'Market_status',
     		sortable: true,
     		hideable: false,
     		css: 'text-align: center;',
     		renderer: render_status
     	},
		{	width: 30,
     		id: 'RaceJump',
     		header: 'Time',
     		dataIndex: 'RaceJump',
     		tooltip: 'The race start time',
     		sortable: true,
     		groupable: false,
     		hideable: false, 
     		renderer: render_name
     	},
		{	width: 25,
     		id: 'RaceNumber',
     		header: '<center>Race</center>',
     		tooltip: 'The race number',
     		dataIndex: 'RaceNumber',
     		sortable: false,
     		groupable: false,
     		hideable: false,
     		css: 'text-align: center;',
     		renderer: render_name
     	},
     	{	width: 50,
     		id: 'TrackName',
     		header: 'Track',
     		dataIndex: 'TrackName',
     		tooltip: 'The track',
     		sortable: true,
     		hideable: false,
     		renderer: render_name
     	},
     	{	width: 100,
     		id: 'RaceName',
     		header: 'Name',
     		dataIndex: 'RaceName',
     		tooltip: 'The Race Name or Title.',
     		sortable: false,
     		hideable: false,
     		groupable: false,
     		renderer: render_name
     	}	
	];
    

	runner_store = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: 'racing_scripts/GetBatMarket.php', method: 'GET' }),
		reader: new Ext.data.XmlReader({record: 'Runner', id: 'ID', totalRecords: '@total'},
		[
		{name: 'ID', type: "int" },
		{name: 'Name'},
		{name: 'Number', type: "int" },
		{name: 'Barrier', type: "int" },
		{name: 'Placed', type: "int" },
		{name: 'Handicap', type: "float" },
		{name: 'Scratched', type: "bool" },
		{name: 'Favourite', type: "bool" },
		{name: 'Trainer'},
		{name: 'Jockey'},
		{name: 'Owner'},
		{name: 'Colors'},
		{name: 'MiniForm'},
		{name: 'MoverWIN'},
		{name: 'MoverPLACE'},
		{name: 'SilkURL'},
		{name: 'TABSP', type: "float" },
		{name: 'BF_WIN_BACK', type: "float" },
		{name: 'BF_WIN_MATCHED', type: "float" },
		{name: 'BF_WIN_LAY', type: "float" },
		{name: 'BF_WIN_WAP', type: "float" },
		{name: 'BF_PLACE_BACK', type: "float" },
		{name: 'BF_PLACE_LAY', type: "float" },
		{name: 'BF_PLACE_WAP', type: "float" },
		{name: 'BF_PLACE_MATCHED', type: "float" },
		{name: 'BF_WIN_BACK_VOL', type: "float" },
		{name: 'BF_WIN_LAY_VOL', type: "float" },
		{name: 'BF_PLACE_BACK_VOL', type: "float" },
		{name: 'BF_PLACE_LAY_VOL', type: "float" },
		{name: 'BF_WIN_REDUCTION', type: "float" },
		{name: 'BF_PLACE_REDUCTION', type: "float" },
		{name: 'NSW_WIN_BACK', type: "float" },
		{name: 'NSW_PLACE_BACK', type: "float" },
		{name: 'STAB_WIN_BACK', type: "float" },
		{name: 'STAB_PLACE_BACK', type: "float" },
		{name: 'UNI_WIN_BACK', type: "float" },
		{name: 'UNI_PLACE_BACK', type: "float" },
	 	{name: 'StatsOverallRank', type: "float"},
	 	{name: 'StatsOverallWinPercentage', type: "float"},
	 	{name: 'StatsHorseRank', type: "float"},
	 	{name: 'StatsHorseWinPercentage', type: "float"},
	 	{name: 'StatsTrainerRank', type: "float"},
	 	{name: 'StatsTrainerWinPercentage', type: "float"},
	 	{name: 'StatsJockeyRank', type: "float"},
	 	{name: 'StatsJockeyWinPercentage', type: "float"},
	 	{name: 'StatsStallionRank', type: "float"},
	 	{name: 'StatsStallionWinPercentage', type: "float"}
		])
	});
	
	
	runner_cols = new Ext.grid.ColumnModel( 
    [
    	{id: 'Number', width: 30, header: '<center>#</center>', dataIndex: 'Number', tooltip: 'Runner Number', sortable: true, css: 'text-align: center;', hideable: false, renderer: render_runner_number},
		{id: 'SilkURL', width: 36, header: '<center>Silk</center>', dataIndex: 'SilkURL', tooltip: 'The Jockey Silk', hidden: !global.show_silk, sortable: false, css: 'text-align: center;', renderer: render_silk},
		{id: 'MiniForm', width: 65, header: 'Form', dataIndex: 'MiniForm', tooltip: 'Mini form & market movement', sortable: false, renderer: render_miniform},
		{id: 'Placed', width: 38, header: '<center>Result</center>', dataIndex: 'Placed', tooltip: 'Race result', sortable: false, hideable: false, hidden: true, css: 'text-align: center;', renderer: render_place},
		{id: 'Name', width: 140, header: '&nbsp;Runner', dataIndex: 'Name', tooltip: 'Runner name', sortable: true, hideable: false, renderer: render_runner},
		{id: 'Barrier', width: 30, header: '<center>Bar</center>', dataIndex: 'Barrier', tooltip: 'The barrier number', hidden: !global.show_barrier, sortable: true, css: 'text-align: center;', hideable: false, renderer: render_lrg},
		{id: 'Handicap', width: 35, header: '<center>WGT</center>', dataIndex: 'Handicap', tooltip: 'The Weight', hidden: !global.show_WGT, sortable: true, css: 'text-align: center;', hideable: false, renderer: render_lrg},
		{id: 'Jockey', width: 140, header: '&nbsp;Jockey / Trainer', dataIndex: 'Jockey', tooltip: 'The jockey or driver name', hidden: !global.show_jockey, sortable: true, renderer: render_jockey},
		//{id: 'Trainer', width: 110, header: '&nbsp;Trainer / Owner', dataIndex: 'Trainer', tooltip: 'The trainer & location, click + for owner information', sortable: true, renderer: render_trainer},
		{id: 'blank', width: 35, dataIndex: 'blank', sortable: false, css: 'text-align: right;', hideable: false, renderer: render_winplace_text },
		{id: 'BF_WIN_WAP', width: 50, header: '<center>BF-WAP</center>', dataIndex: 'BF_WIN_WAP', tooltip: 'The Betfair Weighted Average Price', hidden: !global.show_bfwap, sortable:true, hideable: false, css: 'text-align: center; background-color:#dbe0ed;', renderer: render_bf_wap},
		{id: 'BF_WIN_BACK', width: 49, header: '<center>BF</center>', dataIndex: 'BF_WIN_BACK', tooltip: 'The Betfair Back Price', sortable: true, hideable: false, css: 'text-align: center; background-color:#c8d0e5;', renderer: render_bf_back},
		{id: 'BF_WIN_LAY', width: 49, header: '<center>BF Lay</center>', dataIndex: 'BF_WIN_LAY', tooltip: 'The Betfair Lay Price', hidden: !global.show_bflay, sortable: true, css: 'text-align: center; background-color:#e4b8d7;', renderer: render_bf_lay},
		{id: 'STAB_WIN_BACK', width: 49, header: '<center>S-TAB</center>', dataIndex: 'STAB_WIN_BACK', tooltip: 'SuperTAB Price', hidden: !global.show_stab, sortable: true, css: 'text-align: center;', renderer: render_stab_back},
		{id: 'NSW_WIN_BACK', width: 49, header: '<center>NSW</center>', dataIndex: 'NSW_WIN_BACK', tooltip: 'NSW TAB Price', hidden: !global.show_nsw, sortable: true, css: 'text-align: center;', renderer: render_nsw_back},
		{id: 'UNI_WIN_BACK', width: 49, header: '<center>UNI</center>', dataIndex: 'UNI_WIN_BACK', tooltip: 'QLD TAB Price', hidden: !global.show_uni, sortable: true, css: 'text-align: center;', renderer: render_uni_back},
		{id: 'TABSP', width: 49, header: '<center>Book SP</center>', dataIndex: 'TABSP', tooltip: 'The Bookie Starting Price', hidden: !global.show_booksp, sortable: true, css: 'text-align: center;', hidden: true, renderer: render_bookie_sp},
		{id: 'BF_WIN_REDUCTION', width: 40, header: "<center>Red'f</center>", dataIndex: 'BF_WIN_REDUCTION', tooltip: 'The Reduction Factors', sortable: true, hideable: false, hidden: !global.show_reductionf, css: 'text-align: center;', renderer: render_bf_reduction},
		{id: 'Advantage', width: 45, header: '<center>ADV%</center>', dataIndex: 'Advantage', tooltip: 'The Betfair Advantage Comparison', sortable: true, hideable: false, hidden: !global.show_advantage, css: 'text-align: center;', renderer: render_advantage},
		{id: 'StatsOverallRank', width: 45, header: '<center>SR</center>', dataIndex: 'StatsOverallRank', tooltip: 'Stats - Strike Rate Overall + Percentage', sortable: true, css: 'text-align: center;', hidden: !global.show_fullstats, hideable: false, renderer: render_stats_strike},
		{id: 'StatsHorseRank', width: 45, header: '<center>SR Run</center>', dataIndex: 'StatsHorseRank', tooltip: 'Stats - Strike Rate Horse + Percentage', sortable: true, css: 'text-align: center;', hidden: !global.show_fullstats, hideable: false, renderer: render_stats_strikeHorse},
		{id: 'StatsTrainerRank', width: 45, header: '<center>SR Trn</center>', dataIndex: 'StatsTrainerRank', tooltip: 'Stats - Strike Rate Trainer + Percentage', sortable: true, css: 'text-align: center;', hidden: !global.show_fullstats, hideable: false, renderer: render_stats_strikeTrainer},
		{id: 'StatsJockeyRank', width: 45, header: '<center>SR Jky</center>', dataIndex: 'StatsJockeyRank', tooltip: 'Stats - Strike Rate Jockey + Percentage', sortable: true, css: 'text-align: center;', hidden: !global.show_fullstats, hideable: false, renderer: render_stats_strikeJockey},
		{id: 'StatsStallionRank', width: 45, header: '<center>SR Sta</center>', dataIndex: 'StatsStallionRank', tooltip: 'Stats - Strike Rate Stallion + Percentage', sortable: true, css: 'text-align: center;', hidden: !global.show_fullstats, hideable: false, renderer: render_stats_strikeStallion}
	]);
    
   
    
// ----------------------------------------------------------- GRIDS ----------------------------------------------------------------- 