var imsEventDataSource,
    imsEventsDataTable,
	imsEventColHeaders,
	imsEventColumnSet;

//Event.ID, Title, EventStatus, EventType, EventVenueName, City, State, Date, StartTime, NumSeats, NumSeatsAvailable

function initIMSEventsGrid(){
		imsEventColHeaders = [  {key:"Date", label:"Date", resizeable:false},
							    {key:"Title", label:"Event", resizeable:false, sortable:false},
								{key:"Location", label:"Location", resizeable:false, sortable:false}
					               ];
	    imsEventColumnSet = new YAHOO.widget.ColumnSet(imsEventColHeaders);
}
function timeFormatter (oData) {
			var tempTime_array = oData.split(":", 3),
			    minutes_str = tempTime_array[1];
			if(minutes_str.length == 1) {
				minutes_str += "0";
			}
			return tempTime_array[0] +":" + minutes_str + " " + tempTime_array[2];
}
function dateFormatter (oData) {
			var tempDate = new Date(convertMYSqlDateToJSDate(oData)),
			    formattedDate = tempDate.formatDate("l, M j");
			return formattedDate;
}

function updateEventRows(events_rs) {
	var data_array = new Array(),
	    len = events_rs.length,
		i,
		nextLocation,
		next_date,
		nextTitle,
		rowsPerPage,
		oConfigs;
	for(i = 0; i < len; i++) {
		nextLocation = events_rs[i].EVENTVENUENAME + " - " + "<font style='font-style:italic;'>" + events_rs[i].CITY+ " "+ events_rs[i].STATE + "</font>";
		next_date = "<center><font style='font-weight:bold;'>" + dateFormatter(events_rs[i].DATE) + "</font> - " + timeFormatter(events_rs[i].STARTTIME) + "</center>";
		nextTitle = "<center><font style='font-weight:bold;'>" + events_rs[i].TITLE + "</font></center>";
		data_array.push({ID:events_rs[i].ID,Status:events_rs[i].EVENTSTATUS,Date:next_date,Title:nextTitle,Location:nextLocation,EventType:events_rs[i].EVENTTYPE});
	}
	imsEventDataSource = new YAHOO.util.DataSource(data_array); 
	imsEventDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
	imsEventDataSource.responseSchema = {fields: ["ID","Status","Date", "Title","Location","EventType"]};
	rowsPerPage = Math.round(getNumRowsForClientGrid(events_rs.length));
	if(rowsPerPage - 1 > 0) {
		rowsPerPage = rowsPerPage - 1;
	}
	oConfigs = {scrollable:false,
	            paginated:true,
					    paginator: new YAHOO.widget.Paginator({rowsPerPage:rowsPerPage,
															   totalRecords : len,
															   rowsPerPageOptions: [5, 10,25],
															  template : "{FirstPageLink}{PreviousPageLink}{PageLinks} {NextPageLink}{LastPageLink} Show {RowsPerPageDropdown} per page",pageLinks:YAHOO.widget.Paginator.VALUE_UNLIMITED,
																										 pageLabelBuilder : function (page,paginator) {  
                                                       var recs = paginator.getPageRecords(page);  
                                                       return (recs[0] + 1) + ' - ' + (recs[1] + 1);  
                                                     }
																										 })
				   };
	imsEventsDataTable = new YAHOO.widget.DataTable("ims-events-grid", imsEventColumnSet, imsEventDataSource, oConfigs);
	
	imsEventsDataTable.subscribe("cellClickEvent",handleRowClicked);
    imsEventsDataTable.subscribe("rowMouseoverEvent", imsEventsDataTable.onEventHighlightRow);
    imsEventsDataTable.subscribe("rowMouseoutEvent", imsEventsDataTable.onEventUnhighlightRow);
}

function handleRowClicked(args) {
	imsEventsDataTable.onEventSelectRow(args);
	var selectedRowIndex = imsEventsDataTable.getSelectedRows()[0],
	    selectedEventID = imsEventsDataTable.getRecordSet().getRecord(selectedRowIndex).getData("ID"),
		selectedEventType = imsEventsDataTable.getRecordSet().getRecord(selectedRowIndex).getData("EventType");
	if(selectedEventID < 0 || processing) {
		return;
	}
	if (selectedEventType == "PublicTicket" || selectedEventType == "PrivateTicket") {
		getEventDetails(selectedEventID);
	}
	if(selectedEventType == "DonationEvent"){
		goToDonationEvent(selectedEventID);
	}
	if(selectedEventType == "MembershipDrive"){
		goToMembershipEvent(selectedEventID);
	}
}