var globals = new Object();
var chk_name = "check[";
var chk_all_name = "checkall[";

globals["unfinish_elm_array"] = new Array();

//... 複数選択配列をリセット
var input_multiple_frm_array = new Array();
var input_multiple_elm_array = new Array();

//... 読取専用配列をリセット
var input_readonly_frm_array = new Array();
var input_readonly_elm_array = new Array();

function PreloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.P) d.P=new Array();
	var i,j=d.P.length,a=PreloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.P[j]=new Image; d.P[j++].src=a[i];}}
}

function SwapImgRestore() { //v3.0
	var i,x,a=document.Sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function FindObj(n, d) { //v4.0
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=FindObj(n,d.layers[i].document);
	if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function SwapImage() { //v3.0
	var i,j=0,x,a=SwapImage.arguments; document.Sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=FindObj(a[i]))!=null){document.Sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MovePage(url) {
	location.href = url;
}

function Toggle(obj, chk_name_tmp, chk_all_name_tmp) {
	if (chk_name_tmp == undefined) chk_name_tmp = chk_name;
	if (chk_all_name_tmp == undefined) chk_all_name_tmp = chk_all_name;
	
	if (obj.checked) {
		chkall = AllChecked(obj, chk_name_tmp, chk_all_name_tmp);
	} else {
		chkall = false;
	}

	frm = obj.form;
	len = frm.elements.length;
	for(var i = 0 ; i < len ; i++) {
		var obj = frm.elements[i];
		if (obj.name.substring(0, chk_all_name_tmp.length) == chk_all_name_tmp) {
			obj.checked = chkall;
		}
	}
}

function ToggleAll(obj, chk_name_tmp, chk_all_name_tmp) {
	if (chk_name_tmp == undefined) chk_name_tmp = chk_name;
	if (chk_all_name_tmp == undefined) chk_all_name_tmp = chk_all_name;
	
	if (obj.checked) {
		CheckAll(obj, chk_name_tmp, chk_all_name_tmp);
	} else {
		ClearAll(obj, chk_name_tmp, chk_all_name_tmp);
	}
}

function CheckAll(obj, chk_name_tmp, chk_all_name_tmp) {
	if (chk_name_tmp == undefined) chk_name_tmp = chk_name;
	if (chk_all_name_tmp == undefined) chk_all_name_tmp = chk_all_name;
	
	frm = obj.form;
	len = frm.elements.length;
	for(var i = 0 ; i < len ; i++) {
		var obj = frm.elements[i];
		if (((obj.name.substring(0, chk_name_tmp.length) == chk_name_tmp) || (obj.name.substring(0, chk_all_name_tmp.length) == chk_all_name_tmp)) && (obj.name.indexOf("!") < 0)) {
			obj.checked = true;
		}
	}
	return true;
}

function ClearAll(obj, chk_name_tmp, chk_all_name_tmp) {
	if (chk_name_tmp == undefined) chk_name_tmp = chk_name;
	if (chk_all_name_tmp == undefined) chk_all_name_tmp = chk_all_name;
	
	frm = obj.form;
	len = frm.elements.length;
	for(var i = 0 ; i < len ; i++) {
		var obj = frm.elements[i];
		if (((obj.name.substring(0, chk_name_tmp.length) == chk_name_tmp) || (obj.name.substring(0, chk_all_name_tmp.length) == chk_all_name_tmp)) && (obj.name.indexOf("!") < 0)) {
			obj.checked = false;
		}
	}
	return true;
}

function CheckAll2(frm_name, chk_name_tmp, chk_all_name_tmp) {
	if (chk_name_tmp == undefined) chk_name_tmp = chk_name;
	if (chk_all_name_tmp == undefined) chk_all_name_tmp = chk_all_name;
	
	frm = document.forms[frm_name];
	len = frm.elements.length;
	for(var i = 0 ; i < len ; i++) {
		var obj = frm.elements[i];
		if (((obj.name.substring(0, chk_name_tmp.length) == chk_name_tmp) || (obj.name.substring(0, chk_all_name_tmp.length) == chk_all_name_tmp)) && (obj.name.indexOf("!") < 0)) {
			obj.checked = true;
		}
	}
	
}

function ClearAll2(frm_name, chk_name_tmp, chk_all_name_tmp) {
	if (chk_name_tmp == undefined) chk_name_tmp = chk_name;
	if (chk_all_name_tmp == undefined) chk_all_name_tmp = chk_all_name;
	
	frm = document.forms[frm_name];
	len = frm.elements.length;
	for(var i = 0 ; i < len ; i++) {
		var obj = frm.elements[i];
		if (((obj.name.substring(0, chk_name_tmp.length) == chk_name_tmp) || (obj.name.substring(0, chk_all_name_tmp.length) == chk_all_name_tmp)) && (obj.name.indexOf("!") < 0)) {
			obj.checked = false;
		}
	}
	
}

function AllChecked(obj, chk_name_tmp, chk_all_name_tmp) {
	if (chk_name_tmp == undefined) chk_name_tmp = chk_name;
	if (chk_all_name_tmp == undefined) chk_all_name_tmp = chk_all_name;
	
	frm = obj.form;
	len = frm.elements.length;
	for(var i = 0 ; i < len ; i++) {
		var obj = frm.elements[i];
		if ((obj.name.substring(0, chk_name_tmp.length) == chk_name_tmp) && (obj.name.indexOf("!") < 0) && (!obj.checked)) {
			return false;
		}
	}
	return true;
}

function CopyAddress(obj, prefix) {
	frm_name = obj.form.name;

	obj_from = document.forms[frm_name].elements[GetCopyObjectName("a", "country_code")];
	obj_to = document.forms[frm_name].elements[GetCopyObjectName(prefix, "country_code")];

	if (obj_to.type == "select-one") {
		obj_to.selectedIndex = obj_from.selectedIndex;
	}

	obj_from = document.forms[frm_name].elements[GetCopyObjectName("a", "zip_code")];
	obj_to = document.forms[frm_name].elements[GetCopyObjectName(prefix, "zip_code")];
	obj_to.value = obj_from.value;

	obj_from = document.forms[frm_name].elements[GetCopyObjectName("a", "state_jap")];
	obj_to = document.forms[frm_name].elements[GetCopyObjectName(prefix, "state_jap")];
	obj_to.value = obj_from.value;

	obj_from = document.forms[frm_name].elements[GetCopyObjectName("a", "city_jap")];
	obj_to = document.forms[frm_name].elements[GetCopyObjectName(prefix, "city_jap")];
	obj_to.value = obj_from.value;

	obj_from = document.forms[frm_name].elements[GetCopyObjectName("a", "address_jap")];
	obj_to = document.forms[frm_name].elements[GetCopyObjectName(prefix, "address_jap")];
	obj_to.value = obj_from.value;

	obj_from = document.forms[frm_name].elements[GetCopyObjectName("a", "bldg_jap")];
	obj_to = document.forms[frm_name].elements[GetCopyObjectName(prefix, "bldg_jap")];
	obj_to.value = obj_from.value;

	obj_from = document.forms[frm_name].elements[GetCopyObjectName("a", "tel")];
	obj_to = document.forms[frm_name].elements[GetCopyObjectName(prefix, "tel")];
	obj_to.value = obj_from.value;

	obj_from = document.forms[frm_name].elements[GetCopyObjectName("a", "company_name_jap")];
	obj_to = document.forms[frm_name].elements[GetCopyObjectName(prefix, "adrs_name_jap")];
	obj_to.value = obj_from.value;

	obj_from = document.forms[frm_name].elements[GetCopyObjectName("a", "section_name_jap")];
	obj_to.value = obj_to.value + obj_from.value;

	obj_from = document.forms[frm_name].elements[GetCopyObjectName("a", "name_jap") + "[last]"];
	obj_to = document.forms[frm_name].elements[GetCopyObjectName(prefix, "name_jap") + "[last]"];
	obj_to.value = obj_from.value;

	obj_from = document.forms[frm_name].elements[GetCopyObjectName("a", "name_jap") + "[first]"];
	obj_to = document.forms[frm_name].elements[GetCopyObjectName(prefix, "name_jap") + "[first]"];
	obj_to.value = obj_from.value;
	
	return true;
}

function GetCopyObjectName(prefix, name) {
	obj_name = "i[1][";
	obj_name = obj_name + prefix.toLowerCase();
	obj_name = obj_name + "_";
	obj_name = obj_name + name;
	obj_name = obj_name + "][1]";

	return obj_name;
}

function trimDateStr(obj) {
	str = obj.value;
	str2 = "";
	dateNow = new Date();
	yyyy = 0;
	mm = 0;
	dd = 0;



	if (str.match(/^([0-9]{1,2})[/-]([0-9]{1,2})$/)) {
		var yyyy = new Date(dateNow.getFullYear());
		var mm = RegExp.$1 - 1;
		var dd = RegExp.$2;
		
		dateInput = new Date(yyyy, mm, dd);
		yyyy = dateInput.getFullYear();
		mm = dateInput.getMonth() + 1;
		dd = dateInput.getDate();
		
	} else if (str.match(/^([0-9]{1,4})[/-]([0-9]{1,2})[/-]([0-9]{1,2})$/)) {
		var yyyy = convYear(RegExp.$1);
		var mm = RegExp.$2 - 1;
		var dd = RegExp.$3;
		
		if (yyyy > 0) {
			dateInput = new Date(yyyy, mm, dd);
			yyyy = dateInput.getFullYear();
			mm = dateInput.getMonth() + 1;
			dd = dateInput.getDate();
		}
		
	} else if (str.match(/^([0-9]{0,4})([0-9]{2})([0-9]{2})$/)) {
		var yyyy = convYear(RegExp.$1);
		var mm = RegExp.$2 - 1;
		var dd = RegExp.$3;
		
		if (yyyy > 0) {
			dateInput = new Date(yyyy, mm, dd);
			yyyy = dateInput.getFullYear();
			mm = dateInput.getMonth() + 1;
			dd = dateInput.getDate();
		}
	}

	if (yyyy > 0) {
		if (mm < 10) mm = "0" + mm;
		if (dd < 10) dd = "0" + dd;
		str2 = yyyy + "/" + mm + "/" + dd;
	}

	obj.value = str2;
}

function trimTimeStr(obj, skip_sec_flg) {
	str = obj.value;
	str2 = "";
	dateNow = new Date();

	var yyyy = dateNow.getFullYear();
	var mm = dateNow.getMonth();
	var dd = dateNow.getDate();
	var hh = 0;
	var ii = 0;
	var ss = 0;
	
	var write_flg = false;

	if (str.match(/^([0-9]{1,2})[:-]([0-9]{1,2})[:-]([0-9]{1,2})$/)) {
		write_flg = true;
		var hh = RegExp.$1;
		var ii = RegExp.$2;
		var ss = RegExp.$3;
		
	} else if (str.match(/^([0-9]{1,2})[:-]([0-9]{1,2})$/)) {
		write_flg = true;
		var hh = RegExp.$1;
		var ii = RegExp.$2;
		
	} else if (str.match(/^([0-9]{1,2})[:-]$/)) {
		write_flg = true;
		var hh = RegExp.$1;
		
	} else if (str.match(/^([0-9]{1,2})([0-9]{2})([0-9]{2})$/)) {
		write_flg = true;
		var hh = RegExp.$1;
		var ii = RegExp.$2;
		var ss = RegExp.$3;
		
	} else if (str.match(/^([0-9]{1,2})([0-9]{2})$/)) {
		write_flg = true;
		var hh = RegExp.$1;
		var ii = RegExp.$2;
		
	} else if (str.match(/^([0-9]{1,2})$/)) {
		write_flg = true;
		var hh = RegExp.$1;
	}
	
	if (write_flg) {
		dateInput = new Date(yyyy, ii, dd, hh, ii, ss);
		hh = dateInput.getHours();
		ii = dateInput.getMinutes();
		ss = dateInput.getSeconds();

		if (hh < 10) hh = "0" + hh;
		if (ii < 10) ii = "0" + ii;
		if (ss < 10) ss = "0" + ss;

		if (skip_sec_flg) {
			str2 = hh + ":" + ii;
		} else {
			str2 = hh + ":" + ii + ":" + ss;
		}
	}
	
	obj.value = str2;
}

function convYear(y) {
	dateNow = new Date();
	if (y == "") {
		return dateNow.getFullYear();
	}
	
	y = y - 0;

	if (y < dateNow.getFullYear() + 20 - 2000) {
		return y + 2000;
	} else if (y < 100) {
		return y + 1900;
	} else if (y > dateNow.getFullYear() - 150) {
		return y;
	} else {
		return 0;
	}
}

function trimZipCodeStr(obj) {
	if (obj.type != "text") {
		return false;
	}
	
	str = obj.value;

	if (str.match(/^([0-9]{3})\-?([0-9]{4})$/)) {
		str = RegExp.$1 + "-" + RegExp.$2;
	}

	obj.value = str;
	
	return false;
}

function ProceedFocus(obj, maxlength) {
	var keyCode;
		
	if (navigator.appName.indexOf("Netscape")>=0) {
		keyCode = evtNow.which;
	} else {
		keyCode = event.keyCode;
	}

	if (!((keyCode>=48 && keyCode<=57) || (keyCode>=65 && keyCode<=90) || (keyCode>=96 && keyCode<=105))) {
		return;
	}

	if (obj.value.length >= maxlength) {
		for (i = 0; i < obj.form.elements.length; i++) {
			if (obj == obj.form.elements[i]) {
				for (j = i + 1; j < obj.form.elements.length; j++) {
					if ((obj.form.elements[j].type == "text") || (obj.form.elements[j].type == "button") || (obj.form.elements[j].type == "submit")) {
						obj.form.elements[j].focus();
						return;
					}
				}
			}
		}
	}
}

function RefreshForm(obj) {
	obj.form.mode.value = "R_input";
	submit_flg = true;
	obj.form.submit();
	
}

submit_flg = false;

function submitForm(obj, flg, msg, outer_flg){
	return SubmitForm(obj, flg, msg, outer_flg);
}

function SubmitForm(obj, flg, msg, outer_flg) {
	var frm = obj.form;
	var frm_name = frm.name;

	if (submit_flg) {
		alert("送信中です。しばらくお待ちください。");
		return false;
	}

	if (((obj.name.indexOf("delete") >= 0) || (obj.name.indexOf("alert") >= 0)) && (obj.name.indexOf("skip_confirm") < 0)) {
		if ((msg != undefined) && (msg != "")) {
		} else {
			msg = "ほんとうによろしいですか?"
		}
		if (!confirm(msg)) {
			submit_flg = false;
			return;
		}
	}

	SelectMultipleOptions(frm_name);

	ToggleInputReadonly(frm);

	frm.mode.value = obj.name;
	
	if (flg != undefined) {
		submit_flg = flg;
	} else {
		submit_flg = true;
	}
	
	//... 送信コールバックが指定されているとき
	if (node_obj[frm_name] != undefined) {
		if (node_obj[frm_name]["callback_onsubmit"] != undefined) {
			return node_obj[frm_name]["callback_onsubmit"](frm_name);
		}
	}

	if (outer_flg) {
		SubmitFormOuterHTML(frm_name);
	} else {
		if (!CheckUnfinishOnSubmit(frm)) return false;
		
		frm.submit();
	}
	
	return true;
}

function SubmitFormOuter(element_id, obj, flg, msg) {
	var frm = obj.form;
	var node_id = frm.name;

	//... ノードIDオブジェクトをセット
	if (node_obj[node_id] == undefined) {
		node_obj[node_id] = new Object();
	}
	
	//... エレメントIDをセット
	if ((element_id != undefined) && (element_id != "")) {
		node_obj[node_id]["element_id"] = element_id;
	}
	
	if (node_obj[node_id]["loading_str"] == undefined) {
		node_obj[node_id]["loading_str"] = "";
	}

	submitForm(obj, flg, msg, 1);
}

function CheckBeforeSubmitForm(obj) {
	//if (obj.name.indexOf("delete") >= 0) {
		str = "ほんとうによろしいですか?"
		if (!confirm(str)) return;
	//}
	
	submitForm(obj);
}

function ClearSubmitFlg(node_id) {
	submit_flg = false;
}

function submitForm2(frm_name, obj_name, flg, msg, outer_flg) {
	return SubmitForm2(frm_name, obj_name, flg, msg, outer_flg);
}

function SubmitForm2(frm_name, obj_name, flg, msg, outer_flg) {
	//... フォームをセット
	var frm = document.forms[frm_name];
	
	//... ノードIDをセット
	var node_id = frm_name;
	
	//... 外部フラグがONのとき
	if (outer_flg) {
		//... ノードオブジェクトが指定されているとき
		if (node_obj[node_id] != undefined) {
			//... フォームが指定されているとき
			if (node_obj[node_id]["frm_name"] != undefined) {
				frm_name = node_obj[node_id]["frm_name"];
				frm = document.forms[frm_name];
			} else if (node_obj[node_id]["frm"] != undefined) {
				frm = node_obj[node_id]["frm"];
				frm_name = frm.name;
			}
		}
	}

	if (submit_flg) {
		alert("送信中です。しばらくお待ちください。");
		return false;
		
	} else {

		if (obj_name != undefined) {
			if (((obj_name.indexOf("delete") >= 0) || (obj_name.indexOf("alert") >= 0)) && (obj_name.indexOf("skip_confirm") < 0)) {
				if ((msg != undefined) && (msg != "")) {
				} else {
					msg = "ほんとうによろしいですか?"
				}
				if (!confirm(msg)) {
					submit_flg = false;
					return;
				}
			}

			frm.mode.value = String.fromCharCode(37) + obj_name;
			//alert("#1 node_id:" + node_id + " frm:" + frm.name + " mode:" + frm.mode.value);
		}

		SelectMultipleOptions(frm_name);

		ToggleInputReadonly(frm);
		
		if (flg != undefined) {
			submit_flg = flg;
		} else {
			submit_flg = true;
		}
		
		//... 送信コールバックが指定されているとき
		if (node_obj[node_id] != undefined) {
			if (node_obj[node_id]["callback_onsubmit"] != undefined) {
				return node_obj[node_id]["callback_onsubmit"](node_id);
			}
		}
		
		//... 外部フラグがONのとき
		if (outer_flg) {
			SubmitFormOuterHTML(node_id);
		} else {
			if (!CheckUnfinishOnSubmit(frm)) return false;

			frm.submit();
		}
		
		return true;
	}
}

function SubmitFormOuter2(element_id, node_id, obj_name, flg, msg) {
	//... ノードIDオブジェクトをセット
	if (node_obj[node_id] == undefined) {
		node_obj[node_id] = new Object();
	}
	
	//... エレメントIDをセット
	if ((element_id != undefined) && (element_id != "")) {
		node_obj[node_id]["element_id"] = element_id;
	}
	
	if (node_obj[node_id]["loading_str"] == undefined) {
		node_obj[node_id]["loading_str"] = "";
	}
	
	/*
	
	//... フォームが指定されているとき
	if (node_obj[node_id]["frm"] != undefined) {
		//... フォーム名をセット
		var frm_name = node_obj[node_id]["frm"].name;
	} else {
	}
	*/
	//... フォーム名をセット
	var frm_name = node_id;
	
	//... フォームを送信
	submitForm2(frm_name, obj_name, flg, msg, 1);
}

function SelectMultipleOptions(frm_name) {

	//... フォームの要素分ループ
	for (var i = 0; i < input_multiple_frm_array.length; i++) {
		if (input_multiple_frm_array[i] == frm_name) {
		
			//... エレメントをセット
			var elm = document.forms[input_multiple_frm_array[i]].elements[input_multiple_elm_array[i]];
			
			//... エレメントが存在するとき
			if (elm != undefined) {
				//... エレメントの要素分ループ
				for (var j = 0; j < elm.length; j++) {
					//... 値が空白のとき
					if (elm.options[j].value == "") {
						continue;
					}
					
					//... 要素を選択
					elm.options[j].selected = true;
				}
			}
		}
	}
}

function ToggleInputReadonly(frm) {

	//... フォームの要素分ループ
	for (var i = 0; i < frm.elements.length; i++) {
		//... エレメントをセット
		var elm = frm.elements[i];
		
		if ((elm.disabled) && (elm.className == "readonly")) {
			//... 入力不可を解除
			elm.disabled = false;
		}
	}
}

function ConvToUpper(obj) {
/*
	var keyCode;
		
	if (navigator.appName.indexOf("Netscape")>=0) {
		keyCode = evtNow.which;
	} else {
		keyCode = event.keyCode;
	}

	if (!((keyCode>=48 && keyCode<=57) || (keyCode>=65 && keyCode<=90) || (keyCode>=96 && keyCode<=105))) {
		return;
	}
*/
	obj.value = obj.value.toUpperCase();
}

function ConvToLower(obj) {
/*
	var keyCode;
		
	if (navigator.appName.indexOf("Netscape")>=0) {
		keyCode = evtNow.which;
	} else {
		keyCode = event.keyCode;
	}

	if (!((keyCode>=48 && keyCode<=57) || (keyCode>=65 && keyCode<=90) || (keyCode>=96 && keyCode<=105))) {
		return;
	}
*/
	obj.value = obj.value.toLowerCase();
}

function MoveFocus(obj_this) {
	var keyCode;
		
	if (navigator.appName.indexOf("Netscape")>=0) {
		keyCode = evtNow.which;
	} else {
		keyCode = event.keyCode;
	}

	//... キーコードごとに分岐
	switch (keyCode) {
		//... 下キーのとき
		case 40:
			return MoveFocus2(obj_this, 1);
			break;

		//... 上キーのとき
		case 38:
			return MoveFocus2(obj_this, -1);
			break;
	}

	return true;

}

function MoveFocus2(obj_this, dir) {

	frm_this = obj_this.form;
	obj_this_name = obj_this.name;
	obj_this_type = obj_this.type;

	pos_tmp = obj_this_name.indexOf("[") + 1;
	pos_tmp += obj_this_name.substr(pos_tmp).indexOf("[") + 1;
	pos_tmp += obj_this_name.substr(pos_tmp).indexOf("[");
	var obj_this_prefix = obj_this_name.substr(0, pos_tmp);

	pos_tmp = obj_this_name.indexOf("]") + 1;
	pos_tmp += obj_this_name.substr(pos_tmp).indexOf("]") + 1;
	pos_tmp += obj_this_name.substr(pos_tmp).indexOf("]") + 1;
	var obj_this_postfix = obj_this_name.substr(pos_tmp);
	
	exist_flg = false;

	if (dir == 1) {
		loop_start = 0;
		loop_end = frm_this.length - 1;
	} else {
		loop_start = frm_this.length - 1;
		loop_end = 0;
	}
	
	for (var i = loop_start; ((0 <= i) && (i <= frm_this.length - 1)); i = i + dir) {
		obj = frm_this.elements[i];
		obj_name = obj.name;
		obj_type = obj.type;
		
		if (obj_type != obj_this_type) {
			continue;
		}
		
		if (obj_name == obj_this_name) {
			exist_flg = true;
			continue;
		}

		if (exist_flg) {
			pos_tmp = obj_name.indexOf("[") + 1;
			pos_tmp += obj_name.substr(pos_tmp).indexOf("[") + 1;
			pos_tmp += obj_name.substr(pos_tmp).indexOf("[");
			var obj_prefix = obj_name.substr(0, pos_tmp);

			pos_tmp = obj_name.indexOf("]") + 1;
			pos_tmp += obj_name.substr(pos_tmp).indexOf("]") + 1;
			pos_tmp += obj_name.substr(pos_tmp).indexOf("]") + 1;
			var obj_postfix = obj_name.substr(pos_tmp);

			if ((obj_prefix == obj_this_prefix) && (obj_postfix == obj_this_postfix)) {
				obj.focus();
				return false;
			}
		}
	}
	
	return true;
}

//... リピート入力隠し関数
function HideRepeatInput(frm_name, table_id, relation_no, repeat_end_num) {
		
	//... リピート番号をリセット
	repeat_num = repeat_end_num;

	//... 隠しカウンタをセット
	hide_count = 0;

	//... 無条件ループ
	while (1) {
		//... リピート番号をインクリメント
		repeat_num++;
		
		//... エレメント名をセット
		element_name = "i";
		element_name += "[1]";
		element_name += "[_" + relation_no + "_regist]";
		element_name += "[" + repeat_num + "]";
		
		//... エレメントをセット
		elm = document.forms[frm_name].elements[element_name];
		
		//... エレメントが存在しないとき
		if ((elm == undefined) || (repeat_num > 99)) {
			break;
		}
		
		//... エレメントの値がOFFのとき
		if (elm.value == "N") {
			//... オブジェクトIDをセット
			oid = table_id;
			oid += "-relation";
			oid += "-" + relation_no;
			oid += "-" + repeat_num;
			
			div = document.getElementById(oid);
			div.style.display = 'none';

			//... 隠しカウンタをインクリメント
			hide_count++;
		}
	}
	
	//... 隠しカウンタが0のとき
	if (hide_count == 0) {
		//... オブジェクトIDをセット
		oid = table_id;
		oid += "-relation";
		oid += "-" + relation_no;
		oid += "-add";
		
		div = document.getElementById(oid);
		
		if (div != undefined) {
			div.style.display = 'none';
		}
	}

	return true;
}

//... リピート入力追加関数
function AddRepeatInput(frm_name, table_id, relation_no, repeat_base, repeat_end_num) {
		
	//... リピート番号をリセット
	repeat_num = repeat_end_num;
	
	//... 隠しカウンタをセット
	hide_count = 0;
	
	//... 処理済みフラグをリセット
	done_flg = false;

	//... 無条件ループ
	while (1) {
		//... リピート番号をインクリメント
		repeat_num++;
		
		//... エレメント名をセット
		element_name = "i";
		element_name += "[" + repeat_base + "]";
		element_name += "[_" + relation_no + "_regist]";
		element_name += "[" + repeat_num + "]";
		
		//... エレメントをセット
		elm = document.forms[frm_name].elements[element_name];
		
		//... エレメントが存在しないとき
		if ((elm == undefined) || (repeat_num > 99)) {
			break;
		}
		
		//... エレメントの値がOFFのとき
		if (elm.value == "N") {
			//... 処理済みフラグがOFFのとき
			if (!done_flg) {
				//... エレメントの値をセット
				elm.value = "";
				
				//... オブジェクトIDをセット
				oid = table_id;
				oid += "-relation";
				oid += "-" + relation_no;
				oid += "-" + repeat_base;
				oid += "-" + repeat_num;

				div = document.getElementById(oid);
				div.style.display = 'inline';
				
				//... 処理済みフラグをONにセット
				done_flg = true;
				
			} else {
				//... 隠しカウンタをインクリメント
				hide_count++;
			}
		}
	}
	
	//... 隠しカウンタが0のとき
	if (hide_count == 0) {
		//... オブジェクトIDをセット
		oid = table_id;
		oid += "-relation";
		oid += "-" + relation_no;
		oid += "-" + repeat_base;
		oid += "-add";
		
		div = document.getElementById(oid);
		div.style.display = 'none';
	}
	
	return;
}

//... リピート入力削除関数
function DeleteRepeatInput(frm_name, table_id, relation_no, repeat_base, repeat_num) {
	
	//... エレメント名をセット
	element_name = "i";
	element_name += "[" + repeat_base + "]";
	element_name += "[_" + relation_no + "_regist]";
	element_name += "[" + repeat_num + "]";
	
	//... エレメントをセット
	elm = document.forms[frm_name].elements[element_name];
	
	//... エレメントが存在しないとき
	if ((elm == undefined) || (repeat_num > 99)) {
		return true;
	}

	//... エレメントの値をセット
	elm.value = "N";
	
	//... オブジェクトIDをセット
	oid = table_id;
	oid += "-relation";
	oid += "-" + relation_no;
	oid += "-" + repeat_base;
	oid += "-" + repeat_num;
	
	div = document.getElementById(oid);
	div.style.display = 'none';

	//... オブジェクトIDをセット
	oid = table_id;
	oid += "-relation";
	oid += "-" + relation_no;
	oid += "-" + repeat_base;
	oid += "-add";
	
	div = document.getElementById(oid);
	div.style.display = 'inline';
		
	return;
}

repeat_callback_before = new Object();
repeat_callback_after = new Object();
var repeat_num_max = new Object();

//... リピート入力追加関数
function PlusRepeatInput(table_id, relation_no, repeat_base, repeat_num, frm_name, oid_insert_org, oid_after_org, skip_callback) {
	//... リピート最大番号がセットされていないとき
	if (repeat_num_max[frm_name + "_" + relation_no] == undefined) {
		repeat_num_max[frm_name + "_" + relation_no] = 0;
	}
	
	//... リピート変更コールバックが指定されているとき
	if (repeat_callback_before[frm_name + "_" + relation_no] != undefined) {
		if (!repeat_callback_before[frm_name + "_" + relation_no](table_id, relation_no, repeat_base, repeat_num, frm_name, "", "%p")) {
			return;
		}
	}
	
	//... オブジェクトIDをセット
	if (oid_insert_org != undefined) {
		var oid_insert = oid_insert_org;
	} else {
		var oid_insert = table_id + "-relation" + "-" + relation_no + "-" + repeat_base + "-!row!";
	}

	var elm_insert = document.getElementById(oid_insert);
	
	if (oid_after_org != undefined) {
		var oid_after = oid_after_org;

	} else {
		if (repeat_num > 0) {
			//... オブジェクトIDをセット
			var oid_after = table_id + "-relation" + "-" + relation_no + "-" + repeat_base + "-" + repeat_num;
			
		} else {
			var oid_after = "";
		}
	}
	
	if (oid_after != "") {
		var elm_after = document.getElementById(oid_after);
	} else {
		var elm_after = null;
	}
	
	//... 最大リピートをインクリメント
	repeat_num_max[frm_name + "_" + relation_no]++;
	
	//... カウンタをリセット
	count = 0;
	
	while (1) {
		//... カウンタをインクリメント
		count++;
		
		//... オブジェクトIDをセット
		oid = table_id + "-relation" + "-" + relation_no + "-" + repeat_base + "-" + count;
		
		//... エレメントが存在しないとき
		if (document.getElementById(oid) == null) {
			break;
		}
		
	
	}
	
	//... カウンタが最大リピートよりも大きいとき
	if (count > repeat_num_max[frm_name + "_" + relation_no]) {
		//... 最大リピートをセット
		repeat_num_max[frm_name + "_" + relation_no] = count;
	}
	
	//... 最大リピートをセット
	var repeat_max = repeat_num_max[frm_name + "_" + relation_no];

	//... タグ名をセット
	var tag_name = elm_insert.tagName;
	
	//... 新規エレメントを作成
	var elm_new = document.createElement(tag_name);

	//... オブジェクトIDをセット
	if (oid_insert_org != undefined) {
		var oid_new = oid_insert_org;
	} else {
		var oid_new = table_id + "-relation" + "-" + relation_no + "-" + repeat_base + "-" + repeat_max;
	}
		
	//... 新規エレメントのIDをセット
	elm_new.id = oid_new;
	
	//... 新規エレメントのスタイルをセット
	elm_new.style.display = "block";
	
	//... HTMLをセット
	var html = elm_insert.innerHTML.replace(/!row\!/g, repeat_max);
	
	if (oid_insert_org != undefined) {
		var elm_delete = document.getElementById(oid_insert_org);
		elm_after.parentNode.removeChild(elm_delete);

	}
	
	//... タグ名がDIVのとき
	if ((tag_name == "DIV") || (tag_name == "P")) {
		//... 新規エレメントのHTMLをセット
		elm_new.innerHTML = html;

	} else {
		//... TD挿入エレメント配列を取得
		var td_insert_array = elm_insert.getElementsByTagName("td");

		//... TD挿入エレメント配列の要素分ループ
		for (var i = 0; i < td_insert_array.length; i++) {
			//... 新規エレメントを作成
			var td_insert = td_insert_array[i];

			//... 新規エレメントを作成
			var td_new = document.createElement("td");

			td_new.id = td_insert.id.replace(/!row\!/g, repeat_max);

			td_new.className = td_insert.className;

			td_new.innerHTML = td_insert.innerHTML.replace(/!row\!/g, repeat_max);
		//prompt("", td_new.innerHTML);
			
			//... TD新規エレメントをTR新規エレメントの子ノードにセット
			elm_new.insertBefore(td_new, null);
			
		}


	}
	
	//... 新規エレメントを挿入エレメントの前にセット
	//alert("ID:" + oid_new + "を、ID：" + oid_after + "の前に挿入します");
	
	if (oid_insert_org != undefined) {
		elm_after.parentNode.insertBefore(elm_new, elm_after);
	} else {
		elm_insert.parentNode.insertBefore(elm_new, elm_after);
	}
	//alert("ID:" + oid_new + "を、ID：" + oid_after + "の前に挿入しました");

	SetRepeatInputNum(table_id, relation_no, repeat_base);
	
	if ((!skip_callback) || (skip_callback == undefined)) {
		if (repeat_callback_after[frm_name + "_" + relation_no] != undefined) {
			repeat_callback_after[frm_name + "_" + relation_no](frm_name, repeat_max, "%p");
		}
	}

	return repeat_max;
}

//... リピート入力削除関数
function MinusRepeatInput(table_id, relation_no, repeat_base, repeat_num, frm_name, oid_delete_org) {
	//... リピート変更コールバックが指定されているとき
	if (repeat_callback_before[frm_name + "_" + relation_no] != undefined) {
		if (!repeat_callback_before[frm_name + "_" + relation_no](table_id, relation_no, repeat_base, repeat_num, frm_name, "", "%m")) {
			return;
		}
	}

	//... フォームをセット
	var frm = document.forms[frm_name];
	
	//... リピート番号が0のとき
	if (repeat_num == 0) {
		//... 確認メッセージ
		if (!confirm("すべての行を削除します。よろしいですか?\n（[OK]->削除します　[キャンセル]->何もしません）")) return;
		
		//... オブジェクトIDをセット
		var oid_delete = table_id + "-relation" + "-" + relation_no + "-" + repeat_base;

		//... 親エレメントをセット
		var elm_parent = document.getElementById(oid_delete);
		
		//... TRエレメント配列をセット
		var elm_tr_array = elm_parent.getElementsByTagName("tr");
		
		//... TRエレメント配列の要素分ループ
		for (var i = elm_tr_array.length - 1; i >= 0; i--) {
			//... TRエレメントをセット
			var elm_tr = elm_tr_array[i];
			
			//... TRエレメントのIDがオブジェクトIDを含むとき
			if (elm_tr.id.indexOf(oid_delete + "-") >= 0) {
				if (elm_tr.id.substr(oid_delete.length + 1).match(/^[0-9]+$/)) {
					//... TRエレメントを削除
					elm_tr.parentNode.removeChild(elm_tr);
				}
			}
		}
		
		//... divエレメント配列をセット
		var elm_div_array = elm_parent.getElementsByTagName("div");
		
		//... divエレメント配列の要素分ループ
		for (var i = elm_div_array.length - 1; i >= 0; i--) {
			//... divエレメントをセット
			var elm_div = elm_div_array[i];
			
			//... divエレメントのIDがオブジェクトIDを含むとき
			if (elm_div.id.indexOf(oid_delete + "-") >= 0) {
				if (elm_div.id.substr(oid_delete.length + 1).match(/^[0-9]+$/)) {
					//... divエレメントを削除
					elm_div.parentNode.removeChild(elm_div);
				}
			}
		}
		
		var repeat_count = 0;

	//... リピート番号が-1のとき
	} else if (repeat_num == -1) {
		//... リピート番号配列をセット
		var repeat_num_array = new Array();
		
		//... カウンタをセット
		var count = 0;
		
		//... ループ開始
		for (var i = 0; i < frm.elements.length; i++) {
			//... エレメント名が存在しないとき
			if (frm.elements[i].name == undefined) {
				continue;
			}
			
			//... エレメント名が数量でないとき
			if (frm.elements[i].name.indexOf("_check_" + relation_no + "[") < 0) {
				continue;
				
			} else if (frm.elements[i].checked) {
				//... リピート番号配列をセット
				if (frm.elements[i].name.match(/\[([^\]]+)\]$/)) {
					repeat_num_array[count] = RegExp.$1;
				}
				
				//... カウンタをインクリメント
				count++;
			}
		}
		
		//... カウンタが0のとき
		if (count == 0) return;
		
		//... 確認メッセージ
		if (!confirm("チェックした行を削除します。よろしいですか?\n（[OK]->削除します　[キャンセル]->何もしません）")) return;

		//... リピート番号配列の要素分ループ
		for (var i = 0; i < repeat_num_array.length; i++) {
			//... リピート番号をセット
			var repeat_num = repeat_num_array[i];

			//... オブジェクトIDをセット
			var oid_delete = table_id + "-relation" + "-" + relation_no + "-" + repeat_base + "-" + repeat_num;
			
			elm_row = document.getElementById(oid_delete);
			elm_row.parentNode.removeChild(elm_row);
		}
		
		var repeat_count = SetRepeatInputNum(table_id, relation_no, repeat_base);

	//... リピート番号が0でないとき
	} else {
		//... オブジェクトIDをセット
		if (oid_delete_org != undefined) {
			var oid_delete = oid_delete_org;
			
		} else {
			var oid_delete = table_id + "-relation" + "-" + relation_no + "-" + repeat_base + "-" + repeat_num;
		}
		
		elm_row = document.getElementById(oid_delete);
		elm_row.parentNode.removeChild(elm_row);
		
		var repeat_count = SetRepeatInputNum(table_id, relation_no, repeat_base);
	}
	
	if (repeat_callback_after[frm_name + "_" + relation_no] != undefined) {
		repeat_callback_after[frm_name + "_" + relation_no](frm_name, repeat_count, "%m");
	}

	return repeat_count;
}

//... リピート入力入れ替え関数
function SwapRepeatInput(table_id, relation_no, repeat_base, repeat_num, frm_name, swap_dir) {
	//... リピート変更コールバックが指定されているとき
	if (repeat_callback_before[frm_name + "_" + relation_no] != undefined) {
		if (!repeat_callback_before[frm_name + "_" + relation_no](table_id, relation_no, repeat_base, repeat_num, frm_name, swap_dir, "%w")) {
			return;
		}
	}

	//... オブジェクトIDをセット
	var oid_parent = table_id + "-relation" + "-" + relation_no + "-" + repeat_base;
		
	//... 親エレメントをセット
	var elm_parent = document.getElementById(oid_parent);
	
	//... TRエレメント配列をセット
	var elm_tr_array = elm_parent.getElementsByTagName("tr");

	//... オブジェクトIDをセット
	var oid_current = oid_parent + "-" + repeat_num;
	
	//... エレメントID配列をセット
	var oid_array = new Array();
	
	//... 現在IDカウンタをセット
	var oid_count = -1;
	var count = -1;
	//alert("親IDは"+oid_parent);
	
	//... TRエレメント配列の要素分ループ
	for (var i = 0; i < elm_tr_array.length; i++) {
		//... TRエレメントをセット
		var elm_tr = elm_tr_array[i];
		
		//... エレメントIDをセット
		var oid_tmp = elm_tr.id;
			//alert("一時IDは"+oid_tmp);
		
		//... TRエレメントのIDがオブジェクトIDを含むとき
		if (oid_tmp.indexOf(oid_parent + "-") >= 0) {
			//... カウンタをインクリメント
			count++;
			//alert("カウンタ" + count + "の一時IDは"+oid_tmp);
			
			//... エレメントID配列をセット
			oid_array[count] = oid_tmp;
			
			//... エレメントIDが現在のIDと一致するとき
			if (oid_tmp == oid_current) {
			//alert("カウンタ" + count + "で一時ID：" + oid_tmp + "と現在ID：" + oid_current + "が一致しました。");
				//... 現在IDカウンタをセット
				oid_count = count;
			}
		}
	}
	
	//... 後IDがセットされていないとき
	if (oid_count == -1) {
		
		//... divエレメント配列をセット
		var elm_div_array = elm_parent.getElementsByTagName("div");
		
		//... divエレメント配列の要素分ループ
		for (var i = 0; i < elm_div_array.length; i++) {
			//... divエレメントをセット
			var elm_div = elm_div_array[i];
			
			//... エレメントIDをセット
			var oid_tmp = elm_div.id;
			
			//... divエレメントのIDがオブジェクトIDを含むとき
			if (oid_tmp.indexOf(oid_parent + "-") >= 0) {
				//... カウンタをインクリメント
				count++;
				
				//... エレメントID配列をセット
				oid_array[count] = oid_tmp;
				
				//... エレメントIDが現在のIDと一致するとき
				if (oid_tmp == oid_current) {
					//... 現在IDカウンタをセット
					oid_count = count;
				}
			}
		}
	}
	
	//alert("順序フラグは" + swap_dir + "、現在カウンタは" + oid_count);
	//... 順序フラグが上のとき
	if (swap_dir == 0) {
		//... 現在IDカウンタが0のとき
		if (oid_count <= 1) {
			return;
		}

		//... 削除ID、挿入IDをセット
		var oid_insert = oid_array[oid_count];
		var oid_after = oid_array[oid_count - 1];
	
	//... 順序フラグが下のとき
	} else {
		//... 現在IDカウンタが最後のとき
		if (oid_count == count) {
			return;
		}
		
		//... 削除ID、挿入IDをセット
		var oid_insert = oid_array[oid_count + 1];
		var oid_after = oid_array[oid_count];
		
	}
	
	//... エレメントを入れ替え
	//alert("ID:" + oid_insert + "の内容を、ID：" + oid_after + "の前に挿入します");
	var repeat_max = PlusRepeatInput(table_id, relation_no, repeat_base, repeat_num, frm_name, oid_insert, oid_after, true);
	
	if (repeat_callback_after[frm_name + "_" + relation_no] != undefined) {
		repeat_callback_after[frm_name + "_" + relation_no](frm_name, repeat_max, "%w");
	}
	
	return repeat_max;
}

//... リピート入力コピー関数
function CopyRepeatInput(table_id, relation_no, repeat_base, repeat_num, frm_name) {
	//... リピート変更コールバックが指定されているとき
	if (repeat_callback_before[frm_name + "_" + relation_no] != undefined) {
		if (!repeat_callback_before[frm_name + "_" + relation_no](table_id, relation_no, repeat_base, repeat_num, frm_name, "", "%c")) {
			return;
		}
	}

	//... フォームをセット
	var frm = document.forms[frm_name];
	
	//... リピート番号配列をセット
	var repeat_num_array = new Array();
	
	//... リピート番号が-1のとき
	if (repeat_num == -1) {
	
		//... カウンタをセット
		var count = 0;
		
		//... ループ開始
		for (var i = 0; i < frm.elements.length; i++) {
			//... エレメント名が存在しないとき
			if (frm.elements[i].name == undefined) {
				continue;
			}
			
			//... エレメント名が数量でないとき
			if (frm.elements[i].name.indexOf("_check_" + relation_no + "[") < 0) {
				continue;
				
			} else if (frm.elements[i].checked) {
				//... リピート番号配列をセット
				if (frm.elements[i].name.match(/\[([^\]]+)\]$/)) {
					repeat_num_array[count] = RegExp.$1;
				}
				
				//... カウンタをインクリメント
				count++;
			}
		}
		
		//... カウンタが0のとき
		if (count == 0) return;
		
	} else {
		//... リピート番号配列をセット
		repeat_num_array[0] = repeat_num;
	}

	//... リピート番号配列の要素分ループ
	for (var i = 0; i < repeat_num_array.length; i++) {
		//... リピート番号をセット
		var repeat_num = repeat_num_array[i];
		
		//... リピート入力を追加
		var repeat_num_2 = PlusRepeatInput(table_id, relation_no, repeat_base, 0, frm_name, undefined, undefined, true);
		
		//... エレメントフラグをセット
		var elm_flg = false;
		
		//... ループ開始
		for (var j = 0; j < frm.elements.length; j++) {
			//... エレメント名が存在しないとき
			if (frm.elements[j].name == undefined) {
				continue;
			}
			
			//... エレメント名をセット
			var elm_name = frm.elements[j].name;
			
			//... エレメントフラグがOFFのとき
			if (!elm_flg) {
				//... エレメント名がチェックのとき
				if (elm_name == "_check_" + relation_no + "[" + repeat_num + "]") {
					//... エレメントフラグをセット
					elm_flg = true;
				}
				
			} else {
				//... エレメント名がチェックのとき
				if (elm_name.indexOf("_check_" + relation_no + "[") >= 0) {
					//... ループを抜ける
					break;
				}
				
				//... エレメント値をセット
				var elm_value = GetElmValue(frm_name, elm_name);
			
				//... エレメント名をセット
				if (elm_name.match(/^(i\[[^\]]+\]\[[^\]]+\])\[([^\]]+)\](\[[^\]]+\])?$/)) {
					var elm_name_2 = RegExp.$1 + "[" + repeat_num_2 + "]" + RegExp.$3;
				}
				
				//... エレメント値をセット
				SetElmValue(frm_name, elm_name_2, elm_value);
				
			
			}
		}


	}
	
	//... チェックを外す
	ClearAll2(frm_name, "_check_" + relation_no, "_checkall_" + relation_no);
	
	repeat_max = SetRepeatInputNum(table_id, relation_no, repeat_base);
	
	if (repeat_callback_after[frm_name + "_" + relation_no] != undefined) {
		repeat_callback_after[frm_name + "_" + relation_no](frm_name, repeat_max, "%c");
	}

	return repeat_max;
}

//... リピート入力値セット関数
function SetRepeatInputValue(table_id, relation_no, repeat_base, repeat_num, frm_name, elm_new_name, key) {
	//... フォームをセット
	var frm = document.forms[frm_name];
	
	//... エレメント値をセット
	var elm_new = frm.elements[elm_new_name];
	var elm_value = elm_new.value;

	//... 売上伝票番号・手配伝票番号をセット
	var sales_appli_no = "";
	var arrange_appli_no = "";

	//... ループ開始
	for (var i = 0; i < frm.elements.length; i++) {
		//... エレメント名が存在しないとき
		if (frm.elements[i].name == undefined) {
			continue;
		}
		
		//... エレメント名が数量でないとき
		if (frm.elements[i].name.indexOf("_check_" + relation_no + "[") < 0) {
			continue;
			
		} else if (frm.elements[i].checked) {
			//... リピート番号配列をセット
			if (frm.elements[i].name.match(/\[([^\]]+)\]$/)) {
				var repeat = RegExp.$1;
				
				//... エレメント名をセット
				var elm_name = "i[" + repeat_base + "][" + key + "][" + repeat + "]";
				
				//... エレメント値をセット
				SetElmValue(frm_name, elm_name, elm_value);
			}
		}
	
	}
	
	repeat_max = SetRepeatInputNum(table_id, relation_no, repeat_base);
	
	if (repeat_callback_after[frm_name + "_" + relation_no] != undefined) {
		repeat_callback_after[frm_name + "_" + relation_no](frm_name, repeat_max, "%c");
	}
}

//... リピート入力番号セット関数
function SetRepeatInputNum(table_id, relation_no, repeat_base) {
	//... オブジェクトIDをセット
	oid = table_id + "-relation" + "-" + relation_no + "-" + repeat_base;
	
	elm_table = document.getElementById(oid);
	
	//... TD挿入エレメント配列を取得
	span_array = elm_table.getElementsByTagName("span");
	
	count = 0;

	//... TD挿入エレメント配列の要素分ループ
	for (var i = 0; i < span_array.length; i++) {
		//... 新規エレメントを作成
		span = span_array[i];

		if ((span.className == "repeat-num") && (span.innerText.match(/^[0-9]+$/) )) {
			count++;
			span.innerText = count;
		}
	}

	return count;
}

//... 複数選択初期化関数
function InputMultipleInit() {
	//... フォームの要素分ループ
	for (var i = 0; i < input_multiple_frm_array.length; i++) {
		//alert(input_multiple_frm_array[i]);
		//alert(input_multiple_elm_array[i]);
	}
}

//... 複数選択追加関数
function InputMultipleAdd(elm, elm_name_2, mode) {
	//... モードが指定されていないとき
	if (mode == undefined) mode = "";
	
	//... フォームのセット
	var frm = elm.form;

	//... エレメント接頭詞のセット
	var pos_tmp = elm.name.indexOf("[_add_");

	var elm_prefix = elm.name.substr(0, pos_tmp);
	var elm_key = "";
	var elm_postfix = "";

	if (elm.name.substr(pos_tmp + 1).indexOf("[") > 0) {
		elm_key = elm.name.slice(pos_tmp + 6, pos_tmp + elm.name.substr(pos_tmp + 1).indexOf("["));
		elm_postfix = elm.name.substr(pos_tmp + elm.name.substr(pos_tmp + 1).indexOf("[") + 1);
	} else {
		elm_key = elm.name.slice(pos_tmp + 6, -1);
	}
	
	//... エレメント名のセット
	var elm_name_1 = elm_prefix + "[" + elm_key + "]" + elm_postfix + "[]";

	//... エレメント名が指定されていないとき
	if ((elm_name_2 == undefined) || (elm_name_2 == "")) {
		elm_name_2 = elm_prefix + "[" + "_multiple_" + elm_key + "]" + elm_postfix + "[]";
	}
	
	//... エレメントのセット
	var elm_1 = frm.elements[elm_name_1];
	var elm_2 = frm.elements[elm_name_2];

	//... エレメント2が存在しないとき
	if (elm_2 == undefined) {
		var elm_name_2 = elm_prefix + "[" + "_multiple_" + elm_key + "]" + elm_postfix + "[list]";
		var elm_2 = frm.elements[elm_name_2];
	}

	//... モードが単一のとき
	if (mode.indexOf("%S") >= 0) {
		//... エレメント1の要素分ループ
		for (var i = elm_1.length - 1; i >= 0; i--) {
			//... 値が空白のとき
			if (elm_1.options[i].value == "") continue;
		
			//... エレメント1から要素を削除
			elm_1.removeChild(elm_1.options[i]);
		}
	}
	
	//... カウンタをリセット
	var count = elm_1.options.length - 2;
	
	//... エレメント2の要素分ループ
	for (var i = 0; i < elm_2.length; i++) {
		//... 要素が選択されているとき
		if (elm_2.options[i].selected) {
			//... 名前・値をセット
			opt_name = elm_2.options[i].text;
			opt_value = elm_2.options[i].value;
			
			//... 値が空白のとき
			if (opt_value == "") {
				continue;
			}
			
			//... 選択済みフラグをリセット
			selected_flg = false;
			
			//... エレメント2の要素分ループ
			for (var j = 0; j < elm_1.length; j++) {
				//... 要素がすでに選択されているとき
				if (elm_1.options[j].value == opt_value) {
					selected_flg = true;
					break;
				}
			}
			
			//... 選択済みフラグがOFFのとき
			if (!selected_flg) {
				//... カウンタをインクリメント
				count++;
				
				//... エレメント1に要素を追加
				var oOPTION = document.createElement('OPTION');

				if (document.all) {
					elm_1.add(oOPTION, count);
				} else {
					elm_1.add(oOPTION, elm_1.options.item(count));
				}

				elm_1.options[count].value = opt_value;
				elm_1.options[count].text = opt_name;
			}

			//... モードが単一のとき
			if (mode.indexOf("%S") >= 0) break;
		}
	}
}

//... 複数選択削除関数
function InputMultipleDelete(elm) {
	
	//... フォームのセット
	var frm = elm.form;

	//... エレメント接頭詞のセット
	var pos_tmp = elm.name.indexOf("[_delete_");

	var elm_prefix = elm.name.substr(0, pos_tmp);
	var elm_key = "";
	var elm_postfix = "";

	if (elm.name.substr(pos_tmp + 1).indexOf("[") > 0) {
		elm_key = elm.name.slice(pos_tmp + 9, pos_tmp + elm.name.substr(pos_tmp + 1).indexOf("["));
		elm_postfix = elm.name.substr(pos_tmp + elm.name.substr(pos_tmp + 1).indexOf("[") + 1);
	} else {
		elm_key = elm.name.slice(pos_tmp + 9, -1);
	}
	
	//... エレメント名のセット
	var elm_name_1 = elm_prefix + "[" + elm_key + "]" + elm_postfix + "[]";

	//... エレメントのセット
	var elm_1 = frm.elements[elm_name_1];
	
	//... エレメント1の要素分ループ
	for (var i = elm_1.length - 1; i >= 0; i--) {
		//... 値が空白のとき
		if (elm_1.options[i].value == "") {
			continue;
		}
		
		//... 要素が選択されているとき
		if (elm_1.options[i].selected) {
			//... エレメント1から要素を削除
			elm_1.removeChild(elm_1.options[i]);
		}
	}
}

//... 複数選択移動関数
function InputMultipleMove(elm) {
	
	//... フォームのセット
	var frm = elm.form;

	//... エレメント接頭詞のセット
	var pos_tmp = elm.name.indexOf("[_up_");

	var dir = 0;

	if (pos_tmp < 0) {
		dir = 1;
		pos_tmp = elm.name.indexOf("[_dn_");
	}

	var elm_prefix = elm.name.substr(0, pos_tmp);
	var elm_key = "";
	var elm_postfix = "";

	if (elm.name.substr(pos_tmp + 1).indexOf("[") > 0) {
		elm_key = elm.name.slice(pos_tmp + 5, pos_tmp + elm.name.substr(pos_tmp + 1).indexOf("["));
		elm_postfix = elm.name.substr(pos_tmp + elm.name.substr(pos_tmp + 1).indexOf("[") + 1);
	} else {
		elm_key = elm.name.slice(pos_tmp + 5, -1);
	}
	
	//... エレメント名のセット
	var elm_name_1 = elm_prefix + "[" + elm_key + "]" + elm_postfix + "[]";

	//... エレメントのセット
	var elm_1 = frm.elements[elm_name_1];

	//... 方向が上のとき
	if (dir == 0) {
		//... エレメント1の要素分ループ
		for (var i = 1; i <= elm_1.length - 2; i++) {
			//... 要素が選択されているとき
			if (elm_1.options[i].selected) {
				//... 一つ上の要素が選択されていないとき
				if (!elm_1.options[i - 1].selected) {
					val_1 = elm_1.options[i].value;
					val_2 = elm_1.options[i - 1].value;
					txt_1 = elm_1.options[i].text;
					txt_2 = elm_1.options[i - 1].text;

					elm_1.options[i].value = val_2;
					elm_1.options[i - 1].value = val_1;
					elm_1.options[i].text = txt_2;
					elm_1.options[i - 1].text = txt_1;
					
					elm_1.options[i].selected = false;
					elm_1.options[i - 1].selected = true;
				}
			}
		}
		
	//... 方向が下のとき
	} else {
		//... エレメント1の要素分ループ
		for (var i = elm_1.length - 3; i >= 0; i--) {
			//... 要素が選択されているとき
			if (elm_1.options[i].selected) {
				//... 一つ下の要素が選択されていないとき
				if (!elm_1.options[i + 1].selected) {
					val_1 = elm_1.options[i].value;
					val_2 = elm_1.options[i + 1].value;
					txt_1 = elm_1.options[i].text;
					txt_2 = elm_1.options[i + 1].text;

					elm_1.options[i].value = val_2;
					elm_1.options[i + 1].value = val_1;
					elm_1.options[i].text = txt_2;
					elm_1.options[i + 1].text = txt_1;
					
					elm_1.options[i].selected = false;
					elm_1.options[i + 1].selected = true;
				}
			}
		}
	}
}

var defaultFontSize =  80;
var minimumFontSize =  60;
var maximumFontSize = 250;
var currentFontSize = defaultFontSize;

function revertStyles(){
	currentFontSize = defaultFontSize;
	changeFontSize(0);
}


function changeFontSize(sizeDifference){
	currentFontSize = parseInt(currentFontSize) + parseInt(sizeDifference * 20);

	if(currentFontSize > maximumFontSize){
		currentFontSize = maximumFontSize;
	}else if(currentFontSize < minimumFontSize){
		currentFontSize = minimumFontSize;
	}
	setFontSize(currentFontSize);

	createCookie("fontSize", currentFontSize, 365);

}

function setFontSize(fontSize){
	var stObj = (document.getElementById) ? document.getElementById('content_area') : document.all('content_area');
	document.body.style.fontSize = fontSize + '%';
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
	var c = ca[i];
	while (c.charAt(0)==' ') c = c.substring(1,c.length);
	if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function initFontSize(size, fix_flg) {
	if (size != undefined) {
		defaultFontSize = size;
	}
	
	if (fix_flg) {
		currentFontSize = defaultFontSize;
	} else {
		cookie = readCookie("fontSize");
		currentFontSize = (cookie) ? cookie : defaultFontSize;
	}
	
	setFontSize(currentFontSize);
}


function toggleSubCategory(cat, flg) {
	//... オブジェクトIDをセット
	oid = "sub-category-";
	oid += cat;
	
	div = document.getElementById(oid);
	
	if (flg) {
		div.style.visibility = 'visible';
	} else {
		div.style.visibility = 'hidden';
	}
}

function focusFirstElement() {
	for (var frm_name in document.forms) {
		frm = document.forms[frm_name];
		
		for (var elm_name in frm.elements) {
			elm = frm.elements[elm_name];
			
			if (elm != undefined) {
				if ((elm.type == "text") && (elm.name.substr(0, 1) != "_")) {
					elm.focus();
					
					return false;
				}
			}
		}
	}
	
	return false;
}

function ChangeCalendarMonth(table_id, ym_from, ym_to, ym_disp) {
	y_tmp = Math.floor(ym_from / 100);
	m_tmp = ym_from - y_tmp * 100;
	ym_tmp = y_tmp * 100 + m_tmp;
		
	while (ym_tmp <= ym_to) {
		month_element = document.getElementById(table_id + "-" + ym_tmp);

		if (ym_tmp == ym_disp) {
			month_element.style.display = 'block';
		} else {
			month_element.style.display = 'none';
		}
		
		if (m_tmp == 12) {
			m_tmp = 1;
			y_tmp += 1;
		} else {
			m_tmp += 1;
		}
		
		ym_tmp = y_tmp * 100 + m_tmp;
		
	}
	
	return false;
}


function LocationHash(id) {
	location.hash = id;
}

function LoadFlash(movie, width, height, flash_vars, id) {
	//... HTMLのリセット
	html = "";

	
	//... HTMLのセット
	html += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"';
	html += ' codebase="https://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"';
	html += ' width="' + width + '"';
	html += ' height="' + height + '"';
	html += '>';
	html += "\n";
	html += '<param name="movie" value="' + movie + '">';
	html += "\n";
	html += '<param name="WMODE" value="Transparent">';
	html += "\n";

	//... FlashVarsが存在するとき
	if (flash_vars != "") {
		//... HTMLのセット
		html += '<param name="FlashVars" value="' + flash_vars + '">';
		html += "\n";
	}
	
	//... HTMLのセット
	html += '<embed pluginspage="https://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&Lang=Japanese&P5_Language=Japanese"';
	html += ' src="' + movie + '"';
	html += ' width="' + width + '"';
	html += ' height="' + height + '"';

	//... FlashVarsが存在するとき
	if (flash_vars != "") {
		//... HTMLのセット
		html += ' FlashVars="' + flash_vars + '"';
	}
	
	//... HTMLのセット
	html += '>';
	html += "\n";
	html += '</embed>';
	html += "\n";
	html += '</object>';
	html += "\n";

	var element = document.getElementById(id);
	element.innerHTML = html;

	return;

}

function LoadWMV(movie, width, height, movie_vars_array, id) {
	//... HTMLのリセット
	html = "";

	
	//... HTMLのセット
	html += '<object';
	html += ' classid="clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95"';
	html += ' codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715"';
	html += ' width="' + width + '"';
	html += ' height="' + height + '"';
	html += ' standby="Loading Microsoft Windows Media Player components..."';
	html += ' type="application/x-oleobject"';
	html += '>';
	html += "\n";
	html += '<param name="filename" value="' + movie + '">';
	html += "\n";

	//... movieVars配列の要素分ループ
	for (var i = 0; i < movie_vars_array.length; i++) {
		//... キーと値をセット
		var key = movie_vars_array[i].substr(0, movie_vars_array[i].indexOf("="));
		var value = movie_vars_array[i].substr(movie_vars_array[i].indexOf("=") + 1);
		
		//... HTMLのセット
		html += '<param name="' + key + '" value="' + value + '">';
		html += "\n";
	}
	
	//... HTMLのセット
	html += '<embed';
	html += ' pluginspage="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715"';
	html += ' type="application/x-mplayer2"';
	html += ' src="' + movie + '"';
	html += ' width="' + width + '"';
	html += ' height="' + height + '"';

	//... movieVars配列の要素分ループ
	for (var i = 0; i < movie_vars_array.length; i++) {
		//... キーと値をセット
		var key = movie_vars_array[i].substr(0, movie_vars_array[i].indexOf("="));
		var value = movie_vars_array[i].substr(movie_vars_array[i].indexOf("=") + 1);
		
		//... HTMLのセット
		html += key + '="' + value + '"';
		html += "\n";
	}
	
	//... HTMLのセット
	html += '>';
	html += "\n";
	html += '</embed>';
	html += "\n";
	html += '</object>';
	html += "\n";

	var element = document.getElementById(id);
	element.innerHTML = html;

	return;

}


function LumpValue(obj_this, mode) {
	var frm = obj_this.form;
	
	var obj_l_name = obj_this.name;
	
	if (obj_l_name.match(/(\[_lb[0-9]*_)/)) {
		obj_l_name = obj_l_name.replace(RegExp.$1, "[_l_");
	}
	
	var obj_l = frm.elements[obj_l_name];
	
	var obj_prefix = obj_l_name.substr(0, obj_l_name.indexOf("["));
	
	var obj_repeat_base = obj_l_name.substr(obj_l_name.indexOf("[") + 1);
	obj_repeat_base = obj_repeat_base.substr(0, obj_repeat_base.indexOf("]"));
	
	var obj_name = obj_l_name.substr(obj_l_name.indexOf("[") + 1);
	obj_name = obj_name.substr(obj_name.indexOf("[") + 1);
	obj_name = obj_name.substr(0, obj_name.indexOf("]"));
	obj_name = obj_name.substr(obj_name.indexOf("_") + 1);
	obj_name = obj_name.substr(obj_name.indexOf("_") + 1);
	
	if (obj_name.indexOf("__") >= 0) {
		var obj_name_1 = obj_name.substr(0, obj_name.indexOf("__"));
		var obj_name_2 = obj_name.substr(obj_name.indexOf("__") + 2);
	} else {
		var obj_name_1 = obj_name;
		var obj_name_2 = "";
	}
	
	var obj_pattern = "";
	obj_pattern += obj_prefix;
	obj_pattern += "\\[" + obj_repeat_base + "\\]";
	obj_pattern += "\\[" + obj_name_1 + "\\]";
	obj_pattern += "\\[[-0-9_]+\\]";
	
	if (obj_name_2.length >= 1) {
		obj_pattern += "\\[" + obj_name_2 + "\\]";
	}

	var rexp = new RegExp(obj_pattern, "i");

	obj_pattern += "\\[([-A-Za-z0-9_]+)\\]";
	
	var rexp_2 = new RegExp(obj_pattern, "i");
	
	for (var i = 0; i < frm.elements.length; i++) {
		if (frm.elements[i].name == undefined) {
			continue;
		}
		
		var obj_name = frm.elements[i].name;
		var obj = frm.elements[obj_name];
		
		if (!obj_name.match(rexp)) {
			continue;
		}
		
		var obj_r_name = obj_l_name;
		
		if (obj_name.match(rexp_2)) {
			obj_r_name += "[" + RegExp.$1 + "]";
		}
		
		var obj_r = frm.elements[obj_r_name];

		if ((frm.elements[i].type == "radio") && (obj.length != undefined)) {
			for (var j = 0; j < obj.length; j++) {
				if (obj[j].checked != undefined) {
					obj[j].checked = obj_r[j].checked;
				}
				
				if (obj[j].selectedIndex != undefined) {
					obj[j].selectedIndex = obj_r[j].selectedIndex;
				}
				
				if (obj[j].value != undefined) {
					if (mode == "add") {
						obj[j].value = Number(obj[j].value) + Number(obj_r[j].value);
					} else {
						obj[j].value = obj_r[j].value;
					}
				}
			}
		} else {
		
			if (obj.checked != undefined) {
				obj.checked = obj_r.checked;
			}
			
			if (obj.selectedIndex != undefined) {
				obj.selectedIndex = obj_r.selectedIndex;
			}
			
			if (obj.value != undefined) {
				if (mode == "add") {
					obj.value = Number(obj.value) + Number(obj_r.value);
				} else {
					obj.value = obj_r.value;
				}
			}
		}
	}
}

//... 複数入力値変更関数
function ChangeMultiInputValue(elm_this, frm_name, elm_console_name, key, postfix, mode) {
	//... キーが指定されていないとき
	if (key == undefined) key = elm_console_name;
	
	//... 後置詞が指定されていないとき
	if (postfix == undefined) postfix = "";
	
	//... モードが指定されていないとき
	if (mode == undefined) mode = "";
	
	//... コンソールフォームをセット
	var frm_console = elm_this.form;
	var frm_console_name = frm_console.name;
	
	//... モードがノードのとき
	if (mode.indexOf("%n") >= 0) {
		//... データ値を取得
		var val_table = GetElmValue(frm_console_name, elm_console_name + "[table]");
		var val_no = GetElmValue(frm_console_name, elm_console_name + "[no]");
		var val_name = GetElmValue(frm_console_name, elm_console_name + "[name]");
		
	} else {
		//... データ値を取得
		var val = GetElmValue(frm_console_name, elm_console_name);
	}
	
	//... モードが数値または加算のとき
	if ((mode.indexOf("%v") >= 0) || (mode.indexOf("%a") >= 0)) {
		//... 値を数値に変更
		if (val.match(/^([-+.0-9]+)$/)) {
			val = Number(val);
		} else {
			val = 0;
		}
	}
	
	//... フォームをセット
	var frm = document.forms[frm_name];
	
	//... フォームのエレメント数分ループ
	for (var i = 0; i < frm.elements.length; i++) {
		var elm_tmp = frm.elements[i];
		if (elm_tmp.name == undefined) continue;
		if (elm_tmp.name.match(/^_check_1\[(.+)\]$/)) {
			//... エレメントがチェックされていないとき
			if (!elm_tmp.checked) continue;
			
			//... リピート番号をセット
			var repeat = RegExp.$1;
			
			//... モードがノードのとき
			if (mode.indexOf("%n") >= 0) {
				//... エレメントをセット
				var elm_table_name = "i[1][" + key + "][" + repeat + "]" + postfix + "[table]";
				var elm_no_name = "i[1][" + key + "][" + repeat + "]" + postfix + "[no]";
				var elm_name_name = "i[1][" + key + "][" + repeat + "]" + postfix + "[name]";
				
				//... エレメントにデータ値をセット
				SetElmValue(frm_name, elm_table_name, val_table);
				SetElmValue(frm_name, elm_no_name, val_no);
				SetElmValue(frm_name, elm_name_name, val_name);
				
			} else {
				//... エレメントをセット
				var elm_name = "i[1][" + key + "][" + repeat + "]" + postfix;
				
				//... モードが加算のとき
				if (mode.indexOf("%a") >= 0) {
					//... 元データ値を取得
					var val_org = GetElmValue(frm_name, elm_name);

					//... 値を数値に変更
					if (val_org.match(/^([-+.0-9]+)$/)) {
						val_org = Number(val_org);
					} else {
						val_org = 0;
					}
					
					//... データ値をセット
					var val_tmp = val + val_org;
					
					//... エレメントにデータ値をセット
					SetElmValue(frm_name, elm_name, val_tmp);
				
				} else {
					//... エレメントにデータ値をセット
					SetElmValue(frm_name, elm_name, val);
				}
			}
		}
	}
}

function SetFileName(obj) {
	frm = obj.form;
	obj_name = obj.name;
	obj2_name = obj_name.substr(0, obj_name.length - 6) + "[name]";
	obj2 = frm.elements[obj2_name];
	obj2.value = obj.value;
}

function ToggleFileUpdate(obj) {
	frm = obj.form;
	obj_name = obj.name;
	obj_value = obj.value;

	if (obj_value == "Y") {
		disabled = false;
	} else {
		disabled = true;
	}

	obj2_name = obj_name.substr(0, obj_name.length - 8) + "[file]";
	obj2 = frm.elements[obj2_name];
	obj2.disabled = disabled;
}

function ClearValue(elm_this, elm_name) {
	var frm = elm_this.form;
	var frm_name = frm.name;
	var elm = frm.elements[elm_name];

	elm.value = "";
}

//... エレメント値取得関数
function GetElmValue(frm_name, elm_name) {
	var frm = document.forms[frm_name];
	var elm = frm.elements[elm_name];
	var elm_value = "";
	
	if (elm != undefined) {
		if ((elm.length != undefined) &&  (elm.selectedIndex == undefined)) {
			for (i = 0; i < elm.length; i++) {
				if (elm[i].checked) {
					elm_value = elm[i].value;
	
					break;
				}
			}

		} else if (elm.type == "checkbox") {
			if (elm.checked) {
				elm_value = elm.value;
			}
		} else {
			elm_value = elm.value;
		}
	} else {
		for (var i = 0; i < frm.elements.length; i++) {
			var elm_tmp = frm.elements[i];
			var elm_tmp_name = elm_tmp.name;
			
			if (elm_tmp_name != undefined) {
				if (elm_tmp_name.indexOf(elm_name) == 0) {
					if (elm_tmp.checked) {
						if (elm_value.length > 0) elm_value += ",";
						elm_value += elm_tmp.value;
					}
				}
			}
		}
	}

	return elm_value;
}

//... エレメント名取得関数
function GetElmNameArray(elm_name) {
	var elm_name_array = new Array();
	var str_tmp = "";

	for (var pos = 0; pos < elm_name.length; pos++) {
		if (elm_name.substr(pos, 1) != "]") {
			str_tmp += elm_name.substr(pos, 1);
		}
	}

	var str_array = str_tmp.split("[");

	elm_name_array["preflg"] = str_array[0];

	if (elm_name_array["preflg"] == "i") {
		elm_name_array["repeat_base"] = str_array[1];
		elm_name_array["key"] = str_array[2];
		elm_name_array["repeat"] = str_array[3];
		
		if ((elm_name_array["repeat"] == "") || (elm_name_array["repeat"] == undefined)) {
			elm_name_array["repeat"] = 1;
		}

		if (str_array[4] != undefined) {
			elm_name_array["postflg"] = str_array[4];
		} else {
			elm_name_array["postflg"] = "";
		}
		
		elm_name_array["prefix"] = str_array[0] + "[" + str_array[1] + "]";
		elm_name_array["postfix"] = "[" + str_array[3] + "]";

		if (str_array[4] != undefined) {
			elm_name_array["postfix"] += "[" + str_array[4] + "]";
		}
	} else {
		elm_name_array["key"] = str_array[1];

		if (str_array[2] != undefined) {
			elm_name_array["postflg"] = str_array[2];
		} else {
			elm_name_array["postflg"] = "";
		}

		elm_name_array["prefix"] = str_array[0];
		elm_name_array["postfix"] = "";

		if (str_array[2] != undefined) {
			elm_name_array["postfix"] = "[" + str_array[2] + "]";
		}

	}
	
	return elm_name_array;
}

//... エレメント数値取得関数
function GetElmNumericValue(elm) {
	//... 値をセット
	var value = elm.value;

	//... 数量が数値でないとき
	//if ((isNaN(value)) || (!value.match(/^\-?[.0-9]+$/))) {
	if (isNaN(value)) {
		value = "";
		elm.value = "";
	} else {
		value = Number(value);
		elm.value = value;
	}
	
	return value;
}

//... エレメント値セット関数
function SetElmValue(frm_name, elm_name, val) {
	//... 一時エレメントをセット
	var frm = document.forms[frm_name];
	elm_tmp = document.forms[frm_name].elements[elm_name];
	
	//alert("SetElmValue:" + frm_name + " " + elm_name + " " + elm_tmp + " " + val);

	if (elm_tmp != undefined) {
		if ((elm_tmp.length != undefined) &&  (elm_tmp.selectedIndex == undefined)) {
			for (i = 0; i < elm_tmp.length; i++) {
				if (elm_tmp[i].value == val) {
					elm_tmp[i].checked = true;
				} else {
					elm_tmp[i].checked = false;
				}
			}
		} else if ((elm_tmp.length != undefined) &&  (elm_tmp.selectedIndex != undefined)) {
			for (i = 0; i < elm_tmp.length; i++) {
				if (elm_tmp[i].value == val) {
					elm_tmp.value = val;
					break;
				}
			}

		} else if (elm_tmp.type == "checkbox") {
			if (elm_tmp.value == val) {
				elm_tmp.checked = true;
			} else {
				elm_tmp.checked = false;
			}

		} else {
			elm_tmp.value = val;
		}
	} else if (val != undefined) {
		var val_tmp = "," + val + ",";
		
		for (var i = 0; i < frm.elements.length; i++) {
			var elm_tmp = frm.elements[i];
			var elm_tmp_name = elm_tmp.name;
			
			if (elm_tmp_name != undefined) {
				if (elm_tmp_name.indexOf(elm_name) == 0) {
					if (val_tmp.indexOf("," + elm_tmp.value + ",") >= 0) {
						elm_tmp.checked = true;
					} else {
						elm_tmp.checked = false;
					}
				}
			}
		}
	}
}

function ToggleDisabled(elm_this, elm_key, disabled_value, mode, repeat_base, repeat) {
	if (elm_this == undefined) return false;

	if (elm_this.name == undefined) {
		elm_this = elm_this[0];
	}
	
	if (mode == undefined) {
		mode = "";
	}
	
	if (elm_this == undefined) return false;

	var elm_this_name = elm_this.name;
	//alert("ToggleDisabled elm_this_name:" + elm_this_name);
	var frm = elm_this.form;
	//alert("ToggleDisabled frm:" + frm);
	var frm_name = frm.name;
	//alert("ToggleDisabled frm_name:" + frm_name);

	var elm_this_name_array = GetElmNameArray(elm_this_name);

	var elm_this_value = GetElmValue(frm_name, elm_this_name);
	
	if (repeat_base == undefined) {
		repeat_base = elm_this_name_array["repeat_base"];
	}
	
	if (repeat == undefined) {
		repeat = elm_this_name_array["repeat"];
	}
	
	var disabled_value_array = disabled_value.split(",");

	if (mode.indexOf("%n") >= 0) {
		var disabled_flg = true;

		for (var i in disabled_value_array) {
			if (disabled_value_array[i] == elm_this_value) {
				disabled_flg = false;
				break;
			}
		}

	} else {
		var disabled_flg = false;

		for (var i in disabled_value_array) {
			if (disabled_value_array[i] == elm_this_value) {
				disabled_flg = true;
				break;
			}
		}
	}

	ToggleElmDisabled(frm, elm_key, disabled_flg, mode, repeat_base, repeat);
}

function ToggleElmDisabled(frm, elm_key, disabled_flg, mode, repeat_base, repeat) {
	if (disabled_flg == undefined) {
		disabled_flg = true;
	}
	
	if (mode == undefined) {
		mode = "";
	}
	
	var elm_key_array = elm_key.split(",");

	for (var i = 0; i < frm.elements.length; i++) {
		if (frm.elements[i] != undefined) {
			if (frm.elements[i].name != undefined) {
				elm_name_array = GetElmNameArray(frm.elements[i].name);
				
				if (elm_name_array["key"] == undefined) {
					continue;
				}
				
				if (repeat_base != undefined) {
					if ((elm_name_array["repeat_base"] != repeat_base) && (repeat_base != "-1")) {
						continue;
					}
				}
				
				if (repeat != undefined) {
					if ((elm_name_array["repeat"] != repeat) && (repeat != "-1")) {
						continue;
					}
				}
					
				for (var key_tmp = 0; key_tmp < elm_key_array.length; key_tmp++) {
					if (elm_name_array["key"].indexOf(elm_key_array[key_tmp]) >= 0) {
						if (mode.indexOf("%r") >= 0) {
							if (disabled_flg) {
								frm.elements[i].readOnly = "readonly";
								frm.elements[i].className = "readonly";
							} else {
								frm.elements[i].readOnly = "";
								frm.elements[i].className = "";
							}
						} else {
							frm.elements[i].disabled = disabled_flg;
						}
						
						break;
					}
				}
			}
		}
	}
}

function CopyElmValue(elm_this, elm_key, mode) {
	if (elm_this.name == undefined) {
		elm_this = elm_this[0];
	}

	if (mode == undefined) {
		mode = "";
	}

	var elm_this_name = elm_this.name;
	var frm = elm_this.form;
	var frm_name = frm.name;

	var elm_this_name_array = GetElmNameArray(elm_this_name);

	//... モードが文字列のとき
	if (mode.indexOf("%t") >= 0) {
		var elm_this_value = elm_this.options[elm_this.selectedIndex].text;
	} else {
		var elm_this_value = GetElmValue(frm_name, elm_this_name);
	}

	var elm_key_array = elm_key.split(",");

	for (var key_tmp = 0; key_tmp < elm_key_array.length; key_tmp++) {
		var elm_search = elm_key_array[key_tmp] + "]";

		if (elm_this_name_array["repeat"] != undefined) {
			elm_search += "[" + elm_this_name_array["repeat"] + "]";
		}

		for (var i = 0; i < frm.elements.length; i++) {
			if (frm.elements[i] != undefined) {
				if (frm.elements[i].name != undefined) {
					if (frm.elements[i].name.indexOf(elm_search) >= 0) {
						frm.elements[i].value = elm_this_value;
					}
				}
			}
		}
	}
}

function ClearSelectOption(elm) {
	if (elm != undefined) {
		/*
		if (elm.childNodes != undefined) {
			while (elm.childNodes.length > 0) {
				elm.removeChild(elm.lastChild);
			}
		}
		*/
		elm.length = 0;
	}
}

function AddSelectOption(elm, text, value, class_name) {
	if (elm == undefined) return;
	
	var opt = document.createElement("option");
	
	if (value == undefined) {
		value = "";
	}
	
	if (text == undefined) {
		text = "";
	}
	
	opt.value = value;
	opt.text = text;
	
	try {
		elm.add(opt, null);  // DOM標準
	}
	catch(e) {
		elm.add(opt); // IE固有
	}
	
	//... クラスが指定されているとき
	if (class_name != undefined) {
		opt.className = class_name;
	}
}

//... キー押下送信
function KeyPressSubmit(elm, mode, flg, callback, mode_esc){
	var keyCode;
		
	//if (navigator.appName.indexOf("Netscape")>=0) {
		//keyCode = evtNow.which;
	//} else {
		keyCode = event.keyCode;
	//}
	
	//... フォームをセット
	var frm = elm.form;
	var frm_name = frm.name;

	//... キーコードごとに分岐
	switch (keyCode) {
		//... Enterのとき
		case 13:
			//... エレメントからカーソルを離す
			elm.blur();
			
			//... コールバックが指定されているとき
			if (callback != undefined) callback(elm);
			
			//... フォームを送信
			submitForm2(frm_name, mode.replace("%", ""), flg);
			
			return false;
			break;
			
		//... Escのとき
		case 27:
			//... エスケープモードが指定されているとき
			if (mode_esc != undefined) {
				//... エレメントからカーソルを離す
				elm.blur();
				
				//... コールバックが指定されているとき
				if (callback != undefined) callback(elm);
				
				//... フォームを送信
				submitForm2(frm_name, mode_esc.replace("%", ""), flg);
				
				return false;
			}
			break;
	}

	return true;
}

//... ID属性セット関数
function SetIdAttribute(id, attribute, value) {
	//... エレメントをセット
	var elm = document.getElementById(id);
	
	//... エレメントの属性をセット
	elm.setAttribute(attribute, value);
}

//... 新しいタブ処理
tab_obj = new Object();

//... タブコールバックセット関数
function SetTabCallback(tab_id, child_id, callback) {
	//... タブIDをセット
	tab_id = tab_id.replace("_", "-");
	
	//... タブオブジェクトをセット
	if (tab_obj[tab_id] == undefined) {
		tab_obj[tab_id] = new Object();
	}
	
	//... タブコールバック関数をセット
	if (tab_obj[tab_id]["callback"] == undefined) {
		tab_obj[tab_id]["callback"] = new Object();
	}

	//... タブコールバック関数をセット
	tab_obj[tab_id]["callback"][child_id] = callback;
	
}

//... タブコールバックセット関数
function SetTabOption(tab_id, child_id, key, value) {
	//... タブオブジェクトをセット
	if (tab_obj[tab_id] == undefined) {
		tab_obj[tab_id] = new Object();
	}
	
	//... 子IDが指定されているとき
	if (child_id != undefined) {
		//... タブオブジェクトをセット
		if (tab_obj[tab_id][child_id] ==undefined) {
			tab_obj[tab_id][child_id] = new Object();
		}
		
		//... タブオプションをセット
		tab_obj[tab_id][child_id][key] = value;
		
	} else {
		//... タブオプションをセット
		tab_obj[tab_id][key] = value;
	}

}

//... タブ破棄セット関数
function SetTabVoid(tab_id, child_id) {
	//... タブIDをセット
	tab_id = tab_id.replace("_", "-");
	
	//... タブオブジェクトをセット
	if (tab_obj[tab_id] == undefined) {
		tab_obj[tab_id] = new Object();
	}
	
	//... タブ破棄関数をセット
	if (tab_obj[tab_id]["void"] == undefined) {
		tab_obj[tab_id]["void"] = new Object();
	}

	//... タブ破棄関数をセット
	tab_obj[tab_id]["void"][child_id] = true;
	
}

//... タブ切り替え関数
function InitTab(tab_id, sel_child_id, mode, tab_page, tab_query, tab_key, tab_table, tab_no, tab_query_2) {
	//... タブIDをセット
	tab_id = tab_id.replace("_", "-");
	
	//... タブタイトル親エレメントをセット
	var title_parent_elm = document.getElementById("tab-title-" + tab_id);
	
	//... タブが存在しないとき
	if (title_parent_elm == undefined) {
		return;
	}
	
	//... タブオブジェクトをセット
	if (tab_obj[tab_id] == undefined) {
		tab_obj[tab_id] = new Object();
	}
	
	//... 選択子IDが指定されているとき
	if (tab_obj[tab_id]["sel_child_id"] != undefined) {
		sel_child_id = tab_obj[tab_id]["sel_child_id"];
	}
	
	//... タブ本文読み込みフラグをセット
	if (tab_obj[tab_id]["body_load_flg"] == undefined) {
		tab_obj[tab_id]["body_load_flg"] = new Object();
	}
	
	//... タブコールバック関数をセット
	if (tab_obj[tab_id]["callback"] == undefined) {
		tab_obj[tab_id]["callback"] = new Object();
	}
	
	//... タブページをセット
	if (tab_page != undefined) {
		tab_obj[tab_id]["tab_page"] = tab_page;
	}
	
	//... タブクエリをセット
	if (tab_query != undefined) {
		tab_obj[tab_id]["tab_query"] = tab_query;
	}
	
	//... タブクエリをセット
	if (tab_query_2 != undefined) {
		tab_obj[tab_id]["tab_query_2"] = tab_query_2;
	}
	
	//... タブキーをセット
	if (tab_key != undefined) {
		tab_obj[tab_id]["tab_key"] = tab_key;
	}
	
	//... タブテーブルをセット
	if (tab_table != undefined) {
		tab_obj[tab_id]["tab_table"] = tab_table;
	}
	
	//... タブ番号をセット
	if (tab_no != undefined) {
		tab_obj[tab_id]["tab_no"] = tab_no;
	}

	//... タブタイトルエレメント配列をセット
	//var title_elm_array = title_parent_elm.childNodes;
	var title_elm_array = title_parent_elm.getElementsByTagName("li");
	
	//... 最初の子IDをセット
	sel_child_id_2 = "";

	//... タブタイトルエレメント配列の要素分ループ
	for (i = 0; i < title_elm_array.length; i++) {
		//... タブタイトルエレメントをセット
		var title_elm = title_elm_array[i];
		
		if (title_elm.id == undefined) {
			continue;
		}
		
		//... IDにタブ名が含まれていないとき
		if (title_elm.id.indexOf(tab_id) < 0) {
			continue;
		}

		//... 一時子IDをセット
		var child_id = title_elm.id.substr(("tab-title-" + tab_id + "-").length);

		//... タブタイトルの属性をセット
		SetTabTitleAttribute(tab_id, title_elm, mode);

		//... タブ本文読み込みフラグをセット
		tab_obj[tab_id]["body_load_flg"][child_id] = false;
		
		//... 選択子IDと一致するとき
		if (child_id == sel_child_id) {
			sel_child_id_2 = child_id;
		}
	}

	//... タブを切り替え
	ToggleTab(tab_id, sel_child_id_2);
	
	//... タブ初期化コールバックが指定されているとき
	if (tab_obj[tab_id]["callback_init"] != undefined) {
		//... タブ初期化コールバックを実行
		tab_obj[tab_id]["callback_init"](tab_id);
	}
}

//... タブタイトル属性セット関数
function SetTabTitleAttribute(tab_id, title_elm, mode) {
	if (mode == undefined) {
		mode = "";
	}

	//... クラス名をセット
	title_elm.className = "tab-title-off";
	
	//... タブオブジェクトをセット
	if (tab_obj[tab_id] ==undefined) {
		tab_obj[tab_id] = new Object();
	}

	//... 一時子IDをセット
	var child_id = title_elm.id.substr(("tab-title-" + tab_id + "-").length);
	
	//... タブオブジェクトをセット
	if (tab_obj[tab_id][child_id] ==undefined) {
		tab_obj[tab_id][child_id] = new Object();
	}

	//... タブ破棄がセットされているとき
	if (tab_obj[tab_id]["void"] != undefined) {
		if (tab_obj[tab_id]["void"][child_id]) {
			return;
		}
	}

	//... モードがマウスオーバーのとき
	if (mode.indexOf("%M") >= 0) {
		//... スクリプトをセット
		title_elm.onmouseover = function(e) {
			//... 監視タイマーの開始
			tab_obj[tab_id]["timer_toggle"] = setTimeout("ToggleTab('" + tab_id + "', '" + child_id + "')", 20);

		}
		
		//... スクリプトをセット
		title_elm.onmouseout = function(e) {
			if ((tab_obj[tab_id]["timer_toggle"] != undefined) && (tab_obj[tab_id]["timer_toggle"] != null)) {
				clearTimeout(tab_obj[tab_id]["timer_toggle"]);
				tab_obj[tab_id]["timer_toggle"] = undefined;
			}
		}

		//... スクリプトをセット
		title_elm.onmousedown = function(e) {
			ToggleTab(tab_id, child_id);
		}
		
	//... モードがオンクリックのとき
	} else if (mode.indexOf("%C") >= 0) {
		//... スクリプトをセット
		title_elm.onclick = function(e) {
			ToggleTab(tab_id, child_id);
			
			//... タブ切り替えコールバック関数がセットされているとき
			if (tab_obj[tab_id]["callback"][child_id] != undefined) {
				//... コールバック関数を実行
				tab_obj[tab_id]["callback"][child_id](tab_id, child_id);
			}
		}

		//... タブ切り替えコールバック関数がセットされているとき
		if (tab_obj[tab_id]["callback"][child_id] != undefined) {
			//... スクリプトをセット
			title_elm.onmouseover = function(e) {
				//... 監視タイマーの開始
				tab_obj[tab_id]["timer_toggle"] = setTimeout(function(){tab_obj[tab_id]["callback"][child_id](tab_id, child_id)}, 200);
			}
		
			//... スクリプトをセット
			title_elm.onmouseout = function(e) {
				if ((tab_obj[tab_id]["timer_toggle"] != undefined) && (tab_obj[tab_id]["timer_toggle"] != null)) {
					clearTimeout(tab_obj[tab_id]["timer_toggle"]);
					tab_obj[tab_id]["timer_toggle"] = undefined;
				}
			}
		}
	}

}

//... タブ切り替え関数
function ToggleTab(tab_id, child_id) {
	//... クッキー管理オブジェクトをセット
	var cokobj = new CookieManager();
	
	//... タブIDをセット
	tab_id = tab_id.replace("_", "-");
	
	//... 子IDを小文字に変換
	child_id = child_id.toLowerCase();

	//... タブタイトル親エレメントをセット
	var title_parent_elm = document.getElementById("tab-title-" + tab_id);
	
	//... タブが存在しないとき
	if (title_parent_elm == undefined) {
		return;
	}

	//... タブタイトルエレメント配列をセット
	//var title_elm_array = title_parent_elm.childNodes;
	var title_elm_array = title_parent_elm.getElementsByTagName("li");

	//... タブタイトルエレメント配列の要素分ループ
	for (i = 0; i < title_elm_array.length; i++) {
		//... タブタイトルエレメントをセット
		var title_elm = title_elm_array[i];
		
		//... IDにタブ名が含まれていないとき
		if (title_elm.id.indexOf(tab_id) < 0) {
			continue;
		}

		//... 一時子IDをセット
		var child_id_tmp = title_elm.id.substr(("tab-title-" + tab_id + "-").length);
		
		//... 本文エレメントをセット
		var body_elm = document.getElementById(tab_id + "-" + child_id_tmp);

		if (body_elm != null) {
			if (body_elm.className != "tab-body") {
				body_elm = body_elm.parentNode;
			}
		}
		
		//... 子IDが指定されていないとき
		if ((child_id == undefined) || (child_id == "")) {
			child_id = title_elm.id.substr(("tab-title-" + tab_id + "-").length);
		}

		//... 子IDと一致するとき
		if (child_id_tmp == child_id) {
			//... タブタイトルエレメントのクラスをONにセット
			title_elm.className = "tab-title-on";
			
			if (body_elm != null) {
				//... 本文エレメントを表示
				body_elm.style.display = "block";
			}
			
			//... タブオブジェクトをセット
			if (tab_obj[tab_id] ==undefined) {
				tab_obj[tab_id] = new Object();
			}

			//... クッキーを書き込む
			if (tab_obj[tab_id]["tab_page"] != undefined) {
				cokobj.setCookie("tb_" + tab_obj[tab_id]["tab_page"], child_id);
			}
			//alert("AddTab cookie_str:" + cookie_str);

			//... タブ切り替えコールバック関数がセットされているとき
			if (tab_obj[tab_id]["callback"] != undefined) {
				if (tab_obj[tab_id]["callback"][child_id] != undefined) {
					//alert("ToggleTab callback");
					tab_obj[tab_id]["callback"][child_id](tab_id, child_id);
				}
			}
			
		} else {
			//... タブタイトルエレメントのクラスをOFFにセット
			title_elm.className = "tab-title-off";
			
			if (body_elm != null) {
				//... 本文エレメントを非表示
				body_elm.style.display = "none";
			}
			
		}

	}

}

//... タブを追加
function AddTab(tab_id, child_id, org_child_id, sel_child_id, tab_title_str) {
	//... クッキー管理オブジェクトをセット
	var cokobj = new CookieManager();
	
	//... 選択子IDが指定されているとき
	if ((sel_child_id == "") || (sel_child_id == undefined)) {
		if (tab_obj[tab_id]["sel_child_id"] != undefined) {
			sel_child_id = tab_obj[tab_id]["sel_child_id"];
		}
	}
	
	//... エレメントをセット
	var elm_title_parent = document.getElementById("tab-title-" + tab_id);
	var elm_body_parent = document.getElementById("tab-body-" + tab_id);
	
	//... 一時タイトルエレメントをセット
	var elm_title_tmp = document.getElementById("tab-title-" + tab_id + "-" + child_id);
	//alert("AddTab elm_title_tmp:" + elm_title_tmp);
	
	//... 一時タイトルエレメントが存在しないとき
	if ((elm_title_tmp == undefined) || (elm_title_tmp == null)) {
		
		//... タイトルエレメントをセット
		var elm_title = document.createElement("li");
		elm_title.setAttribute("id", "tab-title-" + tab_id + "-" + child_id);
		
		//... 後エレメントをセット
		var elm_after = null;
		
		//... クッキー文字列をセット
		var cookie_str = "";
	
		//... タブタイトルエレメント配列をセット
		var elm_titles = elm_title_parent.getElementsByTagName("li");
		//alert("AddTab elm_titles:" + elm_titles);
		
		//... タブタイトルエレメント配列の要素分ループ
		for (var i = 0; i < elm_titles.length; i++) {
			//... 一時子IDをセット
			var child_id_tmp = elm_titles[i].id.substr(("tab-title-" + tab_id + "-").length);
			//alert("AddTab elm_titles:" + elm_titles[i].id + " child_id_tmp:" + child_id_tmp);
			
			//... クッキー文字列をセット
			if (cookie_str != "") cookie_str += ",";
			cookie_str += child_id_tmp;
			
			//... 一時子IDが元子IDと一致するとき
			if (child_id_tmp == org_child_id) {
				//... クッキー文字列をセット
				if (cookie_str != "") cookie_str += ",";
				cookie_str += child_id;
				
				//... 後エレメントをセット
				if (i < elm_titles.length - 1) {
					elm_after = document.getElementById(elm_titles[i + 1].id);
				}
			}
		}
		
		//... 後エレメントが指定されていないとき
		if (elm_after == null) {
			//... クッキー文字列をセット
			if (cookie_str != "") cookie_str += ",";
			cookie_str += child_id;
		}
		
		//... タイトルエレメントを追加
		elm_title_parent.insertBefore(elm_title, elm_after);
		
		//... タブタイトル文字列が指定されているとき
		if (tab_title_str != undefined) elm_title_parent.innerHTML = tab_title_str;
		
		//... 本文エレメントをセット
		var elm_body = document.createElement("div");
		elm_body.setAttribute("id", tab_id + "-" + child_id);
		elm_body_parent.appendChild(elm_body);
		elm_body.className = "tab-body";
		
		//... クッキーを書き込む
		if (tab_obj[tab_id]["tab_page"] != undefined) {
			cokobj.setCookie("to_" + tab_obj[tab_id]["tab_page"], cookie_str);
		}
		//alert("AddTab tab_page:" + tab_obj[tab_id]["tab_page"] + " cookie_str:" + cookie_str);
		
		//... 処理後子IDが指定されているとき
		if (sel_child_id != undefined) {
			if (sel_child_id != "") {
				//... タブを切り替え
				ToggleTab(tab_id, sel_child_id);
			}
		} else {
			//... タブを切り替え
			ToggleTab(tab_id, child_id);
		}
		
	//... エレメントが存在するとき
	} else {
		//... タブを切り替え
		ToggleTab(tab_id, child_id);
	}
}

//... タブを閉じる
function CloseTab(tab_id, child_id, sel_child_id) {
	//... クッキー管理オブジェクトをセット
	var cokobj = new CookieManager();
	
	//... エレメントをセット
	var elm_title_parent = document.getElementById("tab-title-" + tab_id);
	var elm_body_parent = document.getElementById("tab-body-" + tab_id);
	
	//... エレメントが存在するとき
	if (elm_title_parent != undefined) {
		//... エレメントをセット
		var elm_title = document.getElementById("tab-title-" + tab_id + "-" + child_id);
		var elm_body = document.getElementById(tab_id + "-" + child_id);
		
		//... エレメントが存在しないとき
		if (elm_title == undefined) return;
		
		//... タイトルエレメントを削除
		elm_title_parent.removeChild(elm_title);
		
		//... 本文エレメントを削除
		elm_body_parent.removeChild(elm_body);
		
		//... タブタイトルエレメント配列をセット
		var elm_titles = elm_title_parent.getElementsByTagName("li");

		//... 処理後子IDが指定されているとき
		if (sel_child_id != undefined) {
			
		} else {
			//... タブタイトルエレメントをセット
			var elm_title_after = elm_titles[elm_titles.length - 1];

			//... 一時子IDをセット
			sel_child_id = elm_title_after.id.substr(("tab-title-" + tab_id + "-").length);
		}
		//alert(sel_child_id);
		
		//... クッキー文字列をセット
		var cookie_str = "";

		//... タブタイトルエレメント配列の要素分ループ
		for (var i = 0; i < elm_titles.length; i++) {
			//... 一時子IDをセット
			var child_id_tmp = elm_titles[i].id.substr(("tab-title-" + tab_id + "-").length);
			
			//... クッキー文字列をセット
			if (cookie_str != "") cookie_str += ",";
			cookie_str += child_id_tmp;
		}

		//... クッキーを書き込む
		if (tab_obj[tab_id]["tab_page"] != undefined) {
			cokobj.setCookie("to_" + tab_obj[tab_id]["tab_page"], cookie_str);
		}
		//alert("CloseTab cookie_str:" + cookie_str);

		//... タブを切り替え
		ToggleTab(tab_id, sel_child_id);
	}

}

//... 前子ID取得関数
function GetPrevChildId(tab_id, child_id) {
	//... タブタイトル親エレメントをセット
	var title_parent_elm = document.getElementById("tab-title-" + tab_id);

	//... タブタイトルエレメント配列をセット
	var title_elm_array = title_parent_elm.childNodes;

	//... 前子IDをセット
	var prev_child_id = "";
	
	//... 一時子IDをセット
	var child_id_tmp = "";

	//... タブタイトルエレメント配列の要素分ループ
	for (i = 0; i < title_elm_array.length; i++) {
		//... タブタイトルエレメントをセット
		var title_elm = title_elm_array[i];
		
		//... IDにタブ名が含まれていないとき
		if (title_elm.id.indexOf(tab_id) < 0) {
			continue;
		}
		
		//... IDのスタイルが非表示のとき
		if (title_elm.style.display == "none") {
			continue;
		}

		//... 子IDが一致するとき
		if (title_elm.id.substr(("tab-title-" + tab_id + "-").length) == child_id) {
			//... 前子IDをセット
			prev_child_id = child_id_tmp;
			break;
		}
		
		//... 一時子IDをセット
		var child_id_tmp = title_elm.id.substr(("tab-title-" + tab_id + "-").length);

	}
	
	//... 前子IDを返す
	return prev_child_id;
}

	
//... 読み込み中タブ表示関数
function DispLoadingTab(tab_id, child_id, mode) {
	//... タブタイトル親エレメントをセット
	var title_parent_elm = document.getElementById("tab-title-" + tab_id);
	
	//... タブタイトル子エレメントをセット
	var title_loading_elm = document.getElementById("tab-title-" + tab_id + "-loading");
	
	//... タブタイトル子エレメントが存在しないとき
	if (title_loading_elm == undefined) {
		alert("Loading tab not founded!");
		return false;
	}
	
	//... タイトルHTMLをセット
	title_html = title_loading_elm.innerHTML;
	
	//... タイトルHTMLを置換
	title_html = title_html.replace("loading", child_id);
	
	//... タブタイトル新エレメントをセット
	var title_new_elm = document.createElement("li");
	
	//... タブタイトル新エレメントのIDをセット
	title_new_elm.id = "tab-title-" + tab_id + "-" + child_id;
	
	//... タブタイトル新エレメントのHTMLをセット
	title_new_elm.innerHTML = title_html;
	
	//... タブタイトル新エレメントを親エレメントに追加
	title_parent_elm.appendChild(title_new_elm);

	//... タブ本文親エレメントをセット
	var body_parent_elm = document.getElementById("tab-body-" + tab_id);
	
	//... タブ本文子エレメントをセット
	var body_loading_elm = document.getElementById(tab_id + "-loading");
	
	//... 本文HTMLをセット
	body_html = body_loading_elm.innerHTML;
	
	//... タブ本文新エレメントをセット
	var body_new_elm = document.createElement("div");
	
	//... タブ本文新エレメントのIDをセット
	body_new_elm.id = tab_id + "-" + child_id;
	
	//... タブ本文新エレメントのHTMLをセット
	body_new_elm.innerHTML = body_html;
	
	//... タブ本文新エレメント2をセット
	var body_new_elm_2 = document.createElement("div");
	
	//... タブ本文新エレメント2のクラス名をセット
	body_new_elm_2.className = "tab-body";
	
	//... タブ本文新エレメントを新エレメント2に追加
	body_new_elm_2.appendChild(body_new_elm);
	
	//... タブ本文新エレメント2を親エレメントに追加
	body_parent_elm.appendChild(body_new_elm_2);
	
	//... タブタイトルの属性をセット
	SetTabTitleAttribute(tab_id, title_new_elm, mode);
	
	//... タブを切り替え
	ToggleTab(tab_id, child_id);
	
	return true;
}

function ToggleFrame(element_id, flg) {
	if (flg == undefined) flg = true;
	//alert(element_id);
	if (flg) {
		SetStyleById(element_id, {display:'block'});
	} else {
		SetStyleById(element_id, {display:'none'});
	}
}

function SetStyleById(id, style) {
	//alert("SetStyleById id:" + id);
	//... エレメントをセット
	var item = $(id);
	
	//... スタイルシートをセット
	Element.setStyle(item, style);
}

//... 日付範囲エレメント補完関数
function FillDateRangeElm(from_elm, to_elm, mode) {
	if (mode == undefined) {
		mode = "";
	}
	
	//... 開始値が指定されておりかつ、終了値が指定されていないとき
	if ((from_elm.value != "") || (mode.indexOf("%f") >= 0)) {
		if ((to_elm.value == "") || (mode.indexOf("%t") >= 0)) {
			//... 終了エレメントに値をセット
			to_elm.value = from_elm.value;
		}
	}
}

//... 日付エレメントに値セット関数
function SetValueDateElm(elm, date) {
	//... 年月日をセット
	var date_y = date.getFullYear();
	var date_m = date.getMonth() + 1;
	if (date_m <= 9) date_m = "0" + date_m;
	var date_d = date.getDate();
	if (date_d <= 9) date_d = "0" + date_d;
	
	//... 日値をセット
	date_value = date_y + "/" + date_m + "/" + date_d;
	
	//... 日値をエレメントにセット
	elm.value = date_value;
}

//... 日付範囲エレメントに年月セット関数
function SetYMDateRangeElm(y_elm, m_elm, from_elm, to_elm) {
	//... 開始日・終了日をセット
	date_from = new Date(y_elm.value, m_elm.value - 1, 1);
	date_to = new Date(y_elm.value, m_elm.value, 0);
	
	//... エレメントに値をセット
	SetValueDateElm(from_elm, date_from);
	SetValueDateElm(to_elm, date_to);

}

//... 日付範囲エレメントに期間セット関数
function SetTermDateRangeElm(term_elm, from_elm, to_elm) {
	//... 期間値をセット
	var term_value = term_elm.value;
	
	//... 期間値が指定されていないとき
	if (term_value == "") {
		//... 開始エレメントにフォーカス
		from_elm.focus();
		
		return;
	}
	
	//... 現在日をセット
	var date_now = new Date();
	var date_now_y = date_now.getFullYear();
	var date_now_m = date_now.getMonth() + 1;
	var date_now_d = date_now.getDate();
	
	//... 開始日・終了日をセット
	date_from = date_now;
	date_to = date_now;
	
	//... 期間値ごとに分岐
	switch (term_value) {
		//... 今日のとき
		case "TODAY":
			//... 開始日・終了日をセット
			date_from = date_now;
			date_to = date_now;
		
			break;
			
		//... 今週のとき
		case "WEEK_THIS":
			//... カウンタをセット
			count = 0;
		
			//... ループ開始
			do {
				//... 開始日をセット
				date_from = new Date(date_now_y, date_now_m - 1, date_now_d - count);
				
				//... カウンタをデクリメント
				count--;
			} while (date_from.getDay() == 1);
		
			//... 終了日をセット
			date_to = new Date(date_now_y, date_now_m - 1, date_now_d - count + 7);
		
			break;

		//... 今月のとき
		case "MONTH_THIS":
			//... 開始日・終了日をセット
			date_from = new Date(date_now_y, date_now_m - 1, 1);
			date_to = new Date(date_now_y, date_now_m, 0);
		
			break;
			

		//... 今年のとき
		case "YEAR_THIS":
			//... 開始日・終了日をセット
			date_from = new Date(date_now_y, 1 - 1, 1);
			date_to = new Date(date_now_y, 12 - 1, 31);
		
			break;
			
		//... 1週間前からのとき
		case "WEEK_TO":
			//... 開始日・終了日をセット
			date_from = new Date(date_now_y, date_now_m - 1, date_now_d - 7);
			date_to = new Date(date_now_y, date_now_m - 1, date_now_d);
		
			break;

		//... 1ヶ月前からのとき
		case "MONTH_TO":
			//... 開始日・終了日をセット
			date_from = new Date(date_now_y, date_now_m - 2, date_now_d);
			date_to = new Date(date_now_y, date_now_m - 1, date_now_d);
		
			break;
			

		//... 1年前からとき
		case "YEAR_TO":
			//... 開始日・終了日をセット
			date_from = new Date(date_now_y - 1, date_now_m - 1, date_now_d);
			date_to = new Date(date_now_y, date_now_m - 1, date_now_d);
		
			break;
			
		//... 1週間後までのとき
		case "WEEK_FROM":
			//... 開始日・終了日をセット
			date_from = new Date(date_now_y, date_now_m - 1, date_now_d);
			date_to = new Date(date_now_y, date_now_m - 1, date_now_d + 7);
		
			break;

		//... 1ヶ月後までのとき
		case "MONTH_FROM":
			//... 開始日・終了日をセット
			date_from = new Date(date_now_y, date_now_m - 1, date_now_d);
			date_to = new Date(date_now_y, date_now_m, date_now_d);
		
			break;
			

		//... 1年後までのとき
		case "YEAR_FROM":
			//... 開始日・終了日をセット
			date_from = new Date(date_now_y, date_now_m - 1, date_now_d);
			date_to = new Date(date_now_y + 1, date_now_m - 1, date_now_d);
		
			break;
			
	}
	
	//... エレメントに値をセット
	SetValueDateElm(from_elm, date_from);
	SetValueDateElm(to_elm, date_to);
}

//... ページ移動関数
function MovePageOnClick(url) {
	//... シフトキーが押されているとき
	if (window.event.shiftKey) {
		window.open(url, "_blank");
	} else {
		location.href = url;
	}
}

//... クローン関数
function SetCloneObject(obj_new, obj_org) {
	//... 元オブジェクトのプロパティをループしながら
	for (var key in obj_org) {
		//... 新しいオブジェクトに同名のプロパティを作成
		obj_new[key] = obj_org[key];
	}
}

//... 表示切り替え関数
function ToggleDisplay(elm_id, disp_class, callback) {
	//... エレメントをセット
	var elm = document.getElementById(elm_id);
	
	//... 表示クラスが指定されていないとき
	if (disp_class == undefined) {
	
		//... クラス名をセット
		var cls_name = elm.className;
		
		//... エレメントのクラスが非表示のとき
		if (cls_name.indexOf("none") >= 0) {
			elm.className = cls_name.replace("none", "block");
			flg = true;
		//... エレメントのクラスが表示のとき
		} else if (cls_name.indexOf("block") >= 0) {
			elm.className = cls_name.replace("block", "none");
			flg = false;
		} else {
			elm.className = "none";
			flg = false;
		}
		
	//... 表示クラスが真または偽のとき
	} else if ((disp_class === true) || (disp_class === false)){
		//... 表示クラスが真のとき
		if (disp_class === true) {
			elm.className = "block";
		} else {
			elm.className = "none";
		}
		
		flg = disp_class;
		
	} else {
		elm.className = disp_class;
		
		//... 表示クラスが非表示のとき
		if (disp_class == "none") {
			flg = false;
		} else {
			flg = true;
		}
	}
	
	//... コールバックが指定されているとき
	if (callback != undefined) {
		callback(element_id, flg);
	}
}

//... プルダウン切り替え関数
function TogglePulldown(element_id, pulldown_element_id, callback, flg) {
	//... プルダウンエレメントIDが指定されていないとき
	if ((pulldown_element_id == undefined) || (pulldown_element_id == "")) {
		pulldown_element_id = element_id + "-pulldown"
	}
	
	//... 展開エレメントをセット
	var pulldown_element = document.getElementById(pulldown_element_id);

	//... 展開エレメントが存在するとき
	if (pulldown_element != undefined) {
		//... フラグを取得
		//... フラグの説明
		//... true: 現在閉じていて、これから開く
		//... false: 現在開いていて、これから閉じる
		if (flg == undefined) {
			var flg = GetPulldownOpen(pulldown_element_id);
		}
		
		//... 展開エレメントのスタイルをセット
		SetPulldownOpen(element_id, pulldown_element_id, flg);
		
		//... コールバックが指定されているとき
		if (callback != undefined) {
			callback(element_id, pulldown_element_id, flg);
		}
	}
}

//... プルダウン状態取得関数
function GetPulldownOpen(pulldown_element_id) {
	//... 展開エレメントをセット
	var pulldown_element = document.getElementById(pulldown_element_id);
	
	//... 展開エレメントが存在するとき
	if (pulldown_element != undefined) {
		//... 展開エレメントのクラスが開のとき
		if (pulldown_element.className == "float-pulldown-open") {
			return true;
		} else {
			return false;
		}
	}
}

//... プルダウン状態取得関数
function SetPulldownOpen(element_id, pulldown_element_id, flg) {
	//... プルダウンエレメントIDが指定されていないとき
	if ((pulldown_element_id == undefined) || (pulldown_element_id == "")) {
		pulldown_element_id = element_id + "-pulldown"
	}
	
	//... 展開エレメントをセット
	var pulldown_element = document.getElementById(pulldown_element_id);
	
	//... 展開エレメントが存在するとき
	if (pulldown_element != undefined) {
		//... フラグが開のとき
		if (flg) {
			//... フロートエレメントのスタイルをセット
			if ((element_id != undefined) && (element_id != "")) {
				SetStyleById(element_id,{display:'block'});
			}

			//... 展開エレメントのスタイルをセット
			pulldown_element.className = "float-pulldown-close";
			
		} else {
			//... フロートエレメントのスタイルをセット
			if ((element_id != undefined) && (element_id != "")) {
				SetStyleById(element_id,{display:'none'});
			}
			
			//... 展開エレメントのスタイルをセット
			pulldown_element.className = "float-pulldown-open";
		}
	}
}

//... フロートグループ表示切り替え関数
function ToggleDispFloatGroup(elm_id_group, flg, callback) {
	//... エレメントIDをセット
	var elm_id_button = elm_id_group + "-button";
	
	//... エレメントをセット
	var elm_group = document.getElementById(elm_id_group);
	var elm_button = document.getElementById(elm_id_button);
	
	//... ボタンエレメントが存在するとき
	if ((elm_button != undefined) && (elm_button != null)) {
	
		//... ボタンエレメントの画像を取得
		var button_src = elm_button.src;
		
		//... 画像が開のとき
		if ((button_src.indexOf("pulldown") >= 0) || (flg)) {
			//... エレメントを開く
			SetStyleById(elm_id_group, {display:'block'});
			SetStyleById(elm_id_group, {visibility:'visible'});
			
			//... 新ボタン画像をセット
			var button_src_new = button_src.replace("pulldown", "pullup");
			elm_button.src = button_src_new;

			//... コールバックが指定されているとき
			if (callback != undefined) callback(elm_id_group);
			
		} else {
			//... エレメントを閉じる
			SetStyleById(elm_id_group, {display:'none'});
			SetStyleById(elm_id_group, {visibility:'hidden'});
			
			//... 新ボタン画像をセット
			var button_src_new = button_src.replace("pullup", "pulldown");
			elm_button.src = button_src_new;
			
		}
	
	} else {
		if ((flg) || (flg == undefined)) {
			//... エレメントを開く
			SetStyleById(elm_id_group, {display:'block'});
			SetStyleById(elm_id_group, {visibility:'visible'});
			
			//... コールバックが指定されているとき
			if (callback != undefined) callback(elm_id_group);
		} else {
			//... エレメントを閉じる
			SetStyleById(elm_id_group, {display:'none'});
			SetStyleById(elm_id_group, {visibility:'hidden'});
			
		}
	}
}

//... フロートグループ折りたたみ関数
function CloseFloatGroup(elm_id, callback) {
	//... スタイルをセット
	SetStyleById(elm_id + "-open", {visibility:'visible'});
	SetStyleById(elm_id + "-close", {visibility:'hidden'});
	SetStyleById(elm_id, {visibility:'hidden'});
	
	//... コールバックが指定されているとき
	if (callback != undefined) {
		callback(elm_id);
	}
}

//... Webテキストポップアップ関数
function PromptWebTextbox(frm_name) {
	var frm = document.forms[frm_name];
	var str = "";
	
	for (var i = 1; i < 100; i++) {
		var elm_name = "i[1][status_flg][-" + i + "-]";
		var elm = frm.elements[elm_name];
		
		if (elm == undefined) {
			break;
		}
		
		var status_flg = GetElmValue(frm_name, elm_name);
		
		if (status_flg == "N") {
			continue;
		}
		
		var elm_name = "i[1][message_title_jap][-" + i + "-]";
		var elm = frm.elements[elm_name];
		
		if (elm != undefined) {
			var message_title_jap = elm.value;
			
			if (message_title_jap != "") {
				str += "!" + message_title_jap + "\n\n";
			}
		}
		
		var elm_name = "i[1][message_body_jap][-" + i + "-]";
		var elm = frm.elements[elm_name];
		var message_body_jap = elm.value;
		
		if (message_body_jap != "") {
			str += message_body_jap + "\n\n";
		}
	}
	
	prompt("", str);
}

//... 警告文字列セット関数
function SetAlertStr(str, type) {
	if (type == undefined) {
		type = "info";
	}
	
	if (globals["alert_" + type] == undefined) {
		globals["alert_" + type] = "";
	}
	
	globals["alert_" + type] += "<li>" + str + "</li>";
}

//... 警告ボックス表示関数
function DispAlertBox() {
	//... 警告文字列が存在するとき
	if (document.getElementById("alert-info") != undefined) {
		if ((globals["alert_info"] != undefined) && (globals["alert_info"] != "")) {
			document.getElementById("alert-info").innerHTML = globals["alert_info"];
			SetStyleById("alert-info" ,{display: 'block'});
		} else {
			SetStyleById("alert-info" ,{display: 'none'});
		}
	}
	
	//... 警告文字列が存在するとき
	if (document.getElementById("alert-attention") != undefined) {
		if ((globals["alert_attention"] != undefined) && (globals["alert_attention"] != "")) {
			document.getElementById("alert-attention").innerHTML = globals["alert_attention"];
			SetStyleById("alert-attention" ,{display: 'block'});
		} else {
			SetStyleById("alert-attention" ,{display: 'none'});
		}
	}
}

//... HTMLを転記
function TranscriptHTML(elm_id_1, elm_id_2) {
	//... エレメントをセット
	var elm_1 = document.getElementById(elm_id_1);
	var elm_2 = document.getElementById(elm_id_2);
	
	//... エレメントがどちらも存在するとき
	if ((elm_1 != undefined) && (elm_2 != undefined)) {
		//... HTMLを転記
		elm_2.innerHTML = elm_1.innerHTML;
		
		//... HTMLが存在するとき
		if (elm_2.innerHTML != "") {
			SetStyleById(elm_id_2, {display: "block"});
		} else {
			SetStyleById(elm_id_2, {display: "none"});
		}
	}
}

//... 書きかけエレメントセット関数
function SetUnfinishElm(frm_name, elm_name) {
	globals["unfinish_elm_array"].push(frm_name + "," + elm_name);
	
	window.onbeforeunload = function(event){
		CheckUnfinishOnBeforeUnload(event);
	}
}

//... 送信前に書きかけをチェック
function CheckUnfinishOnSubmit(frm) {
	if (frm != undefined) {
		if (frm.target != "") {
			if (document.getElementById(frm.target) != null) {
				return true;
			}
		}
	}
	
	//... 書きかけが存在するとき
	if (GetExistsUnfinish(frm)) {
		if (!confirm("現在のページに書きかけの内容があります。\nこの操作を行ってもよろしいですか?\n（[OK]->書きかけの内容を破棄し、ページを移動します\n[キャンセル]->ページを移動しません）")) {
			return false;
		}
	}

	window.onbeforeunload = null;
	return true;
}
	
//... ページ遷移前に書きかけをチェック
function CheckUnfinishOnBeforeUnload(event) {
	//... 書きかけが存在するとき
	if (GetExistsUnfinish()) {
		event = event || window.event; 
		event.returnValue = "ページを移動すると書きかけの内容は破棄されます。";
	}
}

//... 書きかけの存在を取得
function GetExistsUnfinish(frm) {
	if (frm == undefined) {
		var frm_name = null;
	} else {
		var frm_name = frm.name;
	}
	
	if (globals["unfinish_elm_array"].length > 0) {
		for (var i = 0; i < globals["unfinish_elm_array"].length; i++) {
			var frm_name_tmp = globals["unfinish_elm_array"][i].substr(0, globals["unfinish_elm_array"][i].indexOf(","));
			var elm_name_tmp = globals["unfinish_elm_array"][i].substr(globals["unfinish_elm_array"][i].indexOf(",") + 1);
			
			var frm_tmp = document.forms[frm_name_tmp];
			
			if (frm_tmp != undefined) {
				if (frm_name_tmp != frm_name) {
					var elm_tmp = frm_tmp.elements[elm_name_tmp];
					
					if (elm_tmp != undefined) {
						if (elm_tmp.value != "") {
							return true;
						}
					}
				}
			}
		}
	}
	
	return false;
}

function externalLinks() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href") &&
		anchor.getAttribute("rel") == "external") {
		anchor.target = "_blank";
		}
	}
}

function ApplyCSS(doc, cssfile, overwrite)
{
	//alert("now applying cssfile: " + cssfile);
	
	if (globals["applied_css"] == undefined) {
		globals["applied_css"] = new Array();
	}
	
	for (var i = 0; i < globals["applied_css"].length; i++) {
		if (globals["applied_css"][i] == cssfile) {
			//alert("cssfile: " + cssfile + " is already loaded.");
			return;
		}
	}
	
	globals["applied_css"].push(cssfile);
	
	cssfile += "?t=" + (new Date()).getTime();
	
	if (typeof overwrite == "undefined")
	overwrite = 0;      // デフォルト:CSSの追加

	// 既存のCSSを削除
	if (overwrite && doc.styleSheets.length >= 1) {
		var links = doc.getElementsByTagName("link");
		for (var i = 0 ; i < links.length ; i++) {
		if (links[i].rel == "stylesheet")
			links[i].parentNode.removeChild(links[i]);
		}
	}

	// CSS追加
	if (document.all) {
		doc.createStyleSheet(cssfile);
	} else {
		var link = doc.createElement("link");
		link.rel = "stylesheet";
		link.href = cssfile;
		link.type = "text/css"
		doc.getElementsByTagName('head')[0].appendChild(link);
	}
}

//... カレンダーロード関数
function LoadCalendar(elm_id, url, d1, d2, d3, callback_function, query_2) {
	//... 選択日付が指定されていないとき
	if ((d1 == undefined) || (d1 == "") || (d1 == 0)) {
		d1 = d3;
	}
	
	//... クエリをセット
	var query = "d=comn_calendar";
	query += "&el=" + elm_id;
	query += "&url=" + url;
	query += "&d1=" + d1;
	
	if (d2 != undefined) {
		query += "&d2=" + d2;
	}
	
	if (callback_function != undefined) {
		query += "&cb=" + callback_function;
	}
	
	if (query_2 != undefined) {
		query += "&qr=" + query_2;
	}
	
	var test = 0;
	
	//... カレンダーをロード
	LoadOuterHTML(elm_id, query, url, OpenCalendar, test);
}

//... カレンダー展開関数
function OpenCalendar(elm_id) {
	//... 外部CSSを適用
	ApplyCSS(document, "./css/calendar.css");
	
	//... エレメント表示
	DisplayElement(elm_id);
}

//... エレメント表示関数
function DisplayElement(elm_id) {
	SetStyleById(elm_id, {display: 'block'});
}

//... エレメント隠し関数
function HideElement(elm_id) {
	SetStyleById(elm_id, {display: 'none'});
}

//... カレンダーロード2関数
function LoadCalendarByFormValue(elm_id, url, frm_name, elm_name, d2, d3, callback_function, query_2) {
	var frm = document.forms[frm_name];
	var elm = frm.elements[elm_name];
	var ymd1 = "";
		
	//... エレメントが存在するとき
	if (elm != undefined) {
		//... 年月日をセット
		ymd1 = GetElmValue(frm_name, elm_name);
		
	//... エレメント名（年・月・日）をセット
	} else if (elm_name.match(/^(.*)\[date([-_A-Za-z0-9]*)\](.*)$/)) {
		var elm_y_name = RegExp.$1 + "[date" + RegExp.$2 + "_y]" + RegExp.$3;
		var elm_m_name = RegExp.$1 + "[date" + RegExp.$2 + "_m]" + RegExp.$3;
		var elm_d_name = RegExp.$1 + "[date" + RegExp.$2 + "_d]" + RegExp.$3;
		var elm_y = frm.elements[elm_y_name];
		var elm_m = frm.elements[elm_m_name];
		var elm_d = frm.elements[elm_d_name];

		//... エレメントが存在するとき
		if ((elm_y != undefined) && (elm_m != undefined) && (elm_d != undefined)) {
			//... エレメントに値をセット
			var y1 = GetElmValue(frm_name, elm_y_name);
			var m1 = GetElmValue(frm_name, elm_m_name);
			var d1 = GetElmValue(frm_name, elm_d_name);
			
			if ((y1.match(/^[0-9]{2,4}$/)) && (m1.match(/^[0-9]{1,2}$/)) && (d1.match(/^[0-9]{1,2}$/))) {
				ymd1 = y1 + "/" + m1 + "/" + d1;
			}
		}
	}
	
	//... カレンダーをロード
	LoadCalendar(elm_id, url, ymd1, "", "", callback_function, query_2);
}

//... カレンダーから日付セット関数
function SetDateFromCalendar(elm_id, ymd, y, m, d, query) {
	//... フォーム名をセット
	var frm_name = query.substr(0, query.indexOf(","));
	var elm_name = query.substr(query.indexOf(",") + 1);
	var frm = document.forms[frm_name];
	var elm = frm.elements[elm_name];
	
	//... エレメントが存在するとき
	if (elm != undefined) {
		//... 値をセット
		if (m <= 9) m = "0" + m;
		if (d <= 9) d = "0" + d;
		
		//... エレメントに値をセット
		SetElmValue(frm_name, elm_name, y + "/" + m + "/" + d);
		
	//... エレメント名（年・月・日）をセット
	} else if (elm_name.match(/^(.*)\[date([-_A-Za-z0-9]*)\](.*)$/)) {
		var elm_y_name = RegExp.$1 + "[date" + RegExp.$2 + "_y]" + RegExp.$3;
		var elm_m_name = RegExp.$1 + "[date" + RegExp.$2 + "_m]" + RegExp.$3;
		var elm_d_name = RegExp.$1 + "[date" + RegExp.$2 + "_d]" + RegExp.$3;
		var elm_y = frm.elements[elm_y_name];
		var elm_m = frm.elements[elm_m_name];
		var elm_d = frm.elements[elm_d_name];

		//... エレメントが存在するとき
		if ((elm_y != undefined) && (elm_m != undefined) && (elm_d != undefined)) {
			//... エレメントに値をセット
			SetElmValue(frm_name, elm_y_name, y);
			SetElmValue(frm_name, elm_m_name, m);
			SetElmValue(frm_name, elm_d_name, d);
		}
	}

	//... カレンダーエレメントを隠す
	HideElement(elm_id);
}

function GetWindowWidth(){
	if(typeof window.innerWidth != "undefined"){
		return window.innerWidth;
	}else if(document.compatMode=='CSS1Compat'){
		return document.documentElement.clientWidth;
	}else{
		return document.body.clientWidth;
	}
}

function GetWindowHeight(){
	if(typeof window.innerHeight != "undefined"){
		return window.innerHeight;
	}else if(document.compatMode=='CSS1Compat'){
		return document.documentElement.clientHeight;
	}else{
		return document.body.clientHeight;
	}
}

//... デバッグ出力関数
function OutputDebug(str, test, elm_id) {
	if ((test != undefined) && (!test)) return;
	if (elm_id == undefined) elm_id = "debug";
	var elm = document.getElementById(elm_id);
	
	if (elm != undefined) {
		elm.value += str + "\n";
	}
}

//... デバッグクリア関数
function ClearDebug(elm_id, test) {
	if ((test != undefined) && (!test)) return;
	if (elm_id == undefined) elm_id = "debug";
	var elm = document.getElementById(elm_id);
	
	if (elm != undefined) {
		elm.value = "";
	}
}
