/**
 * @author marklewis
 */
FOS.Organiser.Event.Result.storeConfig = {
		url: 'data.php',
    root: 'data',
    id: 'result_id',
    totalProperty: 'count',
    baseParams:{
		set : 'resultForTools'
	},
    writer: new Ext.data.JsonWriter({
        encode: true,
        writeAllFields: false // write all fields, not just those that changed
    }),
    fields: ['result_id', 'race_number', 'firstname', 'chip_to_chip_total_time', 'lastname', 'age_category', 'name', 'dob', 'gender', 'club_id', 'club_name', {
        name: 'swim_time'
    }, {
        name: 'swim_position',
        type: 'int'
    }, {
        name: 'bike_time'
    }, {
        name: 'bike_position',
        type: 'int'
    }, {
        name: 'run_time'
    }, {
        name: 'run_position',
        type: 'int'
    }, {
        name: 'total_time'
    }, {
        name: 'overall_position',
        type: 'int'
    } ]
};


FOS.Organiser.Event.Result.store = new Ext.data.JsonStore(FOS.Organiser.Event.Result.storeConfig);


FOS.Organiser.Event.Result.toolbarConfig = {



    items: [ {
        text: 'Update Leader Board',
		hidden: true,
        icon: 'resources/icons/chart_curve_go.png',
		handler : function() {
			Ext.Ajax.request({
				url : 'action.php',
				params : {
					eventId : FOS.Organiser.Event.Result.eventId,
					module : 'results',
					action : 'updateLB'
				},
				success : function (r,o) {
					if (Ext.decode(r.responseText).success)
						Ext.MessageBox.alert('FOS Timing', 'Leaderboard update complete');
					else
						Ext.MessageBox.alert('FOS Timing', 'FAILED to update leaderboard:' + r.errorMsg);
				}
				
			});
		}
    }, {
        text: 'Download',
        icon: 'resources/icons/page_save.png',
        handler: function(){
    		r.load({
    			url: 'action.php', 
    			params: {
    				action : 'download', 
    				module : 'result', 
    				eventId : FOS.Organiser.Event.Result.eventId
    			}
    		});
    	
    	 
    	  
    	}
        
    },{text: 'Refresh', hidden: true, icon : 'resources/icons/arrow_refresh.png', handler: function(){
		FOS.Organiser.Event.Participant.store.reload();
		Ext.getCmp('resultsGrid').getView().refresh();
	}
			
	},{
        text: 'Save',hidden: true,
        icon: 'resources/icons/disk.png'
    }, {
        text: 'Clear All Results',hidden: true,
        icon: 'resources/icons/delete.png'
    }, {
        text: 'Hide',hidden: true,
        icon: 'resources/icons/safe.png'
    }]

};

Ext.util.Format.comboRenderer = function(combo){
    return function(value){
        var record = combo.findRecord(combo.valueField, value);
        return record ? record.get(combo.displayField) : combo.valueNotFoundText;
    }
}

// create the combo instance
var combo = new Ext.form.ComboBox({
    typeAhead: true,
    triggerAction: 'all',
    lazyRender:true,
    mode: 'local',
    store: new Ext.data.ArrayStore({
        id: 0,
        fields: [
            'myId',
            'displayText'
        ],
        data: [[1, 'item1'], [2, 'item2']]
    }),
    valueField: 'myId',
    displayField: 'displayText'
});



FOS.Organiser.Event.Result.viewConfig = {
    xtype: 'grid',
	id : 'resultsGrid',
	title : 'Results',
	 
    store: FOS.Organiser.Event.Result.store,
    loadMask: true,
    clicksToEdit: 2,
    loadMask: true,
    viewConfig: {
        forceFit: true,
        autoFill: true
    },
    autoWidth: false,
    autoHeight: false,
    border: true,
    autoDestroy: true,
      
   tbar: FOS.Organiser.Event.Result.toolbarConfig,
    border: true,
    
    colModel: new Ext.grid.ColumnModel({
        defaults: {
            width: 120,
            sortable: true
        },
        columns: [ {
        header: "Overall",
        width: 35,
		//editable: false,
        sortable: true,
        dataIndex: 'overall_position'
    },{
        id: 'result_id',
        header: "Bib#",
        width: 35,
        sortable: true,
        //editor: new Ext.form.TextField(),
        dataIndex: 'race_number'
    }, {
        header: "Lastname",
        width: 100,
		//editable: true,
        sortable: true,
       // editor: new Ext.form.TextField(tx),
        dataIndex: 'lastname'
    }, {
        header: "Firstname",
        width: 100,
		//editable: true,
        sortable: true,
       // editor: new Ext.form.TextField(tx),
        dataIndex: 'firstname'
    }, 
    {
        header: "Category",
        width: 100,
		editable: false,
        sortable: true,
        
        dataIndex: 'age_category'
    }, 
    
    {
        header: "DOB",
        width: 75,
        sortable: true,
       // editor: new Ext.form.TextField(dt),
        editable: true,
        dataIndex: 'dob'
    } , {
        header: "Gender",
        width: 25,
        sortable: true,
       // editor: new Ext.form.TextField(tx),
       // editable: true,
        dataIndex: 'gender'
    },
    
    {
        header: "Club",
        width: 100,
        sortable: true,
       // editor: new Ext.form.TextField(tx),
       // editable: true,
        dataIndex: 'club_name'
    }, {
        header: "Swim",
        width: 75,
		//editable: true,
        sortable: true,
        //editor: new Ext.form.TextField(tt),
        dataIndex: 'swim_time'
    }, {
        header: "Pos",
        width: 35,
		//editable: false,
        sortable: true,
        dataIndex: 'swim_position'
    }, {
        header: "Bike",
        width: 75,
		editable: true,
		//editor: new Ext.form.TextField(tt),
        sortable: true,
        dataIndex: 'bike_time'
    }, {
        header: "Pos",
        width: 35,
        sortable: true,
        dataIndex: 'bike_position'
    }, {
        header: "Run",
        width: 75,
		//editable: true,
		//editor: new Ext.form.TextField(tt),
        sortable: true,
        dataIndex: 'run_time'
    }, {
        header: "Pos",
        width: 35,
        sortable: true,
        dataIndex: 'run_position'
    }, {
        header: "Total",
        width: 75,
        sortable: true,
       // editor: new Ext.form.TextField(tt),
		editable: true,
        dataIndex: 'total_time'
    }
    , {
        header: "Chip Total",
        width: 75,
        sortable: true,
       // editor: new Ext.form.TextField(tt),
		editable: true,
        dataIndex: 'chip_to_chip_total_time'
    }]}
    ),
    
    view: new Ext.ux.grid.BufferView({
        // custom row height
        rowHeight: 22,
        // render rows as they come into viewable area.
        scrollDelay: false
    }) ,
    stripeRows: true,
   
    height: 200,
    autoScroll: true
        
   

};



FOS.Organiser.Event.Result.show = function(eid){
	
	FOS.Organiser.Event.Result.eventId = eid;
	
   
	Ext.getCmp('organiserMainTab').add(new Ext.grid.EditorGridPanel(FOS.Organiser.Event.Result.viewConfig));
    
	Ext.getCmp('organiserMainTab').doLayout();
	
    FOS.Organiser.Event.Result.store.load({
        params: {
            eventId: eid
        }
    });
    
};

