<!--
/*
このファイルの中身は、NTT オープンソースライセンス　バージョン 1.0（「本
契約」という）の適用を受けます。
本契約を遵守しない限り、このファイルを使用してはなりません。
本契約のコピーは、次のＵＲＬから入手できます。
【配布サイトのURL】 http://www.oss.ecl.ntt.co.jp/lms/

本契約に基づき頒布されるソフトウェアは、現状のまま、明示又は黙示のあらゆ
る種類の保証なしで、頒布されます。本契約に基づく権利及び制限を律する特定
の文言については、本契約を参照してください。

「オリジナルコード」は、 NTT Cyber Space Laboratories Code です。 
「オリジナルコード」の「初期開発者」は、日本電信電話株式会社です。  
日本電信電話株式会社により創作された部分は、Copyright (C) 2004 
日本電信電話株式会社 です。
全ての権利が留保されます。 
「コントリビュータ」：_____________________________________ 


The contents of this file are subject to the NTT Opensource License
Version 1.0 (the License); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
【配布サイトのURL】 http://www.oss.ecl.ntt.co.jp/lms/

Software distributed under the License is distributed on an AS IS
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific language governing rights and limitations
under the License.

The Original Code is NTT Cyber Space Laboratories Code .

The Initial Developer of the Original Code is NIPPON TELEGRAPH AND 
TELEPHONE CORPORATION.
Portions created by the NIPPON TELEGRAPH AND TELEPHONE CORPORATION 
are Copyright (C) 2004 NIPPON TELEGRAPH AND TELEPHONE CORPORATION. 
All Rights Reserved.

Contributor(s) ______________________________________.
*/
//-->

//
//	ポップアップメニュー作成
//
//		変更履歴
//			2004.01.08  新規作成  鈴木　敏子
//

	//////////////////////////////////////////////////////////////////////////////////////////////////////////
	//ポップアップメニューを表示する位置を決定し、表示します。
	//////////////////////////////////////////////////////////////////////////////////////////////////////////
	function showMenuPoint(menu_x, menu_y, menu_width, menu_height, client_width, client_height){
		var pop_x;
		var pop_y;
		var intPointX = 10						
		var intPointY = 5						

		//横位置
		if(menu_width > client_width - menu_x){
			pop_x=menu_x - menu_width + intPointX;
		}else{
			pop_x=menu_x - intPointX;
		}

		//縦位置
		if(menu_height>client_height - menu_y){
			pop_y=menu_y - menu_height - intPointY;
		}else{
			pop_y=menu_y - intPointY;
		}

		if( parent.temp_id != undefined && document.all(parent.temp_id) != undefined ){
			document.all(parent.temp_id).style.backgroundColor= '#ffffff'
			parent.temp_id = null;
		}

		window.FW_showMenu(window.fw_menu_0,pop_x,pop_y);

	}

	//////////////////////////////////////////////////////////////////////////////////////////////////////////
	//MouseOver時の処理。
	//////////////////////////////////////////////////////////////////////////////////////////////////////////
	 function changered(id)
	 {
		document.all(id).style.color= '#ff0000';
	 }

	//////////////////////////////////////////////////////////////////////////////////////////////////////////
	//MouseOut時の処理。
	//////////////////////////////////////////////////////////////////////////////////////////////////////////
	 function changeblack(id)
	 {
		document.all(id).style.color= '#000000';
	 }

	//////////////////////////////////////////////////////////////////////////////////////////////////////////
	//MouseClick時の処理。
	//////////////////////////////////////////////////////////////////////////////////////////////////////////
	 function changebackbrue(id)
	 {
		if (document.all(id) == null)
		{
			if ( id.indexOf("LO", 0) == 0 )
			{
				alert("指定されたLOは削除された可能性があります。");
			}
			else if ( id.indexOf("GR", 0) == 0 )
			{
				alert("指定されたグループは削除された可能性があります。");
			}
			else if ( id.indexOf("PE", 0) == 0 )
			{
				alert("指定されたユーザは削除された可能性があります。");
			}
			return;
		}
		document.all(id).style.backgroundColor= '#c2e8fe'
		document.all(id).focus();
	 }
	//////////////////////////////////////////////////////////////////////////////////////////////////////////
	//LinkClick時の処理。
	//////////////////////////////////////////////////////////////////////////////////////////////////////////
	 function changebackbrue2(id)
	 {
		if (document.all(id) == null)
		{
			if ( id.indexOf("LO", 0) == 0 )
			{
				alert("指定されたLOは削除された可能性があります。");
			}
			else if ( id.indexOf("GR", 0) == 0 )
			{
				alert("指定されたグループは削除された可能性があります。");
			}
			else if ( id.indexOf("PE", 0) == 0 )
			{
				alert("指定されたユーザは削除された可能性があります。");
			}
			return;
		}
		document.all(id).style.backgroundColor= '#c2e8fe'
		parent.temp_id = id;
		parent.window.focus();
	 }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//メニュー情報を配列に格納します。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////

	function makeMenu(strXML){
		strXML = strXML.substring(0,strXML.length-1);
		//取得したメニュー情報を配列に格納します。
		var strMenu = strXML.split(";");
		var strMenuData;
		var MenuName = new Array();
		var MenuURL = new Array();
		var Target = new Array();
		var WinWidth = new Array();
		var WinHeight = new Array();

		for(i=0;i<strMenu.length;i++){
			//メニューデータを1レコードづつ配列に格納します。
			strMenuData = strMenu[i].split("$");
			MenuName[i] = strMenuData[0];
			MenuURL[i] = strMenuData[1];
			Target[i] = strMenuData[2];
			WinWidth[i] = strMenuData[3];
			WinHeight[i] = strMenuData[4];
		}

		//メニューリストを設定します。
		fwAddMenus(MenuName, MenuURL, Target, WinWidth, WinHeight);
	}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//メニューを追加します。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////

	function fwAddMenus(MenuName, MenuURL, Target, WinWidth, WinHeight) {

		if (window.fw_menu_0) {
			//-------------------------------------
			//ポップアップメニューの幅を決定します。
			//-------------------------------------
			var intFontSize = 6;		//フォントサイズ(px)
			var intPopupHeight = 17;	//ポップアップメニュー1項目の高さ
			var intMaxLen = 0;
			var intMenuWidth;
			var intMenuHeigth;
			var intMenuLength;
			//メニュー名称のうち最長の文字列数を取得します。
			for (j=0;j<MenuName.length;j++){
				intMenuLength = checkByte(MenuName[j]);
				if(intMaxLen < intMenuLength){
					intMaxLen = intMenuLength;
				}
			}
			intMenuWidth = intMaxLen*intFontSize+20;				//ポップアップメニューの幅
			intMenuHeigth = MenuName.length*intPopupHeight;		//ポップアップメニューの高さ
			//------------------------------------
			//ポップアップメニューをリセットします
			//------------------------------------
			fw_menu_0.clearMenuItem("root", intMenuWidth);
			//--------------------------------------
			//ポップアップメニューに項目を追加します
			//--------------------------------------
			for (i=0;i<MenuName.length;i++){
				//--------------------------------------
				//ウィンドウサイズを決定します。
				//--------------------------------------
				var strWidth = "";
				var strHeight = "";
				var strResizeMax = "";

				//サイズ指定なしの場合
				if ( WinWidth[i] == "-1" && WinHeight[i] == "-1" )
				{
					strWidth = "800";
					strHeight = "500";
					strResizeMax = "";
				}

				//最大化の場合
				else if ( WinWidth[i] == "0" && WinHeight[i] == "0" )
				{
					//学習開始以外のメニューの場合
					if (MenuURL[i].indexOf("StartLearnServlet") == -1 )
					{
						strWidth = "800";
						strHeight = "600";
						strResizeMax = "";
					}
					//学習開始の場合
					else
					{
						strWidth = screen.availWidth;
						strHeight = screen.availHeight;
						strResizeMax = "objLoWindow.resizeTo(screen.availWidth,screen.availHeight);";
					}
				}

				//サイズ指定の場合
				else
				{
					//学習開始以外のメニューの場合
					if (MenuURL[i].indexOf("StartLearnServlet") == -1 )
					{
						strWidth = "800";
						strHeight = "600";
					}
					//学習開始の場合
					else
					{
						strWidth = WinWidth[i];
						strHeight = WinHeight[i];
					}
					strResizeMax = "";
				}

				//メニューの追加
				if(Target[i]=='xmo'){

					fw_menu_0.addMenuItem(MenuName[i],"var objLoWindow=window.parent.parent.parent.open('" + MenuURL[i] + "','xmo','top=0,left=0,width=" + strWidth + ",height=" + strHeight + ",resizable=yes,scrollbars=yes');" + strResizeMax );


				}else if(Target[i]=='Function'){
					fw_menu_0.addMenuItem(MenuName[i],MenuURL[i]);
				}else{

					fw_menu_0.addMenuItem(MenuName[i],"var objLoWindow=openWindow('" + MenuURL[i] + "','" + Target[i] + "','"+ strWidth +"','"+strHeight + "');" + strResizeMax );

				}
			}

			fw_menu_0.hideOnMouseOut=true;
			//---------------------------------
			//ポップアップメニューを作成します。
			//---------------------------------
			fw_menu_0.writeMenus();

			//---------------------------
			//ポップメニューを表示します。
			//---------------------------
			showMenuPoint(event.x, event.y, intMenuWidth, intMenuHeigth, document.body.clientWidth, document.body.clientHeight);

			return;
		}
	}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//ロード時にメニューオブジェクトを生成します。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function fwLoadMenus() {
		window.fw_menu_0 = new Menu("root",68,17,"MS UI Gothic, Osaka",10,"#333333","#999999","#e6e6e6","#ffffff");

		fw_menu_0.hideOnMouseOut=true;

		fw_menu_0.writeMenus();

	} // fwLoadMenus()

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//メニュー名称のバイト数を返します。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
function checkByte(str)	{
var tmp_str = escape(str)	//もとの文字列をescapeする。全角文字は必ず%u付きの文字になる。
var org_length = str.length	//もとの文字列の長さを得る(全角文字があったら1とカウントされるはず)
var counter = 0				//%uの数を数えるためのカウンター
while(tmp_str.indexOf("%u") != -1)	{	//%uが含まれるあいだは以下を実行。
	var LENGTH = tmp_str.length			//%uの位置を先頭から調べ、%uの次の文字から最後までを
	var FLAG = tmp_str.indexOf("%u")	//tmp_strに再代入し、%uがなくなるまで
	tmp_str = tmp_str.substring(FLAG+1,LENGTH)	//同じ処理を繰り返す
	counter++				//処理が1回実行されるたびにcounterの値がプラス1される
}
var BYTE = org_length + counter
return BYTE
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ポップアップメニューによるウィンドウオープン処理を行う。
// 画面にフォーカスが戻った時のイベント処理の設定を行う。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
function openWindow(MenuURL, Target, strWidth, strHeight) {
	var objLoWindow=window.parent.parent.parent.open(MenuURL, Target,"top=0,left=0,width=" + strWidth + ",height=" + strHeight + ",resizable=yes,scrollbars=yes");

	// フォーカスイベントの設定
	//setTimeout("onfocus = reloadWindow", 0 );
            parent.parent.window.set_main_reload(true);

	return objLoWindow;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 画面をリロードする
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
function reloadWindow() {
	var url = document.URL;
	document.location.href = url;
}
