//*********************************************************************
// @(h) common.js        ver 1.0 ( 2005.02.21 (C) 2005 OHBEC Co.,Ltd. )
// @(s)
// システム共通JavaScriptモジュール
//*********************************************************************

//history.forward();	//ブラウザの戻るを無効にする(2005.09.28)

//*********************************************************************
// グローバル変数定義
//*********************************************************************
jg_hansuuji_sum = 10;
jg_hansuuji_tbl = new Array("0","1","2","3","4","5","6","7","8","9");

jg_haneiji_sum = 52;
jg_haneiji_tbl = new Array("a","b","c","d","e","f","g","h","i","j",
                           "k","l","m","n","o","p","q","r","s","t",
                           "u","v","w","x","y","z",
                           "A","B","C","D","E","F","G","H","I","J",
                           "K","L","M","N","O","P","Q","R","S","T",
                           "U","V","W","X","Y","Z");

jg_hankana_sum = 59;
jg_hankana_tbl = new Array("ｱ","ｲ","ｳ","ｴ","ｵ",
                           "ｶ","ｷ","ｸ","ｹ","ｺ",
                           "ｻ","ｼ","ｽ","ｾ","ｿ",
                           "ﾀ","ﾁ","ﾂ","ﾃ","ﾄ",
                           "ﾅ","ﾆ","ﾇ","ﾈ","ﾉ",
                           "ﾊ","ﾋ","ﾌ","ﾍ","ﾎ",
                           "ﾏ","ﾐ","ﾑ","ﾒ","ﾓ",
                           "ﾔ","ﾕ","ﾖ",
                           "ﾗ","ﾘ","ﾙ","ﾚ","ﾛ",
                           "ﾜ","ｦ","ﾝ"," ",
                           "ｧ","ｨ","ｩ","ｪ","ｫ",
                           "ｯ",
                           "ｬ","ｭ","ｮ",
                           "ﾞ","ﾟ","ｰ");

jg_hankigou_sum = 32;
jg_hankigou_tbl = new Array("!","\"","#","$","%","&","\'","(",")","-",
                            "=","^","~","\\","|","@","`","[","{",";",
                            "+",":","*","]","}",",","<",".",">","/",
                            "?","_");

jg_elsecode_sum = 2;
jg_elsecode_tbl = new Array("\r","\n");

jg_zenhiragana_sum = 82;
jg_zenhiragana_tbl = new Array("あ","い","う","え","お",
                           "か","き","く","け","こ",
                           "が","ぎ","ぐ","げ","ご",
                           "さ","し","す","せ","そ",
                           "ざ","じ","ず","ぜ","ぞ",
                           "た","ち","つ","て","と",
                           "だ","ぢ","づ","で","ど",
                           "な","に","ぬ","ね","の",
                           "は","ひ","ふ","へ","ほ",
                           "ば","び","ぶ","べ","ぼ",
                           "ぱ","ぴ","ぷ","ぺ","ぽ",
                           "ま","み","む","め","も",
                           "や","ゆ","よ",
                           "ら","り","る","れ","ろ",
                           "わ","を","ん","　",
                           "ぁ","ぃ","ぅ","ぇ","ぉ",
                           "っ",
                           "ゃ","ゅ","ょ",
                           "ー");

// 2001.08.16 update start...
//jg_errstr = 0x0d;
jg_errstr = "Input value is invalid!";
// 2001.08.16 update end...

//*****************************************************************************
var g_timer
function Init(tval,url)
{
	// Setup the timer.  Here, we set it for 5 seconds.
	//timer = window.setInterval("Logout", 5000)
	g_timer = window.setInterval("Logout(" + tval + ",'" + url + "')", tval*1000*60);
}

function Logout(tval,url)
{
	// Take whatever action is necessary at this point.
	//MsgBox "Logging out..."
	alert("操作をしない時間が" + tval + "分を超えたため、タイムアウトになりました...");
	//window.location = "Logout.htm"
	parent.top.window.location = url;
	parent.top.window.focus();
}

function Delay(tval,url)
{
//alert("chappy");
	// Delay the logout.
	clearInterval(g_timer);
	Init(tval,url);
}
//*****************************************************************************
	
//*********************************************************************
// @(f)
// 機能      : URL表示処理
// 引き数    : ARG1 - 表示先フレーム
//             ARG2 - 表示URL
// 返り値    : なし
// 機能説明  : 指定されたURLを指定フレームに表示する。
// 備考      :
//*********************************************************************
function Java_DispURLtoFrame(frm,
                             url)
{
//alert("Java_DispURLtoFrame" + frm + url);
	if( url != null ){
		frm.location = url;
//		work.location = url;
//		alert('');
	}
//		frm.url = url;

	//parent.frame_work.location = url;
		
	return true;
}

//********************************************************************************
// @(f)
// 機能      : URL表示処理
// 引き数    : ARG1 - 表示URL
//             ARG2 - ウィンドウタイトル
// 返り値    : なし
// 機能説明  : 指定されたURLを新規ウィンドウで表示する。
//             ただし、以下の表示も行われる。
//             ○ツールバー
//             ○メニューバー
//             ○ステータスバー
// 備考      :
//********************************************************************************
function Java_DispURLByNewWindow(url,
                                 wt)
{
	var	a_w;
	a_w = window.open(url,
	                  wt);
	a_w.focus();
	return true;
}

//********************************************************************************
// @(f)
// 機能      : URL表示処理
// 引き数    : ARG1 - 表示URL
//             ARG2 - ウィンドウタイトル
// 返り値    : なし
// 機能説明  : 指定されたURLを新規ウィンドウで表示する。
//             ただし、以下の表示も行われる。
//             ○ツールバー
//             ○メニューバー
//             ○ステータスバー
// 備考      :
//********************************************************************************
function Java_GetDispWindowWidth()
{
	return screen.availWidth-10;
}

//********************************************************************************
// @(f)
// 機能      : URL表示処理
// 引き数    : ARG1 - 表示URL
//             ARG2 - ウィンドウタイトル
// 返り値    : なし
// 機能説明  : 指定されたURLを新規ウィンドウで表示する。
//             ただし、以下の表示も行われる。
//             ○ツールバー
//             ○メニューバー
//             ○ステータスバー
// 備考      :
//********************************************************************************
function Java_GetDispWindowHeight()
{
	return screen.availHeight-40;
}

//*********************************************************************
// @(f)
// 機能      : URL表示処理
// 引き数    : ARG1 - 表示URL
//             ARG2 - 表示ウィンドウタイトル
//             ARG3 - 表示ウィンドウ幅
//             ARG4 - 表示ウィンドウ高さ
//             ARG5 - スクロールバー表示有無(0:無、1:有)
//             ARG6 - リサイズ有無(0:無、1:有)
//             ARG7 - ツールバー表示有無(0:無、1:有)
//             ARG8 - メニューバー表示有無(0:無、1:有)
//             ARG9 - ステータスバー表示有無(0:無、1:有)
//             ARG10 - 表示Top位置
//             ARG11 - 表示Left位置
// 返り値    : なし
// 機能説明  : 指定されたURLを新規ウィンドウで表示する。
//             ただし、ブラウザの以下の表示はしない。ツールバーメニューバー
// 備考      :
//*********************************************************************
function Java_DispURLbyNewWindowEx(url,
                                   wt,
                                   wd,
                                   ht,
                                   sb,
                                   rs,
                                   tb,
                                   mb,
                                   st,
                                   tp,
                                   lf)
{
	var	a_w;
	a_w = window.open(url,
		              wt,
		              "width=" + wd +
		              ",height=" + ht +
		              ",scrollbars=" + sb + 
	                  ",resizable=" + rs +
	                  ",toolbar=" + tb +
	                  ",menubar=" + mb +
	                  ",status=" + st +
	                  ",top=" + tp +
	                  ",left=" + lf);
	a_w.focus();
	return a_w;
}
//********************************************************************************
// @(f)
// 機能      : ドキュメントクローズ処理
// 引き数    : なし
// 返り値    : なし
// 機能説明  : 現在のドキュメントをクローズする。
// 備考      :
//********************************************************************************
function Java_CloseDocument()
{
	var	a_w;
	document.close();
	return true;
}

//********************************************************************************
// @(f)
// 機能      : ウィンドウクローズ処理
// 引き数    : なし
// 返り値    : なし
// 機能説明  : 現在のウィンドウをクローズする。
// 備考      :
//********************************************************************************
function Java_CloseWindow() {
	var	a_w;
	parent.window.close();
	//window.close();
	return true;
}

//********************************************************************************
// @(f)
// 機能      : ブラウザ判定処理
// 引き数    : なし
// 返り値    : "N"：NetScape
//	           "M"：Internet Explorer
//             "U"：Unknwon
// 機能説明  : 使用中のブラウザを判定する。
// 備考      :
//********************************************************************************
function Java_CheckBrowser()
{
	var a_ret;
	
	if( navigator.appName.charAt(0) == "N" )
	{	// Netscape
		a_ret = "N";
	}
	else if( navigator.appName.charAt(0) == "M" )
	{	// Internet Explorer
		a_ret = "M";
	}
	else
	{	// Unknown
		a_ret = "U";
	}
	
//	ver = navigator.appVersion.charAt(0);

	return a_ret;
}

//********************************************************************************
// @(f)
// 機能      : NetScapeバージョン判定処理
// 引き数    : なし
// 返り値    : バージョン番号(小数点あり)
// 機能説明  : 使用中のNetScapeのバージョンを判定する。
// 備考      :
//********************************************************************************
function Java_CheckNSVersion()
{
	var	a_str;
	var	a_idx;
	var	a_num;

	if( navigator.appVersion.charAt(0) == 4 )
	{	// Ver4
		a_str = navigator.appVersion;
		a_idx = a_str.indexOf( " " );
		a_str = a_str.substring( 0,
		                         a_idx);
//		a_num = parseFloat(a_str);
	}
	
	if( navigator.appVersion.charAt(0) > 4 )
	{	// Ver5以上
		a_str = navigator.userAgent;
		a_idx = a_str.lastIndexOf("/");
		a_str = a_str.substr( a_idx + 1,
		                      3);
	}

	return a_str;
	
}

//********************************************************************************
// @(f)
// 機能      : IEバージョン判定処理
// 引き数    : なし
// 返り値    : バージョン番号(小数点あり)
// 機能説明  : 使用中のIEのバージョンを判定する。
// 備考      :
//********************************************************************************
function Java_CheckIEVersion()
{
	var	a_str;
	var	a_idx;
	var	a_cnt;
	var	a_num;

	// IEの場合は、navigator.userAgentも同じ内容が返却される？
	a_str = navigator.appVersion;
	a_idx = a_str.indexOf( "MSIE" );

	if( a_idx < 0 )
		return false;

	a_str = a_str.substring( a_idx+5,
	                         a_str.length);
	a_idx = a_str.indexOf( ";" );
	a_str = a_str.substring( 0,
	                         a_idx);
//	a_num = parseFloat(a_str);

	return a_str;
	
//	if(a_num >= 6.0){	//alert("IE6.0 以上");
//		return true;
//	}else{			//alert("IE6.0 未満");
//		return false;
//	}
}

//********************************************************************************
// @(f)
// 機能      : ステータスバー文字列設定処理
// 引き数    : ARG1 - 設定文字列
// 返り値    : なし
// 機能説明  : ウィンドウのステータスバーの文字列を設定する。
// 備考      :
//********************************************************************************
function Java_SetStatusBarString(description)
{
	window.status = description;
}

//********************************************************************************
// @(f)
// 機能      : 履歴移動処理
// 引き数    : ARG1 - 表示フレーム
//             ARG2 - 履歴移動数
// 返り値    : なし
// 機能説明  : 指定されたフレーム上に履歴表示する。
// 備考      :
//********************************************************************************
function Java_GoHistory(frm,
　　　　　　　　　　　　n)
{
	frm.history.go(n);
}

//********************************************************************************
// @(f)
// 機能      : サブミット処理
// 引き数    : ARG1 - サブミット対象フレーム
//             ARG2 - 確認メッセージL
// 返り値    : true：サブミット処理実行
//             false：サブミット処理キャンセル
// 機能説明  : 指定されたフレーム上でサブミット処理を行う。
//             確認メッセージが不要の場合はARG2には空文字列を指定。
// 備考      :
//********************************************************************************
function Java_Submit(frm,
                     msg)
{
	if( msg != "" )
	{
		if(confirm( msg ))
		{
			frm.submit();	
			return true;
		}
		else
			return false;
	}
	else
	{
		frm.submit();
		return true;
	}
}

//********************************************************************************
// @(f)
// 機能      : HTML使用不可文字削除処理
// 引き数    : ARG1 - 文字列
// 返り値    : 削除結果文字列
// 機能説明  : 指定された文字列において、HTML言語で使用できない文字を削除する。
// 備考      :
//********************************************************************************
function Java_Encode(ival)
{
	var	a_str1,a_str2,a_str3;
	var	a_size;
	var	a_cnt;

	a_str1 = ival.value;
	a_size = a_str1.length;
	a_str2 = "";
	a_str3 = "";

	for(a_cnt=0;a_cnt<a_size;a_cnt++)
	{
		a_str3 = a_str1.substr(a_cnt,1);

		switch(a_str3)
		{
		case '\"':
			a_str3 = "";
			break;
		case '\'':
			a_str3 = "";
			break;
		case '&':
			a_str3 = "";
			break;
		case '<':
			a_str3 = "";
			break;
		case '>':
			a_str3 = "";
			break;
		/*case '\r':
			a_str3 = " ";
			break;
		case '\n':
			a_str3 = "";
			break;*/
		default:
			break;
		}

		a_str2 += a_str3;
	}

	return a_str2;
}

//********************************************************************************
// @(f)
// 機能      : 半角数字チェック処理
// 引き数    : ARG1 - 文字列
//             ARG2 - MAXサイズ
// 返り値    : 空文字列：全て半角数字
//             "Input value is invalid!"：半角数字以外の文字あり
// 機能説明  : 指定された文字列が半角数字であるかどうかをチェックする。
// 備考      :
//********************************************************************************
function Java_HankakuSuujiCheck(ival,
                                mlen)
{
	var	a_okflag;
	var	a_size;
	var	a_wkstr;
	var	a_cnt1,a_cnt2,a_cnt3;
	var	a_efclen;
	var	a_efcstr,a_outstr;

	a_okflag = true;

	a_size = ival.value.length;
	a_efclen = 0;
	a_efcstr = "";
	a_outstr = "";

	for(a_cnt1=0;a_cnt1<a_size;a_cnt1++)
	{
		a_wkstr = ival.value.substr(a_cnt1,1);
		for(a_cnt2=0;a_cnt2<jg_hansuuji_sum;a_cnt2++)
		{
			if( a_wkstr == jg_hansuuji_tbl[a_cnt2] )
			{
				a_efclen++;
				a_efcstr += a_wkstr;
				a_outstr += a_wkstr;
				a_cnt2 = 0;	// 2003.06.25
				break;
			}
		}

		if(a_cnt2 >= jg_hansuuji_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_elsecode_sum;a_cnt2++)
			{
				if( a_wkstr == jg_elsecode_tbl[a_cnt2] )
				{
					a_efclen++;
					a_efcstr += a_wkstr;
					a_outstr += a_wkstr;
					a_cnt2 = 0;	// 2003.06.25
					break;
				}
			}
		}
			
		if(a_cnt2 >= jg_elsecode_sum)
		{
			a_okflag = false;
			break;
		}

		if(a_efclen >= mlen )
		{
			//ival.value = a_efcstr;
			break;
		}
	}

	if(a_okflag == false)
		a_outstr = jg_errstr;

	return a_outstr;
}

//********************************************************************************
// @(f)
// 機能      : 半角英数字チェック処理
// 引き数    : ARG1 - 文字列
//             ARG2 - MAXサイズ
// 返り値    : 空文字列：全て半角英数字
//             "Input value is invalid!"：半角英数字以外の文字あり
// 機能説明  : 指定された文字列が半角英数字であるかどうかをチェックする。
// 備考      :
//********************************************************************************
function Java_HankakuEiSuujiCheck(ival,
                                  mlen)
{
	var	a_okflag;
	var	a_size;
	var	a_wkstr;
	var	a_cnt1,a_cnt2,a_cnt3;
	var	a_efclen;
	var	a_efcstr,a_outstr;

	a_okflag = true;

	a_size = ival.value.length;
	a_efclen = 0;
	a_efcstr = "";
	a_outstr = "";

	for(a_cnt1=0;a_cnt1<a_size;a_cnt1++)
	{
		a_wkstr = ival.value.substr(a_cnt1,1);
		for(a_cnt2=0;a_cnt2<jg_hansuuji_sum;a_cnt2++)
		{
			if( a_wkstr == jg_hansuuji_tbl[a_cnt2] )
			{
				a_efclen++;
				a_efcstr += a_wkstr;
				a_outstr += a_wkstr;
				a_cnt2 = 0;	// 2003.06.25
				break;
			}
		}

		if(a_cnt2 >= jg_hansuuji_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_haneiji_sum;a_cnt2++)
			{
				if( a_wkstr == jg_haneiji_tbl[a_cnt2] )
				{
					a_efclen++;
					a_efcstr += a_wkstr;
					a_outstr += a_wkstr;
					a_cnt2 = 0;	// 2003.06.25
					break;
				}
			}
		}

		if(a_cnt2 >= jg_haneiji_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_elsecode_sum;a_cnt2++)
			{
				if( a_wkstr == jg_elsecode_tbl[a_cnt2] )
				{
					a_efclen++;
					a_efcstr += a_wkstr;
					a_outstr += a_wkstr;
					a_cnt2 = 0;	// 2003.06.25
					break;
				}
			}
		}
			
		if(a_cnt2 >= jg_elsecode_sum)
		{
			a_okflag = false;
			break;
		}
		
		if(a_efclen >= mlen )
		{
			//ival.value = a_efcstr;
			break;
		}
	}

	if(a_okflag == false)
		a_outstr = jg_errstr;

	return a_outstr;
}

//********************************************************************************
// @(f)
// 機能      : 半角カナ文字チェック処理
// 引き数    : ARG1 - 文字列
//             ARG2 - MAXサイズ
// 返り値    : 空文字列：全て半角カナ文字
//             "Input value is invalid!"：半角カナ文字以外の文字あり
// 機能説明  : 指定された文字列が半角カナ文字であるかどうかをチェックする。
// 備考      :
//********************************************************************************
function Java_HankakuKanaCheck(ival,
                               mlen)
{
	var	a_okflag;
	var	a_size;
	var	a_wkstr;
	var	a_cnt1,a_cnt2,a_cnt3;
	var	a_efclen;
	var	a_efcstr,a_outstr;

	a_okflag = true;

	a_size = ival.value.length;
	a_efclen = 0;
	a_efcstr = "";
	a_outstr = "";

	for(a_cnt1=0;a_cnt1<a_size;a_cnt1++)
	{
		a_wkstr = ival.value.substr(a_cnt1,1);
		for(a_cnt2=0;a_cnt2<jg_hankana_sum;a_cnt2++)
		{
			if( a_wkstr == jg_hankana_tbl[a_cnt2] )
			{
				a_efclen++;
				a_efcstr += a_wkstr;
				a_outstr += a_wkstr;
				a_cnt2 = 0;	// 2003.06.25
				break;
			}
		}

		if(a_cnt2 >= jg_hankana_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_elsecode_sum;a_cnt2++)
			{
				if( a_wkstr == jg_elsecode_tbl[a_cnt2] )
				{
					a_efclen++;
					a_efcstr += a_wkstr;
					a_outstr += a_wkstr;
					a_cnt2 = 0;	// 2003.06.25
					break;
				}
			}
		}
			
		if(a_cnt2 >= jg_elsecode_sum)
		{
			a_okflag = false;
			break;
		}

		if(a_efclen >= mlen )
		{
			//ival.value = a_efcstr;
			break;
		}
	}

	if(a_okflag == false)
		a_outstr = jg_errstr;

	return a_outstr;
}

//********************************************************************************
// @(f)
// 機能      : 全角文字チェック処理
// 引き数    : ARG1 - 文字列
//             ARG2 - MAXサイズ
// 返り値    : 空文字列：全て全角文字
//             "Input value is invalid!"：全角文字以外の文字あり
// 機能説明  : 指定された文字列が全角文字であるかどうかをチェックする。
// 備考      :
//********************************************************************************
function Java_ZenkakuCheck(ival,
                           mlen)
{
	var	a_okflag;
	var	a_size;
	var	a_wkstr;
	var	a_cnt1,a_cnt2,a_cnt3;
	var	a_efclen;
	var	a_efcstr,a_outstr;

	a_okflag = true;

	a_size = ival.value.length;
	a_efclen = 0;
	a_efcstr = "";
	a_outstr = "";

	for(a_cnt1=0;a_cnt1<a_size;a_cnt1++)
	{
		a_wkstr = ival.value.substr(a_cnt1,1);
		for(a_cnt2=0;a_cnt2<jg_hansuuji_sum;a_cnt2++)
		{
			if( a_wkstr == jg_hansuuji_tbl[a_cnt2] )
			{
				a_okflag = false;
				a_cnt2 = 0;	// 2003.06.25
				break;
			}
		}

		if(a_cnt2 >= jg_hansuuji_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_haneiji_sum;a_cnt2++)
			{
				if( a_wkstr == jg_haneiji_tbl[a_cnt2] )
				{
					a_okflag = false;
					a_cnt2 = 0;	// 2003.06.25
					break;
				}
			}
		}

		if(a_cnt2 >= jg_haneiji_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_hankana_sum;a_cnt2++)
			{
				if( a_wkstr == jg_hankana_tbl[a_cnt2] )
				{
					a_okflag = false;
					a_cnt2 = 0;	// 2003.06.25
					break;
				}
			}
		}

		if(a_cnt2 >= jg_hankana_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_hankigou_sum;a_cnt2++)
			{
				if( a_wkstr == jg_hankigou_tbl[a_cnt2] )
				{
					a_okflag = false;
					a_cnt2 = 0;	// 2003.06.25
					break;
				}
			}
		}

		if(a_cnt2 >= jg_hankigou_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_elsecode_sum;a_cnt2++)
			{
				if( a_wkstr == jg_elsecode_tbl[a_cnt2] )
				{
					a_efclen++;
					a_efcstr += a_wkstr;
					a_outstr += a_wkstr;
					a_cnt2 = 0;	// 2003.06.25
					break;
				}
			}
		}
			
		if(a_cnt2 >= jg_elsecode_sum)
		{
			//a_efclen++;
			//a_efcstr += a_wkstr;
			//a_outstr += a_wkstr;
			//a_wkstr = ival.value.substr(a_cnt1,1);
			a_efclen+=2;
			a_efcstr += a_wkstr;
			a_outstr += a_wkstr;
			a_cnt2 = 0;	// 2003.06.25
		}

		if(a_okflag == false)
		{
			break;
		}

		if(a_efclen >= mlen )
		{
			//ival.value = a_efcstr;
			break;
		}
	}

	if(a_okflag == false)
		a_outstr = jg_errstr;

	return a_outstr;
}

//********************************************************************************
// @(f)
// 機能      : 全角/半角文字チェック処理
// 引き数    : ARG1 - 文字列
//             ARG2 - MAXサイズ
// 返り値    : 空文字列：全て全角/半角文字
//             "Input value is invalid!"：全角/半角文字以外の文字あり
// 機能説明  : 指定された文字列が全角/半角文字であるかどうかをチェックする。
// 備考      :
//********************************************************************************
function Java_HankakuZenkakuCheck(ival,
                                  mlen)
{
	var	a_okflag;
	var	a_size;
	var	a_wkstr;
	var	a_cnt1,a_cnt2,a_cnt3;
	var	a_efclen;
	var	a_efcstr,a_outstr;
	var	a_strflag;

	a_okflag = true;

	a_size = ival.value.length;
	a_efclen = 0;
	a_efcstr = "";
	a_outstr = "";
	a_strflag = 0;

	for(a_cnt1=0;a_cnt1<a_size;a_cnt1++)
	{
		a_strflag = 1;
		a_wkstr = ival.value.substr(a_cnt1,1);
		for(a_cnt2=0;a_cnt2<jg_hansuuji_sum;a_cnt2++)
		{
			if( a_wkstr == jg_hansuuji_tbl[a_cnt2] )
			{
				a_strflag = 0;
				a_cnt2 = 0;	// 2003.06.25
				a_efclen++;	// 2003.11.20
				break;
			}
		}

		if(a_cnt2 >= jg_hansuuji_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_haneiji_sum;a_cnt2++)
			{
				if( a_wkstr == jg_haneiji_tbl[a_cnt2] )
				{
					a_strflag = 0;
					a_cnt2 = 0;	// 2003.06.25
					a_efclen++;	// 2003.11.20
					break;
				}
			}
		}

		if(a_cnt2 >= jg_haneiji_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_hankana_sum;a_cnt2++)
			{
				if( a_wkstr == jg_hankana_tbl[a_cnt2] )
				{
					a_strflag = 0;
					a_cnt2 = 0;	// 2003.06.25
					a_efclen++;	// 2003.11.20
					break;
				}
			}
		}

		if(a_cnt2 >= jg_hankana_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_hankigou_sum;a_cnt2++)
			{
				if( a_wkstr == jg_hankigou_tbl[a_cnt2] )
				{
					a_strflag = 0;
					a_cnt2 = 0;	// 2003.06.25
					a_efclen++;	// 2003.11.20
					break;
				}
			}
		}

		if(a_cnt2 >= jg_hankigou_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_elsecode_sum;a_cnt2++)
			{
				if( a_wkstr == jg_elsecode_tbl[a_cnt2] )
				{
					a_strflag = 0;
					a_cnt2 = 0;	// 2003.06.25
					a_efclen++;	// 2003.11.20
					break;
				}
			}
		}

		if(a_cnt2 >= jg_elsecode_sum)
		{
			if(a_strflag == 0)
			{
				a_efcstr += a_wkstr;
				a_outstr += a_wkstr;
				a_cnt2 = 0;	// 2003.06.25
				a_efclen++;	// 2003.11.20
			}
			else
			{
				//a_efclen++;
				//a_efcstr += a_wkstr;
				//a_outstr += a_wkstr;
				//a_wkstr = ival.value.substr(a_cnt1,1);
				a_efcstr += a_wkstr;
				a_outstr += a_wkstr;
				a_cnt2 = 0;	// 2003.06.25
				a_efclen+=2;	// 2003.11.20
			}
		}

		if(a_okflag == false)
			break;

// 2003.11.20
//		if(a_efclen >= mlen )
//		{
//			//ival.value = a_efcstr;
//			break;
//		}
// 2003.11.20
	}
//alert(byteRet);
// 2003.11.20
//	if(a_okflag == false)
//		a_outstr = jg_errstr;
//
//	return a_outstr;
// 2003.11.20

	return a_efclen;
}

//********************************************************************************
// @(f)
// 機能      : 半角英数字記号文字チェック処理
// 引き数    : ARG1 - 文字列
//             ARG2 - MAXサイズ
// 返り値    : 空文字列：全て半角英数字記号文字
//             "Input value is invalid!"：半角英数字記号文字以外の文字あり
// 機能説明  : 指定された文字列が半角英数字記号文字であるかどうかをチェックする。
// 備考      :
//********************************************************************************
function Java_HankakuEiSuujiKigouCheck(ival,
                                       mlen)
{
	var	a_okflag;
	var	a_size;
	var	a_wkstr;
	var	a_cnt1,a_cnt2,a_cnt3;
	var	a_efclen;
	var	a_efcstr,a_outstr;

	a_okflag = true;

	a_size = ival.value.length;
	a_efclen = 0;
	a_efcstr = "";
	a_outstr = "";

	for(a_cnt1=0;a_cnt1<a_size;a_cnt1++)
	{
		a_wkstr = ival.value.substr(a_cnt1,1);
		for(a_cnt2=0;a_cnt2<jg_hansuuji_sum;a_cnt2++)
		{
			if( a_wkstr == jg_hansuuji_tbl[a_cnt2] )
			{
				a_efclen++;
				a_efcstr += a_wkstr;
				a_outstr += a_wkstr;
				a_cnt2 = 0;	// 2003.06.25
				break;
			}
		}

		if(a_cnt2 >= jg_hansuuji_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_haneiji_sum;a_cnt2++)
			{
				if( a_wkstr == jg_haneiji_tbl[a_cnt2] )
				{
					a_efclen++;
					a_efcstr += a_wkstr;
					a_outstr += a_wkstr;
					a_cnt2 = 0;	// 2003.06.25
					break;
				}
			}
		}

		if(a_cnt2 >= jg_haneiji_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_hankigou_sum;a_cnt2++)
			{
				if( a_wkstr == jg_hankigou_tbl[a_cnt2] )
				{
					a_efclen++;
					a_efcstr += a_wkstr;
					a_outstr += a_wkstr;
					a_cnt2 = 0;	// 2003.06.25
					break;
				}
			}
		}

		if(a_cnt2 >= jg_hankigou_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_elsecode_sum;a_cnt2++)
			{
				if( a_wkstr == jg_elsecode_tbl[a_cnt2] )
				{
					a_efclen++;
					a_efcstr += a_wkstr;
					a_outstr += a_wkstr;
					a_cnt2 = 0;	// 2003.06.25
					break;
				}
			}
		}
		
		if(a_cnt2 >= jg_elsecode_sum)
		{
			a_okflag = false;
			break;
		}

		if(a_efclen >= mlen )
		{
			//ival.value = a_efcstr;
			break;
		}
	}

	if(a_okflag == false)
		a_outstr = jg_errstr;

	return a_outstr;
}

//********************************************************************************
// @(f)
// 機能      : 全角ひらがなチェック処理
// 引き数    : ARG1 - 文字列
//             ARG2 - MAXサイズ
// 返り値    : 空文字列：全て全角ひらがな文字
//             "Input value is invalid!"：全角ひらがな文字以外の文字あり
// 機能説明  : 指定された文字列が全角ひらがな文字であるかどうかをチェックする。
// 備考      :
//********************************************************************************
function Java_ZenkakuHiraganaCheck(ival,
                                   mlen)
{
	var	a_okflag;
	var	a_size;
	var	a_wkstr;
	var	a_cnt1,a_cnt2,a_cnt3;
	var	a_efclen;
	var	a_efcstr,a_outstr;

	a_okflag = true;

	a_size = ival.value.length;
	a_efclen = 0;
	a_efcstr = "";
	a_outstr = "";

	for(a_cnt1=0;a_cnt1<a_size;a_cnt1++)
	{
		a_wkstr = ival.value.substr(a_cnt1,1);
		for(a_cnt2=0;a_cnt2<jg_zenhiragana_sum;a_cnt2++)
		{
			if( a_wkstr == jg_zenhiragana_tbl[a_cnt2] )
			{
				//a_efclen++;
				a_efclen+=2;
				a_efcstr += a_wkstr;
				a_outstr += a_wkstr;
				a_cnt2 = 0;	// 2003.06.25
				break;
			}
		}

		if(a_cnt2 >= jg_zenhiragana_sum)
		{
			for(a_cnt2=0;a_cnt2<jg_elsecode_sum;a_cnt2++)
			{
				if( a_wkstr == jg_elsecode_tbl[a_cnt2] )
				{
					a_efclen++;
					a_efcstr += a_wkstr;
					a_outstr += a_wkstr;
					a_cnt2 = 0;	// 2003.06.25
					break;
				}
			}
		}
			
		if(a_cnt2 >= jg_elsecode_sum)
		{
			a_okflag = false;
			break;
		}

		if(a_efclen >= mlen )
		{
			//ival.value = a_efcstr;
			break;
		}
	}

	if(a_okflag == false)
		a_outstr = jg_errstr;

	return a_outstr;
}

//********************************************************************************
// @(f)
// 機能      : 半角数字+'.'文字チェック処理(小数点１桁対応?)
// 引き数    : ARG1 - 文字列
//             ARG2 - MAXサイズ
//             ARG3 - 小数点桁数
// 返り値    : 空文字列：全て半角数字+'.'
//             "Input value is invalid!"：半角数字+'.'文字以外の文字あり
// 機能説明  : 指定された文字列が半角数字+'.'文字であるかどうかをチェックする。
// 備考      :
//********************************************************************************
function Java_HankakuEiSuujiDotCheck(ival,
                                     mlen,
                                     keta)
{
	var	a_okflag;
	var	a_size;
	var	a_wkstr;
	var	a_cnt1,a_cnt2,a_cnt3;
	var	a_efclen;
	var	a_efcstr,a_outstr;
	var a_dotsum;

	a_okflag = true;

	a_size = ival.value.length;
	a_efclen = 0;
	a_efcstr = "";
	a_outstr = "";
	a_dotsum = 0;

	for(a_cnt1=0;a_cnt1<a_size;a_cnt1++)
	{
		a_wkstr = ival.value.substr(a_cnt1,1);
		for(a_cnt2=0;a_cnt2<jg_hansuuji_sum;a_cnt2++)
		{
			if( a_wkstr == jg_hansuuji_tbl[a_cnt2] )
			{
				a_efclen++;
				a_efcstr += a_wkstr;
				a_outstr += a_wkstr;
				a_cnt2 = 0;	// 2003.06.25
				break;
			}
		}

		if(a_cnt2 >= jg_hansuuji_sum)
		{
			if( a_wkstr == "." )
			{
				a_efclen++;
				a_efcstr += a_wkstr;
				a_outstr += a_wkstr;
				a_cnt2 = 0;	// 2003.06.25
				a_dotsum++;
				break;
			}
			else
			{
				a_cnt2++;
			}
		}
		
		if(a_cnt2 > 0)
		{
			for(a_cnt2=0;a_cnt2<jg_elsecode_sum;a_cnt2++)
			{
				if( a_wkstr == jg_elsecode_tbl[a_cnt2] )
				{
					a_efclen++;
					a_efcstr += a_wkstr;
					a_outstr += a_wkstr;
					a_cnt2 = 0;	// 2003.06.25
					break;
				}
			}
		}
		
		if(a_cnt2 >= jg_elsecode_sum)
		{
			a_okflag = false;
			break;
		}

		if(a_efclen >= mlen )
		{
			//ival.value = a_efcstr;
			break;
		}
	}

	if(a_okflag == false)
		a_outstr = jg_errstr;
	else
	{
		if(a_dotsum > 1)
			a_outstr = jg_errstr;
		else
		{
			if(a_dotsum == 1)
			{
				if(((a_size - (ival.value.lastIndexOf(".") + 1)) > keta) ||
				   ((a_size - (ival.value.lastIndexOf(".") + 1)) == 0))
					a_outstr = jg_errstr;
			}
		}
	}

	return a_outstr;
}

//********************************************************************************
// @(f)
// 機能      : テキスト入力文字チェック処理
// 引き数    : ARG1 - 項目名
//             ARG2 - 文字列
//             ARG3 - チェック種別（0:半角数字、1:半角英数字、2:半角カナ文字、
//                                  3:全角文字、4:全角/半角、5:半角英数+記号、
//                                  6:全角ひらがな文字,7:半角数字+'.'）
//             ARG4 - MAX入力可能サイズ
//             ARG5 - 必須入力か否か(0:必須でない、1：必須である)
//             ARG6 - 必須入力サイズ
// 返り値    : 空文字列：チェック正常
//             "Input value is invalid!"：チェック異常
// 機能説明  : 指定された文字列が指定された文字であるかどうかをチェックする。
// 備考      :
//********************************************************************************
function Java_TextCheck(iname,
	                    ival,
                        itype,
                        mlen,
                        ichk,
                        ilen)
{
	var	a_okflag;
	var	a_cond;
	var	a_size;
	var	a_msg;
	var	a_wkstr;
	var	a_cnt1,a_cnt2,a_cnt3;
	var	a_outstr;
	var a_byteRet;	// 全角／半角混在時の入力実バイト	// 2003.11.20

	a_okflag = true;
	a_outstr = "";

	//ival.value = Java_Encode(ival);	// 2003.07.25

	a_cond = ival.value.substr(0,1);
	a_size = ival.value.length;
//alert(a_size);
	if(a_size >= 1)
	{
		switch (itype)
		{
		case 0:	// 半角数字
			a_outstr = Java_HankakuSuujiCheck(ival,mlen);
			if(a_outstr == jg_errstr)
			{
				a_okflag = false;
				a_msg = iname + "の入力に誤りが有ります。（数値入力）";
			}
			break;
		case 1:	// 半角英数字
			a_outstr = Java_HankakuEiSuujiCheck(ival,mlen);
			if(a_outstr == jg_errstr)
			{
				a_okflag = false;
				a_msg = iname + "の入力に誤りが有ります。（半角英数入力）";
			}
			break;
		case 2:	// 半角カナ
			a_outstr = Java_HankakuKanaCheck(ival,mlen);
			if(a_outstr == jg_errstr)
			{
				a_okflag = false;
				a_msg = iname + "の入力に誤りが有ります。（半角カナ入力）";
			}
			break;
		case 3:	// 全角
			a_outstr = Java_ZenkakuCheck(ival,mlen);
			if(a_outstr == jg_errstr)
			{
				a_okflag = false;
				a_msg = iname + "の入力に誤りが有ります。（全角入力）";
			}
			break;
		case 4:	// 全角/半角
			a_byteRet = Java_HankakuZenkakuCheck(ival,mlen);	// 2003.11.20
//alert(a_byteRet);
//alert(a_outstr);
			if(a_byteRet == 0)
			{
				a_okflag = false;
				a_msg = iname + "の入力に誤りが有ります。（全角/半角入力）";
			}
			break;
		case 5:	// 半角英数＋記号
			a_outstr = Java_HankakuEiSuujiKigouCheck(ival,mlen);
			if(a_outstr == jg_errstr)
			{
				a_okflag = false;
				a_msg = iname + "の入力に誤りが有ります。（半角英数記号入力）";
			}
			break;
		case 6:	// 全角ひらがな
			a_outstr = Java_ZenkakuHiraganaCheck(ival,mlen);
			if(a_outstr == jg_errstr)
			{
				a_okflag = false;
				a_msg = iname + "の入力に誤りが有ります。（全角ひらがな入力）";
			}
			break;
		case 7:	// 半角数字＋.
			a_outstr = Java_HankakuEiSuujiDotCheck(ival,mlen,ilen);
			if(a_outstr == jg_errstr)
			{
				a_okflag = false;
				a_msg = iname + "の入力に誤りが有ります。（半角数字+'.'入力）";
			}
			break;
		default:	// 初期
			break;
		}
		
		if(a_okflag == true)
		{
			switch (itype) {
			case 0:	// 半角数
			case 1:	// 半角英数
			case 2:	// 半角カナ
			case 5:	// 半角英数＋記号
// 2003.11.20 start...
				if(ichk == 1)
				{
					if(a_size < ilen)
					{
						a_okflag = false;
						a_outstr = jg_errstr;
						a_msg = iname + "の入力に誤りが有ります（必須入力サイズ=" + ilen + "桁）";
					}
				}
				
				if(a_size > mlen)
				{
					a_okflag = false;
					a_outstr = jg_errstr;
					a_msg = iname + "の入力に誤りが有ります（MAX入力サイズ=" + mlen + "桁）";
				}
// 2003.11.20 end...
				break;
			case 3:	// 全角
			case 6:	// 全角ひらがな
				if(ichk == 1)
				{
					if(a_size < (ilen / 2))
					{
						a_okflag = false;
						a_outstr = jg_errstr;
						a_msg = iname + "の入力に誤りが有ります（必須入力サイズ=" + ilen + "バイト）";
					}

					//if(a_size > (mlen / 2))
					//{
					//	a_okflag = false;
					//	a_outstr = jg_errstr;
					//	a_msg = iname + "の入力に誤りが有ります（MAX入力サイズ=" + mlen + "バイト）";
					//}
				}
				
				if(a_size > (mlen / 2))
				{
					a_okflag = false;
					a_outstr = jg_errstr;
//					a_msg = iname + "の入力に誤りが有ります（MAX入力サイズ=" + mlen + "バイト）";
					a_msg = iname + "の入力に誤りが有ります（最大入力文字数を超えています）";
				}
				break;
			case 4:	// 全角/半角
				if(ichk == 1)
				{
					if(a_byteRet < ilen)
					{
						a_okflag = false;
						a_outstr = jg_errstr;
//						a_msg = iname + "の入力に誤りが有ります（必須入力サイズ=" + ilen + "バイト）";
						a_msg = iname + "の入力に誤りが有ります（最大入力文字数を超えています）";
					}
//alert(a_byteRet);
					//if(a_byteRet > mlen)
					//{
					//	a_okflag = false;
					//	a_outstr = jg_errstr;
					//	a_msg = iname + "の入力に誤りが有ります（MAX入力サイズ=" + mlen + "バイト）";
					//}
				}

				if(a_byteRet > mlen)
				{
					a_okflag = false;
					a_outstr = jg_errstr;
//					a_msg = iname + "の入力に誤りが有ります（MAX入力サイズ=" + mlen + "バイト）";
					a_msg = iname + "の入力に誤りが有ります（最大入力文字数を超えています）";
				}
				break;
			case 7:	// 半角数字＋'.'
				if(ichk == 1)
				{
					if(a_size < (ilen + 1))
					{
						a_okflag = false;
						a_outstr = jg_errstr;
						a_msg = iname + "の入力に誤りが有ります（必須入力サイズ=" + ilen + "桁）";
					}
				}

				if(a_size > (mlen + 1))
				{
					a_okflag = false;
					a_outstr = jg_errstr;
					a_msg = iname + "の入力に誤りが有ります（MAX入力サイズ=" + mlen + "桁）";
				}
				break;
			default:	// 初期
				break;
			}
		}
	}
	else
	{
		if(ichk == 1)
		{
			a_okflag = false;
			a_outstr = jg_errstr;
			a_msg = iname + "が入力されていません！（必須入力）";
		}
	}

	if(a_okflag == false)
	{
		//ival.style.background='yellow';
		//ival.focus();
		Java_ErrorFocus(a_msg,ival);
	}
	else
	{
		// NetScape 4.78では未サポート？
		//ival.style.background='white';
	}

	//return a_okflag;
//alert(a_outstr);
	return a_outstr;
}

//********************************************************************************
// @(f)
// 機能      : 入力エラー処理
// 引き数    : ARG1 - 出力メッセージ
//             ARG2 - 文字列領域
// 返り値    : なし
// 機能説明  : 入力エラー時の処理を行う。
// 備考      :
//********************************************************************************
function Java_ErrorFocus(emsg,
                         ival)
{
	alert(emsg);
// NetScape 4.78では未サポート？
	ival.style.background='yellow';
// NetScape 4.78では未サポート？
	ival.focus();
	//parent.frame_GeneralEntry.form_GeneralEntry.txtSyuugyouJikan_KaishiHun4.focus();

	return true;
}

//*********************************************************************
// @(f)
// 機能      : 日時入力チェック処理
// 引き数    : ARG1 - 年
//             ARG2 - 月
//             ARG3 - 日
// 返り値    : なし
// 機能説明  : 指定されたURLを指定フレームに表示する。
// 備考      :
//*********************************************************************
function Java_CheckDate(yy,
                        mm,
                        dd)
{
	// 月毎の日数設定
	var s_monthDay = new Array( 31,28,31,30,31,30,31,31,30,31,30,31 );
	var	a_ret;
	var	a_mm,a_dd;

	a_ret = Java_TextCheck( "年",
		yy,
		0,
		4,
		1,
		4);
	if( a_ret == jg_errstr )
	{
		return false;
	}

	a_ret = Java_TextCheck( "月",
		mm,
		0,
		2,
		1,
		1);
	if( a_ret == jg_errstr )
	{
		return false;
	}

	a_ret = Java_TextCheck( "日",
		dd,
		0,
		2,
		1,
		1);
	if( a_ret == jg_errstr )
	{
		return false;
	}

	a_mm = mm.value;
	a_dd = dd.value;
	if( mm.value.length > 1)
	{
		if( a_mm.substr(0,1) == "0")
				a_mm = a_mm.substr(1,1);
	}
	if( dd.value.length > 1)
	{
		if( a_dd.substr(0,1) == "0")
				a_dd = a_dd.substr(1,1);
	}

//	alert(parseInt(mm.value));
	// 月の範囲
	if( (parseInt(a_mm) < 1) || (parseInt(a_mm) > 12))
	{
		Java_ErrorFocus( "正しい月(12迄)を入力してください。",
			             mm );
		return false;
	}
		
	// 閏年であれば、２月に１日分追加
	if( ((yy.value % 4 == 0) && (yy.value % 100 != 0)) || (yy.value % 400 == 0) )
		s_monthDay[1] = 29;

	// 日数範囲チェック(上限値)
//	if( parseInt(dd.value) > s_monthDay[parseInt(mm.value)-1] )
	if( parseInt(a_dd) > s_monthDay[parseInt(a_mm)-1] )
	{
		//alert( "正しい日数(" + s_monthDay[parseInt(mm.value)-1] + "迄)を入力してください。" );
		//dd.focus();
		Java_ErrorFocus( "正しい日数(" + s_monthDay[parseInt(a_mm)-1] + "迄)を入力してください。",
			             dd );
		return false;
	}

	if( mm.value.length == 1)
		mm.value = 0 + mm.value;
	if( dd.value.length == 1)
		dd.value = 0 + dd.value;

/*
	// 時間範囲チェック
	if( parseInt(form.s_hr.value) > 23 )
	{
		alert( "正しい時間(23時迄)を入力してください。" );
		form.s_hr.focus();
		return false;
	}

	// 分範囲チェック
	if( parseInt(form.s_mi.value) > 59 )
	{
		alert( "正しい分(59分迄)を入力してください。" );
		form.s_mi.focus();
		return false;
	}

	// 秒範囲チェック
	if( parseInt(form.s_se.value) > 59 )
	{
		alert( "正しい秒(59秒迄)を入力してください。" );
		form.s_se.focus();
		return false;
	}
*/
	return true;
}

//*********************************************************************
// @(f)
// 機能      : 年月入力チェック処理
// 引き数    : ARG1 - 年
//             ARG2 - 月
// 返り値    : なし
// 機能説明  : 指定されたURLを指定フレームに表示する。
// 備考      :
//*********************************************************************
function Java_CheckMonth(yy,
                         mm)
{
	// 月毎の日数設定
	var s_monthDay = new Array( 31,28,31,30,31,30,31,31,30,31,30,31 );
	var	a_ret;
	var	a_mm;

	a_ret = Java_TextCheck( "年",
		yy,
		0,
		4,
		1,
		4);
	if( a_ret == jg_errstr )
	{
		return false;
	}

	a_ret = Java_TextCheck( "月",
		mm,
		0,
		2,
		1,
		1);
	if( a_ret == jg_errstr )
	{
		return false;
	}

	a_mm = mm.value;
	if( mm.value.length > 1)
	{
		if( a_mm.substr(0,1) == "0")
				a_mm = a_mm.substr(1,1);
	}

//	alert(parseInt(mm.value));
	// 月の範囲
	if( (parseInt(a_mm) < 1) || (parseInt(a_mm) > 12))
	{
		Java_ErrorFocus( "正しい月(12迄)を入力してください。",
			             mm );
		return false;
	}
		
	if( mm.value.length == 1)
		mm.value = 0 + mm.value;

	return true;
}

/* **************************************************************************** */
/*                                                                              */
/*   関数名：文字列前後の空白除去関数（Java_trimBlank）                         */
/*                                                                              */
/*   仕　様：文字列前後の空白（全角ブランク、半角ブランク、タブ）を除去し、     */
/*           除去結果の文字列を返す。                                           */
/*                                                                              */
/*   引数（arg1）：前後の空白を除去する文字列                                   */
/*   戻り値　　　：arg1の前後の空白を除去した文字列                             */
/*                                                                              */
/*   Ver 1.00　2004/09/10　　初版                                               */
/* **************************************************************************** */
function Java_trimBlank(arg1)
{
    var regBegin = new RegExp("^\[　 \t\n\r]*");      // 全角空白、半角空白、タブの正規化表現（行頭）
    var regLast = new RegExp("[　 \t]*$");            // 全角空白、半角空白、タブの正規化表現（行末）

    return((arg1.replace(regBegin,"")).replace(regLast,""));
}

/* **************************************************************************** */
/*                                                                              */
/*   関数名：日付形式チェック関数（Java_isYearFormat）                          */
/*                                                                              */
/*   仕　様：文字列の日付形式が、yyyyの形式かチェックする。                     */
/*              yyyy：1950～2100
/*                                                                              */
/*   引数（dt）：チェック対象の半角年文字列                                     */
/*   戻り値　　：正しい年の時、true                                             */
/*               不当年、データ無しの場合、false                                */
/*                                                                              */
/*   Ver 1.00　2007/03/09　　初版                                               */
/* **************************************************************************** */
function Java_isYearFormat(dt)
{
	var intYear1 = 1950;
	var intYear2 = 2100;
	var strDt = Java_trimBlank(dt);       // 文字列前後の空白除去

	var reg = new RegExp("^\([0-9]{4})$");  // yyyy 正規化表現

	// 形式チェック
	if(reg.exec(strDt) == null){ return false; }

	var intY = parseInt(RegExp.$1,10);

	// 年（yyyy）チェック
	if(intY < intYear1 || intY > intYear2){ return false; }

	return true;
}

/* **************************************************************************** */
/*                                                                              */
/*   関数名：日付形式チェック関数（Java_isMonthFormat）                         */
/*                                                                              */
/*   仕　様：文字列の日付形式が、yyyy/mの形式かチェックする。                   */
/*              yyyy：1950～2100　m：1～12                                      */
/*           文字列の前後の空白（全角ブランク、半角ブランク、タブ）は無視。     */
/*                                                                              */
/*   引数（dt）：チェック対象の半角日付文字列                                   */
/*   戻り値　　：正しい日付の時、true                                           */
/*               不当日付、データ無しの場合、false                              */
/*                                                                              */
/*   Ver 1.00　2007/03/09　　初版                                               */
/* **************************************************************************** */
function Java_isMonthFormat(dt)
{
	var intYear1 = 1950;
	var intYear2 = 2100;
	var strDt = Java_trimBlank(dt);       // 文字列前後の空白除去

	var reg = new RegExp("^\([0-9]{4})\/([0-9]{1,2})$");  // yyyy/m 正規化表現

	// 形式チェック
	if(reg.exec(strDt) == null){ return false; }

	var intY = parseInt(RegExp.$1,10);
	var intM = parseInt(RegExp.$2,10);

	// 年（yyyy）チェック
	if(intY < intYear1 || intY > intYear2){ return false; }

	// 月（m）チェック
	if(intM < 1 || intM > 12){ return false; }

	return true
}

/* **************************************************************************** */
/*                                                                              */
/*   関数名：日付形式チェック関数（Java_isDateFormat）                          */
/*                                                                              */
/*   仕　様：文字列の日付形式が、yyyy/m/dの形式かチェックする。                 */
/*              yyyy：1950～2100　m：1～12　d：1～31                            */
/*              うるう年チェックあり                                            */
/*           文字列の前後の空白（全角ブランク、半角ブランク、タブ）は無視。     */
/*                                                                              */
/*   引数（dt）：チェック対象の半角日付文字列                                   */
/*   戻り値　　：正しい日付の時、true                                           */
/*               不当日付、データ無しの場合、false                              */
/*                                                                              */
/*   Ver 1.00　2004/09/10　　初版                                               */
/* **************************************************************************** */
function Java_isDateFormat(dt)
{
	var intYear1 = 1950;
	var intYear2 = 2100;
	var strDt = Java_trimBlank(dt);       // 文字列前後の空白除去

	var reg = new RegExp("^\([0-9]{4})\/([0-9]{1,2})\/([0-9]{1,2})$");  // yyyy/m/d 正規化表現

	// 形式チェック
	if(reg.exec(strDt) == null){ return false; }

	var intY = parseInt(RegExp.$1,10);
	var intM = parseInt(RegExp.$2,10);
	var intD = parseInt(RegExp.$3,10);

	// 年（yyyy）チェック
	if(intY < intYear1 || intY > intYear2){ return false; }

	// 月（m）チェック
	if(intM < 1 || intM > 12){ return false; }

	// 日（d）チェック
	if(intD < 1 || intD > 31){ return false; }

	// 月末日チェック
	switch(intM)
	{
		case 2:
			if(intY % 4 == 0 && intY % 100 == 0 && intY % 400 == 0 && intD <= 29){ return true; }
			if(intY % 4 == 0 && intY % 100 != 0 && intD <= 29){ return true; }
			if(intD <= 28){ return true; }
			break;
		case 4:
		case 6:
		case 9:
		case 11:
			if(intD <= 30){ return true; }
			break;
		default:
			if(intD <= 31){ return true; }
	} 
	return false;
}

/* **************************************************************************** */
/*                                                                              */
/*   関数名：時刻形式チェック関数（Java_isTimeFormat）                           */
/*                                                                              */
/*   仕　様：文字列の時刻形式が、HH24の形式かチェックする。                     */
/*              HH24：0～23                                                     */
/*           文字列の前後の空白（全角ブランク、半角ブランク、タブ）は無視。     */
/*                                                                              */
/*   引数（tm）：チェック対象の半角時刻文字列                                   */
/*   戻り値　　：正しい時刻の時、true                                           */
/*               不当時刻、データ無しの場合、false                              */
/*                                                                              */
/*   Ver 1.00　2004/09/10　　初版                                               */
/* **************************************************************************** */
function Java_isHourFormat(tm)
{
	var strTm = Java_trimBlank(tm);       // 文字列前後の空白除去
	var aryObj=new Array();
	var spa=new RegExp(":");         // セパレータ
	var intX, intY;

	var reg = new RegExp("^\[0-9]{1,2}$");
	if(reg.test(strTm) == false){ return false; }

	// 入力データを":"で配列に分割
	aryObj = strTm.split(spa);

	intX = parseInt(aryObj[0],10);
	return(((intX >=0 && intX <=23))? true : false);
}

/* **************************************************************************** */
/*                                                                              */
/*   関数名：時刻形式チェック関数（Java_isTimeFormat）                           */
/*                                                                              */
/*   仕　様：文字列の時刻形式が、HH24:MIの形式かチェックする。                  */
/*              HH24：0～23　MI：1～59                                          */
/*           文字列の前後の空白（全角ブランク、半角ブランク、タブ）は無視。     */
/*                                                                              */
/*   引数（tm）：チェック対象の半角時刻文字列                                   */
/*   戻り値　　：正しい時刻の時、true                                           */
/*               不当時刻、データ無しの場合、false                              */
/*                                                                              */
/*   Ver 1.00　2004/09/10　　初版                                               */
/* **************************************************************************** */
function Java_isTimeFormat(tm)
{
	var strTm = Java_trimBlank(tm);       // 文字列前後の空白除去
	var aryObj=new Array();
	var spa=new RegExp(":");         // セパレータ
	var intX, intY;

	var reg = new RegExp("^\[0-9]{1,2}:[0-9]{1,2}$");
	if(reg.test(strTm) == false){ return false; }

	// 入力データを":"で配列に分割
	aryObj = strTm.split(spa);

	intX = parseInt(aryObj[0],10);
	intY = parseInt(aryObj[1],10);
	return(((intX >=0 && intX <=23) && (intY >= 0 && intY <= 59))? true : false);
}

/* **************************************************************************** */
/*                                                                              */
/*   関数名：日付＆時刻形式チェック関数（Java_chkDateTimeFormat）               */
/*                                                                              */
/*   仕　様：文字列の日付＆時刻形式をチェックし、チェック結果を返す。           */
/*              日付＆時刻形式：yyyy/m/d HH24                                   */
/*              　　　　　　　　yyyy：1950～2100　m：1～12　d：1～31            */
/*                              HH24：0～23                                     */
/*              日付と時刻のセパレータは空白。うるう年チェックあり。            */
/*           文字列の前後の空白（全角ブランク、半角ブランク、タブ）は無視。     */
/*                                                                              */
/*   引数（dt）：チェック対象の半角日付＆時刻文字列                             */
/*   戻り値　　：文字列の前後の空白（全角ブランク、半角ブランク、タブ）を除去   */
/*               した半角日付＆時刻文字列（日付と時刻の間の空白は半角変換））   */
/*               不当日付＆時刻、データ無しの場合、-1                           */
/*                                                                              */
/*   Ver 1.00　2007/03/08　　初版                                               */
/* **************************************************************************** */
function Java_chkDateHourFormat(dt)
{
    // 日付＆時刻形式の文字列の形式チェックを行う
    // チェック対象（dt）の前後の空白は除去する。
    // 注意　事前にデータが存在することを確認して関数コールすること。
    // 戻り値：チェックされた数値文字列（日付と時刻の間の空白は半角変換））
    //         数値以外含む時 -1

    var strDt = Java_trimBlank(dt);          // 文字列前後の空白除去
    var aryObj=new Array();
    var spa=new RegExp("[　 ]+");       // 全角空白＆半角空白

    aryObj = strDt.split(spa);
    if(aryObj.length != 2){ return -1; }

    if(!Java_isDateFormat(aryObj[0]) || !Java_isHourFormat(aryObj[1])){ return -1; }

    return(aryObj[0] + " " + aryObj[1]);
}
/* **************************************************************************** */
/*                                                                              */
/*   関数名：日付＆時刻形式チェック関数（Java_chkDateTimeFormat）               */
/*                                                                              */
/*   仕　様：文字列の日付＆時刻形式をチェックし、チェック結果を返す。           */
/*              日付＆時刻形式：yyyy/m/d HH24:MI                                */
/*              　　　　　　　　yyyy：1950～2100　m：1～12　d：1～31            */
/*                              HH24：0～23　MI：1～59                          */
/*              日付と時刻のセパレータは空白。うるう年チェックあり。            */
/*           文字列の前後の空白（全角ブランク、半角ブランク、タブ）は無視。     */
/*                                                                              */
/*   引数（dt）：チェック対象の半角日付＆時刻文字列                             */
/*   戻り値　　：文字列の前後の空白（全角ブランク、半角ブランク、タブ）を除去   */
/*               した半角日付＆時刻文字列（日付と時刻の間の空白は半角変換））   */
/*               不当日付＆時刻、データ無しの場合、-1                           */
/*                                                                              */
/*   Ver 1.00　2004/09/10　　初版                                               */
/* **************************************************************************** */
function Java_chkDateTimeFormat(dt)
{
    // 日付＆時刻形式の文字列の形式チェックを行う
    // チェック対象（dt）の前後の空白は除去する。
    // 注意　事前にデータが存在することを確認して関数コールすること。
    // 戻り値：チェックされた数値文字列（日付と時刻の間の空白は半角変換））
    //         数値以外含む時 -1

    var strDt = Java_trimBlank(dt);          // 文字列前後の空白除去
    var aryObj=new Array();
    var spa=new RegExp("[　 ]+");       // 全角空白＆半角空白

    aryObj = strDt.split(spa);
    if(aryObj.length != 2){ return -1; }

    if(!Java_isDateFormat(aryObj[0]) || !Java_isTimeFormat(aryObj[1])){ return -1; }

    return(aryObj[0] + " " + aryObj[1]);
}

/* **************************************************************************** */
/*                                                                              */
/*   関数名：日付文字列分割関数（Java_splitDate2）                                   */
/*                                                                              */
/*   仕　様：妥当性チェック済みの日付文字列を、年、月、日、時、分に分割し、     */
/*           分割文字列を格納した配列を返す。                                   */
/*               妥当性チェック済み日付文字列形式：yy/mm/dd HH:MM               */
/*                                                                              */
/*   引数（strDt）：妥当性チェック済みの日付文字列                              */
/*   戻り値　　　 ：分割文字列（yyyy、mm、dd、HH、MM）を格納した配列            */
/*         　　　 　入力日付文字列が不当の場合は、-1                            */
/*                                                                              */
/*   Ver 1.00　2004/09/10　　初版                                               */
/* **************************************************************************** */
function Java_splitDate2(strDt)
{
	var ary = new Array(5);
	 // yyyy/m/d HH:MM 正規化表現
	var reg = new RegExp("^\([0-9]{4})\/([0-9]{1,2})\/([0-9]{1,2})[　 ]+([0-9]{1,2}):([0-9]{1,2})$");

	// 形式チェック
	if(reg.exec(strDt) == null){ return -1; }

	ary[0] = RegExp.$1;	// yyyy
	ary[1] = RegExp.$2;	// mm
	ary[2] = RegExp.$3;	// dd
	ary[3] = RegExp.$4;	// HH
	ary[4] = RegExp.$5;	// MM
	return( ary );
}

function Java_CompareTime(strDt1, strDt2)
{
	var oDate1, oDate2, oAry1, oAry2, ary = new Array(2);

	if("" == Java_trimBlank(strDt1)){ return -1; }				// arg1 Blank
	if((ary[0] = Java_chkDateTimeFormat(strDt1)) == -1){ return -3; }	// arg1 Invalid
	if("" == Java_trimBlank(strDt2)){ return -2; }				// arg2 Blank
	if((ary[1] = Java_chkDateTimeFormat(strDt2)) == -1){ return -4; }	// arg2 Invalid
	oAry1 = Java_splitDate2(strDt1);
	oAry2 = Java_splitDate2(strDt2);
	oDate1 = new Date(oAry1[0], oAry1[1]-1, oAry1[2], oAry1[3], oAry1[4]);
	oDate2 = new Date(oAry2[0], oAry2[1]-1, oAry2[2], oAry2[3], oAry2[4]);
	if(oDate1.valueOf() > oDate2.valueOf()){ return -5; }	// arg1 >= arg2
	return( ary );
}

//2007.03.09
function Java_CompareHour(strDt1, strDt2)
{
	var ary1 = new Array(4);
	var ary2 = new Array(4);
	var oDate1, oDate2;
	
	// yyyy/m 正規化表現
	var reg = new RegExp("^\([0-9]{4})\/([0-9]{1,2})\/([0-9]{1,2})[　 ]+([0-9]{1,2})$");
	// 形式チェック
	if(reg.exec(strDt1) == null){ return false; }
	ary1[0] = RegExp.$1;	// yyyy
	ary1[1] = RegExp.$2;	// mm
	ary1[2] = RegExp.$3;	// dd
	ary1[3] = RegExp.$4;	// HH24
	if(reg.exec(strDt2) == null){ return false; }
	ary2[0] = RegExp.$1;	// yyyy
	ary2[1] = RegExp.$2;	// mm
	ary2[2] = RegExp.$3;	// dd
	ary2[3] = RegExp.$4;	// HH24

	oDate1 = new Date(ary1[0], ary1[1], ary1[2], ary1[3]);
	oDate2 = new Date(ary2[0], ary2[1], ary2[2], ary2[3]);
	if(oDate1.valueOf() > oDate2.valueOf()){ return false; }	// arg1 >= arg2
	
	return true;
}

//2007.03.09
function Java_CompareDate(strDt1, strDt2)
{
	var ary1 = new Array(3);
	var ary2 = new Array(3);
	var oDate1, oDate2;
	
	// yyyy/m 正規化表現
	var reg = new RegExp("^\([0-9]{4})\/([0-9]{1,2})\/([0-9]{1,2})$");
	// 形式チェック
	if(reg.exec(strDt1) == null){ return false; }
	ary1[0] = RegExp.$1;	// yyyy
	ary1[1] = RegExp.$2;	// mm
	ary1[2] = RegExp.$3;	// dd
	if(reg.exec(strDt2) == null){ return false; }
	ary2[0] = RegExp.$1;	// yyyy
	ary2[1] = RegExp.$2;	// mm
	ary2[2] = RegExp.$3;	// dd

	oDate1 = new Date(ary1[0], ary1[1], ary1[2]);
	oDate2 = new Date(ary2[0], ary2[1], ary2[2]);
	if(oDate1.valueOf() > oDate2.valueOf()){ return false; }	// arg1 >= arg2
	
	return true;
}

//2007.03.09
function Java_CompareMonth(strDt1, strDt2)
{
	var ary1 = new Array(2);
	var ary2 = new Array(2);
	var oDate1, oDate2;
	
	// yyyy/m 正規化表現
	var reg = new RegExp("^\([0-9]{4})\/([0-9]{1,2})$");
	// 形式チェック
	if(reg.exec(strDt1) == null){ return false; }
	ary1[0] = RegExp.$1;	// yyyy
	ary1[1] = RegExp.$2;	// mm
	if(reg.exec(strDt2) == null){ return false; }
	ary2[0] = RegExp.$1;	// yyyy
	ary2[1] = RegExp.$2;	// mm

	oDate1 = new Date(ary1[0], ary1[1]);
	oDate2 = new Date(ary2[0], ary2[1]);
	if(oDate1.valueOf() > oDate2.valueOf()){ return false; }	// arg1 >= arg2
	
	return true;
}

//2007.03.09
function Java_CompareYear(strDt1, strDt2)
{
	var intY1 = parseInt(strDt1,10);
	var intY2 = parseInt(strDt2,10);

	return((intY1 < intY2) ? true : false);
}

//↓2010.03.15追加
//*********************************************************************
// @(f)
// 機能      : 画面サイズ取得
// 引き数    : なし
// 返り値    : 幅・高さ
// 機能説明  : 
// 備考      : 
//*********************************************************************
function getWindowClientSize(){

	var result={"width":0,"height":0};

	if(window.self&&self.innerWidth){
		result.width=self.innerWidth;
		result.height=self.innerHeight;
	}else if(document.documentElement && document.documentElement.clientHeight){
		result.width=document.documentElement.clientWidth;
		result.height=document.documentElement.clientHeight;
	}else{
		result.width=document.body.clientWidth;
		result.height=document.body.clientHeight;
	}

	return result;

}

//↓2010.03.16追加
//*********************************************************************
// @(f)
// 機能      : ファイルチェック処理
// 引き数    : ARG1 - 項目名
//             ARG2 - 文字列
//             ARG3 - ファイルの拡張子
//             ARG4 - チェックする拡張子(「,」区切り)
// 返り値    : なし
// 機能説明  : ファイルの拡張子をチェックする
// 備考      : 
//*********************************************************************
function Java_check_File(str,ival,strk,strk1){
	
	var kval;
	var a_cnt1;
	var flag = false;
	
	kval = strk1.split(",")

	for(a_cnt1=0;a_cnt1<kval.length;a_cnt1++)
	{
		if (kval[a_cnt1] == strk){
			flag = true;
		}
	}
	
	if(flag == false){
		a_msg = str + "のファイルの種類に誤りが有ります。";
        Java_ErrorFocus(a_msg,ival);
        return jg_errstr;
	}
	else
	{
        return true;
	}
}



