//==========================================================================
//              COPYRIGHT  ( C )   1997-2000
//==========================================================================
//
//		共通　Ｊａｖａ　Ｓｃｒｉｐｔ
//
//==========================================================================
//  【ファイル名】
//
//  【機　　　能】	共通Ｊａｖａ　Ｓｃｒｉｐｔ
//

//==========================================================================

//メッセージ表示種別
var	EMPTY		= "1";
var	ACCEPT		= "2";
var	WRONG		= "3";
var	SELECT		= "4";
var	FREE		= "5";

//タイムアウト値設定種別
var	SHORT		= "1";	//５分
var	MIDDLE		= "2";	//１０分
var	LONG 		= "3";	//２０分

var	TRUE		= eval( 1 );
var	FALSE		= eval( 0 );

/********************************************************/
/*	Call Web Object(FILE)				*/

/********************************************************/
function Call_ObjectEN(frm,method,target,action,enctype){

	frm.method = method;
	frm.target = target;
	frm.action = action;
	frm.encoding = enctype;
	frm.submit();

}

/********************************************************/
/*	Call Web Object					*/
/********************************************************/
function Call_Object(frm,method,target,action){

	frm.method = method;
	frm.target = target;
	frm.action = action;
	frm.submit();

}

//====================================================================
//
//	【機　能】入力チェック
//	【型　式】INT IsEmpty(obj , name)
//	【入　力】obj	入力オブジェクト
//            name	該当項目名
//	【戻り値】true	入力あり
//            false	入力なし
//
//====================================================================
function IsEmpty(obj , name)
{
	var wRet;

	//文字列をTrim
	obj.value = obj.value.replace(/(\s*)(\S*)(\s*)/,"$2");

	if((obj.value == null) || (obj.value == "")){
		ErrMsg(obj , EMPTY , name);
		wRet = false;
	} else {
		wRet = true;
	}

	return( wRet );

}

//====================================================================
//
//	【機　能】入力チェック
//	【型　式】INT IsEmpty(obj , name)
//	【入　力】obj	入力オブジェクト
//            name	該当項目名
//	【戻り値】true	入力あり
//            false	入力なし
//
//====================================================================
function IsEmptySub( flg, obj , name)
{
	if( flg == 0 )	//入力チェックなし？
	{
		if( obj.value.length <= 0 )	//入力はない？
		{
			//チェック無しで＆入力がないので
			return( 0 );
		}
	}
	else
	{
		if( !IsEmpty(obj , name ))
		{
			return( -1 );
		}
	}
	return( 1 );
}


//====================================================================
//
//	【機　能】半角チェック
//	【型　式】INT IsSingle(obj , name)
//	【入　力】flg	０：入力チェックしない	１:入力チェックする
//			  obj	入力オブジェクト
//            name	該当項目名
//	【戻り値】true	半角以外の入力なし
//            false	半角以外の入力、半角カナあり
//
//====================================================================
function IsSingle( flg, obj , name)
{
	var i;
	var	wRet;

	wRet = IsEmptySub( flg, obj , name );
	if( wRet < 0 )
	{
		return( FALSE );
	}
	else if( wRet == 0 )
	{
		return( TRUE );
	}

	//文字列をTrim
	obj.value = obj.value.replace(/(\s*)(\S*)(\s*)/,"$2");

	for( i=0 ; i< obj.value.length ; i++ )
	{
		//文字列中に半角カナ＆全角があればＮＧ
		if( navigator.appName.charAt(0) == "N" &&
		  (	escape( obj.value.charAt(i) ).charAt( 1 ) >= "8" &&
			escape( obj.value.charAt(i) ).charAt( 1 ) <= "F" ))
		{
			ErrMsg(obj , ACCEPT , name + "を半角文字");
			return( FALSE );
		}
		else if( navigator.appName.charAt(0) == "M" &&
				 escape( obj.value.charAt(i) ).charAt( 1 ) == "u" )
			//NNの場合
		{
			ErrMsg(obj , ACCEPT , name + "を半角文字");
			return( FALSE );
		}
	}
	return( TRUE );
}



//====================================================================
//
//	【機　能】全角チェック
//	【型　式】INT	IsDouble( obj, Name )
//	【入　力】obj	全角入力オブジェクト
//			  Name	該当項目名称
//	【戻り値】TRUE	OK
//			  FALSE NG
//
//====================================================================
function IsDouble( flg, obj , name )
{
	var	wIdx;
	var	wRet;

	wRet = IsEmptySub( flg, obj , name );
	if( wRet < 0 )
	{
		return( FALSE );
	}
	else if( wRet == 0 )
	{
		return( TRUE );
	}

	for( wIdx = 0, wRet = TRUE; wIdx < obj.value.length; wIdx++ )
	{
		if( escape( obj.value.charAt(wIdx) ).length >= 4 )
		{
			//IEの場合の半角カナチェック
			if( navigator.appName.charAt(0) == "M" &&
				escape( obj.value.charAt(wIdx) ) >= "%uFF61" &&
				escape( obj.value.charAt(wIdx) ) <= "%uFF9F" )
			{
				wRet = FALSE;
			}
		}
		else
		{
			wRet = FALSE;
		}

		if( wRet == FALSE )
		{
			//文字列中に半角文字が有る
			ErrMsg(obj , ACCEPT , name + "を全角文字");
			//半角データ
			wRet = FALSE;
			break;
		}
	}
	return( wRet );
}



//====================================================================
//
//	【機　能】全角カナチェック
//	【型　式】INT	IsDoubleKana( obj, Name )
//	【入　力】obj		全角カナ入力オブジェクト
//			  Name		該当項目名称
//	【戻り値】TRUE		OK
//			  FALSE 	NG
//
//====================================================================
function IsDoubleKana( flg, obj , name )
{
	var KanaTbl = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン" +
				  "ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポァィゥェォヵヶッャュョヮヴヰヱー";

	var i;
	var j;
	var wStrHit;

	//文字列をTrim
	obj.value = obj.value.replace(/(\s*)(\S*)(\s*)/,"$2");
	var	wRet;

	wRet = IsEmptySub( flg, obj , name );
	if( wRet < 0 )
	{
		return( FALSE );
	}
	else if( wRet == 0 )
	{
		return( TRUE );
	}

	for( i=0 ; i<obj.value.length ; i++ )
	{
		for( j=0 , wStrHit=false ; j<KanaTbl.length ; j++ )
		{
			//文字列中の全角カナチェック
			if( obj.value.charAt(i) == KanaTbl.charAt(j) )
			{
				wStrHit = true;
				break;
			}
		}

		//半角英字判定
		if ( wStrHit != true )
		{
			ErrMsg(obj , ACCEPT , name + "を全角カナ文字");
			return( FALSE );
		}
	}
	return( TRUE );
}



//====================================================================
//
//	【機　能】半角英字チェック
//	【型　式】INT	IsAlpha( obj, Name )
//	【入　力】obj		全角カナ入力オブジェクト
//			  Name		該当項目名称
//	【戻り値】TRUE		OK
//			  FALSE 	NG
//
//====================================================================
function IsAlpha( flg, obj , name )
{
	var i;
	var j;
	var wStrHit;

	//文字列をTrim
	obj.value = obj.value.replace(/(\s*)(\S*)(\s*)/,"$2");

	var	wRet;

	wRet = IsEmptySub( flg, obj , name );
	if( wRet < 0 )
	{
		return( FALSE );
	}
	else if( wRet == 0 )
	{
		return( TRUE );
	}

	for( i=0 ; i<obj.value.length ; i++ )
	{
		aaa = escape( obj.value.charAt(i) ) + "  " +  obj.value.charAt(i).length ;
		alert( aaa );

		//文字列中の半角英字チェック
		if(( obj.value.charAt(i) >= "A" && obj.value.charAt(i) <= "Z" ) ||
		   ( obj.value.charAt(i) >= "a" && obj.value.charAt(i) <= "z" ) )
		{
			continue;
		}
		else
		{
			ErrMsg(obj , ACCEPT , name + "を半角英字");
			return( FALSE );
		}
	}

	return( TRUE );
}



//====================================================================
//
//	【機　能】半角数字チェック
//	【型　式】INT IsNum(obj , name)
//	【入　力】obj		入力オブジェクト
//            name		該当項目名
//	【戻り値】true		OK
//            false		NG
//
//====================================================================
function IsNum( flg, obj , name )
{
	var wStrHit;
	var	wRet;

	//文字列をTrim
	obj.value = obj.value.replace(/(\s*)(\S*)(\s*)/,"$2");

	wRet = IsEmptySub( flg, obj , name );
	if( wRet < 0 )
	{
		return( FALSE );
	}
	else if( wRet == 0 )
	{
		return( TRUE );
	}

	for( i=0 ; i<obj.value.length ; i++ )
	{
		//文字列中の半角英字チェック
		if( obj.value.charAt(i) >= "0" && obj.value.charAt(i) <= "9" )
		{
			continue;
		}
		else
		{
			ErrMsg(obj , ACCEPT , name + "を半角数字");
			return( FALSE );
		}
	}
	return( TRUE );
}

//====================================================================
//
//	【機　能】日付チェック
//
//	【型　式】BOOL	IsDateChk( yyyy, mm, dd )
//
//	【入　力】年、月、日
//
//	【戻り値】0 - 日付として判断できない。  1 - 日付として判断できる。
//
//====================================================================
function	IsDateChk( yyyy, mm, dd )
{
	if( isFinite(yyyy) == false ) //数字ではない
	{
		return( 1 );
	}

	if( isFinite(mm) == false || eval(mm) < 1 || 12 < eval(mm))
	{
		return( 2 );
	}

	if( isFinite(dd) == false || eval(dd) < 1 || 31 < eval(dd))
	{
		return( 3 );
	}

	//Dateオブジェクトに格納
	var wkDate	= new Date(eval(yyyy) + "/" + eval(mm) + "/" + eval(dd));
	var wkYear	= wkDate.getFullYear();
	var wkMonth	= wkDate.getMonth();
	var wkDay	= wkDate.getDate();
	wkMonth		= wkMonth + 1;		//getMonthは0〜11までなので

	//Dateオブジェクトの戻り値と照合
	if ( eval(yyyy) == eval(wkYear) && eval(wkMonth) == eval(mm) && eval(dd) == eval(wkDay) )
	{
		return( 0 );
	}
	else
	{
		return( 1 );
	}
}


//====================================================================
//
//	【機　能】郵便番号チェック
//
//	【型　式】BOOL	IsZip( objUp, objLow )
//
//	【入　力】objUp		郵便番号上３桁入力オブジェクト
//			  objLow	郵便番号下４桁入力オブジェクト
//
//	【戻り値】TRUE		OK
//			  FALSE 	NG
//
//====================================================================
function	IsZip( objUp, objLow )
{
	if( objUp.value.length < 3 )
	{
		ErrMsg( objUp, WRONG, "郵便番号上３桁" );
		//入力が桁数が足りない
		return( FALSE );
	}

	if( objLow.value.length < 4 )
	{
		//入力が桁数が足りない
		ErrMsg( objLow, WRONG, "郵便番号下４桁" );
		return( FALSE );
	}

	if (isNaN( objUp.value ) == true )
	{
		//数値以外
		ErrMsg( objUp, FREE, "郵便番号は数字で入力してください。" );
		return( FALSE );
	}

	if (isNaN( objLow.value ) == true )
	{
		//数値以外
		ErrMsg( objLow, FREE, "郵便番号は数字で入力してください。" );
		return( FALSE );
	}
	return( TRUE );
}


//====================================================================
//
//	【機　能】正の数チェック（０を含む場合)
//
//	【型　式】BOOL	IsPlusZero( objCheck, Name )
//
//	【入　力】objCheck		数字入力オブジェクト
//			  Name			該当項目名称
//
//	【戻り値】TRUE		OK
//			  FALSE 	NG
//
//====================================================================
function	IsPlusZero( objCheck, Name )
{
	if( !IsEmpty(objCheck , Name))
	{
		return( FALSE );
	}

	if (isNaN( objCheck.value ) == true )
	{
		//数値以外
		ErrMsg( objCheck, WRONG, Name )
		return( FALSE );
	}

	if( 0 <= eval( objCheck.value ))
	{
		return( TRUE );
	}
	else
	{
		//数値以外
		ErrMsg( objCheck, WRONG, Name )
		return( FALSE );
	}
}

//====================================================================
//
//	【機　能】正の数チェック（０を含まない)
//
//	【型　式】BOOL	IsPlus( objCheck, Name )
//
//	【入　力】objCheck		数字入力オブジェクト
//			  Name			該当項目名称
//
//	【戻り値】TRUE		OK
//			  FALSE 	NG
//
//====================================================================
function	IsPlus( objCheck, Name )
{
	if( !IsEmpty(objCheck , Name))
	{
		return( FALSE );
	}

	if (isNaN( objCheck.value ) == true )
	{
		//数値以外
		ErrMsg( objCheck, WRONG, Name )
		return( FALSE );
	}

	if( 0 < eval( objCheck.value ))
	{
		return( TRUE );
	}
	else
	{
		//数値以外
		ErrMsg( objCheck, WRONG, Name )
		return( FALSE );
	}
}


//====================================================================
//
//	【機　能】パスワードチェック（妥当性チェク）オールゼロを含むチェック
//
//	【型　式】BOOL	IsPswd( objCheck, Name )
//
//	【入　力】objCheck		パスワード入力オブジェクト
//			  Name			該当項目名称
//
//	【戻り値】TRUE		OK
//			  FALSE 	NG
//
//====================================================================
function	IsPswd( objCheck, Name )
{
	var	bRet = FALSE;

	if( !IsEmpty(objCheck , Name))
	{
		return( FALSE );
	}

	for( wIdx = 0, bRet = FALSE; wIdx < objCheck.value.length; wIdx++ )
	{
		//ALL 0 Check
		if( 0 != objCheck.value.charAt( wIdx ))
		{
			bRet = TRUE;
			break;
		}
	}

	if( bRet == FALSE )
	{
		ErrMsg( objCheck, WRONG, Name );
	}

	return( bRet );
}

//====================================================================
//
//	【機　能】パスワードチェック（相関チェック）
//
//	【型　式】BOOL	IsPswdW( objCheck1, objCheck2, Name )
//
//	【入　力】objCheck1		パスワード入力オブジェクト
//	          objCheck2		パスワード確認入力オブジェクト
//			  Name			該当項目名称
//
//	【戻り値】TRUE		OK
//			  FALSE 	NG
//
//====================================================================
function	IsPswdW( objCheck1, objCheck2, Name )
{
	var	bRet;
	var	wIdx;

	if( !IsEmpty(objCheck1 , Name ) || !IsEmpty(objCheck2 , Name) )
	{
		return( FALSE );
	}

	if( objCheck1.value.length != objCheck2.value.length )
	{
		//入力桁数が違う
		ErrMsg( objCheck2, WRONG, Name );
		return( FALSE );
	}

	for( wIdx = 0, bRet = TRUE; wIdx < objCheck1.value.length; wIdx++ )
	{
		if( objCheck2.value.charAt( wIdx ) != objCheck1.value.charAt( wIdx ))
		{
			bRet = FALSE;
			ErrMsg( objCheck2, WRONG, Name );
			break;
		}
	}

	return( bRet );
}

//====================================================================
//
//	【機　能】ラジオボタンチェック
//
//	【型　式】BOOL	RadioChk( objCheck, Name )
//
//	【入　力】objCheck1		ラジオボタンオブジェクトの名前
//	          Name			ラジオボタンの名前
//
//	【戻り値】TRUE		OK
//			  FALSE 	NG
//
//====================================================================
function	RadioChk( objCheck, Name )
{
	var	bRet;
	var	wIdx;

	for( wIdx = 0, bRet = FALSE; wIdx < objCheck.length; wIdx++ )
	{
		if( objCheck[wIdx].checked == true )
		{
			bRet = TRUE;
			break;
		}
	}

	if( bRet == FALSE )
	{
		ErrMsg( objCheck[0], SELECT, Name );
	}

	return( bRet );
}

//====================================================================
//
//	【機　能】チェックボックスチェック
//
//	【型　式】BOOL	RadioChk( objCheck, Name )
//
//	【入　力】objCheck1		チェックボックスオブジェクトの名前
//	          Name			該当項目名称
//
//	【戻り値】TRUE		OK
//			  FALSE 	NG
//
//====================================================================
function	ChkBoxChk( objCheck, Name )
{
	var	bRet;
	var	wIdx;

	if( objCheck.length > 1 )
	{
		for( wIdx = 0, bRet = FALSE; wIdx < objCheck.length; wIdx++ )
		{
			if( objCheck[ wIdx ].checked == true )
			{
				bRet = TRUE;
				break;
			}
		}
	}
	else
	{
		if( objCheck.checked == true )
		{
			bRet = TRUE;
		}
	}

	if( bRet == FALSE )
	{
		ErrMsg( objCheck[0], SELECT, Name );
	}

	return( bRet );
}

//====================================================================
//
//	【機　能】プルダウンメニューチェック（無選択チェック）
//
//	【型　式】BOOL	PullDownChk( objCheck, Name )
//
//	【入　力】objCheck		プルダウンメニューオブジェクトの名前
//	          Name			該当項目名称
//
//	【戻り値】TRUE		OK
//			  FALSE 	NG
//
//====================================================================
function	PullDownChk( objCheck, Name )
{
	if( objCheck.selectedIndex  == -1)
	{
		ErrMsg( objCheck, SELECT, Name );
		return( FALSE );
	}
	
	
	if( objCheck.options[ objCheck.selectedIndex ].value == "" )
	{
		ErrMsg( objCheck, SELECT, Name );
		return( FALSE );
	}
	else
	{
		return( TRUE );
	}
}

//====================================================================
//
//	【機　能】和暦西暦変換
//
//	【型　式】INT	Wa2Sei( flg, yy )
//
//	【入　力】flg	０：明治／１：大正／２：昭和／３：平成
//	          yy	年（和暦）
//
//	【戻り値】正の整数値	西暦
//			  -1		 	変換エラー
//
//====================================================================
function	Wa2Sei( flg, yy )
{
	var	wkYear = -1;

	if (isNaN( yy ) == true )
	{
		//数値以外
		return( wkYear );
	}

	if( flg == 0 )		//明治
	{
		wkYear = 1866;
	}
	else if( flg == 1 )		//大正
	{
		wkYear = 1911;
	}
	else if( flg == 2 )	//昭和
	{
		wkYear = 1925;
	}
	else if( flg == 3 )	//平成
	{
		wkYear = 1988;
	}
	else
	{	//数値以外
		return( wkYear );
	}
	wkYear += eval( yy );
	return( wkYear );
}

//====================================================================
//
//	【機　能】タイムアウト処理を行う
//
//	【型　式】VOID	TimeOut( kubun )
//
//	【入　力】kubun		SHORT：５分
//						MIDDLE:10分
//						LONG:２０分
//
//	【戻り値】無し
//
//====================================================================
var	timerID = 10;
var	tmoutcnt = 0;
function TimeOut( kind )
{
	var	WaitTime;

	tmoutcnt++;
	switch( kind )
	{
		case "1":	//SHORT
			//WaiteTime = 60000 * 5;
			WaiteTime = 1000 * 5;
			break;

		case "2":	//MIDDLE
			WaiteTime = 60000 * 10;
			break;

		case "3":	//LONG
			WaiteTime = 60000 * 20;
			break;

	}

	if( tmoutcnt == 1 )
	{
		clearTimeout( timerID );
		timerID = setTimeout( "TimeOut( SHORT )", WaiteTime );
	}
	else if( tmoutcnt >= 2 )
	{
		if ( true == confirm( "処理を続けますか？\nOKを選択するとウィンドウを閉じます。" ))
		{
			window.close();
		}
		else
		{
			clearTimeout( timerID );
			timerID = setTimeout( "TimeOut( SHORT )", WaiteTime );
		}
	}
}

//====================================================================
//
//	【機　能】新しいウィンドウにページを表示する
//
//	【型　式】VOID	ShowNewPage( URL, Style)
//
//	【入　力】URL		表示するURLまたはサーブレット
//			  Style		表示スタイル
//
//	【戻り値】無し
//
//====================================================================
function	ShowNewPage( URL, Style)
{
	window.open( URL, "", Style );
}

//====================================================================
//
//	【機　能】エラーメッセージ表示
//
//	【型　式】VOID	ErrMsg( objMsg, fnc, msgExt )
//
//	【入　力】objMsg	フォーカスオブジェクト
//			  fnc		メッセージ種別
//			  msgExt	埋め込みメッセージ
//
//	【戻り値】無し
//
//====================================================================
function	ErrMsg( objMsg, fnc, msgExt )
{
	var strMessage;

	strMessage = "";

	switch ( fnc )
	{
		case "1":	//EMPTY
			strMessage = msgExt + "を入力して下さい。";
			break ;
		case "2":	//ACCEPT
			strMessage = msgExt + "で入力して下さい。";
			break ;
		case "3":	//WRONG :
			strMessage = msgExt + "を正しく入力して下さい。";
			break ;
		case "4":	//SELECT :
			strMessage = msgExt + "を選択して下さい。";
			break ;
		case "5":	//FREE
			strMessage = msgExt;
			break ;
	}

	alert( strMessage );
	objMsg.focus();
}

//====================================================================
//
//	【機　能】電話番号チェック
//
//	【型　式】VOID	ErrMsg( objMsg, fnc, msgExt )
//
//	【入　力】ObjHi		電話番号上５桁
//			  ObjMid	電話番号中５桁
//			  objLow	電話番号下５桁
//			  Name		該当項目名称
//
//	【戻り値】1			ＯＫ（据置電話）
//			  2			ＯＫ（携帯orＰＨＳ）
//			  0			ＮＧ
//====================================================================
function	IsTel( objHi, ObjMid, ObjLow, Name )
{
	var	strMessage;

	if( !IsNum( 0, objHi, Name ) ||
		!IsNum( 0, ObjMid, Name ) ||
		!IsNum( 0, ObjLow, Name ))	//数字入力チェック
	{
		return( 0 );
	}

	if( objHi.value == "090"  ||
		objHi.value == "080"  ||
		objHi.value == "070" )
	{
		strMessage = Name + "は携帯、ＰＨＳ番号の入力はできません";
		ErrMsg( objHi, FREE, strMessage );
		return( 2 );
	}
	return( 1 );
}<!-- 
