// page_admin.js

var mUserTbl;
var priv1;
var priv2;
var priv3;
var priv4;
var priv5;
var priv6;
var priv7;
var priv8;
var priv9;

var fname;
var lname;
var uname;
var email;

var mUserPanel;
var mUserFileName;
var mSavedUserRow;

//----------------------------------------------
function InitAdminPage()
	{
	InitAdminElems();
	BuildUserPanel();
	BuildUserTable();
	RebuildUserList(1);
	ui_load_panel("visits",null);
	}

//----------------------------------------------
function InitAdminElems()
	{
	fname = document.getElementById("phpid"+"firstname");
	lname = document.getElementById("phpid"+"lastname");
	uname = document.getElementById("phpid"+"username");
	email = document.getElementById("phpid"+"email");
	priv1 = document.getElementById("chkbxpriv1");
	priv2 = document.getElementById("chkbxpriv2");
	priv3 = document.getElementById("chkbxpriv3");
	priv4 = document.getElementById("chkbxpriv4");
	priv5 = document.getElementById("chkbxpriv5");
	priv6 = document.getElementById("chkbxpriv6");
	priv7 = document.getElementById("chkbxpriv7");
	priv8 = document.getElementById("chkbxpriv8");
	priv9 = document.getElementById("chkbxpriv9");
	}

//----------------------------------------------
function BuildUserTable()
	{
	mUserTbl = new Table('usr');					// Create a new instance of a table (User Table)
	mUserTbl.SetPosition(78, 10);					// Position the table (top, left)
	mUserTbl.SetTotalRowsPerPage(20);				// Set initial num of visible rows in table
	mUserTbl.SetDfltSelectedHdg(2);				// Set default hilited heading (last name)
	mUserTbl.SetTotalCols(7);						// Set total number of colums
	mUserTbl.SetColAlignments("center","left","left","left","left","left");			// Set column alignments
	mUserTbl.SetColWidths(40, 90, 90, 60, 150, 50, 110);// Set column widths
	mUserTbl.SetSelectRowFunc(SelectUserRow);	// Set selected row
	mUserTbl.SetSelectHdgFunc(SelectUserHdg);			// Set selected heading
	mUserTbl.SetHeadingNames("#", "First Name", "Last Name", "Username", "EMail", "Join Date", "Last Visit");
	mUserTbl.SetDataStrID("id_userData");		// Set the element that will keep a copy of all user data
	mUserTbl.SetColDataIndicies(-1,0,1,2,3,4, 5);	// Set visible columns
/*	 $s.$fname.",".$lname.",".$uname.",".$email.",".$created.",".$lastvisit."^";
	CreatePlayerListPanels();
	CreatePlayerInfoPanel();
	SetTitlePanel();
	SetRatePanel();
	CreateRatingInfoPanel();
*/
	mUserTbl.Show();								// Display the table
	
	mUserTbl.AddFilter("sort", "lastname");
	}


//------------------------------------------------------------------------
function SelectUserRow(tblObj, rowNum)
	{
	if (rowNum > 0) SetUserRowDataValues(rowNum);
//	EnableDetailFields(true);
//	RebuildRatingList();
	}
	
//------------------------------------------------------------------------
function SelectUserHdg(tblObj, col)
	{
	var val;

	switch(parseInt(col))
		{
		case 1: val = "firstname";	break;
		case 2: val = "lastname";	break;
		case 3: val = "username";	break;
		case 4: val = "email";		break;
		case 5: val = "created";	break;
		case 6: val = "timestamp";	break;
		}
	mUserTbl.SetFilterValue("sort", val);
	RebuildUserList(1);
	}


//------------------------------------------------------------------------
function RebuildUserList(selectRow)
	{
	mSavedUserRow = selectRow;
	sortby = mUserTbl.GetFilterValue("sort");
	if (sortby == null) sortby = "lastname";
	var str='sort='+sortby;

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

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

		delete ajax;
		mUserTbl.SetControlForm();
//		SetDetailsElements();
		if (success) 
			{
			mUserTbl.SelectRow(mSavedUserRow);	
			}
	//	mUserTbl.ResetTotal();
		}

//-----------------------------------------------------------------------------
function SetUserRowDataValues(rowNum)
	{
	var filename;
	if (rowNum > -1)
		{
		rowData = mUserTbl.GetRowData(rowNum);
		fname.value = rowData[0];
		lname.value = rowData[1];
		uname.value = rowData[2];
		email.value = rowData[3];
		
		priv1.value = "";
		priv2.value = "";
		priv3.value = "";
		priv4.value = "";
		priv5.value = "";
		priv6.value = "";
		priv7.value = "";
		priv8.value = "";
		priv9.value = "";

		if (uname != "" || uname != null)
			{
			GetPrivileges(uname.value, GotSelectUsersPrivs);
			filename = fname.value+lname.value+".jpg";
			filename.replace(" ","");
			ProcessUserPhoto(filename.toLowerCase());
	//			SetPlayerTitle(elem_firstname.value+" "+elem_lastname.value);
			}
		}
	else
		{
//			elem_playerID.value = "";
//			ShowPict("");
//			SetPlayerTitle("");
		}
	}

//-------------------------------------------------
function ProcessUserPhoto(filename)
	{
	mUserFileName = filename;
	var str="path='../photos/"+filename+"'";
 
	// Make AJAX call -------------------
	var ajax = new AJAX("file_exists.php", str);
	ajax.onload = HandleUserProcessPhoto;
	ajax.get();
	}
//-------------------------------------------------		
function HandleUserProcessPhoto(ajax, success)
	{
	if (success)
		{ 
		if (ajax.GetRtnStr())
			{
			ShowUserPict(mUserFileName);	
			}
		else
			{
			ShowUserPict("aa_photo_not_avail.jpg");
			}
		}
	delete ajax;
	}

//-----------------------------------------------------------------------------
function DigitToTF(digit)
	{
	if (digit == "1") return true;
	return false;
	}
//-----------------------------------------------------------------------------
function GotSelectUsersPrivs(privs)
	{
	InitAdminElems();
	priv1.checked = DigitToTF(privs.substr(0,1));
	priv2.checked = DigitToTF(privs.substr(1,1));
	priv3.checked = DigitToTF(privs.substr(2,1));
	priv4.checked = DigitToTF(privs.substr(3,1));
	priv5.checked = DigitToTF(privs.substr(4,1));
	priv6.checked = DigitToTF(privs.substr(5,1));
	priv7.checked = DigitToTF(privs.substr(6,1));
	priv8.checked = DigitToTF(privs.substr(7,1));
	priv9.checked = DigitToTF(privs.substr(8,1));
	}
//-----------------------------------------------------------------------------
function BuildUserPanel()
	{
	mUserPanel = new Panel("admin_user_panel", 33, 666, 190, 180, "thin", "inset", "", "", null);
	mUserPanel.AddObject("P_PHOTO", TYPE_PHOTO_WITH_FRAME, 0, 0, 190, 180, "");
	mUserPanel.Show();
	}
//-----------------------------------------------------------------------------
function ShowUserPict(fName)
	{
	var path = "";
	var elem = GetElemByID("P_PHOTO");

	if (fName != "")
		{
		path = "../photos/"+fName.toLowerCase();
		var img = new Image();
		img.src = path;
		}
	elem.src = path+'?'+escape(new Date());
	}

//-----------------------------------------------------------------------------
function Action_New_Func(butElem)
	{
	RebuildUserList(1);
	}
//-----------------------------------------------------------------------------
function Action_Delete_Func(butElem)
	{
	RebuildUserList(1);
	}
	
//-----------------------------------------------------------------------------
function GetPrivDigit(chkboxElem)
	{
	if (chkboxElem.checked) return "1";
	return "0";
	}
//-----------------------------------------------------------------------------
function Action_Save_Func(butElem)
	{
	InitAdminElems();
	var str=	"request=save"+
				"^fname="+fname.value+"^lname="+lname.value+"^uname="+uname.value+"^email="+email.value+
				"^p1="+GetPrivDigit(priv1) +
				"^p2="+GetPrivDigit(priv2) +
				"^p3="+GetPrivDigit(priv3) +
				"^p4="+GetPrivDigit(priv4) +
				"^p5="+GetPrivDigit(priv5) +
				"^p6="+GetPrivDigit(priv6) +
				"^p7="+GetPrivDigit(priv7) +
				"^p8="+GetPrivDigit(priv8) +
				"^p9="+GetPrivDigit(priv9);
 
	// Make AJAX call -------------------
	var ajax = new AJAX("admin_ajax.php", str);
	ajax.onload = HandleUserSave;
	ajax.get();
	}

//------------------------------------------------------------------------
function HandleUserSave(ajax, success)
	{
	if (success)
		{
		alert("Privilege Upade Accepted.")
		}
	delete ajax;
	}

//-------------------------------------------------
function SendEmailUpdatetoAll(elem)
	{
	// Make AJAX call -------------------
	var ajax = new AJAX("send_mail_to_all_update_1.php", "");
	ajax.onload = DoneWithMassMail;
	ajax.get();
	}
//-------------------------------------------------
function SendEmailUpdatetoAll2(elem)
	{
	// Make AJAX call -------------------
	var ajax = new AJAX("send_mail_to_all_update_2.php", "");
	ajax.onload = DoneWithMassMail;
	ajax.get();
	}
//-------------------------------------------------
function SendEmailUpdatetoAll3(elem)
	{
	// Make AJAX call -------------------
	var ajax = new AJAX("send_mail_to_all_update_3.php", "");
	ajax.onload = DoneWithMassMail;
	ajax.get();
	}
//-------------------------------------------------		
function DoneWithMassMail(ajax, success)
	{
	if (success)
		{ 
		cnt = ajax.GetRtnStr();
		alert("Mail has been sent to "+cnt+" members.")
		}
	delete ajax;
	}
//-------------------------------------------------
function CopyEmailAddrsFromUsersToPlayers(elem)
	{
	// Make AJAX call -------------------
	var ajax = new AJAX("copy_email_addrs_from_users_to_players.php", "");
	ajax.onload = DoneWithEmailAddrCopy;
	ajax.get();
	}
//-------------------------------------------------		
function DoneWithEmailAddrCopy(ajax, success)
	{
	if (success)
		{ 
		alert(ajax.GetRtnStr())
		}
	delete ajax;
	}

//-------------------------------------------------
function FixPlayerIDsInPhotoContrib(elem)
	{
	// Make AJAX call -------------------
	var ajax = new AJAX("fix_playerids_in_photo_contrib.php", "");
	ajax.onload = Done_FixPlayerIDsInPhotoContrib;
	ajax.get();
	}
//-------------------------------------------------		
function Done_FixPlayerIDsInPhotoContrib(ajax, success)
	{
	if (success)
		{ 
		alert(ajax.GetRtnStr())
		}
	delete ajax;
	}
//-------------------------------------------------
function UpdateMugThumbs(elem)
	{
	// Make AJAX call -------------------
	var ajax = new AJAX("photos_ajax.php", "request=create_mug_thumbs");
	ajax.onload = Done_UpdateMugThumbs;
	ajax.get();
	}
//-------------------------------------------------		
function Done_UpdateMugThumbs(ajax, success)
	{
	if (success)
		{ 
		alert(ajax.GetRtnStr());
		}
	delete ajax;
	}

