// page_admin.js

var mToDoTbl;

var mToDoPanel;
var mSavedToDoRow;

var m_uname;
var m_comments;
var m_entrydate;
var m_status;
var m_response;
var m_submit_but;
var m_save_resp_but;
var m_erase_all_but;
var m_status_popup;
var m_delete_but;

var m_mode = "New";		// "New" or "View"
var mJustRefreshed;
var m_rowID;

//----------------------------------------------
function InitToDoPage()
	{
	InitToDoElems();
	mJustRefreshed = true;
	GetPrivileges(GetUsername(), "");
	ResetToDoScrn();
	BuildToDoTable();
	}

//----------------------------------------------
function InitToDoElems()
	{
	m_uname = document.getElementById("submit_by_name");
	m_comments = document.getElementById("id_comments");
	m_comments_ro = document.getElementById("id_comments_ro");
	m_response = document.getElementById("id_response");
	m_response_ro = document.getElementById("id_response_ro");
	m_entrydate = document.getElementById("submit_date");
	m_status = document.getElementById("todo_status");
	m_submit_but = document.getElementById("submit_but");
	m_save_resp_but = document.getElementById("respond_but");
	m_rowID = document.getElementById("id_rowID");
	m_status_popup = document.getElementById("status_popup");
	m_delete_but = document.getElementById("delete_but");
	}

//----------------------------------------------
function BuildToDoTable()
	{
	mToDoTbl = new Table('tod');					// Create a new instance of a table (ToDo Table)
	mToDoTbl.SetPosition(55, 10);					// Position the table (top, left)
	mToDoTbl.SetTotalRowsPerPage(10);				// Set initial num of visible rows in table
	mToDoTbl.SetDfltSelectedHdg(3);				// Set default hilited heading (last name)
	mToDoTbl.SetTotalCols(6);						// Set total number of colums
	mToDoTbl.SetColAlignments("center","left","left","left","left");			// Set column alignments
	mToDoTbl.SetColWidths(30, 390, 85, 58, 66, 210);// Set column widths
	mToDoTbl.SetSelectRowFunc(SelectToDoRow);	// Set selected row
	mToDoTbl.SetSelectHdgFunc(SelectToDoHdg);			// Set selected heading
	mToDoTbl.SetHeadingNames("#", "Comments", "Submitted By", "Submitted", "Status", "Response");
	mToDoTbl.SetDataStrID("id_userData");		// Set the element that will keep a copy of all ToDo data
	mToDoTbl.SetColDataIndicies(-1,2,1,3,4,5);	// Set visible columns
	mToDoTbl.SetColumnDelimeter("~");
	mToDoTbl.SetColMaxChars(1,66);
	mToDoTbl.SetColMaxChars(5,30);
	mToDoTbl.SetViewPopupVisible(false);
/*	 $s.$fname.",".$lname.",".$uname.",".$email.",".$created.",".$lastvisit."^";
	CreatePlayerListPanels();
	CreatePlayerInfoPanel();
	SetTitlePanel();
	SetRatePanel();
	CreateRatingInfoPanel();
*/
	mToDoTbl.Show();								// Display the table
	
	mToDoTbl.AddFilter("username", "All");
	mToDoTbl.AddFilter("sort", "entrydatetime");
	}
	
//------------------------------------------------------------------------
function SelectToDoRow(tblObj, rowNum)
	{
	if (rowNum > 0) 
		{
		Action_GoToViewMode_Func();
		SetToDoRowDataValues(rowNum);	
		}
//	EnableDetailFields(true);
//	RebuildRatingList();
	}
	
//------------------------------------------------------------------------
function SelectToDoHdg(tblObj, col)
	{
	switch(parseInt(col))
		{
		case 1: val = "comments";		break;
		case 2: val = "username";		break;
		case 3: val = "entrydatetime";	break;
		case 4: val = "email";			break;
		case 5: val = "stat";			break;
		case 6: val = "response";		break;
		}
	mToDoTbl.SetFilterValue("sort", val);
	if (mJustRefreshed) 
		{
		RebuildToDoList(0);	
		mJustRefreshed = false;
		}
	else RebuildToDoList(1);
	}
//------------------------------------------------------------------------
function RebuildToDoList(selectRow)
	{
	mSavedToDoRow = selectRow;
	sortby = mToDoTbl.GetFilterValue("sort");
	if (sortby == null || sortby == "entrydatetime")
		{
		sortby = "entrydatetime DESC";	
		}
	var str='sort='+sortby;

	// Make AJAX call -------------------
//		EnableDetailFields(false);
//		("fields have been dimmed")
	var ajax = new AJAX("get_todo_data.php", str);
	ajax.onload = RefreshToDoTableData;
	ajax.get();
	}

//------------------------------------------------------------------------
function RefreshToDoTableData(ajax, success)
	{
	if (success)
		{
		ajax.PutStrInValue("id_userData");
		mToDoTbl.Refresh();
		}

	delete ajax;
	mToDoTbl.SetControlForm();
//		SetDetailsElements();
	if (success) 
		{
		mToDoTbl.SelectRow(mSavedToDoRow);	
		}
//	mToDoTbl.ResetTotal();
	}
//-----------------------------------------------------------------------------
function SetToDoRowDataValues(row)
	{
	var blankAll = false;
	InitToDoElems();
	if (row > -1)
		{
		var rowData = mToDoTbl.GetRowData(row);
		if (rowData != "")
			{
			m_rowID.value = rowData[0];
			m_uname.innerHTML = rowData[1];
			m_comments_ro.value = rowData[2];
			m_response_ro.value = rowData[5];
			m_response.value = rowData[5];
			m_entrydate.innerHTML = rowData[3];
			m_status.innerHTML = rowData[4];
			}
		else blankAll = true;
		}
	else blankAll = true;
	
	if (blankAll)	
		{
		m_rowID.value = 0;
		m_uname.value = "";
		m_comments.value = "";
		m_response.value = "";
		m_entrydate.value = "";
		m_status.value = "";
		}
	}
//-----------------------------------------------------------------------------
function ResetToDoScrn()
	{
	switch(m_mode)
		{
		case "New":
			HideElemID("id_response");
			HideElemID("id_response_ro");
			ShowElemID("comment_descript");
			ShowElemID("id_comments");
			HideElemID("id_comments_ro");
			HideElemID("comment_title");
			HideElemID("response_title");
			HideElemID("new_but");
			ShowElemID("submit_but");
			HideElemID("submit_by_title");
			HideElemID("submit_by_name");
			HideElemID("date_title");
			HideElemID("submit_date");
			HideElemID("status_title");
			HideElemID("todo_status");
			HideElemID("respond_but");
			ShowElemID("new_explain");
			HideElemID("kill_but");
			HideElemID("status_popup");
			Comments_OnKeyUp(null);
			m_comments.focus();
			break;
			
		case "View":
			if (IsAdminLevel())
				{
				ShowElemID("id_response");
				HideElemID("id_response_ro");
				Response_OnKeyUp(null);
				}
			else	
				{
				HideElemID("id_response");
				ShowElemID("id_response_ro");
				}
			ShowElemID("id_response");
			HideElemID("comment_descript");
			HideElemID("id_comments");
			ShowElemID("id_comments_ro");
			ShowElemID("comment_title");
			ShowElemID("response_title");
			ShowElemID("new_but");
			HideElemID("submit_but");
			ShowElemID("submit_by_title");
			ShowElemID("submit_by_name");
			ShowElemID("date_title");
			ShowElemID("submit_date");
			ShowElemID("status_title");
			ShowElemID("todo_status");
			if (IsAdminLevel()) 
				{
				ShowElemID("respond_but");	
				ShowElemID("status_popup");
				ShowElemID("kill_but");	
				ShowElemID("delete_but");	
				}
			else
				{
				HideElemID("respond_but");	
				HideElemID("kill_but");	
				HideElemID("status_popup");
				HideElemID("delete_but");
				}
			HideElemID("new_explain");
			break;
		}	
	}

//-----------------------------------------------------------------------------
function Action_GoToViewMode_Func()
	{
	if (m_mode != "View")
		{
		InitToDoElems();
		m_mode = "View";
		ResetToDoScrn();
		}
	}
//-----------------------------------------------------------------------------
function Action_GoToNewMode_Func()
	{
	if (m_mode != "New")
		{
		m_mode = "New";
		ResetToDoScrn();
		}
	}

//------------------------------------------------------------------------
function Action_AddComment_Func()
	{
	if (GetPrivilege(GetUsername(), "priv_add_todo"))
		{
		var comments = m_comments.value;
		var uname = GetUsername();
		
		var str="request=add_todo^uname="+uname+"^comments="+comments;
	
		// Make AJAX call -------------------
		var ajax = new AJAX("todo_ajax.php", str);
		ajax.onload = DoneAddingComments;
		ajax.get();
		}
	else AlertNoPriv("Add Comments");
	}

//------------------------------------------------------------------------
function DoneAddingComments(ajax, success)
	{
	if (success)
		{
		m_comments.value = "";
//		SelectRowByID(ajax.GetRtnStr());
		mToDoTbl.SelectHdgCol(3);
	//	alert("Thank You.\n\nYour comments have been submitted.")
		RebuildToDoList(1);
		mToDoTbl.Refresh();
		}
	delete ajax;
	}


//------------------------------------------------------------------------
function Action_EraseAll_Func()
	{
	var str="table=todo";

	// Make AJAX call -------------------
	var ajax = new AJAX("clear_table.php", str);
	ajax.onload = DoneErasing;
	ajax.get();
	}

//------------------------------------------------------------------------
function DoneErasing(ajax, success)
	{
	if (success)
		{
		RebuildToDoList(0);
		mToDoTbl.Refresh();
		}
	delete ajax;
	}

//------------------------------------------------------------------------
function Comments_OnKeyUp(elem)
	{
	m_submit_but.disabled = (m_comments.value.length == 0);
	}
//------------------------------------------------------------------------
function Response_OnKeyUp(elem)
	{
	m_save_resp_but.disabled = (m_response.value.length == 0);
	}
//-----------------------------------------------------------------------------
function Action_Respond_Func()
	{
	UpdateResponse();
	}
//------------------------------------------------------------------------
function UpdateResponse()
	{
	var resp = m_response.value;
	var status = m_status_popup.value.replace("_"," ");
	var rowid = m_rowID.value;
	
	var str="request=update_response^response="+resp+"^stat="+status+"^rowid="+rowid;
	// Make AJAX call -------------------
	var ajax = new AJAX("todo_ajax.php", str);
	ajax.onload = DoneUpdatingResponse;
	ajax.get();
	}

//------------------------------------------------------------------------
function DoneUpdatingResponse(ajax, success)
	{
	if (success)
		{
		RebuildToDoList(1);
		mToDoTbl.Refresh();
		}
	delete ajax;
	}
//------------------------------------------------------------------------
function SelectToDoStatusFunc(elem)
	{
	m_save_resp_but.disabled = false;
	}
	
///------------------------------------------------------------------------
function Action_Delete_Func()
	{
	var resp = m_response.value;
	var status = m_status_popup.value.replace("_"," ");
	var rowid = m_rowID.value;
	
	var str="request=delete_row^rowid="+rowid;
	// Make AJAX call -------------------
	var ajax = new AJAX("todo_ajax.php", str);
	ajax.onload = DoneDeletingToDoEntry;
	ajax.get();
	}

//------------------------------------------------------------------------
function DoneDeletingToDoEntry(ajax, success)
	{
	if (success)
		{
		RebuildToDoList(1);
		mToDoTbl.Refresh();
		}
	delete ajax;
	}

	