// JavaScript Document
extURL = "http://www.globalsignin.com.sg/apps/jslib";
Ext.BLANK_IMAGE_URL = extURL + '/resources/images/default/s.gif';

Ext.util.CSS.swapStyleSheet('theme', extURL + '/resources/css/green/css/xtheme-green.css'); 

// create namespace
Ext.namespace('DMA');

var entry_window;
// create application
DMA.APP = function(){
	return {
		
		init:function(){
			Ext.QuickTips.init();
			DMA.APP.showEntryList();			
		},
		
			
		fileRenderer:function(data, cell, record, rowIndex, columnIndex, store){
			if(data!='') data = "<a href='"+data+"' target='_blank'>Click here to see the logo</a>"
			return data
		},
		
		gridReloadStartWith:function(ele,startWith){
			var pagingEles = document.getElementById('paging_holder').getElementsByTagName("a");  
			for (i = 0, j = 0; i < pagingEles.length; i++) {
				pagingEles[i].className = 'pagingbar';
			}
			ele.className = 'pagingbar_active';
			
			
			DMA.APP.EntryListStore.setDefaultSort('evaa_participant.name', 'ASC');
			DMA.APP.EntryListStore.reload({params: {startwith:startWith ,start: 0,	limit: 15}});
		},
		
		showEntryList:function(){
		
			var primaryKey = 'evaa_registrationbaseid';
			var EntryListDataField = new Ext.data.Record.create([
				{name: primaryKey},
				{name: 'name'},
				{name: 'address2'},
				{name: 'address1'},
				{name: 'text1'},
				{name: 'picture'}
				]);
			var EntryListDataReader = new Ext.data.JsonReader({
				root: 'results',
				totalProperty: 'total',
				id: primaryKey
				}, EntryListDataField);
			
			DMA.APP.EntryListStore = new Ext.data.GroupingStore({
				proxy: new Ext.data.HttpProxy({
					url: 'post.php',
					method: 'POST'
				}),
				baseParams: {
					task: "getEntryList"
				},
	            //groupField:'name',
				reader: EntryListDataReader,			
				remoteSort: true
			});
			var filters = new Ext.ux.grid.GridFilters({
					local: false,//specify true if you want to filter client side
					filters: [
						{dataIndex: 'name', type: 'string', active:false},
						{dataIndex: 'address2', type: 'string', active:false},
						{dataIndex: 'address1', type: 'string', active:false}				
						]
			});//end filters setup
			var pagingPlugin = new Ext.ux.Andrie.pPageSize({
				afterText: 'records at a time'
			});	
			var ChkBox = new Ext.grid.CheckboxSelectionModel({
				width: 20
			});
			//row numberer
			var rownumber =new Ext.grid.RowNumberer()
			// row expander
			var expander = new Ext.grid.RowExpander({
				tpl : new Ext.Template(
					'<p><b>Press release content:</b> {text1}<br />'
				)
			});
			DMA.APP.EntryListStore.setDefaultSort('evaa_registrationbaseid', 'DESC');
			var cols = new Ext.grid.ColumnModel([
			 	//rownumber,
				//expander,
				{id:'name',header: "Company Name", sortable: true, dataIndex: 'name'},	
				//{id:'address2',header: "Booth number", sortable: true, dataIndex: 'address2'},			
				{id:'address1',header: "News Headline", sortable: true, dataIndex: 'address1'}			
				//{id:'text1',header: "Score", sortable: false, dataIndex: 'text1', width:30},
				//{id:'picture',header: "Company Logo", sortable: false, dataIndex: 'picture',renderer:DMA.APP.fileRenderer}	
			]);
			
			DMA.APP.EntryListStore.load({params: {start: 0,	limit: 15}});
			var EntryListGridPanel=new Ext.grid.GridPanel({
				id:'EntryListGrid',
				tabTip:'Click on the record to see the Press Release details',
				store: DMA.APP.EntryListStore,
				stripeRows: true,
				loadMask: true,
				frame:false,
				border:true,
				width:650,
				height:420,
				collapsible: false,
				animCollapse: false,
				iconCls: 'icon-grid',	        
				autoExpandColumn:'address1',
				plugins:[filters,/*expander,*/new Ext.ux.grid.Search({iconCls:'icon-zoom' ,/*readonlyIndexes:['address1'] ,*/disableIndexes:['picture'] ,minChars:2 ,autoFocus:true })],
				colModel: cols,	
				sm: ChkBox,
				//Add a top bar      
				/*tbar: [new Ext.Button({
							text: 'Refresh',
							tooltip: 'Click to refresh',							
							iconCls: 'refresh',
							handler: function(){filters.clearFilters();}
						}),'->'],*/
				bbar: new Ext.PagingToolbar({
					plugins:[pagingPlugin,filters],
					pageSize: 15,
					store: DMA.APP.EntryListStore,
					displayInfo: true,
					displayMsg: '{0} to {1} of {2}',
					emptyMsg: "No record to display"
				 }),			
				view: new Ext.grid.GroupingView({
					forceFit: true,
					groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})',
					hideGroupedColumn: false,
					showGroupName:false,
					emptyText: 'No Record found'

				}),
				renderTo: 'middle_body_gridHolder'
			});
			EntryListGridPanel.addListener('rowclick', this.EntryOnRowDblClick);
		},
		
		EntryOnRowDblClick:function(grid, rowIndex, e){
				
			var name = DMA.APP.EntryListStore.getAt(rowIndex).data.name;
			var title = DMA.APP.EntryListStore.getAt(rowIndex).data.address1;
			var booth = DMA.APP.EntryListStore.getAt(rowIndex).data.address2;			
			var content = DMA.APP.EntryListStore.getAt(rowIndex).data.text1;
			var logoURL =DMA.APP.EntryListStore.getAt(rowIndex).data.picture;
						
			document.getElementById('details_name').innerHTML = name;
			document.getElementById('details_title').innerHTML = title;
			document.getElementById('details_booth').innerHTML = booth;
			document.getElementById('details_content').innerHTML = content;
			document.getElementById('details_logo').innerHTML = "<a href='"+logoURL+"' target='_blank'><img src='"+logoURL+"' border=0 class='projectimg' /></a>";
						
			var entryDetailsPanel=new Ext.Panel({
				title:"",
				frame:false,
				border:false,
				contentEl:'entry_details_panel'
			});
			
			entry_window = new Ext.Window({				
				width:800,
				//height:400, 
				maximizable:false,
				title:'Press Release Details',
				closeAction:'hide',
				modal:true,
				plain: true,
				items: entryDetailsPanel
           });
        
		entry_window.show(this);
		}
	}
}();
