//*********************************************
// 共通関数
//
// 2003.12.05 加藤　新規作成
// 2004.09.08 加藤　リファラ制限追加
//*********************************************

//*********************************************
// com_check_valueRange(obj_chkobj, val_from, val_to, val_errflg)
// 概要 : フォーム入力値範囲チェック
// 引数 :
//	obj_chkobj  : (IN)チェック対象数値
//	val_from	: (IN)範囲(最小値)
//  val_to		: (IN)範囲(最大値)
//	val_errflg	: (IN)アラート出力フラグ
//
// 戻り値:
//  範囲		: TRUE
//  範囲外		: FALSE
//*********************************************
function com_check_valueRange(obj_chkobj, val_from, val_to, str_errmsg, val_errflg)
{
	//値が範囲を超えていた場合
	if(obj_chkobj.value < val_from  || obj_chkobj.value > val_to)
	{
		com_out_alert(obj_chkobj, str_errmsg + "：" + com_val2str(val_from) + "以上" + com_val2str(val_to) + "以下の値を入力してください。", val_errflg)
		return false;
	}
	return true;
}


//*********************************************
// com_check_valueObj(obj_chkobj, val_item, val_keta, str_errmsg)
// 概要 : フォーム入力値チェック
// 引数 :
//	obj_chkobj  : (IN)チェック対象オブジェクト
//	val_item	: (IN)チェックするアイテム
//				  1 必須チェック
//				  2 数値かどうかチェック
//				  4 マイナスチェック
//				  8 ケタチェック(文字列のみ有効)
//				   16 小数点チェック
//
//  val_keta	: (IN)ケタチェックのケタ入力用
//  str_errmsg  : (IN)入力項目の名前
//	val_errflg	: (IN)アラートフラグ
//					0 アラート表示
//					1 アラート表示なし
//					2 エラーテキスト出力
//
// 戻り値:
//  正常終了   : TRUE
//  異常終了   : FALSE
//*********************************************
function com_check_valueObj(obj_chkobj, val_item, val_keta, str_errmsg, val_errflg)
{
	var	val_castval = 0;		//数値変換用
	var str_caststr = "";		//文字変換用
	var str_trimedSpace = "";	//トリム済み

	var flg_NaN = true;		//数値でない場合、フラグをたてる。

	if (obj_chkobj.type == "text")
	{
//		obj_chkobj.value = com_TrimSpace(obj_chkobj.value,' ')	//半角ブランクをTrimする。
		str_trimedSpace = com_TrimSpace(obj_chkobj.value,' ');
		if(str_trimedSpace != obj_chkobj.value)
		{
			obj_chkobj.value = str_trimedSpace;
		}
	}

//		obj_chkobj.value = com_TrimSpace(obj_chkobj.value,' ')	//半角ブランクをTrimする。

	//必須チェック
	if((val_item & 1) == 1)
	{
		if(obj_chkobj.value == "")
		{
//			if(val_errflg != 2)
//			if((val_errflg != 2) && (val_errflg != 4))
			if(val_errflg == 1)
			{
				com_out_alert(obj_chkobj, str_errmsg + "：入力なしでは試算できません。入力してください。", val_errflg)			}
			return false;
		}
	}

	//空欄でない場合、チェックを続行する。
	if(obj_chkobj.value != "")
	{
		//数値かどうかチェック
		if((val_item & 2) == 2)
		{
			//数値以外である場合
			if (isNaN(obj_chkobj.value) == true)
			{
				if ((obj_chkobj.value != ".") && (obj_chkobj.value != "-"))
//				if (obj_chkobj.value != ".")
				{
					flg_NaN = false;
				}
				//-記号、.記号のみのときはメッセージを出さずにfalseで終了する
				else if(((obj_chkobj.value == ".") || (obj_chkobj.value == "-")))
				{
					return false;
				}
				
			}
			else if (isNaN(obj_chkobj.value) == false)
			{
				if (obj_chkobj.value == "Infinity")		//Infinityは数値として扱わない。
				{
					flg_NaN = false;
				}
				else if (obj_chkobj.value.match(/0x/))		//頭2文字が「0x」の場合（16進数）は、数値として扱わない。
				{
					flg_NaN = false;
				}
				else if (obj_chkobj.value.match(/e/))		//途中にeが含まれる文字列（対数関数）は、数値として扱わない。
				{
					flg_NaN = false;
				}
				else if (obj_chkobj.value.match(/E/))		//途中にEが含まれる文字列（Float）は、数値として扱わない。
				{
					flg_NaN = false;
				}
			}

			if (flg_NaN == false)
			{
				com_out_alert(obj_chkobj, str_errmsg + "：半角数字で入力してください。", val_errflg);
				return false;
			}
		}

		//マイナスチェック
		if((val_item & 4) == 4)
		{
			//文字型から数値型に変換
			val_castval = com_str2val(obj_chkobj.value);

			//マイナス数値であった場合
			if(val_castval < 0)
			{
				com_out_alert(obj_chkobj, str_errmsg + "：マイナスの数では試算できません。プラスの数を入力してください。", val_errflg)
				return false;
			}
		}

		//ケタチェック
		if((val_item & 8) == 8)
		{
			str_caststr = com_val2str(obj_chkobj.value);
		
			if(str_caststr.length > val_keta)
			{
				com_out_alert(obj_chkobj, str_errmsg + "：最大入力桁は" + val_keta + "です。", val_errflg)
				return false;
			}
		}

		//小数点チェック
		if((val_item & 16) == 16)
		{
			str_caststr = com_val2str(obj_chkobj.value);
		
			if(str_caststr.indexOf(".") != -1)
			{
				com_out_alert(obj_chkobj, str_errmsg + "：小数の試算には対応しておりません。整数で入力してください。　", val_errflg)
				return false;
			}
		}
	}

//	com_out_alert(obj_chkobj, "　",val_errflg)

	return true;
}

//*********************************************
// com_add_kanma(str_kanmastr)
// 概要 : カンマ付与
// 引数 :
//	str_kanmastr   : カンマ無しテキスト
//
// 戻り値:
//   カンマ付きテキスト
//*********************************************
function com_add_kanma(str_nokanmastr)
{
	var s = "" + str_nokanmastr;
	var r = "";
	var c = "";

	 p = s.indexOf(".");
	if (p < 0) {
		p = s.length;
	}
	r = s.substring(p, s.length);
	for (var i = 0; i < p; i++) 
	{
		c = s.substring(p - 1 - i, p - 1 - i + 1);
		if (c < "0" || c > "9")
		{
			r = s.substring(0, p - i) + r;
			break;
		}

		if (i > 0 && i % 3 == 0) 
		{
			r = "," + r;
		}
		r = c + r;
	}
	return r;
}


//各ソース内を変更するのが辛いので、関数名を変更しました。
//元の名前は、function com_add_kanma(str_nokanmastr)　です。
function com_add_kanma_org(str_nokanmastr)
{
	var val_counter = 0;		//カウンタ1
	var i;						//カウンタ2
	var str_kanma = "";			//カンマ付き文字格納用
	var val_dotflg = 0;			//小数点フラグ
	var val_start = 0;

	//文字列の先頭がマイナス記号の場合、無視!
	if(str_nokanmastr.charAt(0) == "-")
	{
		val_start = 1;
		val_counter ++;
	}
	
	//文字列の終わりまでループ
	for(i = val_start;  i < str_nokanmastr.length; i++)
	{
		//カンマ無し文字列から一文字コピー
		str_kanma = str_kanma + str_nokanmastr.charAt(i);
		
		//小数点を見つけた場合、小数点フラグ=ON
		if(str_kanma == '.')
		{
			val_dotflg = 1;
		}

		val_counter ++;

		//小数点フラグがOFFの場合のみ、ドットを付加する
		if(val_dotflg == 0)
		{
			//カンマをつける場所だったら
			if (str_nokanmastr.length - val_counter == 12 || str_nokanmastr.length - val_counter == 9 
				|| str_nokanmastr.length - val_counter == 6 || str_nokanmastr.length - val_counter == 3)
			{
				//カンマを付与する
				str_kanma = str_kanma + ",";
			}
		}
	}

	//文字列の先頭がマイナス記号の場合、無視!
	if(str_nokanmastr.charAt(0) == "-")
	{
		return "-" + str_kanma;
	}
	else
	{
		//カンマ付きテキストを返却
		return str_kanma;
	}
}


//*********************************************
// com_val2str(val_valstr)
// 概要 : 数値->文字型変換
// 引数 :
//	val_valstr   : 数値
//
// 戻り値:
//   文字例
//*********************************************
function com_val2str(val_valstr)
{
	//文字列として値を返却
	return "" + val_valstr;
}


//*********************************************
// com_str2val(str_strval)
// 概要 : 文字型->数値変換
// 引数 :
//	str_strval   : 文字列
//
// 戻り値:
//   文字例
//*********************************************
function com_str2val(str_strval)
{
	//数値として値を返却
	return parseFloat(str_strval);
}


//*********************************************
// com_print_html(str_id, str_message)
// 概要 : DIVタグに指定されたIDのメッセージを書き換える。
// 引数 :
//	str_id	   : タグID
//	str_strval   : メッセージ
//
// 戻り値:
//   文字例
//*********************************************
function com_print_html(str_id, str_message)
{

	//NN6, IE共通の場合
	document.getElementById(str_id).childNodes[0].nodeValue = str_message;

//NN4の場合をうんたらかんたら(中断)
//if (document.layers) {
//var lyr = (nestref)? eval('document.'+nestref+'.document.'+id+'.document') : document.layers[id].document
//lyr.open()
//lyr.write(text)
//lyr.close()
//}
//
//  eval("document." + str_id + ".document.open()");
//  alert("document." +str_id  + ".document.open()");
//  document.sample1.document.open();
//  document.write(str_message);
//  document.eval(str_id).document.close();
}


//*********************************************
// com_print_color(str_id, str_color)
// 概要 : DIVタグに指定された色を変更する
// 引数 :
//	str_id	   : タグID
//	str_color	: カラー
//
// 戻り値:
//   文字例
//*********************************************
function com_print_color(str_id, str_color)
{

	//NN6, IE共通の場合
	document.getElementById(str_id).style.color = str_color;
}


//*********************************************
// com_get_html(str_id, str_message)
// 概要 : DIVタグに指定されたIDのメッセージを取得する
// 引数 :
//	str_id   : タグID
//
// 戻り値:
//   文字例
//*********************************************
function com_get_html(str_id)
{
	//NN6, IE共通の場合
	return	document.getElementById(str_id).childNodes[0].nodeValue;
}

//*********************************************
// com_get_htmlNum(str_id)
// 概要 :  DIVタグに指定されたIDの数値を取得する
// 引数 :
//  str_id   : タグID
//
// 戻り値:
//  数値
//*********************************************
function com_get_htmlNum(str_id)
{
	var i;
	var str_data;

	str_data = com_get_html(str_id);
	str_num = "";
	
	for(i = 0; i < (str_data.length); i++)
	{
		switch(str_data.charAt(i))
		{
			case '1':
			case '2':
			case '3':
			case '4':
			case '5':
			case '6':
			case '7':
			case '8':
			case '9':
			case '0':
				str_num = str_num + com_val2str(str_data.charAt(i));
				break;
			default:
				break;
		}
	}

	return com_str2val(str_num);
}

//*********************************************
// com_get_fileName(str_dat)
// 概要 :  
// 引数 :
//  str_id   : 取得データ指定
//
// 戻り値:
//  ファイル名
//*********************************************
function com_get_fileName(str_dat)
{
	return str_dat.substring(str_dat.lastIndexOf("/") + 1, str_dat.length)
}


//*********************************************
// com_cut_decimal(val_decivalue, val_keta)
// 概要 : 数値を指定小数点第x位までカットする
// 引数 :
//	val_decivalue   : カット前数値
//　val_keta		: 指定小数点位置
//
// 戻り値:
//   カット後数値
//*********************************************
function com_cut_decimal(val_decivalue, val_keta)
{
	var str_floorval;	   //小数点切捨ての値
	var i;				  //小数点切捨ての値

	//ケタ数分まで切り捨てた値を算出
	str_floorval = com_val2str(Math.floor(val_decivalue * Math.floor(Math.pow(10, (val_keta + 2))))
			   / Math.pow(10,val_keta));

	//小数点以下のケタが指定ケタに達していない場合、"0"を追加
	if(str_floorval.indexOf(".", 0) != -1)
	{
		if(((str_floorval.length - 1)- str_floorval.indexOf(".", 0)) != val_keta)
		{
			for(i = 0;(str_floorval.length - 1) - str_floorval.indexOf(".", 0) < val_keta; i++)
			{
				str_floorval = str_floorval + "0";
			}
		}
	}
	//「小数点」が含まれていない場合、小数点と指定桁分の0を追加
	else
	{
		str_floorval = str_floorval + ".";
		
		for(i = 0;i < val_keta; i++)
		{
			str_floorval = str_floorval + "0";
		}
	}

	//切り捨てた値を返却
	return str_floorval;
}


//*********************************************
// com_cut_decimal2(val_decivalue, val_keta)
// 概要 : 数値を指定小数点第x位までカットする
// 引数 :
//	val_decivalue   : カット前数値
//　val_keta		: 指定小数点位置
//
// 戻り値:
//   カット後数値
//*********************************************
function com_cut_decimal2(val_decivalue, val_keta)
{
	var str_floorval;	   //小数点切捨ての値
	var i;				  //小数点切捨ての値

	alert(val_decivalue)
	
	alert(val_decivalue * Math.floor(Math.pow(10, (val_keta))))
	alert(Math.floor(val_decivalue * Math.floor(Math.pow(10, (val_keta)))))
	alert(Math.floor(val_decivalue * Math.floor(Math.pow(10, (val_keta))))/  Math.pow(10,val_keta))
	
	//ケタ数分まで切り捨てた値を算出
	str_floorval = com_val2str(Math.floor(val_decivalue * Math.floor(Math.pow(10, (val_keta * 2))))
			   / Math.pow(10,val_keta));

	//小数点以下のケタが指定ケタに達していない場合、"0"を追加
	if(str_floorval.indexOf(".", 0) != -1)
	{
		if(((str_floorval.length - 1)- str_floorval.indexOf(".", 0)) != val_keta)
		{
			for(i = 0;(str_floorval.length - 1) - str_floorval.indexOf(".", 0) < val_keta; i++)
			{
				str_floorval = str_floorval + "0";
			}
		}
	}
	//「小数点」が含まれていない場合、小数点と指定桁分の0を追加
	else
	{
		str_floorval = str_floorval + ".";
		
		for(i = 0;i < val_keta; i++)
		{
			str_floorval = str_floorval + "0";
		}
	}

	//切り捨てた値を返却
	return str_floorval;
}


//*********************************************
// com_out_alert(str_errmsg, val_errflg)
// 概要 : アラート出力
// 引数 :
//	obj_formobj	: フォーカスを移動するフォームオブジェクト
//	str_errmsg	: ウラートメッセージ
//　val_errflg	: アラートフラグ
//					0 : アラート出力
//					1 : アラート出力なし
//				  2 : "id_errmsg"にメッセージ出力(赤文字)
//					4 : "id_errmsg2"にメッセージ出力(赤文字)
// 戻り値:
//   なし
//*********************************************
function com_out_alert(obj_formobj, str_errmsg, val_errflg)
{
	if(val_errflg == 0)
	{
		obj_formobj.focus();
		obj_formobj.select();
		alert(str_errmsg);
	}
//	if(val_errflg == 2)
	else if(val_errflg == 2)
	{
		com_print_html("id_errmsg", str_errmsg);
	}
//	if(val_errflg == 4)
	else if(val_errflg == 4)
	{
		com_print_html("id_errmsg2", str_errmsg);
	}
}

//*********************************************
// com_put_cookie(str_cookieKey, str_cookieValue, val_validTerm)
// 概要 : クッキー書き込み処理
// 引数 :
//  str_cookieKey	: (IN)クッキーキー
//  str_cookieValue  : (IN)クッキー値
//  val_validTerm	: (IN)有効期限(日単位)
//				   : -1 で無期限(2030年まで)
// 戻り値:
//	なし
//*********************************************
function com_put_cookie(str_cookieKey, str_cookieValue, val_validTerm)
{
	var str_cookieData;	//クッキーデータ保存用
	var obj_validDate;	//日付オブジェクト取得用
	var str_makeDate;	//日時文字列作成用
	
	//クッキーデータ生成
	str_cookieData = str_cookieKey + "=" + escape(str_cookieValue) + ";";

	//有効期限設定
	if(val_validTerm == -1)
	{
		//-1が指定されていたら 2030/01/01 00:00:00 まで
		document.cookie = str_cookieData + "expires=Thu, 1-Jan-2030 00:00:00 GMT;";
	}
	else
	{
		//その他の場合、現在日付から指定日付分の期限を指定
		obj_validDate = new Date();
		obj_validDate.setTime(obj_validDate.getTime() + (((60 * 1000) * 60 * 24) * val_validTerm));
		str_makeDate = obj_validDate.toGMTString();
		document.cookie = str_cookieData + "expires=" + str_makeDate;
	}
	return;
}

//*********************************************
// com_get_cookie(str_cookieKey)
// 概要 : クッキー取り出し処理
// 引数 :
//  str_cookieKey : (IN)クッキーキー
//
// 戻り値:
//  成功(キー発見)  : 取り出した文字列
//  失敗(キーどこ?) : NULL
//*********************************************
function com_get_cookie(str_cookieKey)
{
	var	str_cookieData;		//クッキーデータ保存用
	var val_keyPosition;	//文字位置保存用
	var val_getStart;		//文字取り出し開始位置
	var val_getEnd;			//文字取り出し終了位置

	//クッキー取り出し
	str_cookieData = document.cookie + ";";

	//キー位置検索
	val_keyPosition = str_cookieData.indexOf(str_cookieKey + "=", 0);

	//キーの値が見つかった場合
	if(val_keyPosition != -1)
	{
		//データ取り出し
		val_getStart = str_cookieData.indexOf("=", val_keyPosition) + 1;
		val_getEnd = str_cookieData.indexOf(";", val_getStart);

		return unescape(str_cookieData.substring(val_getStart, val_getEnd));
	}

	//NULLを返却
	return "";
}

//*********************************************
// com_del_cookie(str_cookieKey)
// 概要 : クッキー削除処理
// 引数 :
//  str_cookieKey	: (IN)クッキーキー
//  str_cookieValuey : (IN)クッキー値
//  val_validTerm	: (IN)有効期限(日単位)
//				   : -1 で無期限(2030年まで)
// 戻り値:
//	なし
//*********************************************
function com_del_cookie(str_cookieKey)
{
	var str_cookieData;	//クッキーデータ保存用
	var obj_validDate;	//日付オブジェクト取得用
	var str_makeDate;	//日時文字列作成用
	
	//クッキーデータ生成
	str_cookieData = str_cookieKey + "=NULL;";

	//過去の日付を指定
	obj_validDate = new Date();
	obj_validDate.setTime(obj_validDate.getTime() - (((60 * 1000) * 60 * 24) * 10));
	str_makeDate = obj_validDate.toGMTString();
	document.cookie = str_cookieData + "expires=" + str_makeDate;
}

//*********************************************
// com_get_argument(str_arg, str_id)
// 概要 : URL引数文字列から、IDで指定された値を取得
// 引数 :
//  str_arg		: URL引数文字列
//  str_id		: ID
//
// 戻り値:
//  成功:IDに指定された値
//　失敗:NULL
//*********************************************
function com_get_argument(str_arg, str_id)
{
	var	str_args;	//引数分離用
	var	str_data;	//データ分離用

	//URLと引数を分離
	//str_url = str_arg.split("?");
	
	//引数をIDに分離
	str_args = str_arg.split("&");
	
	//IDより該当する文字列を検索
	i = 0;
	
	while(str_args[i] != null)
	{
		//IDと値に分離
		str_data = str_args[i].split("=");
		
		//ID比較
		if(str_data[0] == str_id)
		{
			return str_data[1];
		}
		
		i++
	}
	return null;
}

//*********************************************
// function com_cre_tableObj(tblName, lineCnt, RowCnt)
// 概要 : 二次元配列の作成
// 引数 :
//	tblName : (IN)テーブル名
//	lineCnt : (IN)行数
//	RowCnt	: (IN)列数
//*********************************************

function com_cre_tableObj(tblName, lineCnt, RowCnt)
{
	var i;
	var j;
	eval( tblName + '= new Array(' + lineCnt + ');' )
	for (i = 0; i < eval( tblName + '.length'); i++) 
	{
		eval( tblName + '[i] = new Array(' + RowCnt + ');' )
		for (j = 0; j < eval(tblName + '[i].length'); j++) 
		{
			eval( tblName + '[i][j] = i * 10 + j;')
		}
	}
}

//************************************************
//　Common_txtboxNullCheck(form, inp_value)
//　テキストボックスの内容がNULLのときに0を返す。
//　※任意入力項目に、画面には0を表示せず、背景で0をセットするために使用。
//　form : フォーム名
//　inp_value : テキストボックスの値　例）form.inp_ChukaiBuy.value
//************************************************
function Common_txtboxNullCheck(form, inp_value)
{
	var upd_value;
	upd_value = (( eval(inp_value) != null) && (eval(inp_value) != "")) ? parseFloat(eval(inp_value)) : 0;
	return upd_value;
}

//************************************************
//　Common_radioValueGet(form, radio_name, default_value)
//　ラジオボックスが未選択の場合に、指定の値を返す。
//　※任意入力項目に、画面には既定値を表示せず、背景で指定の値をセットするために使用。
//　form : フォーム名
//　iradio_name : ラジオボタン名
//　default_value : 指定の値
//************************************************
function Common_radioValueGet(form, radio_name, default_value)
{
	var radio_value = default_value;
	var i;
	if (eval(radio_name).length) {
		for (i = 0; i < eval(radio_name).length; i++) {
			if (eval(radio_name)[i].checked) {
				radio_value = eval(radio_name)[i].value;
				break;
			}
		}
	}
	else {
		if (eval(radio_name).checked) {
			radio_value = eval(radio_name).value;
		}
	}
	return radio_value;
}


//**********************************************************
// Com_Disabled_AllInputItem(obj_form, obj_input)
//**********************************************************
// 入力項目を全て入力不可にする。
// チェック関数内で、メイン関数前に呼び出す。
// obj_form : フォーム名。
// obj_input: オブジェクト名。：使用しないが、Ableに戻す関数と同期をとるため。
//----------------------------------------------------------
function Com_Disabled_AllInputItem(obj_form, obj_input)
{
	var val_ItemCnt= 0;
	val_ItemCnt = obj_form.elements.length;
	var cnt_ItemNum = 0;

	for (cnt_ItemNum=0; cnt_ItemNum<val_ItemCnt; cnt_ItemNum++)
	{
		eval("obj_form[" + cnt_ItemNum + "].disabled = true;")
	}
}



//**********************************************************
// Com_Abled_AllInputItem(obj_form, obj_input)
//**********************************************************
// 入力項目を全て入力可にする。
// チェック関数内で、メイン関数後に呼び出す。
// obj_form : フォーム名。
// obj_input: オブジェクト名。
//----------------------------------------------------------
function Com_Abled_AllInputItem(obj_form, obj_input)
{
	var val_ItemCnt= 0;
	val_ItemCnt = obj_form.elements.length;
	var cnt_ItemNum = 0;

	for (cnt_ItemNum=0; cnt_ItemNum<val_ItemCnt; cnt_ItemNum++)
	{
		eval("obj_form[" + cnt_ItemNum + "].disabled = false;")
	}

	if (obj_input.type == "text")
	{
		obj_input.focus();
	}
}

//**********************************************************
// com_inpArea_reset(obj_form)
//**********************************************************
// 入力項目をリセットする。(フォーム全体）
//----------------------------------------------------------
function com_inpArea_reset(obj_form)
{
	obj_form.reset();
	obj_form[0].focus();
}

//**********************************************************
// com_inpArea_reset_text(obj_item)
//**********************************************************
// 入力項目をリセットする。（項目別：テキスト）
//----------------------------------------------------------
function com_inpArea_reset_text(obj_item)
{
	obj_item.value = "";
	obj_item.focus();
}

//**********************************************************
// com_inpArea_reset_radio(obj_item)
//**********************************************************
// 入力項目をリセットする。（項目別：ラジオボタン）
//----------------------------------------------------------
function com_inpArea_reset_radio(obj_item)
{
	var val_RadioCnt= 0;
	var r = 0;

	val_RadioCnt = obj_item.length;

	for (r=0; r<val_RadioCnt; r++)
	{
		if (eval("obj_item[" + r + "].defaultChecked == true;"))
		{
			eval("obj_item[" + r + "].checked = true;")
			eval("obj_item[" + r + "].focus();")
		}
		else
		{
			eval("obj_item[" + r + "].checked = false;")
			eval("obj_item[" + r + "].focus();")
		}

	}
}

//**********************************************************
// com_inpArea_reset_checkbox(obj_item)
//**********************************************************
// 入力項目をリセットする。（項目別：チェックボックス）
//----------------------------------------------------------
function com_inpArea_reset_checkbox(obj_item)
{
	var val_RadioCnt= 0;
	var r = 0;

	val_RadioCnt = obj_item.length;

	for (r=0; r<val_RadioCnt; r++)
	{
		if (eval("obj_item[" + r + "].defaultChecked == true;"))
		{
			eval("obj_item[" + r + "].checked = true;")
			eval("obj_item[" + r + "].focus();")
		}
		else
		{
			eval("obj_item[" + r + "].checked = false;")
			eval("obj_item[" + r + "].focus();")
		}
	}
}

//**********************************************************
// com_inpArea_reset_select(obj_item)
//**********************************************************
// 入力項目をリセットする。（項目別：セレクトバー）
//----------------------------------------------------------
function com_inpArea_reset_select(obj_item)
{
	var val_SelectCnt= 0;
	var r = 0;
	var flg_defalutItem = 0;

	val_SelelctCnt = obj_item.options.length;

	for (r=0; r<val_SelectCnt; r++)
	{
		if (eval("obj_item.options[" + r + "].defaultSelected == true;"))
		{
			eval("obj_item.options[" + r + "].checked = true;")
			eval("obj_item.focus();")
			flg_defalutItem = 1;
		}
	}

	if (flg_defalutItem == 0)
	{
		obj_item.options[0].checked = true;
		eval("obj_item.focus();")
	}
}

//**********************************************************
// com_GetCurYYYYMM()
//**********************************************************
// 年月（テキストボックス）に現在年月をデフォルトとして付与。
// Loan詳細(1)、(2)、(3)で使用。
// 引数(IN)：
// obj_form : フォーム名（黙示的に指定するとエラーが出ることがあるので、明示的に指定。）
//----------------------------------------------------------
function com_GetCurYYYYMM(obj_form)
{
	var dtToday = new Date;
	var strYear;
	var strMonth;

	//年月を取得
	strYear = dtToday.getYear();
	strMonth = dtToday.getMonth() + 1;
	
	//2000年問題対応
	if(strYear < 1900)
	{
		strYear = strYear + 1900;
		obj_form.inp_StartYYYY.value = strYear;
	}

	//ここから表示
	obj_form.inp_StartYYYY.value = strYear;
	obj_form.inp_StartYYYY.focus();
	obj_form.inp_StartMM.value = strMonth;
	obj_form.inp_StartMM.focus();
	obj_form.elements[0].focus();
}

//**********************************************************
// com_GetCurYYYYMM02()
//**********************************************************
// 年月（テキストボックス）に現在年月をデフォルトとして付与。
// Loan詳細(4)(5)で使用。
// 引数(IN)：
// obj_form : フォーム名（黙示的に指定するとエラーが出ることがあるので、明示的に指定。）
//----------------------------------------------------------
function com_GetCurYYYYMM02(obj_form)
{
	var dtToday = new Date;
	var strYear;
	var strMonth;

	//年月を取得
	strYear = dtToday.getYear();
	strMonth = dtToday.getMonth() + 1;

	//2000年問題対応
	if(strYear < 1900)
	{
		strYear = strYear + 1900;
		obj_form.inp_StartYYYY.value = strYear;
	}
	
	//ここから表示
	obj_form.inp_changeYear.value = strYear;
	obj_form.inp_changeYear.focus();
	obj_form.inp_changeMonth.value = strMonth;
	obj_form.inp_changeMonth.focus();
	obj_form.elements[0].focus();
}

//**********************************************************
// com_GetPrefUrl()
// str_JumpUrl : ジャンプ先の指定ページ
//**********************************************************
// 前画面が入力画面でない場合、入力画面にジャンプさせる。
//----------------------------------------------------------
function com_GetPrefUrl(str_inpFileName,str_JumpUrl)
{
//	var str_HostName = "192.168.10.194";
//	var str_HostName = "athome.co.jp";		//指定サイト

	var str_PrefUrl = "";
	str_PrefUrl = top.document.referrer;

	if (str_PrefUrl.indexOf(str_inpFileName) < 0)
	{
		document.location = str_JumpUrl;
	}
}

//**********************************************************
// com_GetParentUrl()
//**********************************************************
// 親フレーム名が'athome'でない場合、指定ページにジャンプさせる。
//----------------------------------------------------------
function com_GetParentUrl()
{
	if (this.name != 'athome')
	{
		location.href = "http://192.168.10.194/TEST/MRHOMES/frametest/";		//指定ページ
	}
}

//**********************************************************
// com_TrimSpace
// 概要 : 文字列から半角ブランクなどの文字列を切り捨てる。
// 引数 :
//	InputStr  : (IN)チェック対象の文字列。
//	chkStr	: (IN)チェックする文字。" "など。
// 戻り値: 指定の文字を切り捨てた文字列
//**********************************************************
function com_TrimSpace(InputStr,chkStr)
{
	var temp = "";
	temp = InputStr;
	temp = TrimLeft(temp,chkStr);
	temp = TrimRight(temp,chkStr);
	return temp;
}

// 文字列の左側のブランクを取り除く。
function TrimLeft(InputStr,chkStr)
{
	var temp = "";
	var chk = false;

	temp = InputStr;
	while(chk == false)
	{
		if(temp.charAt(0) == chkStr)
		{
			temp = temp.substring(chkStr.length,temp.length);
		}
		else
		{
			chk = true;
		}
	}
	return temp;
}

// 文字列の右側のブランクを取り除く。
function TrimRight(InputStr,chkStr)
{
	var temp = "";
	var chk = false;

	temp = InputStr;
	while(chk == false)
	{
		if(temp.charAt(temp.length-1) == chkStr)
		{
			temp = temp.substring(0,temp.length-1);
		}
		else
		{
		chk = true;
		}
	}
	return temp;
}


//**********************************************************
// demicalFloat
// JavaScriptの2進法依存計算バグのパッチ。
// 
// 出典：
// http://www.interq.or.jp/japan/satoshi0/sample/syosu/
// <meta name="description" content="変種JavaScriptサンプルページです。">
// <meta name="author" content="SatoshiMasahira">
// <meta name="copyright" content="SatoshiMasahira">
// <meta name="reply-to" content="satoshi0@japan.interq.or.jp">
// <title>小数を含む計算の誤差を回避する</title>
// 
// 使い方：
// demicalFloat(数1,数2,'*') 　---''の中には四則計算の記号を入れる。
//**********************************************************

	function demicalFloat(numberA,numberB,type)
	{
		var h=(type=="*")? "+":"-";
		var c=[get(numberA),get(numberB)];
		var A=c[0][1];
		var B=c[1][1];
		var pointA=c[0][0];
		var pointB=c[1][0];
		
		if (type=="*" || type=="/")
		{
			var k1=eval("numberA"+type+"numberB");
			var k2=eval("(A"+type+"B)");
			if (get(k1)[1]==k2) return k1;
			else return (pointA+pointB==0? k1:eval(k2+"/Math.pow(10,pointA"+h+"pointB)"));
		}
		else if (type=="+" || type=="-")
		{
			var pointL=pointA;
			if (pointA<pointB) pointL=pointB;
			numberA=demicalFloat(numberA,Math.pow(10,pointL),"*");
			numberB=demicalFloat(numberB,Math.pow(10,pointL),"*");
			return eval("numberA"+type+"numberB")/Math.pow(10,pointL);
		}
		else return "[ Can't calculate! ]"
	}
	function get(number)
	{
		number=""+number;
		if (number.indexOf(".")==-1) return [0,parseInt(number)];
		var po=number.split(".")[1].length;
		var st=number.split(".").join("");
		for (var i=0;i<st.length;i++) if (st.charAt(0)=="0") st=st.substr(1,st.length);
		return [po,parseInt(st)];
	}
	
	
//**********************************************************
// com_check_refer()
// 概要 : リファラーチェック
// 引数 : なし
//
// 戻り値: true : 成功
//       :false : 失敗
//**********************************************************
function com_check_refer()
{
	var	str_refer;	//リファラ取得用
	var i;			//カウンタ

	//許可URLリスト(部分一致)
	str_acceptURL = new Array(
							  "192.168.10.194",
							  "online.athome.co.jp",
							  "http://www.sumailoan.com/athome/calc/loan/user_loan_ganri.html",
							  "http://www.sumailoan.com/athome/calc/loan/user_loan_hiritsu.html",
							  "http://www.sumailoan.com/athome/calc/loan/user_gendogaku.html",
							  "http://www.sumailoan.com/athome/calc/loan/user_karikae.html",
							  "http://www.sumailoan.com/athome/calc/loan/user_kuriage.html",
							  "http://www.sumailoan.com/athome/calc/loan/chintairyou.html",

							  "http://www.sumailoan.com/athome/calc/loan/loan_ganri.html",
							  "http://www.sumailoan.com/athome/calc/loan/loan_hiritsu.html",
							  "http://www.sumailoan.com/athome/calc/loan/gendogaku.html",
							  "http://www.sumailoan.com/athome/calc/loan/karikae.html",
							  "http://www.sumailoan.com/athome/calc/loan/kuriage.html",

							  "http://www.sumailoan.com/athome/calc/tax/syotoku_loan.html",
							  "http://www.sumailoan.com/athome/calc/tax/sonneki_kyuuyo.html",
							  "http://www.sumailoan.com/athome/calc/tax/sonneki_kazei.html",
							  "http://www.sumailoan.com/athome/calc/tax/jouto.html",
							  "http://www.sumailoan.com/athome/calc/tax/zouyo.html",
							  "http://www.sumailoan.com/athome/calc/tax/souzoku_zeigaku.html",
							  "http://www.sumailoan.com/athome/calc/tax/innshi.html",
							  "http://www.sumailoan.com/athome/calc/tax/genka_ippan.html",
							  "http://www.sumailoan.com/athome/calc/tax/genka_tatemono.html",

							  "http://www.sumailoan.com/athome/calc/manage/toushi.html",
							  "http://www.sumailoan.com/athome/calc/tax/kaikae02.html"
							  );

	str_denyURL = new Array(
							  "http://online.athome.co.jp",
							  "http://192.168.10.194/TEST/"
							  );

	//リファラ取得
	str_refer = document.referrer;
	alert(str_refer);
	
	//リファラ比較
	for(i = 0;i < str_acceptURL.length; i++)
	{
		//リファラが一致した場合
		if(str_refer.indexOf(str_acceptURL[i]) != -1)
		{
			//拒否リスト比較
			for(n = 0;n < str_denyURL.length; n++)
			{
				//拒否リストが一致した場合
				if(str_refer == str_denyURL[n])
				{
					alert("一致");
					//失敗
					return false;
				}
			}
			//成功
			return true;
		}
	}

	
	alert("失敗");
	//失敗
	return false;
}

//
