﻿//open the the category manager in a rad window
function openCategoryEditor(categoryID)
{

	var pageUrl = "/ForumAdmin/CategoryEditor.aspx" + (categoryID != null ? "?ID=" + categoryID : "");
	var radWindow = createRadWindow("CategoryEditor", pageUrl, 600, 525, null, null, onCategoryEditorClose, null);
	radWindow.Show();
}

//handle closing of the category manager window
//to refresh the current view and display any new
//or changed categories
function onCategoryEditorClose(radWindow)
{
	if (radWindow.returnValue != null && radWindow.returnValue == false && typeof (refreshExplorer) == "function")
	{
		refreshExplorer();
	}
}

//open the the category manager in a rad window
function openForumEditor(forumID)
{
	//need to find the Category for any
	//node selected in the Forum Explorer
	var forumExplorer = getForumExplorer();
	var selectedNode = forumExplorer.SelectedNode;

	var categoryNode = getCategoryNode(selectedNode);
	var categoryID = 0;
	if (categoryNode != null)
	{
		categoryID = categoryNode.Value;
	}

	var pageUrl = "/ForumAdmin/ForumEditor.aspx?CID=" + categoryID + (forumID != null ? "&ID=" + forumID : "");
	var radWindow = createRadWindow("ForumEditor", pageUrl, 600, 525, null, null, onForumEditorClose, null);
	radWindow.Show();
}

//handle closing of the category manager window
//to refresh the current view and display any new
//or changed categories
function onForumEditorClose(radWindow)
{
	if (radWindow.returnValue != null && radWindow.returnValue == false && typeof (refreshExplorer) == "function")
	{
		refreshExplorer();
	}
}

//open the the moderator manager in a rad window
function openModeratorManager()
{
	var pageUrl = "/ForumAdmin/ModeratorManager.aspx";
	var radWindow = createRadWindow("ModeratorManager", pageUrl, 600, 525, null, null, null, null);
	radWindow.Show();
}

//Recursive helper method to find the
//node in a branch of the Forum Explorer
//that is the Category node
function getCategoryNode(targetNode)
{
	if (targetNode != null)
	{
		if (targetNode.Category == "Category")
		{
			return targetNode;
		}
		else
		{
			return getCategoryNode(targetNode.Parent);
		}
	}

	return null;
}



//Identify the current node in the Forum Explorer
//and open the relevant editor for it's type
function editCurrentNode()
{

	var explorerTree = getForumExplorer();
	var selectedNode = explorerTree.get_selectedNode();
	if (selectedNode != null)
	{

		var nodeType = selectedNode.get_category();
		var nodeID = selectedNode.get_value();

		switch (nodeType)
		{
			case "Category":
				openCategoryEditor(nodeID);
				break;
			case "Forum":
				openForumEditor(nodeID);
				break;
			default:
				break;
		}
	}

	//return false to cancel the postback that will
	//occur if this method is called from a button
	return false;
} //Identify the current node in the Forum Explorer
//and open the relevant editor for it's type
function addChildNode()
{
	var explorerTree = getForumExplorer();
	var selectedNode = explorerTree.get_selectedNode();
	if (selectedNode != null)
	{
		var nodeType = selectedNode.get_category();

		switch (nodeType)
		{
			case "Root":
				openCategoryEditor(null);
				break;
			case "Category":
				openForumEditor(null);
				break;
			default:
				break;
		}
	}

	//return false to cancel the postback that will
	//occur if this method is called from a button
	return false;
}

//Identify the current node in the Forum Explorer
//and load the uplevel view in the content pane
function deleteCurrentNode()
{
	var explorerTree = getForumExplorer();
	var selectedNode = explorerTree.get_selectedNode();
	if (selectedNode != null)
	{
		var nodeType = selectedNode.get_category();
		var nodeID = selectedNode.get_value();
		var parentNode = selectedNode.get_parent();
		var parentID = parentNode.get_value();

		switch (nodeType)
		{
			case "Category":
				loadContentView("/Forum/CategoryView.aspx");
				break;
			case "Forum":
				loadContentView("/Forum/CategoryView.aspx?ID=" + parentID);
				break;
			case "Thread":
				loadContentView("/Forum/ForumView.aspx?ID=" + parentID);
				break;
			default:
				break;
		}
	}

	return true;
}
