////////////////////////////////////////////////////////////////////////////////
// プログラム選択ボタン　マウスオーバー処理
//【関数名】
//　　btnOver()
//【処理説明】
//　　プログラム選択ボタンの上をマウスポインターが触ったときのイメージ変更を行う。
//【パラメータ】
//　　ImgName   :   ボタン名称
//【戻り値】
//  　なし
////////////////////////////////////////////////////////////////////////////////
function btnOver(ImgName){
	if (document.images){
		document.images[ImgName].src="../images/btn_"+ImgName+"_p.gif";
	}
}

////////////////////////////////////////////////////////////////////////////////
// プログラム選択ボタン　マウスアウト処理
//【関数名】
//　　btnOut()
//【処理説明】
//　　プログラム選択ボタンの上からマウスポインターが去ったときのイメージ変更を行う。
//【パラメータ】
//　　ImgName   :   ボタン名称
//【戻り値】
//  　なし
////////////////////////////////////////////////////////////////////////////////
function btnOut(ImgName){
	if (document.images){
		document.images[ImgName].src="../images/btn_"+ImgName+".gif";
	}
}


////////////////////////////////////////////////////////////////////////////////
// プログラム選択ボタン　Naviボタンクリックイベント
//【関数名】
//　　btnNavi()
//【処理説明】
//　　Naviボタンクリック時に該当ページへジャンプ。
//【パラメータ】
//　　Page   :   ページ名称
//【戻り値】
//  　なし
////////////////////////////////////////////////////////////////////////////////
function btnNavi(Page){
	with(document.mainForm){
		PAGE.value = Page;
		target = "_top";
		action = "../models/" + Page + ".php";
		submit();
	}
}

////////////////////////////////////////////////////////////////////////////////
// 画面ロード時の初期処理
//【関数名】
//　　On_Load()
//【処理説明】
//　　画面ロード時の初期処理を行う。
//【パラメータ】
//　　Obj   :   画面の先頭オブジェクト名
//【戻り値】
//  　なし
////////////////////////////////////////////////////////////////////////////////
function On_Load(ObjName){
	document.mainForm.elements[ObjName].focus();
	
	if (document.mainForm.elements[ObjName].type == 'text' || 
		document.mainForm.elements[ObjName].type == 'password' || 
		document.mainForm.elements[ObjName].type == 'file' || 
		document.mainForm.elements[ObjName].type == 'textarea') {
		
		document.mainForm.elements[ObjName].select();
	}
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　Check_Num()
//【処理説明】
//　　数値かどうかチェックを行う。
//【パラメータ】
//　　str   :   チェックする文字列
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function Check_Num(str){
	var data;
	var buff;
	
	data = "";
	buff = "";

	if (str != ""){
		data = str.match(/[^0-9]/g);
		if (data || !str) {
			len = str.length
			for (i=len-1; i>=0; i--) {
				if ((((len - i)%4) == 0) && (i != 0)) {
					if (str.charAt(i) != ","){
						return false;
					}
				}else{
					buff = str.charAt(i) + buff;			
				}			   
			}
			
			data = buff.match(/[^0-9]/g);
			if (data || !buff) {			
				return false;
			}
		}
	}
	
	return true;
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　Check_Num2()
//【処理説明】
//　　数値かどうかチェックを行う。小数以下２位にそろえる
//【パラメータ】
//　　str   :   チェックする文字列
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function Check_Num2(str){
	var data;
	var buff;
		var cCnt;
	
	data = "";
	buff = "";
		cCnt=0;

		for (i=0 ; i<str.length ;i++){
			if (str.substr(i,1)=="."){
				cCnt++;
			}
		}
		if (cCnt>1){
			return false;
		}
	if (str != ""){
		data = str.match(/[^0-9,.]/g);
		if (data || !str) {
			len = str.length
			for (i=len-1; i>=0; i--) {
				if ((((len - i)%4) == 0) && (i != 0)) {
					if (str.charAt(i) != ","){
						return false;
					}
				}else{
					buff = str.charAt(i) + buff;			
				}			   
			}
			
			data = buff.match(/[^0-9,.]/g);
			if (data || !buff) {			
				return false;
			}
		}
	}
	
	return true;
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　Check_Number()
//【処理説明】
//　　入力値の数値チェック。
//【パラメータ】
//　　Obj   :   数値チェックする対象のオブジェクト
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function Check_Number(Obj){
	var str;
	str = Obj.value;

	if (Check_Num(str) == false){
		alert("数値が正しくありません。");
		Obj.focus();
		Obj.select();
		return false;
	}
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　Check_Date()
//【処理説明】
//　　YYYY/MM/DD形式かどうかチェックを行う。
//【パラメータ】
//　　str   :   チェックする文字列
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function Check_Date(str){
	var data;
	data = "";
	if (str != ""){
		data = str.match(/(\d{4})\/(\d{2})\/(\d{2})/);
		if (!data || !str) {
						data = "";
			data = str.match(/(\d{2})\/(\d{2})\/(\d{2})/);
			if (!data || !str) {
				return false;
			}	   
		}
	}
	return true;
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　Key_Down()
//【処理説明】
//　　テキストボックスキーダウン時、フォーカス遷移を制御する。
//【パラメータ】
//	frontObj  :   フォーカスの遷移元オブジェクト
//	nextObj   :   フォーカスの遷移先オブジェクト
//【戻り値】
//  　なし
////////////////////////////////////////////////////////////////////////////////
function Key_Down(frontObj, nextObj){

	var Obj;
	if((event.keyCode==13) || (event.keyCode==40)) {
		if(nextObj == ""){
			return;
		}else{
			Obj = nextObj;
		}

		
	}else if(event.keyCode==38){
		if(frontObj == ""){
			return;
		}else{
			Obj = frontObj;
		}
	}else{
		return;
	}
	
	event.returnValue = false;

	Obj.focus();
	if (Obj.type == 'text' || Obj.type == 'password' || Obj.type == 'file' || Obj.type == 'textarea') {
		Obj.select();
	}
	
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　Replace_Slash()
//【処理説明】
//　　入力値から「/」を除く。
//【パラメータ】
//　　Obj   :   文字列編集する対象のオブジェクト
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function Replace_Slash(Obj){
	var sp_str;
	var i;
	var buff;
	buff = "";
	sp_str = Obj.value.split("/")
	for (i=0; i<sp_str.length; i++) {
		buff = buff + sp_str[i];
	}
	
	if(buff != ""){
		Obj.value = buff;
	}
	Obj.focus();
	Obj.select();
}


////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　Replace_Comma()
//【処理説明】
//　　入力値から「,」を除く。
//【パラメータ】
//　　Obj   :   文字列編集する対象のオブジェクト
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function Replace_Comma(Obj){
	var sp_str;
	var i;
	var buff;
	
	buff = "";
	sp_str = Obj.value.split(",")
	for (i=0; i<sp_str.length; i++) {
		buff = buff + sp_str[i];
	}
	
	if(buff != ""){ 
		Obj.value = buff;
	}
	Obj.focus();
	Obj.select();
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　Add_Slash()
//【処理説明】
//　　入力値に「/」を付加する。
//【パラメータ】
//　　Obj   :   文字列編集する対象のオブジェクト
//　　mode	  :   オブジェクトのタイプ
//						[ 01：年月日形式（YY/MM/DD）]
//						[ 02：年月形式（YY/MM）	 ]
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function Add_Slash(Obj, mode){
	var str;
	var data;

	str = "";
	data = "";

	str = Obj.value;
	
	switch(mode){
		case "01":
			if (str != ""){
			
				str = MakeYMD1(str);
				
				//エラー時にはローバリューが返る
				if (str != ""){
					if (Check_Date(str) == false) {
						if (((str.length != 6) && (str.length != 8)) || (Check_Num(str) == false)) {
							alert("日付が正しくありません。");
							Obj.focus();
							Obj.select();
							return false;

						}else if(str.length == 6){
							if (str.substring(0,2)>="50"){
								str = "19" + str.substring(0, 2) + "/" + str.substring(2, 4) + "/" + str.substring(4, 6);
							}else{
								str = "20" + str.substring(0, 2) + "/" + str.substring(2, 4) + "/" + str.substring(4, 6);
							}
						}else if(str.length == 8){
							str = str.substring(0, 4) + "/" + str.substring(4, 6) + "/" + str.substring(6, 8);
						}else if(str.length == 10){
							str = str.substring(0, 4) + "/" + str.substring(5, 7) + "/" + str.substring(8, 10);
						}else{
							alert("日付が正しくありません。");
							Obj.focus();
							Obj.select();
							return false;
							
						}
					}else{
						if(str.length == 10){
							str = str.substring(0, 4) + "/" + str.substring(5, 7) + "/" + str.substring(8, 10);
						}else if(str.length == 8){
							if (str.substring(0,2)>="50"){
								str = "19" + str
							}else{
								str = "20" + str
							}
						}else{
							alert("日付が正しくありません。");
							Obj.focus();
							Obj.select();
							return false;
							
						}
					}
				}else{
					alert("日付が正しくありません。");
					Obj.focus();
					Obj.select();
					return false;
					
				}
			}
			
			 break;
			
		case "02":
			if (str != ""){
				data = str.match(/(\d{4})\/(\d{2})/);
				if (!data || !str) {
					data = "";
					data = str.match(/(\d{2})\/(\d{2})/);
					if (!data || !str) {
						if (((str.length != 4) && (str.length != 6)) || (Check_Num(str) == false)) {
							alert("日付が正しくありません。");
							Obj.focus();
							Obj.select();
							return false;
						
						}else if(str.length == 4){
							str = "20" + str.substring(0, 2) + "/" + str.substring(2, 4);
						}else if(str.length == 6){
							str = str.substring(0, 4) + "/" + str.substring(4, 6);
						}else{
							alert("日付が正しくありません。");
							Obj.focus();
							Obj.select();
							return false;
						
						}
					}else{
						if(str.length == 5){
							str = "20" + str
						}else{
							alert("日付が正しくありません。");
							Obj.focus();
							Obj.select();
							return false;
						
						}
					}
				}else{
					if(str.length == 7){
						str = str.substring(0, 4) + "/" + str.substring(5, 7);
					}else{
						alert("日付が正しくありません。");
						Obj.focus();
						Obj.select();
						return false;
					
					}
				}
			}
				
			break;
	}
	
	if (Effective_Date(mode, str) == false) {
		alert("日付が正しくありません。");
		Obj.focus();
		Obj.select();
		return false;

	}   
	
	Obj.value = str;
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　Add_Slash()
//【処理説明】
//　　入力値に「/」を付加する。
//【パラメータ】
//　　Obj   :   文字列編集する対象のオブジェクト
//　　mode	  :   オブジェクトのタイプ
//						[ 01：年月日形式（YY/MM/DD）]
//						[ 02：年月形式（YY/MM）	 ]
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function A_Slash(Obj, mode){
	var str;
	var data;

	str = "";
	data = "";

	str = Obj.value;
	
	switch(mode){
		case "01":
			if (str != ""){
			
				str = MakeYMD1(str);
				
				//エラー時にはローバリューが返る
				if (str != ""){
					if (Check_Date(str) == false) {
						if (((str.length != 6) && (str.length != 8)) || (Check_Num(str) == false)) {
							alert("日付が正しくありません。");
//							Obj.focus();
//							Obj.select();
							return false;

						}else if(str.length == 6){
							if (str.substring(0,2)>="50"){
								str = "19" + str.substring(0, 2) + "/" + str.substring(2, 4) + "/" + str.substring(4, 6);
							}else{
								str = "20" + str.substring(0, 2) + "/" + str.substring(2, 4) + "/" + str.substring(4, 6);
							}
						}else if(str.length == 8){
							str = str.substring(0, 4) + "/" + str.substring(4, 6) + "/" + str.substring(6, 8);
						}else if(str.length == 10){
							str = str.substring(0, 4) + "/" + str.substring(5, 7) + "/" + str.substring(8, 10);
						}else{
							alert("日付が正しくありません。");
//							Obj.focus();
//							Obj.select();
							return false;
							
						}
					}else{
						if(str.length == 10){
							str = str.substring(0, 4) + "/" + str.substring(5, 7) + "/" + str.substring(8, 10);
						}else if(str.length == 8){
							if (str.substring(0,2)>="50"){
								str = "19" + str
							}else{
								str = "20" + str
							}
						}else{
							alert("日付が正しくありません。");
//							Obj.focus();
//							Obj.select();
							return false;
							
						}
					}
				}else{
					alert("日付が正しくありません。");
//					Obj.focus();
//					Obj.select();
					return false;
					
				}
			}
			
			 break;
			
		case "02":
			if (str != ""){
				data = str.match(/(\d{4})\/(\d{2})/);
				if (!data || !str) {
					data = "";
					data = str.match(/(\d{2})\/(\d{2})/);
					if (!data || !str) {
						if (((str.length != 4) && (str.length != 6)) || (Check_Num(str) == false)) {
							alert("日付が正しくありません。");
//							Obj.focus();
//							Obj.select();
							return false;
						
						}else if(str.length == 4){
							str = "20" + str.substring(0, 2) + "/" + str.substring(2, 4);
						}else if(str.length == 6){
							str = str.substring(0, 4) + "/" + str.substring(4, 6);
						}else{
							alert("日付が正しくありません。");
//							Obj.focus();
//							Obj.select();
							return false;
						
						}
					}else{
						if(str.length == 5){
							str = "20" + str
						}else{
							alert("日付が正しくありません。");
//							Obj.focus();
//							Obj.select();
							return false;
						
						}
					}
				}else{
					if(str.length == 7){
						str = str.substring(0, 4) + "/" + str.substring(5, 7);
					}else{
						alert("日付が正しくありません。");
//						Obj.focus();
//						Obj.select();
						return false;
					
					}
				}
			}
				
			break;
	}
	
	if (Effective_Date(mode, str) == false) {
		alert("日付が正しくありません。");
//		Obj.focus();
//		Obj.select();
		return false;

	}   
	
//	Obj.value = str;
		return true;
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　MakeYMD1()
//【処理説明】
//　　値をYYYY/MM/DDに加工する。
//【パラメータ】
//　　Str   :   加工する文字列
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function MakeYMD1(Str){
	var array_str;
	var str_ymd = "";
	var myNow = new Date();
	var myYear = myNow.getFullYear();
	var i;
	var strY;
	var strMD;
	var strYMD;

	//スラッシュで文字列を分解する。
	array_str = Str.split('/');

	//分解した数で分岐
	switch(array_str.length){
		//１：スラッシュなし		YYYYMMDD , YYMMDD , MMDD
		case 1:
			//文字数で分岐
			
			switch(Str.length){
				//８：YYYYMMDD
				case 8:
					str_ymd = Str.substr(0,4) + "/" + Str.substr(4,2) + "/" + Str.substr(6,2);
					break;
				//６：YYMMDD
				case 6:
					if (Str.substr(0,2) > 50){
						str_ymd = "19" + Str.substr(0,2) + "/" + Str.substr(2,2) + "/" + Str.substr(4,2);
					}else{
						str_ymd = "20" + Str.substr(0,2) + "/" + Str.substr(2,2) + "/" + Str.substr(4,2);
					}
					break;
				//４：MMDD
				case 4:
					str_ymd = myYear + "/" + Str.substr(0,2) + "/" + Str.substr(2,2);
					break;
				default:
					str_ymd = "";
			}
			return str_ymd;
			break;

		//２：スラッシュ１つ		MM/DD , M/DD , M/D , MM/D
		case 2:
			for (i = 0 ; i < 2 ; i++){
				strYMD = array_str[i];
				if (strYMD.length < 2){
					strYMD = "0" + strYMD;
				}
				if (strYMD.length > 2){
					str_ymd = "";
					return str_ymd;
				}
				str_ymd = str_ymd + "/" + strYMD;
			}
			if (str_ymd != ""){
				str_ymd = myYear + str_ymd;
			}
			return str_ymd;
			break;

		//３：スラッシュ２つ
		case 3:
			//年
			strY = array_str[0];
			if (strY.length == 2){
				if (strY > 50){
					strY = "19" + strY;
				}else{
					strY = "20" + strY;
				}
			}else{
				if (strY.length != 4){
					str_ymd = "";
					return str_ymd;
				}
			}
			//月日
			strMD = array_str[1];
			if (strMD.length < 2){
				strMD = "0" + strMD;
			}
			if (strMD.length > 2){
				str_ymd = "";
				return str_ymd;
			}
			strYMD = "/" + strMD;
			strMD = array_str[2];
			if (strMD.length < 2){
				strMD = "0" + strMD;
			}
			if (strMD.length > 2){
				str_ymd = "";
				return str_ymd;
			}
			strYMD = strYMD + "/" + strMD;
			if (strYMD != ""){
				str_ymd = strY + strYMD;
			}
			return str_ymd;
			break;
		default:
			str_ymd = "";
			return str_ymd;
	}
}


////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　Add_Comma()
//【処理説明】
//　　入力値に「,」を付加する。
//【パラメータ】
//　　Obj   :   文字列編集する対象のオブジェクト
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function Add_Comma(Obj){
	var str;
	var sp_str;
	var buff;
	var strMinus;

	str = "";
	sp_str = "";
	buff = "";
	strMinus = "";
	
	str = Obj.value;
	
	if (str != ""){
		//マイナス符号のみ入力の場合、エラー
		if ((str.charAt(0) == "-") && (str.length == 1)) {
						alert("数値が正しくありません。");
			Obj.focus();
			Obj.select();
			
			return false;
		}else if (str.charAt(0) == "-") {
			str = str.replace("-", "");
			strMinus = "-";
		}
	
		//数値チェック
		if (Check_Num(str) == false) {
						alert("数値が正しくありません。");
			Obj.focus();
			Obj.select();
							
			return false;
		}
			
		sp_str = str.split(",");

		str = "";
		for (i=0; i<sp_str.length; i++) {
			str = str + sp_str[i];
		}

		// Add by Nakamura 2003/09/09 ///////////////
		str = parseInt(str, 10)
		str = str.toString(10);
		/////////////////////////////////////////////
	
		len = str.length
		for (i=len-1; i>=0; i--) {
			buff = str.charAt(i) + buff;
			if ((((len - i)%3) == 0) && (i != 0)) {
				buff = "," + buff;
			}			   
		}			   
	}
	
	Obj.value = strMinus + buff;
	return true;

}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　Add_Comma2()
//【処理説明】
//　　入力値に「,」を付加する。小数以下２位にそろえる。
//【パラメータ】
//　　Obj   :   文字列編集する対象のオブジェクト
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function Add_Comma2(Obj){
	var str;
	var sp_str;
	var buff;
	var strMinus;
		var pPoint;

	str = "";
	sp_str = "";
	buff = "";
	strMinus = "";
	
	str = Obj.value;
	
	if (str != ""){
		//マイナス符号のみ入力の場合、エラー
		if ((str.charAt(0) == "-") && (str.length == 1)) {
						alert("数値が正しくありません。");
			Obj.focus();
			Obj.select();
			
			return false;
		}else if (str.charAt(0) == "-") {
			str = str.replace("-", "");
			strMinus = "-";
		}
	
		//数値チェック
		if (Check_Num2(str) == false) {
						alert("数値が正しくありません。");
			Obj.focus();
			Obj.select();
							
			return false;
		}
			
		sp_str = str.split(",");

		str = "";
		for (i=0; i<sp_str.length; i++) {
			str = str + sp_str[i];
		}

		// Add by Nakamura 2003/09/09 ///////////////
		//str = parseInt(str, 10)
		//str = str.toString(10);
		/////////////////////////////////////////////
				pPoint = 0;
		len = str.length
		for (i=len-1; i>=0; i--) {
					if (str.charAt(i)=="."){
						break;
					}
					pPoint++;
		}			   
				if (pPoint == len){
					pPoint = -1;
				}
				switch(pPoint){
					case	-1:
						buff = str + ".00";
						break;
					case	0:
						buff = str + "00";
						break;
					case	1:
						buff = str + "0";
						break;
					default:
				for (i=len-pPoint+1; i>=0; i--) {
					buff = str.charAt(i) + buff;
				}			   
				}	
				str = buff;
			buff = "";
		len = str.length
		for (i=len-1; i>=0; i--) {
			buff = str.charAt(i) + buff;
			if ((((len - i)%3) == 0) && (i != 0) && (len-i != 3)) {
				buff = "," + buff;
			}			   
		}			   
	}
	
	Obj.value = strMinus + buff;
	return true;

}


////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　Check_RequirementObj()
//【処理説明】
//　　必須入力項目が未入力かどうかチェックを行う。
//【パラメータ】
//　　Obj   :   チェックするオブジェクト
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function Check_RequirementObj(Obj){
	var i;
	
	for (i=0; i<Obj.length; i++) {
		if (Obj[i].value == "") {
			ErrMsg(E0001);
			Obj[i].focus();
			Obj[i].select();
			
			return false;
		}
	}
	
	return true;

}


///////////////////////////////////////////////
//日付チェック
//【関数名】
//　　toNum()
//【処理説明】
//　　日付の有効性チェック
//【パラメータ】
//　　obj   :   日付チェックするオブジェクト
//【戻り値】
//  　なし
///////////////////////////////////////////////
function Effective_Date(mode, str){
	var ld = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	var ymd;
	var ym;
		var y;
		var m;
		var d;
	if (str != ""){
		if (mode == "01") {
		
			ymd = str.match(/(\d+)\/(\d+)\/(\d+)/)
			
			if (ymd) {
				y = parseInt(ymd[1], 10);
				m = parseInt(ymd[2], 10);
				d = parseInt(ymd[3], 10);

				if (m <= 0 || m > 12) {
					return false;
				}
				if ( (y % 4 == 0 && y % 100 != 0) || y % 400 == 0 ) {
					ld[2] = 29;
				}
				if (d > ld[m] || d <= 0) {
				
					return false;
	
				}
			} else {
				return false;
			}
		}else if(mode == "02"){
			ym = str.match(/(\d+)\/(\d+)/)
			if (ym) {
				m = parseInt(ym[2], 10);
				if (m <= 0 || m > 12) {
					return false;
				}
			} else {
				return false;
			}
		}
	}
	return true;
}


//**********************************************************
//*		checkbox　onClickイベント
//**********************************************************
function onChk(Obj,Obj2){
	with(document.mainForm){
		if(Obj.checked){
			Obj.value = "1";
			Obj2.value = "1";
		} else {
			Obj.value = "0";
			Obj2.value = "0";
		}
	}
}
//**********************************************************


//**********************************************************
//*		ボタン　onClickイベント
//**********************************************************
function onClickBtn(act){
	with(document.mainForm){
		action= "../models/" + act + ".php";
		submit();
	}
}
//**********************************************************


//**********************************************************
//*		戻るボタン　onClickイベント
//**********************************************************
function onClickRtnBtn(LoadMODE){
	with(document.mainForm){
		LoadMODE.value = "RTN";
	}
}
//**********************************************************

//**********************************************************
//*		数値の小数点以下を削除
//**********************************************************
function Replace_decimal(num){
	with(document.mainForm){
		var ten;
		var rtn;
		ten = num.indexOf(".");
		rtn = num.substr(0,ten);
		return rtn;
	}
}
//**********************************************************


//***********************************************
//　引数に対してカンマをはずして返す
//***********************************************
function R_Comma(val){
	var sp_str;
	var i;
	var buff;

	buff = "";
	val = val.toString();
	sp_str = val.split(",")
	for (i=0; i<sp_str.length; i++) {
		buff = buff + sp_str[i];
	}
	
	if(buff != ""){ 
		val = buff;
	}
	return val;
}

//***********************************************
//　引数に対してカンマをはずして返す
//***********************************************
function R_Comma_Int(val){
	var sp_str;
	var i;
	var buff;
	val = nbsp2lv(val);
	if(val == "") val = 0;
	if(val != 0){
		buff = "";
		val = val.toString();
		sp_str = val.split(",")
		for (i=0; i<sp_str.length; i++) {
			buff = buff + sp_str[i];
		}
		
		if(buff != ""){ 
			val = buff;
		}
	}
	val = parseInt(val);
	
	return val;
}

//***********************************************
//　引数をカンマ編集して返す
//***********************************************
function A_Comma(val){
	var str;
	var sp_str;
	var buff;
	var strMinus;
	str = "";
	sp_str = "";
	buff = "";
	strMinus = "";

	str = val;
	if (str != ""){
		str = str.toString();
		if (str.charAt(0) == "-") {
			str = str.replace("-", "");
			strMinus = "-";
		}
		str = parseInt(str, 10)
		str = str.toString(10);
		len = str.length
		for (i=len-1; i>=0; i--) {
			buff = str.charAt(i) + buff;
			if ((((len - i)%3) == 0) && (i != 0)) {
				buff = "," + buff;
			}
		}
	}
	val = buff;
	return strMinus + val;
}

function A_Comma2(val){
	var str;
	var sp_str;
	var buff;
	var strMinus;
	var pPoint;

	str = "";
	sp_str = "";
	buff = "";
	strMinus = "";
	
	str = val;
	str = str.toString();
	
	if (str != "" && str != 0){
		//マイナス符号のみ入力の場合、エラー
		if ((str.charAt(0) == "-") && (str.length == 1)) {
			str = 0;
		}
		if (str.charAt(0) == "-") {
			str = str.replace("-", "");
			strMinus = "-";
		}
		if (str.charAt(0) == ".") {
			str = "0" + str;
		}
	
		//数値チェック
		if (Check_Num2(str) == false) {
			str = 0;
		}
		str = str.toString();
		sp_str = str.split(",");
	
		str = "";
		for (i=0; i<sp_str.length; i++) {
			str = str + sp_str[i];
		}

		// Add by Nakamura 2003/09/09 ///////////////
		//str = parseInt(str, 10)
		//str = str.toString(10);
		/////////////////////////////////////////////
				pPoint = 0;
		len = str.length
		for (i=len-1; i>=0; i--) {
					if (str.charAt(i)=="."){
						break;
					}
					pPoint++;
		}			   
				if (pPoint == len){
					pPoint = -1;
				}
				switch(pPoint){
					case	-1:
						buff = str + ".00";
						break;
					case	0:
						buff = str + "00";
						break;
					case	1:
						buff = str + "0";
						break;
					default:
				for (i=len-pPoint+1; i>=0; i--) {
					buff = str.charAt(i) + buff;
				}			   
				}	
				str = buff;
			buff = "";
		len = str.length;
		for (i=len-1; i>=0; i--) {
			buff = str.charAt(i) + buff;
			if ((((len - i)%3) == 0) && (i != 0) && (len-i != 3)) {
				buff = "," + buff;
			}			   
		}			   
	}
	
	return strMinus + buff;

}


////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　R_Slash()
//【処理説明】
//　　入力値から「/」を除く。
//【パラメータ】
//　　Obj   :   文字列編集する対象のオブジェクト
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function R_Slash(val){
	var sp_str;
	var i;
	var buff;
	buff = "";
	sp_str = val.split("/")
	for (i=0; i<sp_str.length; i++) {
		buff = buff + sp_str[i];
	}
	
	if(buff != ""){
		val = buff;
	}
	return val;
}


////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　onClickMenu(ID)
//【処理説明】
//　　起動文字列に呼ぶプログラムのプログラムIDが追加し、hidActの値にセット。
//【パラメータ】
//　　ID   :   遷移先のプログラムID
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function onClickMenu(ID){
	with(document.mainForm){
		var strAct = hidAct.value;
		strAct = strAct + "-" + ID;
		hidAct.value = strAct;
		target = "_self";
		action = "../models/" + ID + ".php";
		submit();
	}
}


////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　onClickReturn()
//【処理説明】
//　　起動文字列から現プログラムのプログラムIDを削除し、hidActの値にセット。
//【パラメータ】
//　　   :   
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function onClickReturn(){
	with(document.mainForm){
		var strAct = hidAct.value;
		var ary;
		var last;
		var act;
		ary = strAct.split("-");
		last = ary.length * 1 - 2;
		act = ary[last];
		ary.pop();
		hidAct.value = ary.join("-");
		target = "_self";
		action = "../models/" + act + ".php";
		submit();
	}
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　onClickTop()
//【処理説明】
//　　hidActの値をクリアし、メインメニュー画面へ遷移。
//【パラメータ】
//　　   :   
//【戻り値】
//  　
////////////////////////////////////////////////////////////////////////////////
function onClickTop(){
	with(document.mainForm){
		target = "_self";
		action = "../models/HS080100.php";
		submit();
	}
}

function nbsp2lv(str){
	var rtn = str.replace("&nbsp;","");
	return rtn;
}

function lv2nbsp(str){
	if(str == "") str = "&nbsp;";
	return str;
}

function jsTest(){
	var strVal = "123456";
	var strVal1,strVal2 = "";
	if(strVal.match(/(\.)/)){
		strVal1 = RegExp.leftContext;
		strVal2 = RegExp.rightContext;
		alert("left:" + strVal1 + " / right:" + strVal2);
		strVal2 = strVal2.replace(/[^0-9]/g,'') + "00";
		strVal2 = strVal2.substring(0,2);
	} else {
		strVal1 = strVal;
		strVal2 = "00";
	}
	alert(strVal1 + "." + strVal2);
}

//数値項目focus時、カンマをはずす
function focusNum(val){
	var rtnVal = val.replace(/[^0-9\.]/g,"");
	return rtnVal;
}

function blurNum(val,p_flg,c_flg){
	if(p_flg == null) p_flg = true;
	if(c_flg == null) c_flg = true;
	val = val.replace(/[^0-9\.]/g,"");
	var ary = val.split(".");
	var cnfVal = "";
	if(ary.length == 1){
		cnfVal = val + ".00";
	} else {
		for(var i in ary){
			if(cnfVal == ""){
				cnfVal = ary[i] + ".";
			} else {
				cnfVal += ary[i] + "";
			}
		}
		cnfVal += "00" + "";
	}
	//少数ありのとき
	if(p_flg){
		cnfVal = Math.floor(cnfVal * 100) / 100;
		//if(c_flg) cnfVal = A_Comma2(cnfVal);
	//少数なしのとき
	} else {
		cnfVal = Math.floor(cnfVal * 1);
		//if(c_flg) cnfVal = A_Comma(cnfVal);
	}
	return cnfVal;
}

//srollabletableを設定する（webtoolkit.scrollabletable.jsが読み込まれていること）
//maxH：最大height
//strTableId：tableのID　省略時"ScrollTable1"
function setSclTbl(maxH,strTableId){
	if(strTableId == null) strTableId = "ScrollTable1";
	var bch = document.getElementById("idTbody").clientHeight;
	var hch = document.getElementById("idThead").clientHeight;
	var fch = 0;
	if(document.getElementById("idTfoot") != undefined) fch = document.getElementById("idTfoot").clientHeight;
	var setH = bch + hch + fch + 1;
//	alert(bch + "/" + hch);
	if(maxH != null){
		if(setH > maxH) setH = maxH;
	}
	var t1 = new ScrollableTable(document.getElementById(strTableId),setH);
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　computeDate()
//【処理説明】
//　　年月日と加算日からn日後、n日前を求める関数
//【パラメータ】
//　　fromDate : 年月日（YYYY/MM/DD)
//　　addDays  : 加算日。マイナス指定でn日前も設定可能
//【戻り値】
//  　年月日（YYYY/MM/DD)
////////////////////////////////////////////////////////////////////////////////
function computeDate(fromDate , addDays) {
	fromDate = R_Slash(fromDate);
	var year = fromDate.substr(0,4);
	var month = fromDate.substr(4,2);
	var day = fromDate.substr(6,2);
	var dt = new Date(year, month - 1, day);
	var baseSec = dt.getTime();
	var addSec = addDays * 86400000;//日数 * 1日のミリ秒数
	var targetSec = baseSec + addSec;
	var date = dt.setTime(targetSec);
	var strYear = dt.getFullYear();
	var strMonth = dt.getMonth() + 1;
	if(strMonth < 10){
		strMonth = "0" + strMonth;
	}
	var strDate = dt.getDate();
	if(strDate < 10){
		strDate = "0" + strDate;
	}
	return strYear + "/" + strMonth + "/" + strDate;
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　getMonthEndDay()
//【処理説明】
//　　年月を指定して月末日を求める関数
//【パラメータ】
//　　fromDate : 年月日（YYYY/MM/DD)
//【戻り値】
//  　年月日（YYYY/MM/DD)
////////////////////////////////////////////////////////////////////////////////
function getMonthEndDay(fromDate) {
	//日付を0にすると前月の末日を指定したことになります
	//指定月の翌月の0日を取得して末日を求めます
	//そのため、ここでは month - 1 は行いません
	fromDate = R_Slash(fromDate);
	var year = fromDate.substr(0,4) * 1;
	var month = fromDate.substr(4,2) * 1;
	var dt = new Date(year, month, 0);
	var strYear = dt.getFullYear();
	var strMonth = dt.getMonth() + 1;
	if(strMonth < 10){
		strMonth = "0" + strMonth;
	}
	var strDate = dt.getDate();
	if(strDate < 10){
		strDate = "0" + strDate;
	}
	return strYear + "/" + strMonth + "/" + strDate;
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　computeMonth()
//【処理説明】
//　　年月日と加算月からnヶ月後、nヶ月前の日付を求める関数
//【パラメータ】
//　　fromDate  : 年月日（YYYY/MM/DD)
//　　addMonths : 加算日。加算月。マイナス指定でnヶ月前も設定可能
//【戻り値】
//  　年月日（YYYY/MM/DD)
////////////////////////////////////////////////////////////////////////////////
function computeMonth(fromDate , addMonths) {
	fromDate = R_Slash(fromDate);
	var year = fromDate.substr(0,4) * 1;
	var month = fromDate.substr(4,2) * 1;
	var strDate = fromDate.substr(6,2);
	if(addMonths < 12){
		month += addMonths;
	}else{
		year += Math.floor(addMonths / 12);
		month += addMonths % 12;
	}
	var strYear = String(year);
	var strMonth = String(month);
	if(strMonth < 10){
		strMonth = "0" + strMonth;
	}
	var endDate = R_Slash(getMonthEndDay(strYear+"/"+strMonth+"/"+strDate)).substr(6,2);
	if(strDate > endDate) strDate = endDate;
	//加算月数がマイナスならば上記で求めた翌日
	//加算月数がプラスならば上記で求めた前日
	var strYMD = strYear + "/" + strMonth + "/" + strDate;
	if(addMonths < 0){
		return computeDate(strYMD,1);
	}else{
		return computeDate(strYMD,-1);
	}
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　setToDate()
//【処理説明】
//　　開始日変更時に終了日をセットする関数
//【パラメータ】
//　　なし
//【戻り値】
//　　終了日の値
////////////////////////////////////////////////////////////////////////////////
function setToDate(){
	var from = $("#idDateFrom").val();
	var to = $("#idDateTo").val();
	//終了日の値がセットされていなければ開始日の値をセット
	//終了日の値が開始日よりも小さい場合も開始日の値をセット
	if(to == "" || to < from){
		$("#idDateTo").val(from);
	}
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　setToCode()
//【処理説明】
//　　開始コード変更時に終了コードをセットする関数
//【パラメータ】
//　　コード種類　(例)Cust,Supl,Item等
//【戻り値】
//　　終了コードの値
////////////////////////////////////////////////////////////////////////////////
function setToCode(code){
	var id = "#idTxt" + code + "Code";
	var from = $(id + "1").val();
	var to = $(id + "2").val();
	//終了コードの値がセットされていなければ開始コードの値をセット
	//終了コードの値が開始コードよりも小さい場合も開始コードの値をセット
	if(to == "" || to < from){
		$(id + "2").val(from);
	}
}

////////////////////////////////////////////////////////////////////////////////
//【関数名】
//　　addBG(),rmBG()
//【処理説明】
//　　TDにマウスオーバー、マウスアウトしたときの背景色を変更する関数
//【パラメータ】
//　　ID
//【戻り値】
//　　なし
////////////////////////////////////////////////////////////////////////////////

//背景色　色をつける
function addBG(elm){
	$(elm).addClass("lightBG");
}

//背景色　色をとる
function rmBG(elm){
	$(elm).removeClass("lightBG");
}
