var bgtEventDataSource;
var bgtEventsDataTable;
var bgtEventColHeaders;
var bgtEventColumnSet;

function initBGTEventsGrid(){
		var dateFormatter = function(elCell, oRecord, oColumn, oData) {
			var tempDate = new Date(convertMYSqlDateToJSDate(oData));
			var formattedDate = tempDate.formatDate("l, M j");
			elCell.innerHTML = formattedDate;
		};
		var timeFormatter = function(elCell, oRecord, oColumn, oData) {
			var tempTime_array = oData.split(":", 3);
			var tempTime_str =  tempTime_array[0] +":" + tempTime_array[1] + " " + tempTime_array[2];
			elCell.innerHTML = tempTime_str;
		};
		bgtEventColHeaders = [  {key:"Date", label:"Date", resizeable:true, formatter:dateFormatter},
							    {key:"Title", label:"Title", resizeable:true},
								{key:"Category", label:"Category"},
					            {key:"HostedBy", label:"Host"},
					            {key:"StartTime", label:"Start Time", formatter:timeFormatter}
					           ];
	    bgtEventColumnSet = new YAHOO.widget.ColumnSet(bgtEventColHeaders);
}
	
function updateEventRows(events_rs) {
	var data_array = new Array();
	var len = events_rs.length;
	for(var i = 0; i < len; i++) {
		data_array.push({ID:events_rs[i].ID,Status:events_rs[i].STATUS,Date:events_rs[i].DATE,Category:events_rs[i].CATEGORY,Title:events_rs[i].TITLE,HostedBy:events_rs[i].HOSTEDBY,StartTime:events_rs[i].STARTTIME});
	}
	bgtEventDataSource = new YAHOO.util.DataSource(data_array); 
	bgtEventDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
	bgtEventDataSource.responseSchema = {fields: ["ID","Status","Date", "Title","Category", "HostedBy", "StartTime"]};
	
	var oConfigs = {scrollable:false,
	                paginated:true,
					paginator: {rowsPerPage: 10, dropdownOptions: [5, 10,25]}
				   };
				   
				   
	bgtEventsDataTable = new YAHOO.widget.DataTable("bgt-events-grid", bgtEventColumnSet, bgtEventDataSource, oConfigs);
	bgtEventsDataTable.subscribe("cellClickEvent",handleRowClicked);
	
    bgtEventsDataTable.subscribe("rowMouseoverEvent", bgtEventsDataTable.onEventHighlightRow);
    bgtEventsDataTable.subscribe("rowMouseoutEvent", bgtEventsDataTable.onEventUnhighlightRow);
		
}

function handleRowClicked(args) {
	bgtEventsDataTable.onEventSelectRow(args);
	var selectedRowIndex = bgtEventsDataTable.getSelectedRows()[0];
	var selectedEventID = bgtEventsDataTable.getRecordSet().getRecord(selectedRowIndex).getData("ID");
	var selectedEventStatus = bgtEventsDataTable.getRecordSet().getRecord(selectedRowIndex).getData("Status");
	if(selectedEventID < 0 || processing) {
		return;
	}
	bgtEventClicked(selectedEventID, selectedEventStatus);
}
