/*
	創作作者: Jack.R
	作者郵電: jack@moon.tkcna.tku.edu.tw
	如果在使用上發生任何問題,歡迎來信指教.

	修改作者: 	Allen Chang
	作者E-mail: billiardskimo@yahoo.com.tw
*/

/*
	全域變數
*/
var LinkTarget = "mainFrame";				// 作用視窗目標
var FirstBgcolor = "#bdb5d7";			// 主選項的背景顏色
//var SecondBgcolor = "#e8d8e9";			// 次選項的背景顏色
var SecondBgcolor = "#e8d8e9";
var Width = 82; // default = 82				// table 的寬度(針對每個table)
var NewX = 0, NewY = 25;					// 每個 menu 開始擺放的位置
var CurrMenuIndex = 0;					// 目前點選選項的 index value
var FirstItemNumber = 0;				// 主選項的個數
var OutputHtml = "";					// Output String Tempary Buffer
var NewFirstItem = new Array();			// 主選項的陣列 (共二維; 第一維)
var NewSecondItem = new Array();		// 次選項的陣列 (共二維; 第一維)
var LayerRef, /* LayerStyleRef, */ LayerStyleSwitch;	//	setLayerObjValue(); 湊成 Layer 物件的資料

/*
	判斷瀏覽器版本並決定所要使用的 Layer 物件
*/
function setLayerObjValue()
{
	if (navigator.appName == "Netscape")
	{
		// LayerStyleRef = "layer.";
		LayerRef = "document.layers";
		LayerStyleSwitch = "";
	}
	else 
	{
		// LayerStyleRef = "layer.style.";
		LayerRef = "document.all";
		LayerStyleSwitch = ".style";
	}
	
	return;
}

/*
	建立第一層目錄
*/
function addFirstItem(ItemName, ItemLocation)
{
	NewFirstItem[FirstItemNumber] = new FirstItem(FirstItemNumber, ItemName, ItemLocation, 0);	// 第一層目錄, 所以設定'階數'為零
	FirstItemNumber++;	// 第一層選項個數加一
	return;
}

/*
	設定第一層目錄的資料
*/
function FirstItem(ClassNum, ItemName, ItemLocation, Stair)
{
	this.Mclass = ClassNum;		// 分類編號
	this.name = ItemName;		// 第一層選項選項名稱
	this.loc = ItemLocation;	// 第一層選項的連結路徑
	this.iCount = Stair;		// 記錄第一層選項有幾個子項目(第二層的選項個數)
	// return this;
	return;
}

/*
	建立第二層目錄
*/
function addSecondItem(ClassNum, ItemName, ItemLocation)
{
	NewSecondItem[ClassNum][NewFirstItem[ClassNum].iCount] = new SecondItem(ClassNum, ItemName, ItemLocation);
	NewFirstItem[ClassNum].iCount++;	// 第二層選項個數加一
}


function SecondItem(ClassNum, ItemName, ItemLocation)
{
	this.Mclass = ClassNum;				// 分類編號
	this.name = ItemName;				// 第二層選項選項名稱
	this.loc = ItemLocation;			// 第二層選項的連結路徑
	// return this;
	return;
}

/*
	建立二維陣列, 用來放置第二層選項的資料
*/
function MakeSecondArray()
{
	var i;
	for(i=0; i<FirstItemNumber; i++)
	{
		NewSecondItem[i] = new Array();
	}
	return;
}

function MakeMenu()
{
	OutputHtml = "";										// initial variable
	OutputHtml += "<!-- MENU BEGINS -->\n";
	OutputHtml += "\n";
	OutputHtml += "<!-- MAIN MENU STARTS -->\n";
	OutputHtml += "<!-- FIRST_MENU -->\n";					// 換成第一層選單的資料 (menu0)
	OutputHtml += "<!-- MAIN MENU ENDS -->\n";
	OutputHtml += "\n";
	OutputHtml += "<!-- SUB MENU STARTS -->\n";
	OutputHtml += "<!-- SECOND_MENU -->\n";					// 換成第二層選單的資料 (menu1, menu2....)
	OutputHtml += "<!-- SUB MENU ENDS -->\n";
	OutputHtml += "\n";
	OutputHtml += "<!-- MENU ENDS -->\n";
}

function MakeFirstItem()
{
	var MENUstr = "";
	var i;						// for loop
	var IDnum = 0;

	MENUstr += "<div id=\"menu0\">\n";		// 第一層選單
	for(i=0; i<FirstItemNumber; i++) 
	{
		MENUstr += "<table border=0 width="+ Width +" cellspacing=0>\n";
		MENUstr += "<tr>\n";
		MENUstr += "<td bgcolor=\""+ FirstBgcolor +"\">&nbsp;\n";		

		IDnum = i+1;

		if(NewFirstItem[i].loc == null) 
			MENUstr += "<a href=\"javascript://\" class=\"multimenu\" onClick=\"hideall("+ IDnum +");\">";
		else 
			MENUstr += "<a href=\""+ NewFirstItem[i].loc +"\" class=\"multimenu\" target="+ LinkTarget +" onClick=\"hideall("+ IDnum +");\">";

		MENUstr += NewFirstItem[i].name;
		MENUstr += "</a>\n";

		MENUstr += "</td>\n";
		MENUstr += "</tr>\n";
		MENUstr += "</table>\n";
	}
	MENUstr += "</div>\n";

	OutputHtml = OutputHtml.replace("<!-- FIRST_MENU -->\n", MENUstr);		// 將 <!-- FIRST_MENU -->\n 的資料, 用 MENUstr 取代掉
	MakeSecondArray();				//建立雙層的陣列
}

function MakeSecondItem()
{
	MENUstr = "";
	var i, j, k;				// for loop
	var IDnum1 = 0, IDnum2 = 0;
	var LimitStair;				// 第二層的階數

	for(var i=0; i<FirstItemNumber; i++) 
	{
		IDnum1 = i+1;
		MENUstr += "<div id=\"menu"+ IDnum1 +"\">\n";

		for(var j=0; j<FirstItemNumber; j++) 
		{
			if(i != j) 
			{
				IDnum2 = j+1;
				
				MENUstr += "<table border=0 width="+ Width +" cellspacing=0>\n";
				MENUstr += "<tr>\n";
				MENUstr += "<td bgcolor=\""+ FirstBgcolor +"\">&nbsp;\n";

				if(NewFirstItem[j].loc == null)
					MENUstr += "<a href=\"javascript://\" class=\"multimenu\" ";
				else								
					MENUstr += "<a href=\""+ NewFirstItem[j].loc +"\" class=\"multimenu\" ";
				
				if(NewFirstItem[j].loc != null)	
					MENUstr += "target="+ LinkTarget +" ";

				MENUstr += "onClick=\"hideall("+ IDnum2 +");\">"+ NewFirstItem[j].name +"</a>\n";
				MENUstr += "</td>\n";
				MENUstr += "</tr>\n";
				MENUstr += "</table>\n";
			}
			else 
			{
				LimitStair = NewFirstItem[i].iCount;		// 取的第一層選項的第二層選項個數

				MENUstr += "<table border=0 width="+ Width +" cellspacing=0>\n";
				MENUstr += "<tr>\n";
				MENUstr += "<td bgcolor=\""+ FirstBgcolor +"\">&nbsp;\n";

				if(NewFirstItem[j].loc == null)	
					MENUstr += "<a href=\"javascript://\" class=\"multimenu\" ";
				else								
					MENUstr += "<a href=\""+ NewFirstItem[j].loc +"\" class=\"multimenu\" ";

				if(NewFirstItem[j].loc != null)
					MENUstr += "target="+ LinkTarget +" ";

				MENUstr += "onClick=\"ShowOrigin();\">"+ NewFirstItem[j].name +"</a>\n";
				MENUstr += "</td>\n";
				MENUstr += "</tr>\n";

				for(var k=0 ; k<LimitStair ; k++)
				{
					MENUstr += "<tr>\n";
					MENUstr += "<td bgcolor=\""+ SecondBgcolor +"\">&nbsp;&nbsp;\n";

					if(NewSecondItem[i][k].loc == null)	
						MENUstr += "<a href=\"javascript://\" class=\"multimenu\" ";
					else								
						MENUstr += "<a href=\""+ NewSecondItem[i][k].loc +"\" class=\"multimenu\" ";

					if(NewSecondItem[i][k].loc != null)
						MENUstr += "target="+ LinkTarget;
											
					MENUstr += ">"+ NewSecondItem[i][k].name +"</a>\n";
					MENUstr += "</td>\n";
					MENUstr += "</tr>\n";
				}	// for k
				MENUstr += "</table>\n";
			}	// else
		}	// for j

		MENUstr += "</div>\n";
	}	// for i

	OutputHtml = OutputHtml.replace("<!-- SECOND_MENU -->\n", MENUstr);	// 將 <!-- SECOND_MENU -->\n 的資料, 用 MENUstr 取代掉
	Write2Page();
//	parent.frames["main"].chk.value = OutputHtml;
	return;
}

function Write2Page()
{
	document.write(OutputHtml);
	return;
}

/*
	1. 隱藏舊的選項
	2. 顯示目前被選中的選項
*/
function hideall(Index)
{
	HideLayer("menu0");									// 第一層選項的 Layer 隱藏
	HideLayer(eval('"menu'+ CurrMenuIndex +'"'));		// 將目前顯示的 Layer 隱藏
	ShowLayer(eval('"menu'+ Index +'"'));				// 把被選取到的 Layer 顯示
	CurrMenuIndex = Index;								// 設定目前顯示的值改成 Index
	return;
}


/*
	顯示主目錄
*/
function ShowOrigin()
{
	HideLayer(eval('"menu'+ CurrMenuIndex +'"'));		// 將目前顯示的 Layer 隱藏
	ShowLayer(eval('"menu0"'));							// 第一層選項的 Layer 顯示
	return;
}

/*
	顯示次選項
*/
function ShowLayer(LayerID)
{
	eval(LayerRef +'["'+ LayerID +'"]'+ LayerStyleSwitch +'.visibility = "visible"');
	return;
}

/*
	隱藏主選項
*/
function HideLayer(LayerID)
{
	eval(LayerRef +'["'+ LayerID +'"]'+ LayerStyleSwitch +'.visibility = "hidden"');
	return;
}

/*
	設定 Layer 的位置
*/
function MoveLayerPos(LayerID, TopPos, LeftPos)
{
	eval(LayerRef +'["'+ LayerID +'"]'+ LayerStyleSwitch +'.top='+ TopPos);
	eval(LayerRef +'["'+ LayerID +'"]'+ LayerStyleSwitch +'.left='+ LeftPos);
	return;
}

/*
	Layer 將從視窗的哪個位置(X, Y)開始輸出
*/
function StartShow()
{
	var i;
	for(i=0; i<=FirstItemNumber; i++)		/* 共有 FirstItemNumber + 1 個 menu */
	{		
		var LayerID = "menu"+i;
		MoveLayerPos(LayerID, NewY, NewX);
	}
	return;
}


/*******************************************************************************
程式流程:	1. 判斷瀏覽器的版本, 例如IE 或 Netscape. 	[setLayerObjValue();]
			2. 製造內容的容器. 							[MakeMenu();]
			3. 建立第一層選項. 							[addFirstItem("關於我們",null);]
			4. 建立第一層選單. 							[MakeFirstItem();]
			5. 建立第二層選項. 							[addSecondItem(0,"網站宗旨","./purpose.htm");]
			6. 建立第二層選單. 							[MakeSecondItem();]
*******************************************************************************/

setLayerObjValue();		// 判斷 Browser 版本, 建立 Layer Path
MakeMenu();				// 建立目錄容器

addFirstItem("關於我們",	"about/purpose/purpose_index.htm");
addFirstItem("研究P報告",	"research/research_index.htm");
addFirstItem("P事新聞網", 	"enews/enews_index.htm");
// addFirstItem("哈燒P活動", 	"activity/");
addFirstItem("哈燒P活動", 	"activity/activity_index.htm");
//addFirstItem("影音資料",	"download/download.htm");
//addFirstItem("徵求義工", 	"public/public.htm");
addFirstItem("好站推薦", 	"link/link_index.asp");
addFirstItem("回首頁", 		"main.asp");

MakeFirstItem();		// 建立第一層選單

addSecondItem(0,	"基金會緣起",	"about/purpose/purpose.htm");
addSecondItem(0,	"發起人資料",	"about/list/list.htm");
addSecondItem(0,	"本屆董事",		"about/boardroom.htm");
//addSecondItem(0,	"年度計畫",		"about/plan/2007plan_national.htm");
addSecondItem(0,	"我們上新聞",	"about/onnews/onnews2008.htm");
addSecondItem(0,	"PFT大事記",	"about/timeline/timeline_2009.asp");
//addSecondItem(0,	"基金會會訊",	"about/advice/advice.htm");
//addSecondItem(0,	"常見問題",		"about/q&a/q&a.htm");


addSecondItem(1,	"社會役",		"research/soldier/soldier_index.htm");
//addSecondItem(1,	"和平論",		"research/peace/peace_ics_index.htm");
//addSecondItem(1,	"和平學",		"research/peacestudy/peacestudy_index.htm");
//addSecondItem(1,	"兩岸研究",		"research/strait/strait_index.htm");
//addSecondItem(1,	"百年戰爭",		"research/war/war_index.htm");
addSecondItem(1,	"百年戰爭",		"research/war/war_time.htm");
addSecondItem(1,	"世界衝突",		"research/worldwar/worldwar_index.htm");
//addSecondItem(1,	"溫度報告書",	"research/tempbook/tempbook07.htm");
addSecondItem(1,	"和平叢書",	"research/Peace_series/series_index.htm");

//addSecondItem(2,	"編輯室報告",	"enews/editor/editor_index.htm");
//addSecondItem(2,	"新聞專輯",		"enews/worldnews/worldnews_index.htm");
//addSecondItem(2,	"和平專刊",		"enews/special_report/special_report_index.htm");
addSecondItem(2,	"國際視野",		"ContentList2.asp?Board=Fireline");
addSecondItem(2,	"和平觀點",		"ContentList2.asp?Board=Command");
addSecondItem(2,	"深度分析",		"enews/analysis/analysis_index.htm");
addSecondItem(2,	"新聞小辭典",	"enews/dictionary/dictionary_index.htm");

addSecondItem(3,	"活動看板",		"ContentList1.asp?Board=Activity&State=0");
//addSecondItem(3,	"過去活動",		"ContentList1.asp?Board=Activity&State=1");



//addSecondItem(5,	"P事合作",		"public/public.htm");
//addSecondItem(5,	"徵人訊息",		"public/message.htm");

MakeSecondItem();			// 建立第二層選單

