//
//	JavaScript外部ファイル 入力長チェック・必須チェックなど制限長関連関数群
//	■length.js■
//
//------------------------------------------------------------------
// Hissu_chk
// 必須チェック
// 引数　：argFormName		（I）チェックするフォームの名前
// 　　　：argFormIndex		（I）チェックするフォームのインデックス（配列でないときはnullか0）
// 　　　：argTargetName	（I）チェックするテキストの名前
// 　　　：argTargetIndex	（I）チェックするテキストのインデックス（配列でないときはnullか0）
// 　　　：hyouji_name		（I）メッセージに表示する項目の名称（"重量"など）
// 戻り値：true チェックＯＫ　false チェックＮＧ
//------------------------------------------------------------------
function Hissu_chk(argFormName, argFormIndex, argTargetName, argTargetIndex, hyouji_name){
	var chk_flg = true;
	var chkTarget = makeEvalStr(argFormName, argFormIndex, argTargetName, argTargetIndex);
	var str = eval(chkTarget + ".value");

	//----必須項目
	if (!Null_chk(str)){
		window.alert (hyouji_name + "は必須項目です。");
		chk_flg = false;
	}
	if (chk_flg == false){
		str = chkTarget + ".focus()";
		str = eval(str);
		str = chkTarget + ".select()";
		str = eval(str);
	}
	return chk_flg;
}
//------------------------------------------------------------------
// Ketasuu_chk
// 入力最大桁数チェック
// 引数　：argFormName		（I）チェックするフォームの名前
// 　　　：argFormIndex		（I）チェックするフォームのインデックス（配列でないときはnullか0）
// 　　　：argTargetName	（I）チェックするテキストの名前
// 　　　：argTargetIndex	（I）チェックするテキストのインデックス（配列でないときはnullか0）
// 　　　：ketasuu			（I）有効桁数（バイト数）
// 　　　：hyouji_name		（I）メッセージに表示する項目の名称（"住所"など）
// 戻り値：true チェックＯＫ　false チェックＮＧ （未入力はtrueとする）
//------------------------------------------------------------------
function Ketasuu_chk(argFormName, argFormIndex, argTargetName, argTargetIndex, ketasuu, hyouji_name){
	var chk_flg = true;
	var chkTarget = makeEvalStr(argFormName, argFormIndex, argTargetName, argTargetIndex);
	var str = eval(chkTarget + ".value");

	//桁数チェック（未入力はOK）
	if (!Null_chk(str)){
	}
	else{
		// ターゲットの文字列長を求める
		if (getLength(str) > ketasuu){
			window.alert (hyouji_name + "は" + ketasuu + "桁までが入力可能です。");
			chk_flg = false;
			str = chkTarget + ".focus()";
			str = eval(str);
			str = chkTarget + ".select()";
			str = eval(str);
		}
	}
	return chk_flg;
}
//------------------------------------------------------------------
// Ketasuu_chk
// 入力桁数チェック
// 引数　：argFormName		（I）チェックするフォームの名前
// 　　　：argFormIndex		（I）チェックするフォームのインデックス（配列でないときはnullか0）
// 　　　：argTargetName	（I）チェックするテキストの名前
// 　　　：argTargetIndex	（I）チェックするテキストのインデックス（配列でないときはnullか0）
// 　　　：ketasuu			（I）有効桁数（バイト数）
// 　　　：hyouji_name		（I）メッセージに表示する項目の名称（"住所"など）
// 戻り値：true チェックＯＫ　false チェックＮＧ （未入力はtrueとする）
//------------------------------------------------------------------
function Ketasuu_just_chk(argFormName, argFormIndex, argTargetName, argTargetIndex, ketasuu, hyouji_name){
	var chk_flg = true;
	var chkTarget = makeEvalStr(argFormName, argFormIndex, argTargetName, argTargetIndex);
	var str = eval(chkTarget + ".value");

	//桁数チェック（未入力はOK）
	if (!Null_chk(str)){
	}
	else{
		// ターゲットの文字列長を求める
		if (getLength(str) != ketasuu){
			window.alert (hyouji_name + "は" + ketasuu + "桁入力です。");
			chk_flg = false;
			str = chkTarget + ".focus()";
			str = eval(str);
			str = chkTarget + ".select()";
			str = eval(str);
		}
	}
	return chk_flg;
}
//------------------------------------------------------------------
// getLength
// ターゲットのバイト数を求める
// 引数　：moji		（I）ターゲット文字列
// 戻り値：文字列のバイト数
// 備考　：機種依存文字については計算結果が保証できない。
//			半角カタカナ：ＩＥ→2バイト　　ＮＮ→1バイト
//			○つき数字　：ＩＥ→2バイト　　ＮＮ→1バイト
//			今後必要があれば対応を考える。
//------------------------------------------------------------------
function getLength(argTarget) { 
	var i,cnt = 0; 
	for(i=0; i<argTarget.length; i++) {
		if (escape(argTarget.charAt(i)).length >= 4 ) {
			cnt+=2; 
		}else{
			cnt++; 
		}
	}
	return cnt;
} 

