<!-- // 未対応のブラウザでソースが丸見えになるのを防ぐため
//*********************************************************************************************
//*	ファイル名：YSCWindow.js
//*		ウィンドウ操作関係のクラス 及び 共通関数を実装する
//*		Copyright(C) 2002 株式会社ユーキソフト
//*********************************************************************************************

////////// クラス定義 //////////

//*********************************************************************************************
//	クラス：YSCWindow_Window
//	機　能：ウィンドウの作成に関連する機能を実装する
//*********************************************************************************************
{
	var mURL;												// 表示対象のURL
	var mTitle;												// タイトル

	var mTop;												// ウィンドウ上位置-ピクセル
	var mLeft;												// ウィンドウ左位置-ピクセル
	var mWidth;												// ウィンドウ(内部)幅-ピクセル
	var mHeight;											// ウィンドウ(内部)高さ-ピクセル

	var mToolBar;											// ツールバー表示有無
	var mLocationBar;										// ローケーションバー表示有無
	var mDirectoryBar;										// ディレクトリバー表示有無
	var mStatusBar;											// ステータスバー表示有無
	var mMenueBar;											// メニュ−バー表示有無
	var mScrollBar;											// スクロールバー表示有無
	var mResizable;											// サイズ変更可/不可

	//*****************************************************************************************
	//	YSCWindow_Window()
	//	クラス：YSCWindow_Window
	//	機　能：コンストラクタである
	//			メンバ変数をデフォルト値で初期化する
	//	引　数：なし
	//	戻　値：なし
	//*****************************************************************************************
	function YSCWindow_Window()
	{
		// メンバをデフォルト値で初期化
		this.mURL	= "";									// 表示対象のURL
		this.mTitle	= "";									// タイトル

		this.mTop	 = 0;									// ウィンドウ上位置-ピクセル
		this.mLeft	 = 0;									// ウィンドウ左位置-ピクセル
		this.mWidth	 = 100;									// ウィンドウ(内部)幅-ピクセル
		this.mHeight = 100;									// ウィンドウ(内部)高さ-ピクセル

		this.mToolBar		= false;						// ツールバー表示有無:無
		this.mLocationBar 	= false;						// ローケーションバー表示有無:無
		this.mDirectoryBar	= false;						// ディレクトリバー表示有無:無
		this.mStatusBar		= false;						// ステータスバー表示有無:無
		this.mMenueBar		= false;						// メニュ−バー表示有無:無
		this.mScrollBar		= false;						// スクロールバー表示有無:無
		this.mResizable		= false;						// サイズ変更可/不可:無

		// メソッド登録
		this.Open = Open;									// Open(ウィンドウを開く)
		this.OpenNew = OpenNew;								// Open(ウィンドウを開く)
	}

	//*****************************************************************************************
	//	OpenNew()
	//	クラス：YSCWindow_Window
	//	機　能：新しいウィンドウをオープンする
	//	引　数：なし
	//	戻　値：オープンしたウィンドウオブジェクト
	//*****************************************************************************************
	function OpenNew()
	{
		// メンバ変数からwindow.openへのパラメータ(文字列)を生成
		var wParam = "top="			 + this.mTop
				   + ",left="		 + this.mLeft
				   + ",width="		 + this.mWidth
				   + ",height="		 + this.mHeight
				   + ",toolbar="	 + ((this.mToolBar) ? "yes" : "no")
				   + ",location="	 + ((this.mLocationBar) ? "yes" : "no")
				   + ",directories=" + ((this.mDirectoryBar) ? "yes" : "no")
				   + ",status="		 + ((this.mStatusBar) ? "yes" : "no")
				   + ",menubar="	 + ((this.mMenueBar) ? "yes" : "no")
				   + ",scrollbars="	 + ((this.mScrollBar) ? "yes" : "no")
				   + ",resizable="	 + ((this.mResizable) ? "yes" : "no");

	  	return window.open(this.mURL, this.mTitle, wParam);
	}

	//*****************************************************************************************
	//	Open(pWin)
	//	クラス：YSCWindow_Window
	//	機　能：ウィンドウをオープンする
	//			既にウィンドウがオープン済みの場合には新しくウィンドウを開くのではなく
	//			そのウィンドウのページを変更し、最前面に表示する
	//	引　数：pWin ------ 開いているwindowオブジェクト
	//						null または 無効なwindowオブジェクトを指定した場合、
	//						新たにウィンドウを作成する
	//	戻　値：オープンしたウィンドウオブジェクト
	//			失敗した場合、nullを返す
	//*****************************************************************************************
	function Open(pWin)
	{
		// 引数：windowオブジェクトの有効性チェック
		/**********
		 ***** 以下の理由により、当面パラメータのチェックを行わないこととする
		 ***** (1)JavaScript version 1.3では、instanceof演算子が未サポート
		 ***** (2)JavaScript version 1.3では、try〜catch構文が未サポート
		 ***** (3)[window]オブジェクト(インスタンス)とクラスの関係が曖昧
		 ***** 将来、機が熟したら復活させ、共通機能としての完成度を高めよう!!
		 *****												2002.03.01 徳橋
		if (pWin == null) {
		} else if (pWin instanceof window) {
		} else {
			return null;
		}
		*/

		if (pWin == null || pWin.closed) {
			// windowオブジェクトが無効の場合、新たにウィンドウを作成
			pWin = this.OpenNew();
			if (pWin == null) {
				return null;								// ウィンドウ作成失敗
			}
		} else {
			// windowオブジェクトが有効の場合、ページを変更
			pWin.location = this.mURL;						// ページを設定
		}
		pWin.focus();										// 最前面に表示

		return pWin;
	}
}

////////// 共通関数 //////////

//*********************************************************************************************
//	YSCWindowSetTableRowBackColor(pTbl, pLine, pColor)
//	機能：テーブルオブジェクトの行の背景色を変更する
//	引数：pTbl ----- 処理対象のテーブルオブジェクト
//		  pLine ---- 行インデックス
//		  pColor --- 設定する背景色
//	戻値：設定前の背景色
//		  無効な行インデックスを指定した場合、nullを返す
// 	備考：当関数は、テーブルの行(<TR>タグ設定)の背景色を設定する。
//		  <TD>タグでセルの背景色を設定したテーブルでは、背景色を設定しても効果が現れない
//*********************************************************************************************
function YSCWindowSetTableRowBackColor(pTbl, pLine, pColor)
{
	if (0 <= pLine && pLine < pTbl.rows.length) {
	} else {
		return null;										// 行指定エラー
	}

	var wColor = pTbl.rows[pLine].bgColor;					// 現在の背景色を取得
	pTbl.rows[pLine].bgColor = pColor;						// 背景色を更新

	return wColor;
}

//*********************************************************************************************
//	YSCWindowSetDispImage(pWidth,pHeigth,pImgName)
//	機能：表示するイメージの大きさをチェックし、推奨の大きさより大きい場合に推奨値に
//		  収まるようにイメージのサイズを縮小する。
//		  この際、イメージはオリジナルのイメージの比率を保って縮小する
//	引数：pImgName --- 対象のイメージオブジェクト
//					   当関数でこのオブジェクトの内容を変更する
//		  pWidth ----- 推奨の幅
//		  pHeight ---- 推奨の高
//	戻値：なし
//*********************************************************************************************
function YSCWindowDispImage(pImgObj, pWidth, pHeight)
{
	// イメージ オブジェクトの高さの最小値
	wcMinHi = 30;
	
	// オリジナルイメージのサイズを取得するため、イメージオブジェクトを作成
	wImg = new Image();
	wImg.src = pImgObj.src;

	if (wImg.width > pWidth || wImg.height > pHeight) {
		// 推奨サイズより大きいイメージの場合
		if (wImg.width * pHeight > wImg.height * pWidth) {
			// 推奨サイズの幅に合せて、イメージの高さを計算
			pImgObj.width  = pWidth;
			pImgObj.height = wImg.height * pWidth / wImg.width;
		} else {
			// 推奨サイズの高さに合せて、イメージの幅を計算
			pImgObj.width  = wImg.width * pHeight / wImg.height;
			pImgObj.height = pHeight;
		}
	} else {
		pImgObj.width  = wImg.width;
		if (pImgObj.height < wcMinHi) {
			//***** バグ回避コード 2002.12.04 by 徳橋
			// イメージを原寸表示する際、高さが最小値に満たない場合、高さの設定が
			// 効かないことがあるため、原寸の高さをわずかに変更することで対応する
			pImgObj.height = wImg.height + 1;
		} else {
			pImgObj.height = wImg.height;
		}
	}
}

//*********************************************************************************************
//	YSCWindowPOPWindow(pURL, pName, pWidth, pHeight, pStyle)
//	機能：ポップアップウィンドウを表示する
//	引数：pURL ----- 表示対象URL
//		pName ---- ウィンドウ名
//		pWidth --- 表示幅
//		pHeight -- 表示高
//		pStyle --- 表示設定
//	戻値：なし
//*********************************************************************************************
function YSCWindowPOPWindow(pURL, pName, pWidth, pHeight, pStyle)
{
	var wMenubar;
	var wToolbar;
	var wScrollbars;
	var wResizable;
	
	// ポップアップウィンドウ表示設定
	pStyle.charAt(0) == "1" ? wMenubar = "yes" : wMenubar = "no";
	pStyle.charAt(1) == "1" ? wToolbar= "yes" : wToolbar = "no";
	pStyle.charAt(2) == "1" ? wScrollbars = "yes" : wScrollbars = "no";
	pStyle.charAt(3) == "1" ? wResizable = "yes" : wResizable = "no";
	wStyle = "width=" + pWidth + ", height=" + pHeight
			+ ", menuber=" + wMenubar + ", toolbar=" + wToolbar
			+ ", scrollbars=" + wScrollbars + ", resizable=" + wResizable;
	
	// ポップアップウィンドウ表示
	window.open(pURL, pName, wStyle);
}
// 未対応のブラウザでソースが丸見えになるのを防ぐため -->
