var clickedTag;
//--------------------------------------------------
function Forum_GetPanel(o,token)
{
	try{var p=o;while(p.c_token!=token)p=p.parentElement;return p;}catch(e){return null;}
}
//--------------------------------------------------
function Forum_AddGroup(o)
{
	var p			= Forum_GetPanel(o,"ListPanel");
	var clientID	= p.c_clientID;
	
	var ss = window.prompt("Enter name of new group:","");
	if (ss != null)
	{
		document.all(clientID+"_hidCommand").value	= "AddGroup";
		document.all(clientID+"_hidValue").value	= ss;
		document.all(clientID+"_lbCommand").click();
	}
}
//--------------------------------------------------
function Forum_AddModerator(o)
{
	var p			= Forum_GetPanel(o,"NewEdit");
	var clientID	= p.c_clientID;
	var ssIDs		= ","+document.all(clientID+"_hidModerators").value+",";
	var url			= "/Panels/SelectPrincipal/default.htm";
	var args		= new Function();
	args.Mode = "OnlyUser";
	if (window.showModalDialog(url, args, 'dialogWidth:700px; dialogHeight:500px; center:yes; edge:raised; scroll:no; status:no;'))
	{
		var err = "";
		var cnt = 0;
		var a = args.xRoot.selectNodes("I");
		for (var j=a.length-1; j>=0; j--)
		{	
			var x		= a[j];
			var id		= x.getAttribute("id");
			var name	= x.getAttribute("name");
			if (ssIDs.indexOf(","+id+",") != -1)
			{
				err += (err==""?"":"/n") + "/t - " + name;
				args.xRoot.removeChild(x);
			}
			else
			{
				cnt++
			}
		}
		if (cnt > 0)
		{
			document.all(clientID+"_hidCommand").value	= "RefreshModerators";
			document.all(clientID+"_hidValue").value	= args.xRoot.xml; //args.itemID;
			document.all(clientID+"_lbCommand").click();
		}
		else if (err != "")
		{
			alert("Selected user"+(a.length==1?" is":"(s) are") + " already in the list of forum moderators:/n" + err);
		}
	}
}
//--------------------------------------------------
function Forum_DelModerator(o,id)
{
	var p			= Forum_GetPanel(o,"NewEdit");
	var clientID	= p.c_clientID;
	var tr			= o; while(tr.tagName!="TR")tr=tr.parentElement;
	var arr			= tr.cells;
	for(var j=0; j<arr.length; j++)arr[j].runtimeStyle.backgroundColor = "gold";
	if (confirm("Do you want to remove selected moderator?"))
	{
		document.all(clientID+"_hidCommand").value	= "RemoveModerator";
		document.all(clientID+"_hidID").value		= o.c_id;
		try{document.all(clientID+"_lbCommand").click();}catch(e){alert(e.message);}
	}
	for(var j=0; j<arr.length; j++)arr[j].runtimeStyle.backgroundColor = "";
}
//--------------------------------------------------
function Forum_DelMessage(o)
{
	var p			= Forum_GetPanel(o,"ListPanel");
	var clientID	= p.c_clientID;
	var td			= o; while(td.className!="Forum_alt1")td=td.parentElement;
	td.runtimeStyle.backgroundColor = "gold";
	if (confirm("Do you want to delete selected message?"))
	{
		return true;
//		document.all(clientID+"_hidCommand").value	= "RemoveModerator";
//		document.all(clientID+"_hidID").value		= o.c_id;
//		try{document.all(clientID+"_lbCommand").click();}catch(e){alert(e.message);}
	}
	td.runtimeStyle.backgroundColor = "";
	return false;
}
//--------------------------------------------------
function Forum_AskFor(o,cmd)
{
	var tr			= o; while(tr.c_token==null || tr.c_token.indexOf("Row")==-1)tr=tr.parentElement;
	var itemID		= tr.c_ItemID;
	var tr			= o; while(tr.tagName!="TR")tr=tr.parentElement;
	var pan			= Forum_GetPanel(o,"ListPanel");
	var clientID	= pan.c_clientID;
	var ss			= "";

	if(cmd=="Group.Delete")
	{		
		ss = 'Do you want to delete selected group?';
	}
	else if(cmd=="Forum.Delete")
	{		
		ss = 'Do you want to delete selected forum?';
	}
	else if(cmd=="Group.Publish")
	{
		ss = 'Do you want to publish selected group and make it accessible to other users?';
	}
	else if(cmd=="Forum.Publish")
	{
		ss = 'Do you want to publish selected forum and make it accessible to other users?';
	}
	else if (cmd=="Topic.Delete")
	{
		ss = 'Do you want to delete selected topic?';
	}
	
	if(ss=="")
	{
		alert("Unknown command");
		return;
	}

	var arr			= tr.cells;
	for(var j=0; j<arr.length; j++)arr[j].runtimeStyle.backgroundColor = "gold";
	if (confirm(ss))
	{
		document.all(clientID+"_hidCommand").value	= cmd;
		document.all(clientID+"_hidID").value		= itemID;
		try{document.all(clientID+"_lbCommand").click();}catch(e){alert(e.message);}
	}
	for(var j=0; j<arr.length; j++)arr[j].runtimeStyle.backgroundColor = "";
}
//--------------------------------------------------
function Forum_ColExpArea(o)
{
	var tr	= o; while(tr.c_token!="GroupRow")tr=tr.parentElement;
	var p	= Forum_GetPanel(o,"ListPanel");
	var hid	= document.all(p.c_clientID + "_hidExpCol");
	hid.value = hid.value=="n" ? "y" : "n";
	var tr2 = tr.nextSibling;
	while(tr2!=null && tr2.c_token!="GroupRow")
	{
		tr2.style.display = hid.value=="y" ? "inline" : "none";
		tr2 = tr2.nextSibling;
	}
	o.src = p.c_appPath + "images/16x16/but_arrow_" + (hid.value=="y" ? "up" : "down") + ".gif";
}
//--------------------------------------------------
function Forum_CallContextMenu(o,itemType)
{
	event.returnValue = false;
	event.cancelBubble = true;

	var td		= o;while(td.tagName!="TD"){td=td.parentElement;}
	//var token	= itemType + "Row";
	//var tr		= o;while(tr.c_token!=token)tr=tr.parentElement;
	var tr		= o;while(tr.c_token==null || tr.c_token.indexOf("Row")==-1)tr=tr.parentElement;
	var pan		= Forum_GetPanel(o,"ListPanel");
	var clientID= pan.c_clientID;
	var panXml	= document.all(clientID+"_panXmls");
	var xmlDoc	= panXml.children[0];
	var xml		= xmlDoc.XMLDocument.documentElement;
	var xNode	= xml.selectSingleNode("//ContextMenus/Caller[@ref='"+itemType+"']");

	clickedTag = o;
	try
	{
		try{xNode.selectSingleNode("Item[@guid='"+itemType+".View']").setAttribute("disabled",		tr.c_perm_View=="y"?"n":"y");		}catch(e){}
		try{xNode.selectSingleNode("Item[@guid='"+itemType+".AddForum']").setAttribute("disabled",	tr.c_perm_AddForum=="y"?"n":"y");	}catch(e){}
		try{xNode.selectSingleNode("Item[@guid='"+itemType+".Edit']").setAttribute("disabled",		tr.c_perm_Edit=="y"?"n":"y");		}catch(e){}
		try{xNode.selectSingleNode("Item[@guid='"+itemType+".Publish']").setAttribute("disabled",	(tr.c_IsPublished=="n" && tr.c_perm_Publish=="y")?"n":"y");		}catch(e){}
		try{xNode.selectSingleNode("Item[@guid='"+itemType+".Delete']").setAttribute("disabled",	tr.c_perm_Delete=="y"?"n":"y");		}catch(e){}
		try{xNode.selectSingleNode("Item[@guid='"+itemType+".SetPerm']").setAttribute("disabled",	tr.c_perm_SetPerm=="y"?"n":"y");	}catch(e){}
		
		//...set references to Popup objects
		try{ td._Popup.hide();}catch(e){} 
		td._Popup = window.createPopup();
		td._RootPopup = td._Popup;
		td._path = '';
		
		eval("Menu_ShowContextMenu(0, 19, xml, xNode, td, 'Forum_ContextMenuSelected');");
	}
	catch(e)
	{
alert(e.message);
	}
}
//--------------------------------------------------
function Forum_ContextMenuSelected(cmd)
{
	var o			= clickedTag;
	var pan			= Forum_GetPanel(o,"ListPanel");
	var clientID	= pan.c_clientID;
	var appPath		= pan.c_appPath;
	var hidID		= document.all(clientID+"_hidID");
	var hidCmd		= document.all(clientID+"_hidCommand");
	var hidValue	= document.all(clientID+"_hidValue");
	var lb			= document.all(clientID+"_lbCommand");
	var doCmd		= false;
	var tr			= o;

	hidCmd.value	= cmd;
	try
	{
		while(tr.c_token==null || tr.c_token.indexOf("Row")==-1)tr=tr.parentElement;
		hidID.value = tr.c_ItemID;
	}
	catch(e){}

	if (cmd=="Group.Edit")
	{
		var v="";var tr2=o;while(tr2.tagName!="TR")tr2=tr2.parentElement;var a=tr2.all;for(var j=0;j<a.length;j++){if(a[j].c_token=="Name"){v=a[j].innerHTML;break;}}
		tr.runtimeStyle.backgroundColor = "yellow";
		var ss = window.prompt("Enter new name of selected group:",v);
		tr.runtimeStyle.backgroundColor = "";
		if (ss != null)
		{
			doCmd = true;
			hidValue.value	= ss;
		}
	}
	else if(cmd=="Group.AddForum"	|| 
			cmd=="Forum.Edit"		|| cmd=="Forum.View"	|| 
			cmd=="Topic.Edit"		|| cmd=="Topic.View"	|| 
			cmd=="ListView"			|| cmd=="ComboView"		|| cmd=="TreeView")
	{
		doCmd = true;
	}
	else if(cmd=="Group.Publish"	|| cmd=="Forum.Publish"	|| 
			cmd=="Group.Delete"		|| cmd=="Forum.Delete"	|| cmd=="Topic.Delete")
	{	
		Forum_AskFor(o,cmd);	
	}
	else if (cmd=="Group.SetPerm")
	{
		var date = new Date();
		var fn = appPath + "Panels/SetPermissions/SetPermissions.aspx";
		var url = fn + "?itemID="+tr.c_ItemID + "&moduleID="+tr.c_ModuleID+"&isFolder="+tr.c_IsFolder+"&time="+date.getTime();
		var args = new Function();

		tr.runtimeStyle.backgroundColor = "yellow";
		if (window.showModalDialog(url, args, 'dialogWidth:500px; dialogHeight:550px; center:yes; edge:raised; scroll:no; status:no;'))
		{
			hidValue.value = args.xPerms.xml;
			doCmd = true;
		}
		tr.runtimeStyle.backgroundColor = "";
	}

	if (doCmd)
		try{lb.click();}catch(e){alert(e.message);}
}
//--------------------------------------------------
function Forum_CallProps(o,pageID,controlID)
{
	var pan			= Forum_GetPanel(o,"MainPanel");
	var url			= "/Panels/Forum/SetProperties/default.htm";
	var args = new Function();
	args.ID		= controlID;
	args.PageID	= pageID;
	if (window.showModalDialog(url, args, 'dialogWidth:600px; dialogHeight:550px; center:yes; edge:raised; scroll:no; status:yes;'))
	{
		return true;
	}
	return false;
}
//--------------------------------------------------
function Forum_MyProfile(o) //,siteID,controlID)
{
	var pan			= Forum_GetPanel(o,"MainPanel");
	var url			= "/Panels/Forum/MyProfile/default.htm";
//	var args = new Function();
//	args.ID		= controlID;
//	args.SiteID	= siteID;
	if (window.showModalDialog(url, null, 'dialogWidth:700px; dialogHeight:550px; center:yes; edge:raised; scroll:no; status:yes;'))
	{
		return true;
	}
	return false;
}
//--------------------------------------------------
function Forum_Login(o)
{
	var pan			= Forum_GetPanel(o,"MainPanel");
	var url			= "/Panels/Forum/Login/default.htm";
	if (window.showModalDialog(url, null, 'dialogWidth:500px; dialogHeight:400px; center:yes; edge:raised; scroll:no; status:yes;'))
	{
		return true;
	}
	return false;
}
//--------------------------------------------------
function Forum_Logout(o)
{
	if (confirm("Do you want to sign off the forum system?"))
	{
		return true;
	}
	return false;
}
//--------------------------------------------------------------------------
function Forum_OnClickMnuBtn(o,what)
{
	event.returnValue = false;
	event.cancelBubble = true;

	var p			= Forum_GetPanel(o,"ListPanel");
	var clientID	= p.c_clientID;
	var xmlMenu		= document.all(clientID+"_panXmls").children[0].XMLDocument.documentElement;
	var xNode		= xmlMenu.selectSingleNode("//ContextMenus/Caller[@ref='" + what + "']");
	var tbl			= o;while(tbl.tagName!="TABLE"){tbl=tbl.parentElement;}
	var td			= tbl.parentElement;

	clickedTag = tbl;
	
	try
	{
		//...set references to Popup objects
		try{ td._Popup.hide();}catch(e){} 
		td._Popup = window.createPopup();
		td._RootPopup = td._Popup;
		td._path = '';
		
		eval("Menu_ShowContextMenu(0, 23, xmlMenu, xNode, td, 'Forum_ContextMenuSelected');");
	}
	catch(e)
	{
alert(e.message);
	}
}
//**************************************************************************
//**************************************************************************
//**************************************************************************
function Forum_Tree(c)
{
	this.c			= c;
	this.c.c_token	= "ForumTree";
	this.c.c_obj	= this;
	this.c.innerHTML = "";

	var pan			= Forum_GetPanel(c,"ListPanel");
	this.clientID	= pan.c_clientID;
	this.appPath	= pan.c_appPath;
	this.hidTreeXml	= document.all(this.clientID+"_hidTreeXml");
//alert(this.hidTreeXml.value);
	var xmlTree		= document.all(this.clientID+"_panXmlTree").children[0].XMLDocument;
//alert(xmlTree.xml);
	xmlTree.loadXML(this.hidTreeXml.value);
	this.xRoot		= xmlTree.documentElement;

	
	this.hidSel		= document.all(this.clientID+"_hidSelectedMsgID");
	this.hidSel.value = this.xRoot.selectNodes("M")[0].getAttribute("id");
	
//	this.rowO = null;
//	this.rowN = null;

	this.InitTree	= Forum_TreeInit;
	this.DrawNode	= Forum_TreeDrawNode;
	//this.Refresh	= Forum_TreeRefresh;
}
function Forum_TreeInit()
{
	var a = this.xRoot.selectNodes("M");
//alert("this.xRoot: \n" + this.xRoot.xml);
	for(var j=0; j<a.length; j++)
	{
		this.DrawNode(a[j], 0);
	}
	//this.Refresh();
}
function Forum_TreeDrawNode(x, level)
{
	var id	= x.getAttribute("id");
	var a	= x.selectNodes("M");
	var n	= x.getAttribute("n");if(n==null)n="";if(n.length > 40)n=n.substr(0,40)+" ...";
	var sel	= x.getAttribute("sel")=="y";
	var ss	= 
	"<div c_msgID='"+id+"' style='" + (sel?"background-color:#E1E4F2;":"") + "'>" + 
	"<table cellspacing=0 cellpadding=0>" + 
	"<tr>";
	if(level==0)
		ss+="<td><img src='"+this.appPath+"images/pixel.gif' width=1 height=20></td>";
	else
		for(var j=0; j<level; j++)
		{
			ss+="<td><img src='"+this.appPath+"images/pixel.gif' width=19 height=20></td>";
		}
	
	ss+=
		"<td><img src='"+this.appPath+"images/Forums/post.gif' width=10 height=11></td>" +
		"<td>&nbsp;</td>" +
		"<td nowrap id='tdUN_" + id + "'></td>" +
		"<td>&nbsp;</td>" +
		"<td id='tdN_" + id + "'><span onclick='Forum_TreeClickName(this,"+id+");' id='aN_" + id + "' style='color:#003399;cursor:hand;' onmouseover='this.runtimeStyle.color=\"red\"' onmouseout='this.runtimeStyle.color=\"\"'></span></td>" +
		"<td>&nbsp;</td>" +
		"<td id='tdDT_" + id + "'></td>" +
	"</tr>" +
	"</table>" + 
	"</div>";
	
	this.c.insertAdjacentHTML("beforeEnd", ss);
	this.c.all("tdUN_"+id).innerHTML	= "<b>" + x.getAttribute("un") + "</b>";
	this.c.all("tdDT_"+id).innerHTML	= "(" + x.getAttribute("dt") + ")";
	this.c.all("aN_"+id).innerHTML		= n;
	
	
	for(var j=0; j<a.length; j++)
	{
		this.DrawNode(a[j], level+1);
	}
}
function Forum_DrawTree(strID)
{
	try
	{
		var panTree		= document.all(strID);
		var oTree = new Forum_Tree(panTree);
		oTree.InitTree();
	}catch(e){}
}
function Forum_TreeClickName(o,id)
{
	var c = o; while(c.c_token!="ForumTree")c=c.parentElement;
	var oTree = c.c_obj;
	oTree.hidSel.value = id;
	
	document.all(oTree.clientID+"_hidSelectedMsgID").value = id;
	document.all(oTree.clientID+"_hidCommand").value = "ClickTreeNode";
	document.all(oTree.clientID+"_lbCommand").click();
	
	//oTree.Refresh();
}
/*
function Forum_TreeRefresh()
{
	var panAll	= document.all(this.clientID+"_panMsgs");
	var arr = panAll.children;
	for(var j=0; j<arr.length; j++)
	{
		var p=arr[j];
		if (p.c_msgID!=null)
		{
			var ok = p.c_msgID==this.hidSel.value;
			p.runtimeStyle.display = ok ? "inline" : "none";
			//p.className = ok ? "Forum_alt2" : "Forum_alt1";
		}
	}
	var arr = this.c.children;
	for(var j=0; j<arr.length; j++)
	{
		var p=arr[j];
		var ok = p.c_msgID==this.hidSel.value;
		p.runtimeStyle.backgroundColor = ok ? "#E1E4F2" : "";
	}
//	try{this.rowO.runtimeStyle.backgroundColor = "";}catch(e){}
	//try{this.rowO.className = "Forum_alt1";}catch(e){}
//	this.rowN = this.c.all("tblTreeRow_"+this.hidSel.value);
//alert(this.rowN==null);
	//try{this.rowO.className = "Forum_alt2";}catch(e){}
//	try{this.rowN.runtimeStyle.backgroundColor = "#E1E4F2";}catch(e){}
}
*/

