// more complex with a custom look

FOS.Organiser.Dashboard = function(){
};




FOS.Organiser.QuickTools = function () {};
FOS.Organiser.QuickTools.EventsList = function (){};
FOS.Organiser.QuickTools.SeriesList = function (){};
FOS.Organiser.QuickTools.OrganiserList = function (){};
FOS.Organiser.QuickTools.ReportList = function (){};

FOS.Organiser.QuickTools.FindWindow = function () {};
FOS.Organiser.QuickTools.WaveWindow = function () {};
 
 
FOS.Organiser.store = new Ext.data.JsonStore({
    url: 'data.php',
    baseParams: {
        set: 'organisers',
		subSet : 'read'
    },
    root: 'data',
    fields: [
        {
			name: 'organiser_id'
		},
		{
			name: 'name'
		} 
		
    ]
});
 
FOS.Organiser.Series.store = new Ext.data.JsonStore({
    url: 'data.php',
    baseParams: {
        set: 'series',
		subSet : 'read'
    },
    root: 'data',
    fields: [
        {
			name: 'series_id'
		},
		{
			name: 'name'
		} 
		
    ]
});
 
 FOS.Organiser.QuickTools.OrganiserList.viewConfig  = {
	xtype: 'window',
	title : 'Select organiser',
	modal: true,
	height: 200,
	width: 300,
	layout: 'fit',
	items: [{
		xtype : 'listview',
		 multiSelect: false,
    		emptyText: 'No images to display',
    	reserveScrollOffset: true,

		store: FOS.Organiser.store,
		
		listeners: {
			'click' : function (lv, ri, n , e) {
				
				rec = FOS.Organiser.store.getAt(ri).data;
			 
				location.href = "?module=organiser&action=edit_organiser_profile&organiserId=" + rec.organiser_id;
				
			}
			
		},
		 columns: [{
        header: 'OrganiserId',
		hidden: true,
        width: 0.0,
        dataIndex: 'organiser_id'
    },{
        header: ' Name',
        width: 1.0,
        dataIndex: 'name' 
    }  ]
		
		
	}]
 
	
};
 
 FOS.Organiser.Event.store.load();
 
FOS.Organiser.QuickTools.EventsList.viewConfig  = {
	xtype: 'window',
	title : 'Select event',
	modal: true,
	height: 300,
	width: 400,
	layout: 'fit',
	items: [{
		xtype : 'listview',
		 multiSelect: false,
    		emptyText: 'No images to display',
    	reserveScrollOffset: true,

		store: FOS.Organiser.Event.store,
		
		listeners: {
			'click' : function (lv, ri, n , e) {
				
				rec = FOS.Organiser.Event.store.getAt(ri).data;
			
				FOS.Organiser.QuickTools.EventsList.selectedEventId =  rec.event_id; 
				FOS.Organiser.QuickTools.EventsList.selectedEventType = rec.event_type;
				 
				FOS.Organiser.QuickTools.EventsList.handler();
			}
			
		},
		 columns: [{
        header: 'EventId',
		hidden: true,
        width: 0.0,
        dataIndex: 'event_id'
    },{
        header: ' Date',
        width: .3,
        dataIndex: 'event_date' 
    },{
        header: ' Name',
        width: .7,
        dataIndex: 'event_name' 
    },{
        header: ' Type',
        width: 0.0,
        dataIndex: 'event_type' 
    } ]
		
		
	}]
 
	
};

FOS.Organiser.Series.store.load();

FOS.Organiser.QuickTools.SeriesList.viewConfig  = {
	xtype: 'window',
	title : 'Select series',
	modal: true,
	height: 300,
	width: 400,
	layout: 'fit',
	items: [{
		xtype : 'listview',
		 multiSelect: false,
    		emptyText: 'No images to display',
    	reserveScrollOffset: true,

		store: FOS.Organiser.Series.store,
		
		listeners: {
			'click' : function (lv, ri, n , e) {
				
				rec = FOS.Organiser.Series.store.getAt(ri).data;
			
				FOS.Organiser.QuickTools.SeriesList.selectedSeriesId =  rec.series_id; 
				  
				FOS.Organiser.QuickTools.SeriesList.handler();
			}
			
		},
		 columns: [{
        header: 'SerieId',
		hidden: true,
        width: 0.0,
        dataIndex: 'series_id'
    } ,{
        header: ' Name',
        width: .7,
        dataIndex: 'name' 
    }  ]
		
		
	}]
 
	
};



FOS.Organiser.QuickTools.FindParticipant = function (){};
FOS.Organiser.QuickTools.Participants = function (){};

FOS.Organiser.QuickTools.Participants.store = new Ext.data.JsonStore({
     url: 'data.php',
    baseParams: {
        set: 'participants',
        subSet: 'find'
    },
    root: 'data',
    fields: [
	'ep_id', {
        name: 'fullNameAndEvent'
    }]
});



FOS.Organiser.QuickTools.FindParticipant.viewConfig = {
	xtype: 'window',
	title: 'Find Participant',
	modal: true,
	height: 135,
	width: 300,
	padding: 10,
	layout: 'form',
	labelAlign : 'top',
	items: [{
		xtype : 'combo',
		anchor: '100%',
		store : FOS.Organiser.QuickTools.Participants.store,
	    hiddenName: 'foundEpIdHidden',
	    fieldLabel: 'Enter participant name',
        id: 'foundEpId',
        valueField: 'ep_id',
        displayField: 'fullNameAndEvent',
        blankText: 'Enter participant event',
        mode: 'remote',
        triggerAction: 'all',
        width: 200
					
	},
	
	{
		buttons: [{
			text: 'Edit',
			handler : function () {
				
				
				location.href = "?module=organiser&action=edit_participant&epId=" + Ext.getCmp('foundEpId').getValue();
		}		 
		} ]
	}
	 ]
}

		
FOS.Organiser.QuickTools.FindParticipant.show  = function (handler) {
	FOS.Organiser.QuickTools.FindParticipant.view = new Ext.Window(FOS.Organiser.QuickTools.FindParticipant.viewConfig);
	FOS.Organiser.QuickTools.FindParticipant.view.show();
		
};

FOS.Organiser.QuickTools.OrganiserList.selectOrganiser = function (handler) {
	FOS.Organiser.store.load();
	FOS.Organiser.QuickTools.OrganiserList.view = new Ext.Window(FOS.Organiser.QuickTools.OrganiserList.viewConfig);
	FOS.Organiser.QuickTools.OrganiserList.handler = handler;
	FOS.Organiser.QuickTools.OrganiserList.view.show();
	
};

FOS.Organiser.QuickTools.EventsList.selectEvent = function (handler) {
	FOS.Organiser.Event.store.load();
	FOS.Organiser.QuickTools.EventsList.view = new Ext.Window(FOS.Organiser.QuickTools.EventsList.viewConfig);
	FOS.Organiser.QuickTools.EventsList.handler = handler;
	FOS.Organiser.QuickTools.EventsList.view.show();
	
	
	
};
 
FOS.Organiser.QuickTools.SeriesList.selectSeries = function (handler) {
	FOS.Organiser.Series.store.load();
	FOS.Organiser.QuickTools.SeriesList.view = new Ext.Window(FOS.Organiser.QuickTools.SeriesList.viewConfig);
	FOS.Organiser.QuickTools.SeriesList.handler = handler;
	FOS.Organiser.QuickTools.SeriesList.view.show();
	
	
	
};
FOS.Organiser.Dashboard.viewConfig = {
	id : 'main-dashboard',
    
    renderTo: 'dashboard_tools',
    frame: false,
    border: false,
    

    items : [ 
	{
		 
		xtype: 'box',
		id : 'add-event',
		overCls : 'clickable',  
		autoEl: {
			cls: 'organiserBtn',
    		tag: 'img',
    		src: 'images/tools/add_event.png'
			
		},
		listeners : {
			'render' : function (b) {
				
				Ext.get('add-event').on('click', function () {
					location.href = "?index.php&module=organiser&action=add_event2";
					
				});
				
			}
			
			
		}
	},
	{
		 
		xtype: 'box',
		id : 'edit-event',
		overCls : 'clickable', 
		autoEl: {
			cls: 'organiserBtn',
    		tag: 'img',
    		src: 'images/tools/edit_event.png'
			
		},
		listeners : {
			'render' : function (b) {
				
				Ext.get('edit-event').on('click', function () {
					FOS.Organiser.QuickTools.EventsList.selectEvent (function ()
					{
						location.href = "?index.php&module=organiser&action=edit_event&eid="  + FOS.Organiser.QuickTools.EventsList.selectedEventId;
	 
					})
				});
				
			}
			
			
		}
	},
	{
		 
		xtype: 'box',
		overCls : 'clickable',
		hidden:true,
		id : 'destroy-event',
		autoEl: {
			cls: 'organiserBtn',
    		tag: 'img',
    		src: 'images/tools/destroy_event.png'
			
		},
		listeners : {
			'render' : function (b) {
				
				Ext.get('destroy-event').on('click', function () {
					FOS.Organiser.QuickTools.EventsList.selectEvent( function () {
						FOS.href = "?index.php&module=organiser&action=destroy_event&eid=" + FOS.Organiser.QuickTools.EventsList.selectedEventId;
						 
					 })
					
				});
				
			}
			
			
		}
	}
	,
	{
		 
		xtype: 'box',
		overCls : 'clickable',
		 id : 'duplicate-event',
		autoEl: {
			cls: 'organiserBtn',
    		tag: 'img',
    		src: 'images/tools/duplicate_event.png'
			
		},
		listeners : {
			'render' : function (b) {
				
				Ext.get('duplicate-event').on('click', function () {
					FOS.Organiser.QuickTools.EventsList.selectEvent( function () {
						
						FOS.Organiser.QuickTools.EventsList.view.hide();
						
						Ext.Msg.prompt('Duplicate', 'Please enter new name of duplicated event:', function(btn, text){
						    if (btn == 'ok'){
						    	Ext.Ajax.request ({
						    		url : 'action.php',
						    		params: {
						    			module : 'event',
						    			action : 'duplicate',
						    			eventId  : FOS.Organiser.QuickTools.EventsList.selectedEventId,
						    			newName : text
						    	},
						    	success: function(o, success, response){
									
									var or = Ext.decode(o.responseText);
									
						    		Ext.Msg.show ({
						    				title:'Save complete',
							            	msg: 'Event duplicated successfully. Would you like to edit it now?',
							            	buttons: Ext.Msg.YESNO,
							            	fn: function (btn) {
							            		
						    					if (btn == 'no')
							            			location.href = '?module=organiser';  
							            		else
							            			location.href = "?index.php&module=organiser&action=edit_event&eid="  + or.eventId;
						    					
						    				}  
						    		});
						    	
						    	},
						    	failure : function () {
						    		//alert('failed');
						    	}
						    	
						    	});
						    	
						    };
						    	
						    });
						
						});

						 
					 });
					
				}
				
			}},{
			 
			xtype: 'box',
			id : 'update-event-waves',
			hidden: true,
			 overCls : 'clickable', 
			autoEl: {
				cls: 'organiserBtn',
        		tag: 'img',
        		src: 'images/tools/swim_waves.png'
    			
			},
    		 
			listeners : {
				'render' : function (b) {
					
					Ext.get('update-event-waves').on('click', function () {
						
						 
						 
						 	FOS.Organiser.QuickTools.EventsList.selectEvent( function () {
							Ext.get('main-dashboard').mask('Creating event wave start times');
								Ext.Ajax.request({
										url: 'action.php',
										method: 'POST',
										params: {
											eventId: FOS.Organiser.QuickTools.EventsList.selectedEventId,
											action: 'create_waves',
											module: 'timing' 
										},
										success: function(o, success, response){
										
											var or = Ext.decode(o.responseText);
											
											 
											Ext.get('main-dashboard').unmask();
										},
										failure: function(response, options){
											Ext.get('main-dashboard').unmask();
											Ext.Msg.alert('Failed', response.status);
											
										}
									})
							 })
						})
						 
					
				}
				
				
			}
		},{
			 
			xtype: 'box',
			hidden: true,
			id : 'generate_race_numbers',
			overCls : 'clickable',  
			autoEl: {
				cls: 'organiserBtn',
        		tag: 'img',
        		src: 'images/tools/generate_race_numbers.png'
    			
			},
    		 
			listeners : {
				'render' : function (b) {
					
					Ext.get('generate_race_numbers').on('click', function () {
						
						 
						 
						 	FOS.Organiser.QuickTools.EventsList.selectEvent( function () {
							Ext.get('main-dashboard').mask('Generating race numbers');
								Ext.Ajax.request({
										url: 'action.php',
										method: 'POST',
										params: {
											eventId: FOS.Organiser.QuickTools.EventsList.selectedEventId,
											action: 'generate_race_numbers',
											module: 'timing' 
										},
										success: function(o, success, response){
										
											var or = Ext.decode(o.responseText);
											Ext.MessageBox.alert('Waves completed successfully');
											 
											Ext.get('main-dashboard').unmask();
										},
										failure: function(response, options){
											Ext.get('main-dashboard').unmask();
											Ext.Msg.alert('Failed', response.status);
											
										}
									})
							 })
						})
						 
					
				}
				
				
			}
		}
		
		
	
,
	
		 {
		
			xtype: 'box',
			id: 'add-participant',
			overCls : 'clickable',  
			autoEl: {
				cls: 'organiserBtn',
				tag: 'img',
				src: 'images/tools/ap_94x63.png'
			
			},
			listeners: {
				'render': function(b){
				
					Ext.get('add-participant').on('click', function(){
						
						location.href="?module=organiser&action=add_participant";
					});
					
				}
			
			
			}
		} , {
		
			xtype: 'box',
			id: 'find-participant',
			 overCls : 'clickable', 
			autoEl: {
				cls: 'organiserBtn',
				tag: 'img',
				src: 'images/tools/find_participant.png'
			
			},
			listeners: {
				'render': function(b){
				
					Ext.get('find-participant').on('click', function(){
						FOS.Organiser.QuickTools.FindParticipant.show()							
					});
					
				}
			
			
			}
		 
	
	
	},
	 {
		
			xtype: 'box',
			id: 'edit-organiser-profile',
			 overCls : 'clickable', 
			autoEl: {
				cls: 'organiserBtn',
				tag: 'img',
				src: 'images/tools/edit_organiser_profile.png'
			
			},
			listeners: {
				'render': function(b){
				
					Ext.get('edit-organiser-profile').on('click', function(){
					
					
						FOS.Organiser.QuickTools.OrganiserList.selectOrganiser(
							function () {
								location.href = "?module=organiser&action=edit_organiser_profile&organiserId="  + FOS.Organiser.QuickTools.OrganiserList.selectedOrganiserId;
							}
						)	
					}
					
				)
					
				}
			
			
			}
		
	
	
	},
	{
		 
		xtype: 'box',
		id : 'answers-report',
		overCls : 'clickable',  
		autoEl: {
			cls: 'organiserBtn',
    		tag: 'img',
    		src: 'images/tools/answers_report.png'
			
		},
		listeners : {
			'render' : function (b) {
				
				Ext.get('answers-report').on('click', function () {
					FOS.Organiser.QuickTools.EventsList.selectEvent (function ()
					{
						location.href = "?index.php&module=organiser&action=answers&eid="  + FOS.Organiser.QuickTools.EventsList.selectedEventId;
	 
					})
				});
				
			}
			
			
		}
	},
	{
		 
		xtype: 'box',
		id : 'my-orders',
		overCls : 'clickable',  
		autoEl: {
			cls: 'organiserBtn',
    		tag: 'img',
    		src: 'images/tools/orders_report.png'
			
		},
		listeners : {
			'render' : function (b) {
				
				Ext.get('my-orders').on('click', function (eid) {
					 
						location.href = "?index.php&module=organiser&action=orders";
						 
					 
					
				});
				
			}
			
			
		}
	} ,{
		 
		xtype: 'box',
		id : 'my-orders-by-month',
		overCls : 'clickable',  
		hidden: false,
		autoEl: {
			cls: 'organiserBtn',
    		tag: 'img',
    		src: 'images/tools/orders_report_by_month.png'
			
		},
		listeners : {
			'render' : function (b) {
				
				Ext.get('my-orders-by-month').on('click', function (eid) {
					 
						location.href = "?index.php&module=organiser&action=ordersByMonth";
						 
					 
					
				});
				
			}
			
			
		}
	} ,
	{
		 
		xtype: 'box',
		hidden : true,
		id : 'event-online-bookings',
		overCls : 'clickable',  
		autoEl: {
			cls: 'organiserBtn',
    		tag: 'img',
    		src: 'images/tools/online_booking_report.png'
			
		},
		listeners : {
			'render' : function (b) {
				
				Ext.get('event-online-bookings').on('click', function (eid) {
					FOS.Organiser.QuickTools.EventsList.selectEvent (function ()
					{
						
						location.href = "?index.php&module=organiser&action=bookings&eid=" + FOS.Organiser.QuickTools.EventsList.selectedEventId;
						 	 			 
						  
					})
					
				});
				
			}
			
			
		}
	},{ 
		 
		xtype: 'box',
		hidden : false,
		id : 'event-series',
		overCls : 'clickable',  
		autoEl: {
			cls: 'organiserBtn',
    		tag: 'img',
    		src: 'images/tools/edit_series.png'
			
		},
		listeners : {
			'render' : function (b) {
				
				Ext.get('event-series').on('click', function (eid) {
					 
						
					FOS.Organiser.QuickTools.SeriesList.selectSeries (function ()
							{
								
								location.href = "?index.php&module=organiser&action=edit_series&seriesId=" + FOS.Organiser.QuickTools.SeriesList.selectedSeriesId;
								 	 			 
								  
							})
						 	 			 
					 
					
				});
				
			}
			
			
		}
	} ,{ 
		 
		xtype: 'box',
		hidden : false,
		id : 'event-summary',
		overCls : 'clickable',  
		autoEl: {
			cls: 'organiserBtn',
    		tag: 'img',
    		src: 'images/tools/event_summary.png'
			
		},
		listeners : {
			'render' : function (b) {
				
				Ext.get('event-summary').on('click', function (eid) {
					 
						
						location.href = "?index.php&module=event_summary";
						 	 			 
					 
					
				});
				
			}
			
			
		}
	},{
		 
		xtype: 'box',
		 overCls : 'clickable', 
		id : 'participant-report',
		autoEl: {
			cls: 'organiserBtn',
    		tag: 'img',
    		src: 'images/tools/part_report.png'
			
		},
		listeners : {
			'render' : function (b) {
				
				Ext.get('participant-report').on('click', function (eid) {
				 	 	
					FOS.Organiser.QuickTools.EventsList.selectEvent (function ()
					{
						
						 t = FOS.Organiser.QuickTools.EventsList.selectedEventType	;
						 eid = FOS.Organiser.QuickTools.EventsList.selectedEventId ;
						
						location.href = "?module=organiser&action=participant_list&eid=" + eid + "&type=" + t ;
						 
					});
					
					 
					
				});
				
			}
			
			
		}
	
	
	
	},{
		 
		xtype: 'box',
		id : 'results-report',
		 overCls : 'clickable', 
		autoEl: {
			cls: 'organiserBtn',
    		tag: 'img',
    		src: 'images/tools/results_report.png'
			
		},
		listeners : {
			'render' : function (b) {
				
				Ext.get('results-report').on('click', function () {
					
					FOS.Organiser.QuickTools.EventsList.selectEvent (function ()
					{ 
						location.href = "?index.php&module=organiser&action=event_result&eid=" + FOS.Organiser.QuickTools.EventsList.selectedEventId;
						 
					})	
				});
				
			}
			
			
		}
	}]
	
	
	
}

 



