/**
 * @author marklewis
 */
FOS.Organiser.Event.OnlineBookings = function () {};
FOS.Organiser.Event.OnlineBookings.Summary = function () {};

FOS.Organiser.Event.OnlineBookings.storeConfig = {

    url: 'data.php',
	baseParams : {
		set : 'onlinebookings',
		eventId : FOS.viewingEventId
	},
    root: 'data',
    id: 'result_id',
    totalProperty: 'count',
    fields: ['transaction_id', 'amount', 'name', 'transaction_date' , 'booking_fee']
};

FOS.Organiser.Event.OnlineBookings.Summary.storeConfig = {

    url: 'data.php',
	baseParams : {
		set : 'onlinebookingsummary',
		eventId : FOS.viewingEventId
	},
    root: 'data',
    id: 'result_id',
    totalProperty: 'count',
    fields: [  'note', 'amount', 'transaction_date'  ]
};

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


FOS.Organiser.Event.OnlineBookings.toolbarConfig = {



    items: [ 
	
{
        text: 'Issue Refund',
        icon: 'resources/icons/delete.png',
		handler: function(){
		
			var message = 'You have chosen to issue a refund to:<br>';
			var rows = Ext.getCmp('online-entries').getSelectionModel().getSelections();
			
			for (i=0; i<rows.length; i++){
				message = message + rows[i].data.name + '(£' + rows[i].data.amount +')<br>'
			}
			
			
			
			Ext.Msg.show({
				   title:'Are you sure you want to issue a refund?',
				   msg: message,
				   buttons: Ext.Msg.YESNO,
				   fn: function(btn ){
						if (btn=='yes'){
							
							var rows = Ext.getCmp('online-entries').getSelectionModel().getSelections();
							
							message = "[";
							
							for (i=0; i < rows.length; i++){
								message = message + "{";
								message = message + "transaction_id:'" + rows[i].data.transaction_id + "',";
								message = message + "name:'" + rows[i].data.name + "',";
								message = message + "amount:'" + rows[i].data.amount + "',";
								message = message + "transaction_date:'" + rows[i].data.transaction_date + "'";
							  
								if (i == (rows.length -1))
									message = message + "}";
							  	else
							  		message = message + "},"
							}
							
							message = message +   "]";
							
							Ext.Ajax.request({
								url: 'action.php',
								params: {
									module : 'event',
									action : 'refund',
									refundWho : message
									
								},
								success : function (o, r){
									Ext.MessageBox.alert  ('A refund will be issued.  Once the refund is complete an email confirmation will be sent out.');
									
								},
								failure : function (o, r) {
									Ext.MessageBox.alert ('failed');
								}
								})
							}
					},
				   animEl: 'elId',
				   icon: Ext.MessageBox.QUESTION
				});
			 

		}
    }, {
        text: 'Request Drawdown',
        icon: 'resources/icons/safe.png',
		handler: function(){
    	 
		
		
		
		Ext.Msg.show({
			   title:'Full On Sport',
			   msg: 'Are you sure you want to request a drawdown?',
			   buttons: Ext.Msg.YESNO,
			   fn: function(btn ){
					if (btn=='yes'){
					 	Ext.Ajax.request({
							url: 'action.php',
							params: {
								module : 'organiser',
								action : 'drawdown',
								eventId : FOS.Organiser.Event.OnlineBookings.eventId
								
							},
							success : function (o, r){
								Ext.MessageBox.alert ('Drawdown has been requested. An email confirmation will be sent when the drawdown is complete.');
								
							},
							failure : function (o, r) {
								Ext.MessageBox.alert ('failed');
							}
							})
						}
				},
			   animEl: 'elId',
			   icon: Ext.MessageBox.QUESTION
			}); 
			

		}
    }
]

};

var  sm = new Ext.grid.CheckboxSelectionModel({
    singleselect: false
});

FOS.Organiser.Event.OnlineBookings.Summary.viewConfig = {
    xtype: 'panel',
	title : 'Summary ',
	id: 'financialSummary',
    html : 'Financial report to appear here',  
    border: true,
	 frame: true,
	 collapsible: true,
     autoScroll: true,
     autoWidth: true ,
	  autoHeight: true 
        
   

};




FOS.Organiser.Event.OnlineBookings.gridViewConfig = {
    xtype: 'grid',
	title : 'Online Entries',
	id: 'online-entries',
    store: FOS.Organiser.Event.OnlineBookings.store,
    loadMask: true,
     border: true,
	frame: true,
	collapsible: true,
    viewConfig: {
        forceFit: true,
        autoFill: true
    },
    
    
    border: true,
	selModel : sm,   
    columns: [sm, {
        id: 'transaction_id',
        header: "TransactionID",
        width: 35,
        sortable: true,
        dataIndex: 'transaction_id'
    }, {
        id: 'transaction_date',
        header: "Date",
        width: 35,
        sortable: true,
        dataIndex: 'transaction_date'
    },{
        header: "Name",
        width: 100,
        sortable: true,
        dataIndex: 'name'
    }, {
        header: "Amount",
        width: 100,
        sortable: true,
        dataIndex: 'amount'
    } ,  {
        header: "Booking Fee",
        width: 100,
        sortable: true,
        dataIndex: 'booking_fee'
    }
	],
    stripeRows: true,
    autoExpandColumn: 'name',
	autoScroll: true,
    autoHeight: true ,
	autoWidth: true 
        
   

};

FOS.Organiser.Event.OnlineBookings.viewConfig = {
	title: 'Online Bookings',
	xtype: 'panel',
	autoScroll: true,
	items: [FOS.Organiser.Event.OnlineBookings.Summary.viewConfig, FOS.Organiser.Event.OnlineBookings.gridViewConfig],
	tbar: FOS.Organiser.Event.OnlineBookings.toolbarConfig

}


FOS.Organiser.Event.OnlineBookings.show = function(eid){
	
	 var ORGANISER_MAIN_TAB = 'organiserMainTab';
	 
	FOS.Organiser.Event.OnlineBookings.eventId = eid;

    Ext.getCmp(ORGANISER_MAIN_TAB).removeAll(true);
    Ext.getCmp(ORGANISER_MAIN_TAB).add(FOS.Organiser.Event.OnlineBookings.viewConfig);
    Ext.getCmp(ORGANISER_MAIN_TAB).doLayout();
    
    FOS.Organiser.Event.OnlineBookings.store.load({
        params: {
            eventId: eid
        }
    });
	
	 
	Ext.getCmp('financialSummary').load( 
		 'action.php?module=event&action=read&readWhat=financialSummary&eventId=' + FOS.Organiser.Event.OnlineBookings.eventId
	 );
 
    
};

