//============================================================================//
//	デバッグ時のフラグ
//	openSimpleWindowでステータスバーを出す
//============================================================================//
//		2002/01/10追加 成田克臣
//============================================================================//
blnDebug = true;

//============================================================================//
//	ページ読込中のsubmit防止の為のﾌﾗｸﾞ作成（読込処理中のsubmit処理を無視する）
//============================================================================//
//	引数
//		なし
//============================================================================//

//blnEX = new Boolean(false);
blnEX = false;

//============================================================================//
//	簡易ウィンドウを開く
//============================================================================//
//	引数
//		wnd     ウィンドウの名前
//		url     開くURL
//		left    ウィンドウの位置（画面の左端からの距離）
//		top     ウィンドウの位置（画面の上端からの距離）
//		width   ウィンドウの横幅
//		height  ウィンドウの高さ
//============================================================================//
function openSimpleWindow(wnd, url, left, top, width, height) {
	var strStatusBar = "no";
	if (blnDebug) {
		strStatusBar = "yes";
	}
	
	myWindow = window.open(url, wnd, 'resizable=yes,scrollbars=YES,menubar=no,toolbar=no,status=' + strStatusBar + ',width=' + width + ',height=' + height + ',left=' + left + ',top=' + top);
	myWindow.focus();
}

//==============================================================================
//	使用可能な文字列かチェックする
//==============================================================================
//	引数
//		obj     対象となるフォーム部品の参照
//		reg     使用可能な文字列パターン
//==============================================================================
function checkUsableString(obj, reg) {
	var ptn;
	ptn = new RegExp("^[" + reg + "]*$");
	if (obj.value.match(ptn) == null) {
		alert("使用できない文字があります。" );
		obj.focus();
		return false;
	}
	else {
		return true;
	}
}

//==============================================================================
//	使用禁止文字列かチェックする
//==============================================================================
//	引数
//		obj     対象となるフォーム部品の参照
//		reg     使用禁止文字列パターン
//==============================================================================
function checkUnusableString(obj, reg) {
	if (obj.value=="") return;

	var ptn;
	ptn = new RegExp("^[" + reg + "]*$");
	if (obj.value.match(ptn)) {
		alert("使用できない文字があります。" );
		obj.focus();
		return false;
	}
	else {
		return true;
	}
}

//============================================================================//
//	文字列の長さをチェックする
//============================================================================//
//	引数
//		obj     対象となるフォーム部品の参照
//		len     最大文字列長
//============================================================================//
function checkLength(obj, len) {
	if (obj.value.length > len){
		alert("文字数が多すぎます。\n" + len + "文字以内で入力してください。");
		obj.focus();
		return false;
	}
	else {
		return true;
	}
}

//============================================================================//
//	日付の形式をチェックする
//============================================================================//
//	引数
//		y       年
//		m       月
//		d       日
//============================================================================//
//	2002.07.02 追加 成田克臣
//============================================================================//
function checkDate(y, m, d) {
	if ((y == "") || (m == "") || (d == "")) {
		return true;
	}
	else {
		year  = "0000" + y;
		month = "00" + m;
		date  = "00" + d;
		
		var year1  =  year.substr(year.length - 4, 4);
		var month1 = month.substr(month.length - 2, 2);
		var date1  = date.substr(date.length - 2, 2);
		
		var perseDate = new Date();
		
		perseDate.setDate(1);
		perseDate.setFullYear(year1);
		perseDate.setMonth(month1 - 1);
		perseDate.setDate(date1);
		
		var year2 = perseDate.getFullYear();
		var month2 = perseDate.getMonth() + 1;
		var date2 = perseDate.getDate();
		
		if (month2 < 10) month2 = "0" + month2;  
		if (date2 < 10) date2 = "0" + date2; 
		
		if ("" + year1 + month1 + date1 == "" + year2 + month2 + date2) { 
			return true;
		}
		else {
			return false;
		}
	}
}

//==============================================================================
//	有効な数値であるかチェックする
//==============================================================================
//	引数
//		obj     対象となるフォーム部品の参照
//		int_len		有効な整数桁数
//		dec_len     有効な小数桁数
//==============================================================================
function checkUsableNumeric(obj, int_len, dec_len){
	if (obj.value=="") return;

	var msg;
	var num_err = new Boolean(false);
	ptn = new RegExp("^[0-9.-]*$");

	if ((isNaN(obj.value)==true)||(obj.value.match(ptn)==null)) {
		num_err = true;
	}else{
		if (parseFloat(obj.value) < 0){
			num_err = true;
		}else{
			strObj = new String(obj.value);
			strPart = strObj.split(".", 2);
			if (strPart[0].length > int_len) num_err = true;
			if (strPart[1]!=null){
				if (strPart[1].length > dec_len) num_err = true;
			}
		}
	}
	if (num_err==true){ 
		msg = "整数部 " + int_len + " 桁";
		if (dec_len!=0) msg += "\n小数部 " + dec_len + " 桁";
		alert(msg + " までの整数を入力してください。");
		obj.focus(); 
		return false;
	}
	else {
		return true;
	}
}

//============================================================================//
//	２度押し防止処理（２回目以降onClickイベントを無視する）
//============================================================================//
//	引数
//		obj     対象となるフォーム部品の参照
//============================================================================//
var intSubmitCount = 0;
function lockClick(obj) {
	if (intSubmitCount > 0) {
		return false;
	}
	else {
		intSubmitCount++;
		return true;
	}
}

//============================================================================//
//	押されたキーをチェックして、指定したASCIIコードと一致したらSUBMIT。
//	FORMタグのonkeydownイベントハンドラとして使用する。
//============================================================================//
//	引数
//		target_form   対象となるフォームの参照
//		submit_button 本来サブミットする為のボタンオブジェクトの参照
//============================================================================//
//	2002.03.06 追加 成田克臣
//============================================================================//
function checkSubmitKey(target_form, submit_button) {
	var key_code = "123"; // "123"はF12
	
	if(document.all) {
		evt = window.event;
	}
	else {
		return;
	}
	
	if (evt.keyCode == key_code) {
		if (submit_button) {
			submit_button.click();
		}
		else {
			target_form.submit();
		}
	}
}

//============================================================================//
//	押されたキーをチェックして、指定したASCIIコードと一致したら処理を行う。
//	BODYタグのonkeydownイベントハンドラとして使用する。
//============================================================================//
//	2002.03.07 追加 成田克臣
//============================================================================//
function checkKeyDownInDocument() {
	if(document.all) {
		evt = window.event;
	}
	else {
		return;
	}
	
	switch (evt.keyCode) {
	case 118: // F7
		window.history.back();
		break;
		
	case 119: // F8
		window.history.forward();
		break;
	}
}

//============================================================================//
//	月数と賃料から金額を計算する（計算結果の桁数チェック版）
//============================================================================//
//	引数
//		field      計算結果を表示するフィールドオブジェクト
//		tsukisuu   月数が入力されたフィールドオブジェクト
//		chinryou   賃料の値
//		kekka_keta 計算結果の最大桁数
//============================================================================//
//	2002.03.13 追加 成田克臣
//============================================================================//
function calcMoney(field, tsukisuu, chinryou, kekka_keta){ 
	if ((tsukisuu.value == "") || (chinryou == "") || kekka_keta <= 0) return;
	
	var kekka = Math.round(Number(tsukisuu.value) * chinryou);
	if (kekka.toString().length > kekka_keta) {
		alert("計算結果（" + kekka + "）が既定の桁数（" + kekka_keta + "）を超えています。");
		tsukisuu.focus();
	}
	else {
		field.value = kekka;
	}
}

//============================================================================//
//	現在チェックされているラジオボタンの値を取得する
//============================================================================//
//	引数
//		obj ラジオボタンのオブジェクトの参照
//============================================================================//
//	2002.07.02 追加 成田克臣
//============================================================================//
function getCheckedRadioValue(obj) {
	var i, value = "";
	if (obj.type = "radio") {
		if (obj.length) {
			for (i = 0; i < obj.length; i++) {
				if (obj[i].checked) {
					value = obj[i].value;
				}
			}
		}
		else {
			if (obj.checked) {
				value = obj.value;
			}
		}
		return value;
	}
	else {
		return false;
	}
}

//============================================================================//
//	和暦から西暦への変換
//============================================================================//
//	引数
//		gengou 1：明治 2：大正 3：昭和 4：平成
//		year   年
//============================================================================//
//	2002.07.02 追加 成田克臣
//============================================================================//
function changeWarekiToSeireki(gengou, year) {
	var ret;
	switch (gengou) {
	// 明治
	case "1":
		if (year >= 1 && year <= 44) {
			ret = Number(year) + 1867;
		}
		else {
			ret = false;
		}
		break;
		
	// 大正
	case "2":
		if (year >= 1 && year <= 14) {
			ret = Number(year) + 1911;
		}
		else {
			ret = false;
		}
		break;
		
	// 昭和
	case "3":
		if (year >= 1 && year <= 63) {
			ret = Number(year) + 1925;
		}
		else {
			ret = false;
		}
		break;
		
	// 平成
	case "4":
		if (year >= 1) {
			ret = Number(year) + 1988;
		}
		else {
			ret = false;
		}
		break;
		
	default:
		ret = false;
	}
	
	return ret;
}

//============================================================================//
//	西暦から和暦への変換
//============================================================================//
//	引数
//		year   年
//============================================================================//
//	2002.07.02 追加 成田克臣
//============================================================================//
function changeSeirekiToWareki(year) {
	if (year > 1988) {
		gengou = "4";
		nen = year - 1988;
	}
	else if (year > 1925) {
		gengou = "3";
		nen = year - 1925;
	}
	else if (year > 1911) {
		gengou = "2";
		nen = year - 1911;
	}
	else if (year > 1867) {
		gengou = "1";
		nen = year - 1867;
	}
	else {
		gengou = "";
		nen = "";
	}
	
	return new Array(gengou, nen);
}

//============================================================================//
//	任意のリンクを開く
//	JavaScriptでリンクを開く必要がある場合に使用する
//============================================================================//
//	引数
//		target   
//		loc      リンク先
//============================================================================//
//	2002.07.08 追加 成田克臣
//============================================================================//
function sendLocation(target, loc) {
	target.location.href = loc;
}

//============================================================================//
//	配列で渡されたオブジェクトの値を空にする
//============================================================================//
//	引数
//		list      オブジェクト配列
//============================================================================//
//	2002.07.09 追加 成田克臣
//============================================================================//
function clearValue() {
	for (i = 0; i < clearValue.arguments.length; i++) {
		if (clearValue.arguments[i] && clearValue.arguments[i].value) {
			clearValue.arguments[i].value = "";
		}
	}
}

//============================================================================//
//	文字列の前後の空白文字を取り除く
//============================================================================//
//	引数
//		str 文字列
//============================================================================//
//	2002.07.09 追加 成田克臣
//============================================================================//
function trim(str) {
	return str.replace(/^\s+|\s+$/g, "");
}

//============================================================================//
//	年月日テキストを取得する
//============================================================================//
//	引数
//		y   年（西暦）
//		m   月
//		d   日
//============================================================================//
//	2002.07.09 追加 成田克臣
//============================================================================//
function getNengappiText(y, m, d) {
	var ret = "";
	if (checkDate(y, m, (d == "00" ? 1 : d))) {
		var wareki = Array();
		wareki = changeSeirekiToWareki(y);
		
		if (wareki[0] == "1" || wareki[0] == "2" || wareki[0] == "3" || wareki[0] == "4") {
			var gengouText = "";
			switch (wareki[0]) {
			case "1":
				gengouText = "明治";
				break;
				
			case "2":
				gengouText = "大正";
				break;
				
			case "3":
				gengouText = "昭和";
				break;
				
			case "4":
				gengouText = "平成";
				break;
			}
			
			nengappiText = y;
			if (gengouText != "") {
				nengappiText += "(" + gengouText + wareki[1] + ")";
			}
			nengappiText += "年" + Number(m) + "月";
			if (d != "00") {
				nengappiText += Number(d) + "日";
			}
			
			ret = nengappiText;
		}
	}
	
	return ret;
}

//============================================================================//
//	ラジオボタンがチェックされているか
//============================================================================//
//	引数
//		obj ラジオボタンのオブジェクトの参照
//============================================================================//
//	2003.04.14 追加 成田克臣
//============================================================================//
function isRadioChecked(obj) {
	var i, ret = false;
	if (obj.type = "radio") {
		if (obj.length) {
			for (i = 0; i < obj.length; i++) {
				if (obj[i].checked) {
					ret = true;
					break;
				}
			}
		}
		else {
			if (obj.checked) {
				ret = true;
			}
		}
	
	}
	
	return ret;
}


//============================================================================//
//	ラジオボタンがチェックされていたらチェックを外す
//============================================================================//
//	引数
//		obj ラジオボタンのオブジェクトの参照
//============================================================================//
//	2003.06.04 追加 成田克臣
//============================================================================//
function uncheckRadioButton(obj) {
	var i;
	if (obj.type = "radio") {
		if (obj.length) {
			for (i = 0; i < obj.length; i++) {
				if (obj[i].checked) {
					obj[i].checked = false;
				}
			}
		}
		else {
			if (obj.checked) {
				obj.checked = false;
			}
		}
	
	}
}
