// XMLファイルを書き換えるだけで
// テーブルを書き換えられます。

//テーブルを出力するDIVのID名
var outputDivId = 'tdiv'


//====================================================================
// Ajax処理
//

var dataAry //データ用配列


var sdjId = "";
var sdjDiv = new Array();
var sdjnDiv = new Array();
var sdjdDiv = new Array();
var sdjForm = new Array();
var sdjObjName = new Array();
var sdjObjPrefix = new Array();
var sdjObjPostfix = new Array();
var sdjTableValueOrg = new Array();
var sdjNoValueOrg = new Array();
var sdjCodeValueOrg = new Array();
var sdjSelectElmArray = new Array();

var sdjICode = new Array();
var sdjKCode = new Array();
var sdjCCode = new Array();
var sdjRCode = new Array();
var sdjSiteId = "";
var sdjSKey = "";
var sdjSValue = "";

var sdjQueryStr = new Array();
var sdjCallback = new Array();
var sdjCallback2 = new Array();

var sdjTest = false;
var sdjUrl = "/app/xml/xml_data_list.php";

var sdjTimer = new Array();
var sdjHideTimer = new Array();
var sdjCodeValueOld = new Array();
var sdjFocused = new Array();
var sdjNoConvertFlg = new Array();
var sdjLeaveNoValueFlg = new Array();
var sdjSending = new Array();

var remotehost = "";
var searchcode = "";
var columns = "";
var ths = "";
var datas = "";
var dataObj = "";
var tables = "";
var nos = "";
var codes = "";
var names = "";
var digests = "";

function SetSdjSelectElmArray() {
	for (var i = 0; i < document.forms.length; i++) {
		for (var j = 0; j < document.forms[i].elements.length; j++) {
			if (document.forms[i].elements[j].options != undefined) {
				sdjSelectElmArray.push(document.forms[i].elements[j]);
			}
		}
	}
}

function ToggleSdjVisibility(visible_flg, html, select_visible_flg) {
	if (visible_flg) {
		float_visibility = 'visible';

		if (select_visible_flg) {
			select_visibility = 'visible';
		} else {
			select_visibility = 'hidden';
		}
		
		if (html != null) {
			if (html.length != null) {
				sdjDiv[sdjId].innerHTML = html;
			}
		}
		
	} else {
		float_visibility = 'hidden';
		select_visibility = 'visible';
		sdjDiv[sdjId].innerHTML = "";
	}
	
	sdjDiv[sdjId].style.visibility = float_visibility;

	for (var i = 0; i < sdjSelectElmArray.length; i++) {
		sdjSelectElmArray[i].style.visibility = select_visibility;
	}
}

function sdjOn(obj, query_str, no_convert_flg, callback, callback2, url, test) {
	if (test == undefined) {
		test = false;
	}
	
	sdjTest = test;
	
	if (url != undefined) {
		sdjUrl = url;
	}
	
	var obj_name = obj.name.substr(0, obj.name.lastIndexOf('['));
	var obj_name_short = obj_name.replace(/\[/g, '').replace(/\]/g, '');
	
	if ((sdjId.length > 0) && (sdjId != obj_name_short)) {
		if (typeof(sdjHideTimer[sdjId]) != "undefined") {
			clearTimeout(sdjHideTimer[sdjId]);
			sdjHide();
		}
	}

	sdjId = obj_name_short;
	sdjDiv[sdjId] = document.getElementById('sdj' + obj_name_short);
	sdjnDiv[sdjId] = document.getElementById('sdjn' + obj_name_short);
	sdjdDiv[sdjId] = document.getElementById('sdjd' + obj_name_short);
	
	sdjForm[sdjId] = obj.form;
	sdjObjName[sdjId] = obj_name;
	sdjSending[sdjId] = false;
	sdjFocused[sdjId] = true;
	sdjNoConvertFlg[sdjId] = no_convert_flg;
	sdjLeaveNoValueFlg[sdjId] = false;

	if (typeof(sdjHideTimer[sdjId]) != "undefined") {
		clearTimeout(sdjHideTimer[sdjId]);
	}

	var on = sdjObjName[sdjId] + '[code]';

	if (sdjCodeValueOrg[sdjId] == undefined) {
		sdjCodeValueOrg[sdjId] = sdjForm[sdjId].elements[on].value;
	}
	
	sdjForm[sdjId].elements[on].value = "";
	sdjCodeValueOld[sdjId] = sdjForm[sdjId].elements[on].value;
	sdjForm[sdjId].elements[on].className = "sdjsearch-on";

	if (query_str.match(/&?si=([A-Z0-9_]+)/)) {
		sdjSiteId = RegExp.$1;
	}
	
	sdjQueryStr[sdjId] = query_str;

	if ((callback != undefined) && (callback != "")) {
		sdjCallback[sdjId] = callback;
	} else {
		sdjCallback[sdjId] = DispSdjHTML;
	}

	if ((callback2 != undefined) && (callback2 != "")) {
		sdjCallback2[sdjId] = callback2;
	} else {
		sdjCallback2[sdjId] = undefined;
	}
	
	sdjLoad();
}

function sdjKeep() {
	if (typeof(sdjHideTimer[sdjId]) != "undefined") {
		clearTimeout(sdjHideTimer[sdjId]);
	}

	if (!sdjNoConvertFlg[sdjId]) {
		ToggleSdjVisibility(true);
	}
}

function sdjOff() {
	if (typeof(sdjTimer[sdjId]) != "undefined") {
		clearTimeout(sdjTimer[sdjId]);
	}

	sdjFocused[sdjId] = false;

	sdjHideTimer[sdjId] = setTimeout("sdjHide()", 30);
}

function sdjHide() {
	if (typeof(sdjHideTimer[sdjId]) != "undefined") {
		clearTimeout(sdjHideTimer[sdjId]);
	}
	
	//sdjNoConvertFlg[sdjId] = true;
	sdjLeaveNoValueFlg[sdjId] = true;
	
	on = sdjObjName[sdjId] + '[code]';

	if (sdjForm[sdjId].elements[on].value == "") {
		sdjForm[sdjId].elements[on].value = sdjCodeValueOrg[sdjId];
		sdjForm[sdjId].elements[on].className = "sdjsearch-off";
	} else {
		sdjSetData();
	}
	

	ToggleSdjVisibility(false);


	
}

function sdjClear(obj, no_data_str) {
	var obj_name = obj.name;
	var frm = obj.form;

	on = obj_name.replace("[clear]", "[table]");
	frm.elements[on].value = "";

	on = obj_name.replace("[clear]", "[no]");
	frm.elements[on].value = "";

	on = obj_name.replace("[clear]", "[name]");
	frm.elements[on].value = no_data_str;

	obj.style.visibility = 'hidden';

	on = obj_name.replace("[clear]", "[code]");
	frm.elements[on].focus();

	if (sdjCallback2[sdjId] != undefined) {
		sdjCallback2[sdjId](sdjForm[sdjId]);
	}
}

function sdjLoad() {
	if (typeof(sdjTimer[sdjId]) != "undefined") {
		clearTimeout(sdjTimer[sdjId]);
	}

	if (typeof(sdjHideTimer[sdjId]) != "undefined") {
		clearTimeout(sdjHideTimer[sdjId]);
	}

	var on = sdjObjName[sdjId] + '[code]';
	var str = sdjForm[sdjId].elements[on].value;

	if (sdjCodeValueOld[sdjId] != str) {
		if (str.length > 0) {
				sdjSetData();
		} else {
			sdjCodeValueOld[sdjId] = str;

			if (!sdjNoConvertFlg[sdjId]) {
				ToggleSdjVisibility(false);
			}
		}
	}
		
	sdjTimer[sdjId] = setTimeout("sdjLoad()", 300);
}

//リクエスト送信
function sdjSetData() {
	var on = sdjObjName[sdjId] + '[code]';
	var str = sdjForm[sdjId].elements[on].value;
	
	if (str.length == 0) {
		return;
	}

	sdjCodeValueOld[sdjId] = str;
	
	var data = new Array();

	var query_array = sdjQueryStr[sdjId].split("&");
	
	for (var i = 0; i < query_array.length; i++) {
		var query_array_2 = query_array[i].split("=");
		data["_ajax_" + query_array_2[0]] = query_array_2[1];
	}

	data['_ajax_v'] = str;
	data['_ajax_o[0]'] = "mode";
	data['_ajax_p[0]'] = "";

	if (sdjTest) {
	//if (true) {
		sendRequest(sdjOnLoaded, data, 'GET', sdjUrl, true, true, "", "", data['_ajax_v'], 1);
	} else {
		sendRequest(sdjOnLoaded, data, 'GET', sdjUrl, true, true, "", "", data['_ajax_v']);
	}
	
	sdjSending[sdjId] = true;

	if (!sdjNoConvertFlg[sdjId]) {
		ToggleSdjVisibility(true, "searching...", true);
	}
}

//受信時処理
function sdjOnLoaded(res, strOld) {
	if (strOld == undefined) {
		strOld = "";
	}

	var on = sdjObjName[sdjId] + '[code]';
	var str = sdjForm[sdjId].elements[on].value;
	
	if (strOld != str) {
		return;
	}

	//受信
	xmldoc = res.responseXML;
	textdoc = res.responseText;

	//2次元配列化
	dataAry = Xml2Ary(xmldoc);

	//サジェストHTMLを表示
	sdjCallback[sdjId]();
}

//responseXMLで受け取ったデータを2次元配列化して返します
function Xml2Ary(xmldoc, maxlength) {
	var str = "";
	var remotehostElement = xmldoc.getElementsByTagName('remotehost');
	var searchcodeElement = xmldoc.getElementsByTagName('searchcode');
	var columnsElement = xmldoc.getElementsByTagName('column');
	var thsElement = xmldoc.getElementsByTagName('th');
	var itemsElement = xmldoc.getElementsByTagName('item');

	if (itemsElement.length > maxlength) {
		return itemsElement.length;
	}

	columns = new Array(columnsElement.length);
	ths = new Array(columnsElement.length);
	datas = new Array();
	dataObj = new Array();
	tables = new Array();
	nos = new Array();
	codes = new Array();
	names = new Array();
	digests = new Array();

	try {
		remotehost = remotehostElement[0].firstChild.nodeValue;
	} catch(e) {
		remotehost = "";
	}

	try {
		searchcode = searchcodeElement[0].firstChild.nodeValue;
	} catch(e) {
		searchcode = "";
	}
		
	//... カラム数分ループ
	for (i = 0; i <= columnsElement.length - 1; i++) {
		columns[i] = columnsElement[i].firstChild.nodeValue;
		ths[i] = thsElement[i].firstChild.nodeValue;
	}
	
	//... アイテム数分ループ
	for (i = 0; i <= itemsElement.length - 1; i++) {
		
		var tableElement = itemsElement[i].getElementsByTagName('table');
		try {
			tables[i] = tableElement[0].firstChild.nodeValue;
		} catch(e) {
			tables[i] = "";
		}
		
		var nosElement = itemsElement[i].getElementsByTagName('no');
		try {
			nos[i] = nosElement[0].firstChild.nodeValue;
		} catch(e) {
			nos[i] = "";
		}
		
		var codesElement = itemsElement[i].getElementsByTagName('code');
		try {
			codes[i] = codesElement[0].firstChild.nodeValue;
		} catch(e) {
			codes[i] = "";
		}
		
		var namesElement = itemsElement[i].getElementsByTagName('name');
		try {
			names[i] = namesElement[0].firstChild.nodeValue;
		} catch(e) {
			names[i] = "";
		}
		
		var digestsElement = itemsElement[i].getElementsByTagName('digest');
		try {
			digests[i] = digestsElement[0].firstChild.nodeValue;
		} catch(e) {
			digests[i] = "";
		}
		
		var datasElement = itemsElement[i].getElementsByTagName('data');
		datas[i] = new Array(columnsElement.length);
		dataObj[i] = new Object();
		
		//... カラム数分ループ
		for (j = 0; j <= columnsElement.length - 1; j++) {
			try {
				datas[i][j] = datasElement[j].firstChild.nodeValue;
			} catch(e) {
				datas[i][j] = "";
			}

			try {
				dataObj[i][columns[j]] = datasElement[j].firstChild.nodeValue;
			} catch(e) {
				dataObj[i][columns[j]] = "";
			}
		}
	}

	return itemsElement.length;
}

//... 入力データをセット
function setInputData(i) {
	if (typeof(sdjTimer[sdjId]) != "undefined") {
		clearTimeout(sdjTimer[sdjId]);
	}

	if (typeof(sdjHideTimer[sdjId]) != "undefined") {
		clearTimeout(sdjHideTimer[sdjId]);
	}

	var table_tmp = "";
	var no_tmp = "";
	var code_tmp = "";
	var name_tmp = "";
	
	table_tmp = tables[i];
	
	if (sdjQueryStr[sdjId].indexOf("&r=CODE") >= 0) {
		no_tmp = codes[i];
	} else if (sdjQueryStr[sdjId].indexOf("&r=NAME") >= 0) {
		no_tmp = names[i];
	} else {
		no_tmp = nos[i];
	}

	code_tmp = sdjCodeValueOrg[sdjId];;
	
	if ((sdjQueryStr[sdjId].indexOf("&c=Y") >= 0) || (sdjQueryStr[sdjId].indexOf("&c=C") >= 0)) {
		name_tmp = codes[i] + ": " + names[i];
	} else {
		name_tmp = names[i];
	}

	DispSdjValue(table_tmp, no_tmp, code_tmp, name_tmp);
	
	if (sdjFocused[sdjId]) {
		var on = sdjObjName[sdjId] + '[code]';
	
		sdjForm[sdjId].elements[on].blur();
		sdjForm[sdjId].elements[on].value = sdjCodeValueOrg[sdjId];
		sdjForm[sdjId].elements[on].focus();
	}
	
	if (!sdjNoConvertFlg[sdjId]) {
		ToggleSdjVisibility(false);
	}
}

//... キー動作
function sdjMove(i) {
	if (sdjObjName[sdjId] != undefined) {
		var on = sdjObjName[sdjId] + '[code]';

		var str = sdjForm[sdjId].elements[on].value;
		
	}

	if (sdjNoConvertFlg[sdjId]) {
		return;
	}

	var keyCode;
		
	if (navigator.appName.indexOf("Netscape")>=0) {
		keyCode = evtNow.which;
	} else {
		keyCode = event.keyCode;
	}
	
	//... キーコードごとに分岐
	switch (keyCode) {
		//... 下キーのとき
		case 39:
		case 40:
			if ((typeof(sdjDiv[sdjId]) == "undefined") || (sdjDiv[sdjId].style.visibility != 'visible')) {
				sdjHide();
				return MoveFocus(sdjForm[sdjId].elements[on]);
			}

			if (i == -1) {
				if (typeof(sdjDiv[sdjId]) != "undefined") {
					if (typeof(datas) != "undefined") {
						if (datas.length > 0) {
							on = 'sdj' + sdjId + '_' + '0';
							document.all.item(on).focus();
							return false;
						}
					}
				}
			} else  if (i < datas.length - 1) {
				on = 'sdj' + sdjId + '_' + (i + 1);
				document.all.item(on).focus();
				return false;
			}

			break;

		//... 上キーのとき
		case 37:
		case 38:
			if ((typeof(sdjDiv[sdjId]) == "undefined") || (sdjDiv[sdjId].style.visibility != 'visible')) {
				sdjHide();
				return MoveFocus(sdjForm[sdjId].elements[on]);
			}

			if (i == 0) {
				if (sdjObjName[sdjId] != undefined) {
					on = sdjObjName[sdjId] + '[code]';
					sdjForm[sdjId].elements[on].focus();
				} else {
					on = sdjObjPrefix[sdjId] + 'zip_code_zip_bt' + sdjObjPostfix[sdjId];
					sdjForm[sdjId].elements[on].focus();
				}
				
				return false;
			} else if (i > 0) {
				on = 'sdj' + sdjId + '_' + (i - 1);
				document.all.item(on).focus();
				return false;
			}
			
			break;
	}

	return true;
}

//... サジェストHTMLを表示
function DispSdjHTML() {
	//... サジェストHTMLをリセット
	var sdj_HTML = '';

	//... データが1件存在するとき
	if (datas.length == 1) {
		setInputData(0);

	//... データが存在するとき
	} else if (datas.length > 0) {
		if (!sdjNoConvertFlg[sdjId]) {
			//... データ行数分ループ
			for (i = 0; i <= datas.length - 1; i++) {
				if (i > 19) break;
				
				if ((sdjQueryStr[sdjId].indexOf("&c=Y") >= 0) || (sdjQueryStr[sdjId].indexOf("&c=C") >= 0)) {
					var val_tmp = codes[i] + ": " + names[i];
				} else {
					var val_tmp = names[i];
				}
				
				sdj_HTML += '<a';
				sdj_HTML += ' href="javascript:void(0);"';
				sdj_HTML += ' id="sdj' + sdjId + '_' + i + '"';
				sdj_HTML += ' onfocus="sdjKeep();"';
				sdj_HTML += ' onblur="sdjOff();"';
				sdj_HTML += ' onclick="setInputData(' + i + ');"';
				sdj_HTML += ' onkeydown="return sdjMove(' + i + ');"';
				sdj_HTML += '>';
				sdj_HTML += val_tmp;
				sdj_HTML += '</a>';
				sdj_HTML += "<br />\n";
			}

			ToggleSdjVisibility(true, sdj_HTML);
		} else {
			ToggleSdjVisibility(false);
		}
		
		
	} else {
		ToggleSdjVisibility(false);
	}
}

function DispSdjValue(table, no, code, name, skip_flg) {
	var on = "";

	if (skip_flg == undefined) {
		skip_flg = false;
	}
	
	on = sdjObjName[sdjId] + '[table]';
	sdjForm[sdjId].elements[on].value = table;
	
	on = sdjObjName[sdjId] + '[no]';
	sdjForm[sdjId].elements[on].value = no;

	on = sdjObjName[sdjId] + '[code]';
	sdjForm[sdjId].elements[on].value = code;
	sdjForm[sdjId].elements[on].className = "sdjsearch-off";

	if (!sdjNoConvertFlg[sdjId]) {
		on = sdjObjName[sdjId] + '[name]';
		sdjForm[sdjId].elements[on].value = name;

		on = sdjObjName[sdjId] + '[clear]';
		sdjForm[sdjId].elements[on].style.visibility = 'visible';

	}

	if (sdjCallback2[sdjId] != undefined) {
		sdjCallback2[sdjId](sdjForm[sdjId]);
	}
}

function xmlLogin(i, v, mode, si, sk, sv) {
	if (mode != "%l") {
		mode = "%l";
	}
	
	var data = new Array();
	data['_ajax_i'] = i;
	data['_ajax_v'] = v;
	data['_ajax_si'] = si;
	data['_ajax_o[0]'] = "mode";
	data['_ajax_p[0]'] = mode;

	if (sk.length > 0) {
		data['_ajax_' + sk] = sv;
	}

	loginSetData('/app/xml/xml_login.php', data);
}

//リクエスト送信
function loginSetData(dataFileName, data) {
	sendRequest(loginOnLoaded, data, 'GET', dataFileName, true, true);
}

//受信時処理
function loginOnLoaded(res) {
	//受信
	xmldoc = res.responseXML;
	textdoc = res.responseText;

	var isloginElement = xmldoc.getElementsByTagName('islogin');
	var logintypeElement = xmldoc.getElementsByTagName('logintype');
	var loginkindElement = xmldoc.getElementsByTagName('loginkind');
	var loginnoElement = xmldoc.getElementsByTagName('loginno');

	islogin = isloginElement[0].firstChild.nodeValue;
	logintype = logintypeElement[0].firstChild.nodeValue;
	loginkind = loginkindElement[0].firstChild.nodeValue;
	loginno = loginnoElement[0].firstChild.nodeValue;

}

function convertZip(obj, si, sk, sv) {
	obj_name = obj.name;
	obj_name_short = obj_name.replace(/\[/g, '').replace(/\]/g, '').replace('_zip_bt', '');
	obj_prefix = obj.name.substr(0, obj.name.indexOf('zip_code'));
	obj_postfix = obj.name.substr(obj.name.lastIndexOf('_zip_bt') + 7);
		
	if ((sdjId.length > 0) && (sdjId != obj_name_short)) {
		if (typeof(sdjHideTimer[sdjId]) != "undefined") {
			clearTimeout(sdjHideTimer[sdjId]);
			sdjHide();
			return;
		}
	}

	sdjId = obj_name_short;
	sdjDiv[sdjId] = document.getElementById('sdj' + obj_name_short);

	if (sdjDiv[sdjId].style.visibility == 'visible') {
		clearTimeout(sdjHideTimer[sdjId]);
		sdjHide();
		return;
	}

	sdjForm[sdjId] = obj.form;
	sdjObjPrefix[sdjId] = obj_prefix;
	sdjObjPostfix[sdjId] = obj_postfix;

	if (typeof(sdjHideTimer[sdjId]) != "undefined") {
		clearTimeout(sdjHideTimer[sdjId]);
	}

	sdjICode[sdjId] = "ZIP_ADDRESS";
	sdjKCode[sdjId] = "ZIP_CODE";
	sdjCCode[sdjId] = "";
	sdjRCode[sdjId] = "";
	sdjSiteId = si;
	sdjSKey = sk;
	sdjSValue = sv;

	zipSdjLoad();
}

function zipSdjLoad() {

	on = sdjObjPrefix[sdjId] + 'zip_code' + sdjObjPostfix[sdjId];
	var zip_code = sdjForm[sdjId].elements[on].value;

	if (zip_code.length > 0) {
		
		var data = new Array();

		data['_ajax_i'] = sdjICode[sdjId];
		data['_ajax_k'] = sdjKCode[sdjId];
		data['_ajax_v'] = zip_code;
		data['_ajax_si'] = sdjSiteId;
		data['_ajax_o[0]'] = "mode";
		data['_ajax_p[0]'] = "";

		if (sdjSKey.length > 0) {
			data['_ajax_' + sdjSKey] = sdjSValue;
		}

		zipSdjSetData('/app/xml/xml_data_list.php', data);

	} else {
		if (typeof(sdjHideTimer[sdjId]) != "undefined") {
			clearTimeout(sdjHideTimer[sdjId]);
			sdjHide();
		}
	}
		
	//sdjTimer[sdjId] = setTimeout("zipSdjLoad()", 300);
}

//リクエスト送信
function zipSdjSetData(dataFileName, data) {
	//sendRequest(sdjOnLoaded, data, 'GET', dataFileName, true, true, "", "", data['_ajax_v'], 1);
	sendRequest(zipSdjOnLoaded, data, 'GET', dataFileName, true, true, "", "", data['_ajax_v']);
	sdjSending[sdjId] = true;

	ToggleSdjVisibility(true, "searching...", true);
}

//受信時処理
function zipSdjOnLoaded(res) {

	//受信
	xmldoc = res.responseXML;
	textdoc = res.responseText;

	//2次元配列化
	dataAry = zipXml2Ary(xmldoc);
	
	//サジェストHTMLを表示
	zipDispSdjHTML();
}

//responseXMLで受け取ったデータを2次元配列化して返します
function zipXml2Ary(xmldoc) {
	str = "";
	var remotehostElement = xmldoc.getElementsByTagName('remotehost');
	var columnsElement = xmldoc.getElementsByTagName('column');
	var itemsElement = xmldoc.getElementsByTagName('item');

	columns = new Array(columnsElement.length);
	datas = new Array();

	remotehost = remotehostElement[0].firstChild.nodeValue;
		
	//... カラム数分ループ
	for (j = 0; j <= columnsElement.length - 1; j++) {
		columns[j] = columnsElement[j].firstChild.nodeValue;
	}

	//... アイテム数分ループ
	for (i = 0; i <= itemsElement.length - 1; i++) {
		
		var datasElement = itemsElement[i].getElementsByTagName('data');
		datas[i] = new Array(columnsElement.length);
		
		//... カラム数分ループ
		for (j = 0; j <= columnsElement.length - 1; j++) {
			try {
				datas[i][columns[j]] = datasElement[j].firstChild.nodeValue;
			} catch(e) {
				datas[i][columns[j]] = "";
			}
		}
	}
}

//... サジェストHTMLを表示
function zipDispSdjHTML() {

	//... サジェストHTMLをリセット
	sdj_HTML = '';

	//... データが1件存在するとき
	if (datas.length == 1) {
		zipSetInputData(0);

	//... データが存在するとき
	} else if (datas.length > 0) {
		//... データ行数分ループ
		for (i = 0; i <= datas.length - 1; i++) {
			if (i > 19) break;
			
			val_tmp = "";

			//... カラム数分ループ
			for (var column in datas[i]) {
				switch (column) {
					case "ZIP_CODE":
						val_tmp += datas[i][column];
						val_tmp += "　";
						break;
					
					case "STATE_JAP":
					case "CITY_JAP":
					case "ADDRESS_JAP":
						val_tmp += datas[i][column];
						break;
				}
			}
			
			sdj_HTML += '<a';
			sdj_HTML += ' href="javascript:void(0);"';
			sdj_HTML += ' id="sdj' + sdjId + '_' + i + '"';
			sdj_HTML += ' onfocus="sdjKeep();"';
			sdj_HTML += ' onblur="sdjOff();"';
			sdj_HTML += ' onclick="zipSetInputData(' + i + ');"';
			sdj_HTML += ' onkeydown="return sdjMove(' + i + ');"';
			sdj_HTML += '>';
			sdj_HTML += val_tmp;
			sdj_HTML += '</a>';
			sdj_HTML += "<br />\n";
		}


		ToggleSdjVisibility(true, sdj_HTML);
		
	} else {
		ToggleSdjVisibility(false);
	}
}

//... 入力データをセット
function zipSetInputData(i) {
	if (typeof(sdjTimer[sdjId]) != "undefined") {
		clearTimeout(sdjTimer[sdjId]);
	}

	if (typeof(sdjHideTimer[sdjId]) != "undefined") {
		clearTimeout(sdjHideTimer[sdjId]);
	}

	//... カラム数分ループ
	for (var column in datas[i]) {
		on = sdjObjPrefix[sdjId] + column.toLowerCase() + sdjObjPostfix[sdjId];
		
		if (sdjForm[sdjId].elements[on] != undefined) {
			sdjForm[sdjId].elements[on].value = datas[i][column];
		}
	}
	
	on = sdjObjPrefix[sdjId] + 'zip_code_zip_bt' + sdjObjPostfix[sdjId];
	sdjForm[sdjId].elements[on].focus();
	
	ToggleSdjVisibility(false);
}

function InitZipButton() {
	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) {
				bt_elm = undefined;
				
				if (elm_name.indexOf("country_code") >= 0) {
					elm_prefix = elm_name.substr(0, elm_name.indexOf('country_code'));
					elm_postfix = elm_name.substr(elm_name.lastIndexOf('country_code') + 12);
					bt_elm_name = elm_prefix + "zip_code_zip_bt" + elm_postfix;
					bt_elm = frm.elements[bt_elm_name];
					
				} else if (elm_name.indexOf("country") >= 0) {
					elm_prefix = elm_name.substr(0, elm_name.indexOf('country'));
					elm_postfix = elm_name.substr(elm_name.lastIndexOf('country') + 7);
					bt_elm_name = elm_prefix + "zip_code_zip_bt" + elm_postfix;
					bt_elm = frm.elements[bt_elm_name];
				}
						
				if (bt_elm != undefined) {
					if (elm.value == "JP") {
						bt_elm.disabled = false;
					} else {
						bt_elm.disabled = true;
					}
				}
			}
		}
	}
	
	return false;
}

function ToggleZipButton(elm_this) {
	frm = elm_this.form;
	
	for (var elm_name in frm.elements) {
		elm = frm.elements[elm_name];
		
		if (elm != undefined) {
			bt_elm = undefined;
			
			if (elm_name.indexOf("country_code") >= 0) {
				elm_prefix = elm_name.substr(0, elm_name.indexOf('country_code'));
				elm_postfix = elm_name.substr(elm_name.lastIndexOf('country_code') + 12);
				bt_elm_name = elm_prefix + "zip_code_zip_bt" + elm_postfix;
				bt_elm = frm.elements[bt_elm_name];
				
			} else if (elm_name.indexOf("country") >= 0) {
				elm_prefix = elm_name.substr(0, elm_name.indexOf('country'));
				elm_postfix = elm_name.substr(elm_name.lastIndexOf('country') + 7);
				bt_elm_name = elm_prefix + "zip_code_zip_bt" + elm_postfix;
				bt_elm = frm.elements[bt_elm_name];
			}
					
			if (bt_elm != undefined) {
				if (elm.value == "JP") {
					bt_elm.disabled = false;
				} else {
					bt_elm.disabled = true;
				}
			}
		}
	}

	return false;
}

//受信時処理
function ClearDivHTML(element_id, HTML) {
	if (HTML == undefined) {
		HTML = "";
	}
	
	div_element = document.getElementById(element_id);
	div_element.innerHTML = HTML;
	
	return false;
}

function SendRequestOuterHTML(url_query, element_id, callback) {
	
	if (url_query.indexOf("?") < 0) {
		return false;
	}
	
	if (url_query.indexOf("#") >= 0) {
		url_query = url_query.substr(0, url_query.indexOf("#"));
	}
	
	data = new Array();
	
	data["_ajax__d"] = "part";
	
	var url = url_query.substr(0, url_query.indexOf("?"));
	var query = url_query.substr(url_query.indexOf("?") + 1);
	
	var i = 0;
	
	while (1) {
		var i2 = query.indexOf("&", i);
		if (i2 < 0) i2 = query.length;
		
		var str = query.substr(i, i2 - i);
		
		var data_key = str.substr(0, str.indexOf("="));
		var data_value = str.substr(str.indexOf("=") + 1);
		data["_ajax_" + data_key] = data_value;
		
		i = i2 + 1;
		
		if (i >= query.length - 1) {
			break;
		}
	}
	
	if (callback == undefined) {
		callback = SendRequestOuterHTMLOnLoaded;
	}

	//sendRequest(SendRequestOuterHTMLOnLoaded, data, 'GET', url, true, true, "", "", element_id, 1);
	sendRequest(callback, data, 'GET', url, true, true, "", "", element_id);
}

//受信時処理
function SendRequestOuterHTMLOnLoaded(res, element_id) {
	//受信
	textdoc = res.responseText;
	
	div_element = document.getElementById(element_id);
	div_element.innerHTML = textdoc;
	
	return false;
}

function LoadSelectOption(frm_name, elm_name, query_str, value, mode, no_select_name, callback, url, test) {
	if (test == undefined) {
		test = false;
	}
	
	if (url == undefined) {
		url = "/app/xml/xml_data_list.php";
	}
	
	var frm = document.forms[frm_name];
	var elm = frm.elements[elm_name];
	
	var array_tmp = new Object();
	
	if (value == undefined) value = "";
	if (mode == undefined) mode = "";
	if (no_select_name == undefined) no_select_name = "";
	
	array_tmp["elm"] = elm;
	array_tmp["value"] = value;
	array_tmp["mode"] = mode;
	array_tmp["no_select_name"] = no_select_name;
	
	var data = new Array();
	var query_array = query_str.split("&");
	
	for (var i = 0; i < query_array.length; i++) {
		var query_array_2 = query_array[i].split("=");
		data["_ajax_" + query_array_2[0]] = query_array_2[1];
	}

	if (callback == undefined) {
		callback = SetSelectOptionOnLoaded;
	}
	
	if (test) {
		sendRequest(callback, data, 'GET', url, true, true, "", "", array_tmp, 1);
	} else {
	sendRequest(callback, data, 'GET', url, true, true, "", "", array_tmp);
	}
}

//受信時処理
function SetSelectOptionOnLoaded(res, array_tmp) {
	//受信
	xmldoc = res.responseXML;
	textdoc = res.responseText;

	//2次元配列化
	dataAry = Xml2Ary(xmldoc, 200);

	var elm = array_tmp["elm"];
	var mode = array_tmp["mode"];
	var no_select_name = array_tmp["no_select_name"];

	elm.disabled = true;
	
	while (elm.childNodes.length > 0) {
		elm.removeChild(elm.lastChild);
	}


	var oOPTION = document.createElement('OPTION');
	
	if (document.all) {
		elm.add(oOPTION, 0);
	} else {
		elm.add(oOPTION, elm.options.item(0));
	}

	elm.options[0].value = "";
	elm.options[0].text = "";

	if (dataAry == 0) {
		if (mode.indexOf("%n") >= 0) {
			if (mode.indexOf("%o") >= 0) {
				var value_tmp = "0";
			} else {
				var value_tmp = "";
			}

			elm.options[0].value = value_tmp;
			elm.options[0].text = no_select_name;
			
		}

		elm.selectedIndex = 0;

		return;

	} else if (dataAry > 200) {

		elm.options[0].value = "";
		elm.options[0].text = "該当するデータが多いため、検索条件を指定してください。";

		return;
	}

	//サジェストHTMLを表示
	SetSelectOption(array_tmp);
}


//... オプションをセット
function SetSelectOption(array_tmp) {
	var elm = array_tmp["elm"];
	var value = array_tmp["value"];
	var mode = array_tmp["mode"];
	var no_select_name = array_tmp["no_select_name"];
	
	var len = elm.options.length;
	
	while (elm.childNodes.length > 0) {
		elm.removeChild(elm.lastChild);
	}
	
	var count = 0;

	if (mode.indexOf("%n") >= 0) {
		var oOPTION = document.createElement('OPTION');
		
		if (document.all) {
			elm.add(oOPTION, count);
		} else {
			elm.add(oOPTION, elm.options.item(count));
		}
		
		if (mode.indexOf("%o") >= 0) {
			var value_tmp = "0";
		} else {
			var value_tmp = "";
		}

		elm.options[count].value = value_tmp;
		elm.options[count].text = no_select_name;
		
		count++;
	}

	elm.selectedIndex = 0;
	
	//... アイテム数分ループ
	for (var i = 0; i <= codes.length - 1; i++) {
		var oOPTION = document.createElement('OPTION');
		
		if (document.all) {
			elm.add(oOPTION, count);
		} else {
			elm.add(oOPTION, elm.options.item(count));
		}

		var value_tmp = "";
		
		if (mode.indexOf("%t") >= 0) {
			value_tmp += tables[i] + "+";
		}
		
		if (mode.indexOf("%o") >= 0) {
			value_tmp += nos[i];
		} else {
			value_tmp += codes[i];
		}
		
		if ((mode.indexOf("%c") >= 0) && (codes[i].length > 0)) {
			if (codes[i].substr(0, 1) == "_") {
				var text_tmp = names[i];
			} else {
				var text_tmp = codes[i] + ": " + names[i];
			}
		} else {
			var text_tmp = names[i];
		}

		elm.options[count].value = value_tmp;
		elm.options[count].text = text_tmp;

		if (value_tmp == value) {
			elm.selectedIndex = count;
		}
		
		count++;

	}

	elm.disabled = false;
}

function SetElementDisplay(element_id, display) {
	div = document.getElementById(element_id);
	div.style.display = display;
}

function LoadSelectOptionByInitial(elm_this, elm_name, query_str, value, mode, no_select_name, callback, url, test) {
	if (test == undefined) {
		test = false;
	}
	
	if (url == undefined) {
		url = "/app/xml/xml_data_list.php";
	}
	
	var frm = elm_this.form;
	var frm_name = frm.name;
	var elm = frm.elements[elm_name];


	elm.disabled = true;
	
	while (elm.childNodes.length > 0) {
		elm.removeChild(elm.lastChild);
	}

	var oOPTION = document.createElement('OPTION');
	
	if (document.all) {
		elm.add(oOPTION, 0);
	} else {
		elm.add(oOPTION, elm.options.item(0));
	}

	elm.options[0].value = "";
	elm.options[0].text = "検索中です...";

	query_str += elm_this.value;
	
	LoadSelectOption(frm_name, elm_name, query_str, value, mode, no_select_name, callback, url, test);
}

var incId = "";
var incElmThis = new Array();
var incElmName = new Array();
var incQueryStr = new Array();
var incValue = new Array();
var incMode = new Array();
var incNoSelectName = new Array();
var incStr = new Array();
var incTimer = new Array();

function StartSelectOptionByIncrement(elm_this, elm_name, query_str, value, mode, no_select_name, callback, url, test) {
	if (test == undefined) {
		test = false;
	}
	
	if (url == undefined) {
		url = "/app/xml/xml_data_list.php";
	}
	
	var elm_this_name = elm_this.name;

	incId = elm_this_name;
	incElmThis[incId] = elm_this;
	incElmName[incId] = elm_name;
	incQueryStr[incId] = query_str;
	incValue[incId] = value;
	incMode[incId] = mode;
	incNoSelectName[incId] = no_select_name;
	
	incStr[incId] = incElmThis[incId].value;

	LoadSelectOptionByIncrement(callback, url, test);
	
}

function StopSelectOptionByIncrement() {
	if (typeof(incTimer[incId]) != "undefined") {
		clearTimeout(incTimer[incId]);
	}

	incId = "";
}

function LoadSelectOptionByIncrement(callback, url, test) {
	if (test == undefined) {
		test = false;
	}
	
	if (url == undefined) {
		url = "/app/xml/xml_data_list.php";
	}
	
	if (typeof(incTimer[incId]) != "undefined") {
		clearTimeout(incTimer[incId]);
	}

	var str = incElmThis[incId].value;

		
	if (incStr[incId] != str) {
		incStr[incId] = str;
			
		var frm = incElmThis[incId].form;
		var frm_name = frm.name;
		var elm = frm.elements[incElmName[incId]];

		elm.disabled = true;
		
		while (elm.childNodes.length > 0) {
			elm.removeChild(elm.lastChild);
		}

		var oOPTION = document.createElement('OPTION');
		
		if (document.all) {
			elm.add(oOPTION, 0);
		} else {
			elm.add(oOPTION, elm.options.item(0));
		}

		if (str.length == 0) {
			elm.options[0].value = "";
			elm.options[0].text = "検索条件を指定してください。";
		} else {

			elm.options[0].value = "";
			elm.options[0].text = "検索中です...";

			var query_str = incQueryStr[incId] + str;
			
			LoadSelectOption(frm_name, incElmName[incId], query_str, incValue[incId], incMode[incId], incNoSelectName[incId], callback, url, test);
		}
	}
	
	incTimer[incId] = setTimeout("LoadSelectOptionByIncrement(" + callback + ", '" + url + "', " + test + ")", 300);

}

function LoadElmValue(frm_name, elm_name, query_str, value, mode, no_select_name, callback, url, test) {
	if (test == undefined) {
		test = false;
	}
	
	if (url == undefined) {
		url = "/app/xml/xml_data_list.php";
	}
	
	if (callback == undefined) {
		callback = SetElmValueOnLoaded;
	}

	LoadSelectOption(frm_name, elm_name, query_str, value, mode, no_select_name, callback, url, test);
}

//受信時処理
function SetElmValueOnLoaded(res, array_tmp) {
	//受信
	xmldoc = res.responseXML;
	textdoc = res.responseText;

	//2次元配列化
	dataAry = Xml2Ary(xmldoc);

	var elm = array_tmp["elm"];
	var mode = array_tmp["mode"];
	var no_select_name = array_tmp["no_select_name"];
	var col_num = 0;

	if (mode.match(/%c([0-9_]+)/)) {
		col_num = Number(RegExp.$1);
	}

	if (dataAry == 0) {
		elm.value = no_select_name;
		
	} else {
		elm.value = datas[0][col_num];
	}

	return;
}

//... 新しいノード処理
node_obj = new Object();
node_data = new Object();

//... セレクトエレメント配列をリセット
node_obj["select_elm"] = new Array();

//... ノードオブジェクトセット関数
function SetNodeObj(node_id, key, value) {
	if (node_obj[node_id] == undefined) {
		node_obj[node_id] = new Object();
	}

	node_obj[node_id][key] = value;
}

//... ノードエレメントセット関数
function SetNodeElm(node_id, elm) {
	if (node_obj[node_id] == undefined) {
		node_obj[node_id] = new Object();
	}

	//... ノードフォームがセットされていないとき
	if (elm != undefined) {
		//... 短いノードIDをセット
		var node_id_short = SetNodeIdShort(node_id);
		
		if ((node_obj[node_id]["elm_fix"] == undefined) || (!node_obj[node_id]["elm_fix"])) {
			var frm_name = elm.form.name;
			
			//... ノード複数エレメントをセット
			SetNodeMultiElm(node_id, frm_name);
			
		}
	}
}

//... 短いノードIDをセット
function SetNodeIdShort(node_id) {
	//... 短いノードIDをセット
	var node_id_short = "";
	
	//... 基本エレメント名をセット
	var elm_base_name = "";
		
	//... ノードIDが形式に一致するとき
	if (node_id.match(/^((.*)\-)?i\-([0-9]+)\-(.+)\-(\-[0-9]+\-)$/)) {
		var prefix = RegExp.$1;
		var repeat_base = RegExp.$3;
		var key = RegExp.$4;
		var repeat = RegExp.$5;
		
		//... 短いノードIDをセット
		node_id_short = prefix + "i-" + repeat_base + "-" + key;
		//alert("SetNodeIdShort #1: " + node_id + " -> " + node_id_short);
		
		//... 基本エレメント名をセット
		elm_base_name = "i[" + repeat_base + "][" + key + "]";
		elm_base_name = elm_base_name.replace(/\-/g, "_");
		elm_base_name += "[" + repeat + "]";
		
	//... ノードIDが形式に一致するとき
	} else if (node_id.match(/^((.*)\-)?i\-([0-9]+)\-(.+)\-([0-9]+)$/)) {
		var prefix = RegExp.$1;
		var repeat_base = RegExp.$3;
		var key = RegExp.$4;
		var repeat = RegExp.$5;
		
		//... 短いノードIDをセット
		node_id_short = prefix + "i-" + repeat_base + "-" + key;
		//alert("SetNodeIdShort #2: " + node_id + " -> " + node_id_short);
		
		//... 基本エレメント名をセット
		elm_base_name = "i[" + repeat_base + "][" + key + "]";
		elm_base_name = elm_base_name.replace(/\-/g, "_");
		elm_base_name += "[" + repeat + "]";
		
	//... ノードIDが形式に一致するとき
	} else if (node_id.match(/^((.*)\-)?i\-([0-9]+)\-(.+)$/)) {
		var prefix = RegExp.$1;
		var repeat_base = RegExp.$3;
		var key = RegExp.$4;
		var repeat = 1;
		
		//... 短いノードIDをセット
		node_id_short = prefix + "i-" + repeat_base + "-" + key;
		//alert("SetNodeIdShort #3: " + node_id + " -> " + node_id_short);
		
		//... 基本エレメント名をセット
		elm_base_name = "i[" + repeat_base + "][" + key + "]";
		elm_base_name = elm_base_name.replace(/\-/g, "_");
		elm_base_name += "[" + repeat + "]";

	}
	
	//... 短いノードIDがセットされているとき
	if (node_id_short != "") {
		//... 短いノードIDのノードオブジェクトが存在するとき
		if (node_obj[node_id_short] != undefined) {
			//... ノードオブジェクトのクローンを作成
			SetCloneObject(node_obj[node_id], node_obj[node_id_short]);
			node_obj[node_id]["node_id_short"] = node_id_short;
			//alert("SetNodeIdShort: " + node_id_short + " -> " + node_id);
		}
		
		//... 基本エレメント名をセット
		if (node_obj[node_id]["elm_base_name"] == undefined) {
			node_obj[node_id]["elm_base_name"] = elm_base_name;
		}
	}
	
	//... 短いノードIDを返す
	return node_id_short;
}

//... ノード複数エレメントセット関数
function SetNodeMultiElm(node_id, frm_name) {
	var frm = document.forms[frm_name];

	var elm_name = node_obj[node_id]["elm_base_name"];
	var elm_code_name = node_obj[node_id]["elm_base_name"] + "[code]";
	var elm_search_name = node_obj[node_id]["elm_base_name"] + "[search]";
	var elm_name_name = node_obj[node_id]["elm_base_name"] + "[name]";
	var elm_clear_name = node_obj[node_id]["elm_base_name"] + "[clear]";
	var elm_table_name = node_obj[node_id]["elm_base_name"] + "[table]";
	var elm_no_name = node_obj[node_id]["elm_base_name"] + "[no]";
	var elm_list_name = node_obj[node_id]["elm_base_name"] + "[list]";

	if (node_obj[node_id]["frm"] == undefined) node_obj[node_id]["frm"] = frm;
	if (node_obj[node_id]["elm_code"] == undefined) node_obj[node_id]["elm_code"] = frm.elements[elm_code_name];
	if (node_obj[node_id]["elm_search"] == undefined) node_obj[node_id]["elm_search"] = frm.elements[elm_search_name];
	if (node_obj[node_id]["elm_name"] == undefined) node_obj[node_id]["elm_name"] = frm.elements[elm_name_name];
	if (node_obj[node_id]["elm_clear"] == undefined) node_obj[node_id]["elm_clear"] = frm.elements[elm_clear_name];
	if (node_obj[node_id]["elm_table"] == undefined) node_obj[node_id]["elm_table"] = frm.elements[elm_table_name];
	if (node_obj[node_id]["elm_no"] == undefined) node_obj[node_id]["elm_no"] = frm.elements[elm_no_name];
	if (node_obj[node_id]["elm_list"] == undefined) node_obj[node_id]["elm_list"] = frm.elements[elm_list_name];
}

//... ノードセレクトエレメントセット関数
function SetNodeSelectElm() {

	//... エレメントの要素分ループ
	for (var i = 0; i < document.forms.length; i++) {
		for (var j = 0; j < document.forms[i].elements.length; j++) {
			if (document.forms[i].elements[j].options != undefined) {
				//... セレクトエレメント配列をセット
				node_obj["select_elm"].push(document.forms[i].elements[j]);
			}
		}
	}
}

//... セレクトエレメント可視切り替え関数
function ToggleNodeSelectElmVisibility(visible_flg) {
	if (visible_flg) {
		var visibility = "visible";
	} else {
		var visibility = "hidden";
	}

	//... セレクトエレメント配列の要素分ループ
	for (var i = 0; i < node_obj["select_elm"].length; i++) {
		//... セレクトエレメントの可視を切り替え
		node_obj["select_elm"][i].style.visibility = visibility;
	}
}

//... ノードコードキー押下関数
function NodeCodeKeyPress(node_id, elm) {
	if (navigator.appName.indexOf("Netscape")>=0) {
		keyCode = evtNow.which;
	} else {
		keyCode = event.keyCode;
	}
	
	//... ロードタイプが推測のとき
	if (node_obj[node_id] != undefined) {
		if (node_obj[node_id]["load_type"] != undefined) {
			if (node_obj[node_id]["load_type"] == "suggest") {
				return true;
			}
		}
	}

	//... キーコードごとに分岐
	if ((keyCode == 13) || (keyCode == 40)) {
		//... ノードエレメントをセット
		SetNodeElm(node_id, elm);
		
		//... リストエレメントのクラスが複数選択のとき
		if (node_obj[node_id]["elm_list"].className.indexOf("sdjmultiple") >= 0) {
			//... ノードリストをロード
			LoadNodeList(node_id, elm);
			
		//... リストエレメントのクラスが表示中のとき
		} else if (node_obj[node_id]["elm_list"].className.match(/\-on$/)) {
			//... ノードリストにフォーカス
			node_obj[node_id]["elm_list"].focus();
			node_obj[node_id]["elm_list"].selectedIndex = 0;
			
		//... リストエレメントのクラスが読み込み中のとき
		} else if (node_obj[node_id]["elm_list"].className.match(/\-loading$/)) {
			//... ノードリストを非表示
			HideNodeList(node_id);
			
		} else {
			//... ノードリストをロード
			LoadNodeList(node_id, elm);
		}
		
		return false;

	//... キーコードごとに分岐
	} else {
		//... ノードエレメントをセット
		SetNodeElm(node_id, elm);
		
		//... リストエレメントのクラスが複数選択のとき
		if (node_obj[node_id]["elm_list"].className.indexOf("sdjmultiple") >= 0) {
			
		//... リストエレメントのクラスが表示中のとき
		} else if (node_obj[node_id]["elm_list"].className.match(/\-(on|loading)$/)) {
			//... ノードリストを非表示
			HideNodeList(node_id);

		}
	}

	return true;
}

//... ノード検索オンクリック関数
function NodeSearchClick(node_id, elm) {
	//... ノードエレメントをセット
	SetNodeElm(node_id, elm);
	
	//... リストエレメントのクラスが複数選択のとき
	if (node_obj[node_id]["elm_list"].className.indexOf("sdjmultiple") >= 0) {
		//... ノードリストをロード
		LoadNodeList(node_id, elm);
		
	//... リストエレメントのクラスが表示中のとき
	} else if (node_obj[node_id]["elm_list"].className.match(/\-(on|loading)$/)) {
		//... ノードリストを非表示
		HideNodeList(node_id);
		
	} else {
		//... ノードリストをロード
		LoadNodeList(node_id, elm);
	}
}

//... ノードコードキー押下関数
function NodeListKeyPress(node_id, elm) {
	if (navigator.appName.indexOf("Netscape")>=0) {
		keyCode = evtNow.which;
	} else {
		keyCode = event.keyCode;
	}

	//... キーコードごとに分岐
	if (keyCode == 13) {
		//... オプションが選択されているとき
		if (elm.selectedIndex >= 0) {
			//... ノードデータを選択
			SelectNodeDataRow(node_id, elm);
			
			return false;
		}
		
	//... キーコードごとに分岐
	} else if ((keyCode == 38) || (keyCode == 40)) {

		return true;
	}
}

//... ノードサジェスト開始関数
function StartNodeSuggest(node_id, elm) {
	//... ノードエレメントをセット
	SetNodeElm(node_id, elm);
	
	OutputDebug("StartNodeSuggest:" + node_id, node_obj[node_id]["debug"]);
	
	if (node_obj[node_id]["elm_code"] == undefined) return;
	
	//... コード値をセット
	if (node_obj[node_id]["suggest_value"] == undefined) {
		node_obj[node_id]["suggest_value"] = node_obj[node_id]["elm_code"].value;
	}
	
	OutputDebug("StartNodeSuggest:" + node_id + "," + node_obj[node_id]["suggest_value"], node_obj[node_id]["debug"]);
	
	//... ロードタイプをセット
	node_obj[node_id]["load_type"] = "suggest";
	
	//... タイマー間隔をセット
	node_obj[node_id]["suggest_interval"] = 1500;
	
	//... フォーカスが外れたとき
	node_obj[node_id]["elm_code"].onblur = function(e) {
		StopNodeSuggest(node_id);
	}
	
	//... ノードサジェストロード
	LoadNodeSuggest(node_id);
}

//... ノードサジェスト停止関数
function StopNodeSuggest(node_id) {
	//... タイマーを解除
	ClearTimerNodeSuggest(node_id);
}

//... ノードサジェストロード関数
function LoadNodeSuggest(node_id) {
	//... タイマーを解除
	ClearTimerNodeSuggest(node_id);
	
	var str = node_obj[node_id]["elm_code"].value + "," + node_obj[node_id]["suggest_value"];
	OutputDebug("LoadNodeSuggest:" + node_id + "," + str, node_obj[node_id]["debug"]);
	
	//... タイマーをセット
	//SetTimerNodeSuggest(node_id);

	//... コードエレメントの値がコード値と異なるとき
	if (node_obj[node_id]["suggest_value"] != node_obj[node_id]["elm_code"].value) {
		OutputDebug("LoadNodeSuggest:" + "Different", node_obj[node_id]["debug"]);
		
		//... コード値をセット
		node_obj[node_id]["suggest_value"] = node_obj[node_id]["elm_code"].value;

		//... ロードタイプをセット
		node_obj[node_id]["load_type"] = "suggest";
		
		//... ノードリストをロード
		LoadNodeList(node_id);
	}
	
	//... タイマーをセット
	SetTimerNodeSuggest(node_id);
}

//... ノードサジェストタイマーセット関数
function SetTimerNodeSuggest(node_id) {
	//... タイマーがセットされているとき
	if (typeof(node_obj[node_id]["suggest_timer"]) != "undefined") {
		//... タイマーを解除
		clearTimeout(node_obj[node_id]["suggest_timer"]);
	}
	
	//... タイマーをセット
	node_obj[node_id]["suggest_timer"] = setTimeout("LoadNodeSuggest('" + node_id + "')", node_obj[node_id]["suggest_interval"]);
}

//... ノードサジェストタイマークリア関数
function ClearTimerNodeSuggest(node_id) {
	//... タイマーがセットされているとき
	if (typeof(node_obj[node_id]["suggest_timer"]) != "undefined") {
		//... タイマーを解除
		clearTimeout(node_obj[node_id]["suggest_timer"]);
	}
}

//... ノードリストロード関数
function LoadNodeList(node_id, elm, code_value) {
	//... ロードタイプが指定されていないとき
	if (node_obj[node_id]["load_type"] == undefined) {
		node_obj[node_id]["load_type"] = "search";
	}

	//... ロードタイプがリロードのとき
	if (node_obj[node_id]["load_type"] == "reload") {
		
	} else if (node_obj[node_id]["elm_list"] == undefined) {
		//... ノードエレメントをセット
		SetNodeElm(node_id, elm);
	}
	
	//... 初期化コールバック関数が指定されているとき
	if (node_obj[node_id]["callback_init"] != undefined) {
		//... 初期化コールバック関数を実行
		node_obj[node_id]["callback_init"](node_id);
	}
	
	//... リストエレメントに読み込み中をセット
	SetLoadingNodeList(node_id);

	//... クエリ配列をセット
	var query_array = node_obj[node_id]["query"].split("&");
	
	//... Ajaxデータ配列をセット
	var ajax_data_array = new Array();

	//... クエリ配列の要素分ループ
	for (var i = 0; i < query_array.length; i++) {
		var query_array_2 = query_array[i].split("=");
		
		//... Ajaxデータ配列をセット
		ajax_data_array["_ajax_" + query_array_2[0]] = query_array_2[1];
	}
	
	//... ロードタイプがリロードのとき
	if (node_obj[node_id]["load_type"] == "reload") {
		ajax_data_array["_ajax__t"] = node_obj[node_id]["val_table"];
		ajax_data_array["_ajax__n"] = node_obj[node_id]["val_no"];
		//node_obj[node_id]["test"] = 0;
	}
	
	//... クエリキーが指定されていないとき
	if (node_obj[node_id]["query_key"] == undefined) {
		node_obj[node_id]["query_key"] = "v";
	}
	
	//alert("code_value:" + code_value + " " + "code_value2:" + node_obj[node_id]["code_value"] + " " + "elm_code:" + node_obj[node_id]["elm_code"] + " " + "elm_code_value:" + node_obj[node_id]["elm_code"].value);
	
	//... コード値が指定されているとき
	if (code_value != undefined) {
		//... クエリ値をセット
		query_value = code_value;
	//... コード値が指定されているとき
	} else if (node_obj[node_id]["code_value"] != undefined) {
		//... クエリ値をセット
		query_value = node_obj[node_id]["code_value"];
	//... コードエレメントが存在するとき
	} else if (node_obj[node_id]["elm_code"] != undefined) {
		//... クエリ値をセット
		query_value = node_obj[node_id]["elm_code"].value;
	} else {
		//... クエリ値をセット
		query_value = "";
	}

	//... Ajaxデータ配列をセット
	ajax_data_array["_ajax_" + node_obj[node_id]["query_key"]] = query_value;

	//... パラメータオブジェクトをセット
	var param_obj = new Object();
	
	param_obj["node_id"] = node_id;
	param_obj["code_value"] = query_value;
	
	//... URLが指定されていないとき
	if (node_obj[node_id]["url"] == undefined) {
		node_obj[node_id]["url"] = "/app/xml/index.php";
	}
	
	//... 方法が指定されていないとき
	if (node_obj[node_id]["method"] == undefined) {
		node_obj[node_id]["method"] = "GET";
	}

	//... リクエスト送信
	sendRequest(NodeListOnLoaded, ajax_data_array, node_obj[node_id]["method"], node_obj[node_id]["url"], true, true, "", "", param_obj, node_obj[node_id]["test"]);
}

//... ノードリストオンロード関数
function NodeListOnLoaded(res, param_obj) {
	var node_id = param_obj["node_id"];
	
	node_obj[node_id]["list_code_value"] = param_obj["code_value"];

	//... リストエレメントが存在するとき
	if (node_obj[node_id]["elm_list"] != undefined) {
		//... リストエレメントのクラスが複数選択のとき
		if (node_obj[node_id]["elm_list"].className.indexOf("sdjmultiple") >= 0) {
			
		//... リストエレメントのクラスが読み込み中でないとき
		} else if (!node_obj[node_id]["elm_list"].className.match(/\-loading$/)) {
			//... ノードリストを非表示
			HideNodeList(node_id);

			return;
		}
	}

	//... レスポンス内容をセット
	xmldoc = res.responseXML;
	textdoc = res.responseText;

	//... レスポンスXMLをデータ配列にセット
	dataAry = SetNodeDataArray(node_id, xmldoc);
	
	//... オンロードコールバック関数が指定されていないとき
	if (node_obj[node_id]["callback_onload"] == undefined) {
		node_obj[node_id]["callback_onload"] = SetNodeList;
	}

	//... オンロードコールバック関数を実行
	node_obj[node_id]["callback_onload"](node_id);

}

//... ノードリストセット関数
function SetNodeList(node_id) {
	//... モードが指定されていないとき
	if (node_obj[node_id]["mode"] == undefined) {
		node_obj[node_id]["mode"] = "";
	}

	//... セレクトオプションをクリア
	ClearSelectOption(node_obj[node_id]["elm_list"]);
	
	//... カウンタをリセット
	count = 0;
	
	//... オプション登録フラグがONでかつ、ロードタイプが推測または検索のとき
	if ((node_obj[node_id]["reg_option_flg"])
	 && (!globals["skip_node_link"])
	 && ((node_obj[node_id]["load_type"] == "suggest")
	 || (node_obj[node_id]["load_type"] == "search")
	 || (node_obj[node_id]["load_type"] == undefined))) {
		//... 値とテキストをセット
		var option_value = "reg";
		var option_text = "";

		//... リストコード値が指定されているとき
		if ((node_obj[node_id]["list_code_value"] != undefined) && (node_obj[node_id]["list_code_value"].length > 0)) {
			//... テキストをセット
			option_text += "[" + node_obj[node_id]["list_code_value"] + "] を";
		}
	
		//... テキストをセット
		option_text += "新しく登録...";
		
		//... セレクトオプションを追加
		AddSelectOption(node_obj[node_id]["elm_list"], option_text, option_value);
		
		//... カウンタをインクリメント
		count++;
			
	}
	
	OutputDebug("SetNodeList:" + node_id + "," + node_data[node_id]["codes"], node_obj[node_id]["debug"]);
	
	//... オプション登録フラグがONでかつ、ロードタイプが推測または検索のとき
	if (
	((
	 (node_obj[node_id]["load_type"] == "search")
	 || (node_obj[node_id]["load_type"] == undefined))
	 && ((node_obj[node_id]["reg_option_flg"])
	 || (node_data[node_id]["datas"].length >= 2)
	 || (node_obj[node_id]["elm_no"] == undefined)))
	 || (node_obj[node_id]["load_type"] == "suggest")
	 ) {
		//... データ行数分ループ
		for (i = 0; i <= node_data[node_id]["datas"].length - 1; i++) {
			//... オプション値をセット
			var option_value = "";
			
			if (node_obj[node_id]["mode"].indexOf("%t") >= 0) {
				if (node_data[node_id]["tables"][i] != "") {
					option_value += node_data[node_id]["tables"][i] + "+";
				}
			}
			
			if (node_obj[node_id]["mode"].indexOf("%o") >= 0) {
				option_value += node_data[node_id]["nos"][i];
			} else {
				option_value = i;
			}

			//... オプション文字をセット
			var option_text = GetOuterSelectOptionText(node_id, i);

			//... セレクトオプションを追加
			AddSelectOption(node_obj[node_id]["elm_list"], option_text, option_value);

			//... 行数がデータ件数以上のとき
			if (i >= node_obj[node_id]["data_rows"]) break;
			
			//... カウンタをインクリメント
			count++;
		}

	}
	
	//... カウンタが1以上のとき
	if (count > 0) {
		//... モードがシンプルのとき
		if (node_obj[node_id]["mode"].indexOf("%s") >= 0) {
		} else {
			//... ノードリストを表示
			DispNodeList(node_id);
		}
		
	//... データ件数が1のとき
	} else if (node_data[node_id]["datas"].length == 1) {
		//... データをセット
		SelectNodeDataRow(node_id);
		
	} else {
		//... モードがシンプルのとき
		if (node_obj[node_id]["mode"].indexOf("%s") >= 0) {
			//... データをセット
			SelectNodeDataRow(node_id);
		} else {
			//... ノードリストを隠す
			HideNodeList(node_id);
		}
	}

	//... ロードタイプをセット
	node_obj[node_id]["load_type"] = undefined;

}

//... ノードデータ行選択関数
function SelectNodeDataRow(node_id, elm_list) {
	//... リストエレメントが指定されていないとき
	if (elm_list == undefined) {
		//... 行数をセット
		var row = 0;
		
	} else {
		//... 行数をセット
		var row = elm_list.value;
		
		//... 行数が読み込み中のとき
		if (row == "loading") {
			return;
			
		//... 行数が登録のとき
		} else if (row == "reg") {
			//... 新規オプションを登録
			RegNewOption(node_id);
			return;
		} else if (row == undefined) {
			return;
		} else if (elm_list.selectedIndex < 0) {
			return;
		}
	}
	
	//... セットコールバック関数が指定されていないとき
	if (node_obj[node_id]["callback_set"] == undefined) {
		node_obj[node_id]["callback_set"] = SetNodeValue;
	}

	//... セットコールバック関数を実行
	node_obj[node_id]["callback_set"](node_id, row);
	
}

//... 入力データをセット
function SetNodeValue(node_id, row, table_value, no_value, name_value) {
	//... ノードリストを隠す
	HideNodeList(node_id);
	
	//... テーブル値をセット
	node_obj[node_id]["table_value"] = "";
	
	//... 番号値をセット
	node_obj[node_id]["no_value"] = "";
	
	//... 名称値をセット
	node_obj[node_id]["name_value"] = "";
	
	//... テーブル値が指定されているとき
	if ((table_value != undefined) && (no_value != undefined)) {
		//... テーブル値をセット
		node_obj[node_id]["table_value"] = table_value;
		
		//... 番号値をセット
		node_obj[node_id]["no_value"] = no_value;
		
		//... 名称値をセット
		node_obj[node_id]["name_value"] = name_value;
		
	} else if (node_data[node_id]["tables"][row] != undefined) {
		//... テーブル値をセット
		node_obj[node_id]["table_value"] = node_data[node_id]["tables"][row];
		
		//... モードがコード値のとき
		if (node_obj[node_id]["mode"].indexOf("%e") >= 0) {
			//... 番号値をセット
			node_obj[node_id]["no_value"] = node_data[node_id]["codes"][row];
		} else {
			//... 番号値をセット
			node_obj[node_id]["no_value"] = node_data[node_id]["nos"][row];
		}
		
		//... 名称値をセット
		node_obj[node_id]["name_value"] = GetOuterSelectOptionText(node_id, row);
	}
	
	//... 番号値が_で始まるとき
	if (node_obj[node_id]["no_value"].substr(0, 1) == "_") return;
	
	//... ノード複数値をセット
	SetNodeMultipleValue(node_id, node_obj[node_id]["table_value"], node_obj[node_id]["no_value"], node_obj[node_id]["name_value"]);
	
	//alert("SetNodeValue node_id:" + node_id);
	
	//... コードエレメントが存在するとき
	if (node_obj[node_id]["elm_code"] != undefined) {
		//... モードがシンプルのとき
		//if (node_obj[node_id]["mode"].indexOf("%s") >= 0) {
		if ((node_obj[node_id]["mode"] != undefined) && (node_obj[node_id]["mode"].indexOf("%s") >= 0)) {
		} else {
			node_obj[node_id]["elm_code"].value = "";
		}
	}
	
	//... ノードサジェスト停止
	StopNodeSuggest(node_id);
	
	//... 最終コールバック関数が指定されていないとき
	if (node_obj[node_id]["callback_finish"] != undefined) {
		//... 最終コールバック関数を実行
		node_obj[node_id]["callback_finish"](node_id, row);
	}

	//... 最終コールバック関数が指定されていないとき
	if (node_obj[node_id]["callback_finish_2"] != undefined) {
		//... 最終コールバック関数を実行
		node_obj[node_id]["callback_finish_2"](node_id, row);
	}

	//... 最終コールバック関数が指定されていないとき
	if (node_obj[node_id]["callback_finish_3"] != undefined) {
		//... 最終コールバック関数を実行
		node_obj[node_id]["callback_finish_3"](node_id, row);
	}


}


//... ノードコード値セット関数
function SetNodeCodeValue(node_id, code_value) {
	//... コード値が存在するとき
	if (code_value != "") {
		//... コードエレメントが存在するとき
		if (node_obj[node_id]["elm_code"] != undefined) {
			//... コードエレメントにコード値をセット
			node_obj[node_id]["elm_code"].value = code_value;
		}
		
	} else {
	
		//... コードエレメントが存在するとき
		if (node_obj[node_id]["elm_code"] != undefined) {
			//... コードエレメントをリセット
			node_obj[node_id]["elm_code"].value = "";
		}

	}
}

//... ノード複数値セット関数
function SetNodeMultipleValue(node_id, table_value, no_value, name_value) {
	OutputDebug("SetNodeMultipleValue:" + node_id + "," + table_value + "," + no_value + "," + name_value, node_obj[node_id]["debug"]);
	//... テーブルエレメントにテーブル値をセット
	node_obj[node_id]["elm_table"].value = table_value;

	//... 番号エレメントに番号値をセット
	node_obj[node_id]["elm_no"].value = no_value;

	//... 名称エレメントがフォーム部品のとき
	if (node_obj[node_id]["elm_name"].value != undefined) {
		//... 名称エレメントに値をセット
		node_obj[node_id]["elm_name"].value = name_value;

		//... 名称エレメントのクラスをセット
		node_obj[node_id]["elm_name"].className = "sdjname";

		//... 名称エレメントがクリックされたとき
		node_obj[node_id]["elm_name"].onclick = function(e) {
			return;
		}
		
		//... 名称エレメントにマウスオーバーされたとき
		node_obj[node_id]["elm_name"].onmouseover = function(e) {
			return;
		}
		
		//... 名称エレメントからマウスアウトされたとき
		node_obj[node_id]["elm_name"].onmouseout = function(e) {
			return;
		}
	} else if (node_obj[node_id]["elm_name"].innerHTML != undefined) {
		//... 名称エレメントに値をセット
		node_obj[node_id]["elm_name"].innerHTML = name_value;
	}
}

//... ノード値クリア関数
function ClearNodeValue(node_id, elm) {
	//... ノードエレメントをセット
	SetNodeElm(node_id, elm);
	
	//... テーブル値をセット
	node_obj[node_id]["table_value"] = "";
	
	//... 番号値をセット
	node_obj[node_id]["no_value"] = 0;
	
	//... 名称値をセット
	node_obj[node_id]["name_value"] = "";
	
	//... ノード複数値をセット
	SetNodeMultipleValue(node_id, node_obj[node_id]["table_value"], node_obj[node_id]["no_value"], node_obj[node_id]["name_value"]);

	//... コードエレメントが存在するとき
	if (node_obj[node_id]["elm_code"] != undefined) {
		//... コードエレメントをリセット
		node_obj[node_id]["elm_code"].value = "";
	}

	//... ノードリストを隠す
	HideNodeList(node_id);
	
	//... クリアコールバック関数が指定されているとき
	if (node_obj[node_id]["callback_clear"] != undefined) {
		node_obj[node_id]["callback_clear"](node_id, -1);
	}


}


//... ノード値リセット関数
function ResetNodeValue(node_id, elm) {
	//... ノードエレメントをセット
	SetNodeElm(node_id, elm);

	//... ノードリストを隠す
	HideNodeList(node_id);

	//... コードエレメントが存在するとき
	if (node_obj[node_id]["elm_code"] != undefined) {
		//... コードエレメントをリセット
		node_obj[node_id]["elm_code"].value = "";
	}

}

//... 新規個人ユーザー登録関数
function RegNewOption(node_id, reg_val) {
	//... フォーム名をセット
	var frm_name = node_obj[node_id]["frm"].name;

	//... 登録値が指定されていないとき
	if (reg_val == undefined) {
		//... 登録値をセット
		//var reg_val = node_obj[node_id]["elm_code"].value;
		var reg_val = node_obj[node_id]["list_code_value"];
	}
	
	//... 登録クエリをセット
	var reg_query = node_id
	reg_query += "," + frm_name;
	reg_query += "," + node_obj[node_id]["reg_object_code"];
	reg_query += "," + node_obj[node_id]["reg_key"];
	reg_query += "," + reg_val;
	
	if (node_obj[node_id]["elm_list"] != undefined) {
		//... リストエレメントに読み込み中をセット
		SetLoadingNodeList(node_id, "お待ちください...");
	}
	
	
	//... フォームを送信
	submitForm2(frm_name, "preview_option_newreg_" + reg_query);
	
}

//... ノードリストリロード関数
function ReloadNodeList(node_id, frm_name, val_table, val_no) {
	if ((val_no == undefined) || (val_no == 0)) {
		return;
	}
	
	var frm = document.forms[frm_name];
	
	//... ノードエレメントをセット
	SetNodeElm(node_id, frm.elements[0]);
	
	//... テーブル値、番号値をセット
	node_obj[node_id]["val_table"] = val_table;
	node_obj[node_id]["val_no"] = val_no;
	
	//... ロードタイプをリロードにセット
	node_obj[node_id]["load_type"] = "reload";

	
	//... ノードリストをロード
	LoadNodeList(node_id, frm.elements[0]);

}

//... ノードエレメントリンクセット関数
function SetLinkNodeElm(node_id, row, elm) {
	//... スキップノードリンクがONのとき
	if (globals["skip_node_link"]) {
		return;
	}
	
	//... エレメントが指定されていないとき
	if (elm != undefined)  {
		//... ノードエレメントをセット
		SetNodeElm(node_id, elm);
	}
	
	//alert(node_id + " " + elm);

	//... フォーム名をセット
	frm_name = node_obj[node_id]["frm"].name;
	
	//... エレメントをセット
	elm_no = node_obj[node_id]["elm_no"];
	elm_name = node_obj[node_id]["elm_name"];
	
	//... エレメントをセット
	val_no = elm_no.value;
	
	//... 番号値が存在するとき
	if (val_no > 0) {
		//... 登録クエリをセット
		var reg_query = node_id
		reg_query += "," + frm_name;
		reg_query += "," + node_obj[node_id]["reg_object_code"];
		reg_query += "," + val_no;
		
		//... 名称エレメントのクラスをセット
		elm_name.className = "sdjname-link";

		//... 名称エレメントがクリックされたとき
		elm_name.onclick = function(e) {
			//... 名称エレメントのクラスをセット
			this.className = "sdjname-active";

			//... シフトキーが押されているとき
			if (window.event.shiftKey) {
				var target_tmp = document.forms[frm_name].target;
				document.forms[frm_name].target = "_blank";
				//... フォームを送信
				submitForm2(frm_name, "preview_option_detail_" + reg_query, false);
				document.forms[frm_name].target = target_tmp;
			} else {

				//... フォームを送信
				submitForm2(frm_name, "preview_option_detail_" + reg_query, false);
			}
		}
		
		//... 名称エレメントにマウスオーバーされたとき
		elm_name.onmouseover = function(e) {
			//... 名称エレメントのクラスをセット
			this.className = "sdjname-hover";
		}
		
		//... 名称エレメントからマウスアウトされたとき
		elm_name.onmouseout = function(e) {
			//... 名称エレメントのクラスをセット
			this.className = "sdjname-link";
		}
	}
}

//... ノードリスト表示関数
function DispNodeList(node_id) {
	//... リストエレメントが存在するとき
	if (node_obj[node_id]["elm_list"] != undefined) {
		if (node_obj[node_id]["elm_list"].className.indexOf("sdjmultiple") >= 0) {
			//... リストエレメントのスタイルをセット
			node_obj[node_id]["elm_list"].className = "sdjmultiple-on";
		} else {
			//... リストエレメントのスタイルをセット
			node_obj[node_id]["elm_list"].className = "sdjlist-on";
		}
		
		//... リストエレメントの無効性をセット
		node_obj[node_id]["elm_list"].disabled = false;
	}

	//... 検索エレメントが存在するとき
	if (node_obj[node_id]["elm_search"] != undefined) {
		if (node_obj[node_id]["elm_search"].className.indexOf("sdjbutton-search") >= 0) {
			//... 検索エレメントのクラスをセット
			node_obj[node_id]["elm_search"].className = "sdjbutton-search2";
		}
	}
	
}

//... ノードリスト隠し関数
function HideNodeList(node_id) {
	//... セレクトオプションをクリア
	ClearSelectOption(node_obj[node_id]["elm_list"]);
	
	//... リストエレメントが存在するとき
	if (node_obj[node_id]["elm_list"] != undefined) {
		if (node_obj[node_id]["elm_list"].className.indexOf("sdjmultiple") >= 0) {
			//... リストエレメントのスタイルをセット
			node_obj[node_id]["elm_list"].className = "sdjmultiple-off";
		} else {
			//... リストエレメントのスタイルをセット
			node_obj[node_id]["elm_list"].className = "sdjlist-off";
		}
		
		//... リストエレメントの無効性をセット
		node_obj[node_id]["elm_list"].disabled = false;
	}
	
	//... 検索エレメントが存在するとき
	if (node_obj[node_id]["elm_search"] != undefined) {
		if (node_obj[node_id]["elm_search"].className.indexOf("sdjbutton-search") >= 0) {
			//... 検索エレメントのクラスをセット
			node_obj[node_id]["elm_search"].className = "sdjbutton-search";
		}
	}
}

//... ノードリスト読み込み中関数
function SetLoadingNodeList(node_id, msg) {
	//... セレクトオプションをクリア
	ClearSelectOption(node_obj[node_id]["elm_list"]);
	
	//... 値とテキストをセット
	var option_value = "loading";

	//... メッセージが指定されていないとき
	if (msg != undefined) {
		option_text = msg;
	} else {
		//... 検索中文字列が指定されているとき
		if (node_obj[node_id]["loading_str"] != undefined) {
			var option_text = node_obj[node_id]["loading_str"];
		//... ロードタイプがリロードのとき
		} else if (node_obj[node_id]["load_type"] == "reload") {
			var option_text = "お待ちください...";
		} else {
			var option_text = "検索中です...";
		}
	}
	
	//... セレクトオプションを追加
	AddSelectOption(node_obj[node_id]["elm_list"], option_text, option_value);
	
	//... リストエレメントが存在するとき
	if (node_obj[node_id]["elm_list"] != undefined) {
		if (node_obj[node_id]["elm_list"].className.indexOf("sdjmultiple") >= 0) {
			//... リストエレメントのスタイルをセット
			node_obj[node_id]["elm_list"].className = "sdjmultiple-loading";
		} else {
			//... リストエレメントのスタイルをセット
			node_obj[node_id]["elm_list"].className = "sdjlist-loading";
		}
		
		//... リストエレメントの無効性をセット
		node_obj[node_id]["elm_list"].disabled = true;
	}
	
	//... 検索エレメントが存在するとき
	if (node_obj[node_id]["elm_search"] != undefined) {
		if (node_obj[node_id]["elm_search"].className.indexOf("sdjbutton-search") >= 0) {
			//... 検索エレメントのクラスをセット
			node_obj[node_id]["elm_search"].className = "sdjbutton-search2";
		}
	}

}

//... 外部セレクトオプションエレメントセット関数
function SetOuterSelectOptionElm(node_id, elm) {
	if (node_obj[node_id] == undefined) {
		node_obj[node_id] = new Object();
	}

	//... ノードフォームがセットされていないとき
	if (elm != undefined) {
		if (node_obj[node_id]["frm"] == undefined) {
			node_obj[node_id]["frm"] = elm.form;
		}
		
		node_obj[node_id]["elm_select"] = elm;
	}
}

//... 外部セレクトオプションロード関数
function LoadOuterSelectOption(node_id, value, elm) {
	//... エレメントが指定されているとき
	if (elm != undefined) {
		//... 外部セレクトオプションエレメントをセット
		SetOuterSelectOptionElm(node_id, elm);
	}
	
	//... モードが指定されていないとき
	if (node_obj[node_id]["mode"] == undefined) {
		node_obj[node_id]["mode"] = "";
	}
	
	//... 値が指定されていないとき
	if (value == undefined) {
		value = "";
	}
	
	//... モードをセット
	mode = node_obj[node_id]["mode"];

	//... セレクトエレメントが指定されているとき
	if (node_obj[node_id]["elm_select"] != undefined) {
		//... モードがテキストボックスのとき
		if (mode.indexOf("%T") >= 0) {
		} else {
			//... セレクトオプションを無効にする
			node_obj[node_id]["elm_select"].disabled = true;
			
			//... セレクトオプションをクリア
			ClearSelectOption(node_obj[node_id]["elm_select"]);
			
			//... セレクトオプションを追加
			AddSelectOption(node_obj[node_id]["elm_select"], "検索中です...");
		}
	}

	//... クエリ配列をセット
	var query_array = node_obj[node_id]["query"].split("&");

	//... Ajaxデータ配列をセット
	var ajax_data_array = new Array();

	//... クエリ配列の要素分ループ
	for (var i = 0; i < query_array.length; i++) {
		var query_array_2 = query_array[i].split("=");
		
		//... Ajaxデータ配列をセット
		ajax_data_array["_ajax_" + query_array_2[0]] = query_array_2[1];
	}
	
	//... クエリキーが指定されていないとき
	if (node_obj[node_id]["query_key"] == undefined) {
		node_obj[node_id]["query_key"] = "v";
	}

	//... クエリキーが存在するとき
	if (node_obj[node_id]["query_key"] != "") {
		//... Ajaxデータ配列をセット
		ajax_data_array["_ajax_" + node_obj[node_id]["query_key"]] = value;
	}
	
	//... 表示言語が存在するとき
	if (globals["disp_lang"] != undefined) {
		//... Ajaxデータ配列をセット
		ajax_data_array["_ajax_disp_lang"] = globals["disp_lang"];
	}
	
	//... パラメータオブジェクトをセット
	var param_obj = new Object();
	
	param_obj["node_id"] = node_id;
	
	//... URLが指定されていないとき
	if (node_obj[node_id]["url"] == undefined) {
		node_obj[node_id]["url"] = "/app/xml/index.php";
	}
	
	//... 方法が指定されていないとき
	if (node_obj[node_id]["method"] == undefined) {
		node_obj[node_id]["method"] = "GET";
	}

	//... リクエスト送信
	sendRequest(OuterSelectOptionOnLoaded, ajax_data_array, node_obj[node_id]["method"], node_obj[node_id]["url"], true, true, "", "", param_obj, node_obj[node_id]["test"]);
	//sendRequest(OuterSelectOptionOnLoaded, ajax_data_array, node_obj[node_id]["method"], node_obj[node_id]["url"], true, true, "", "", param_obj, true);
}

//... 外部セレクトオプションオンロード関数
function OuterSelectOptionOnLoaded(res, param_obj) {
	var node_id = param_obj["node_id"];

	//... レスポンス内容をセット
	xmldoc = res.responseXML;
	textdoc = res.responseText;

	//... レスポンスXMLをデータ配列にセット
	dataAry = SetNodeDataArray(node_id, xmldoc);
	
	//... オンロードコールバック関数が指定されていないとき
	if (node_obj[node_id]["callback_onload"] == undefined) {
		node_obj[node_id]["callback_onload"] = SetOuterSelectOption;
	}

	//... オンロードコールバック関数を実行
	node_obj[node_id]["callback_onload"](node_id);

}

//... 外部セレクトオプションセット関数
function SetOuterSelectOption(node_id) {
	//... モードが指定されていないとき
	if (node_obj[node_id]["mode"] == undefined) {
		node_obj[node_id]["mode"] = "";
	}
	
	//... モードをセット
	mode = node_obj[node_id]["mode"];

	//... モードがテキストボックスのとき
	if (mode.indexOf("%T") >= 0) {
	} else {
		//... セレクトオプションをクリア
		ClearSelectOption(node_obj[node_id]["elm_select"]);

		//... セレクトオプションを有効にする
		node_obj[node_id]["elm_select"].disabled = false;
	}
	
	//... カウンタをリセット
	count = 0;

	//... モードが無選択名を表示のとき
	if (mode.indexOf("%n") >= 0) {
		//... 値とテキストをセット
		var value = GetOuterSelectOptionValue(node_id, -1);
		var text = GetOuterSelectOptionText(node_id, -1);
		
		//... セレクトオプションを追加
		AddSelectOption(node_obj[node_id]["elm_select"], text, value);

		//... 選択値がセットされているとき
		if (node_obj[node_id]["sel_value"] != undefined) {
			//... 値が選択値と一致するとき
			if (value == node_obj[node_id]["sel_value"]) {
				//... 選択インデックスをセット
				node_obj[node_id]["elm_select"].selectedIndex = count;
			}
		}
		
		//... カウンタをインクリメント
		count++;
		
	}

	//... データ件数が0件のとき
	if (node_data[node_id]["datas"].length == 0) {
		
	} else {
	
		//... データ行数分ループ
		for (i = 0; i <= node_data[node_id]["datas"].length - 1; i++) {
			//... 値とテキストをセット
			var value = GetOuterSelectOptionValue(node_id, i);
			var text = GetOuterSelectOptionText(node_id, i);
			//var text = value + ":" + GetOuterSelectOptionText(node_id, i);

			//... モードがテキストボックスのとき
			if (mode.indexOf("%T") >= 0) {
				//... 値をセット
				node_obj[node_id]["elm_select"].value = text;
				break;
			}
			
			//... セレクトオプションをセット
			AddSelectOption(node_obj[node_id]["elm_select"], text, value);

			//... 選択値がセットされているとき
			if (node_obj[node_id]["sel_value"] != undefined) {
				//... 値が選択値と一致するとき
				if (value == node_obj[node_id]["sel_value"]) {
					//... 選択インデックスをセット
					node_obj[node_id]["elm_select"].selectedIndex = count;
				}
			}

			//... カウンタをインクリメント
			count++;
		
			//... 行数がデータ件数以上のとき
			if (i >= node_obj[node_id]["data_rows"]) break;
		}
	}

	//... モードが複数セレクトのとき
	if (mode.indexOf("%m") >= 0) {
		//... 値とテキストをセット
		var value = "";
		var text = "                    ";

		//... セレクトオプションをセット
		AddSelectOption(node_obj[node_id]["elm_select"], text, value);
	}
	
	//... 終了コールバック関数が指定されているとき
	if ((node_obj[node_id]["callback_finish"] != undefined)
	 && (node_obj[node_id]["callback_finish"] != null)) {
		node_obj[node_id]["callback_finish"](node_id);
	}
	
	//... 終了コールバック関数が指定されているとき
	if ((node_obj[node_id]["callback_finish_2"] != undefined)
	 && (node_obj[node_id]["callback_finish_2"] != null)) {
		node_obj[node_id]["callback_finish_2"](node_id);
	}
	
	//... 終了コールバック関数が指定されているとき
	if ((node_obj[node_id]["callback_finish_3"] != undefined)
	 && (node_obj[node_id]["callback_finish_3"] != null)) {
		node_obj[node_id]["callback_finish_3"](node_id);
	}
}

//... 外部セレクトオプション値取得関数
function GetOuterSelectOptionValue(node_id, i) {
	//... モードが指定されていないとき
	if (node_obj[node_id]["mode"] == undefined) {
		node_obj[node_id]["mode"] = "";
	}

	var value = "";
	
	//... 行数が-1のとき
	if (i < 0) {
		if (node_obj[node_id]["mode"].indexOf("%o") >= 0) {
			value = "0";
		} else {
			value = "";
		}

	} else {
		if (node_obj[node_id]["mode"].indexOf("%t") >= 0) {
			if (node_data[node_id]["tables"][i] != "") {
				value += node_data[node_id]["tables"][i] + "+";
			}
		}
		
		if (node_obj[node_id]["mode"].indexOf("%o") >= 0) {
			value += node_data[node_id]["nos"][i];
		} else {
			value += node_data[node_id]["codes"][i];
		}
	}
	
	return value;
}

//... 外部セレクトオプションテキスト取得関数
function GetOuterSelectOptionText(node_id, i) {
	//... モードが指定されていないとき
	if (node_obj[node_id]["mode"] == undefined) {
		node_obj[node_id]["mode"] = "";
	}

	var text = "";
	
	//... 行数が-1のとき
	if (i < 0) {
		//... 無選択名称が指定されていないとき
		if (node_obj[node_id]["name_unselected"] == undefined) {
			node_obj[node_id]["name_unselected"] = "";
		}
	
		text = node_obj[node_id]["name_unselected"];

	} else {
		OutputDebug("GetOuterSelectOptionText:" + node_id + "," + i + ",", node_obj[node_id]["debug"]);
		if ((node_obj[node_id]["mode"].indexOf("%c") >= 0) && (node_data[node_id]["codes"][i].length > 0)) {
			if (node_data[node_id]["codes"][i].substr(0, 1) == "_") {
				text = node_data[node_id]["names"][i];
			} else {
				text = node_data[node_id]["codes"][i] + ": " + node_data[node_id]["names"][i];
			}
		} else {
			text = node_data[node_id]["names"][i];
		}
	}
	
	return text;
}

//... 外部HTMLロード関数
function LoadOuterHTML(node_id, query, url, callback, test) {
	//... ノードオブジェクトをセット
	if (node_obj[node_id] == undefined) {
		node_obj[node_id] = new Object();
	}
	
	//... テストが指定されているとき
	if (test != undefined) {
		node_obj[node_id]["test"] = test;
	}
	
	//... モードが指定されていないとき
	if (node_obj[node_id]["mode"] == undefined) {
		node_obj[node_id]["mode"] = "";
	}

	//... エレメントIDが指定されていないとき
	if (node_obj[node_id]["element_id"] == undefined) {
		node_obj[node_id]["element_id"] = node_id;
	}

	//... 読み込み中文字列が指定されているとき
	if ((node_obj[node_id]["loading_str"] != undefined) && (node_obj[node_id]["loading_str"] != "")) {
		//... エレメントIDが指定されていないとき
		if (node_obj[node_id]["element_id"] == undefined) {
			node_obj[node_id]["element_id"] = node_id;
		}

		//... ウィンドウが指定されているとき
		if (node_obj[node_id]["window"] != undefined) {
			div_element = node_obj[node_id]["window"].document.getElementById(node_obj[node_id]["element_id"]);
		} else {
			div_element = document.getElementById(node_obj[node_id]["element_id"]);
		}
		
		div_element.innerHTML = node_obj[node_id]["loading_str"];
	}

	//... ノードIDに読み込み中が含まれるとき
	if (node_id.indexOf("-loading") >= 0) {
		//... ノードIDをセット
		node_id = node_id.substr(0, node_id.indexOf("-loading"));

		
	} else {
		//... 読み込み中クエリがセットされているとき
		if (node_obj[node_id]["query_loading"] != undefined) {
			//... ノードオブジェクトをセット
			node_obj[node_id + "-loading"] = new Object();
			
			//... URLをセット
			if (node_obj[node_id]["url_loading"] != undefined) {
				node_obj[node_id + "-loading"]["url"] = node_obj[node_id]["url_loading"];
				node_obj[node_id + "-loading"]["url_loading"] = undefined;
			} else {
				node_obj[node_id + "-loading"]["url"] = node_obj[node_id]["url_loading"];
			}
			
			//... クエリをセット
			node_obj[node_id + "-loading"]["query"] = node_obj[node_id]["query_loading"];			
			//... ノードオブジェクトをセット
			node_obj[node_id + "-loading"]["method"] = "GET";
			node_obj[node_id + "-loading"]["callback_onload"] = undefined;
			node_obj[node_id + "-loading"]["callback_finish"] = LoadOuterHTML;

			//... エレメントIDが指定されていないとき
			if (node_obj[node_id]["element_id"] != undefined) {
				node_obj[node_id + "-loading"]["element_id"] = node_obj[node_id]["element_id"];
			} else {
				node_obj[node_id + "-loading"]["element_id"] = node_id;
			}
			
			//... ノードIDをセット
			node_id = node_id + "-loading";
			
		}
	}
	
	//... クエリが指定されているとき
	if (query != undefined) {
		node_obj[node_id]["query"] = query;
	}

	//... Ajaxデータ配列をセット
	var ajax_data_array = new Array();
	
	//... クエリ配列をセット
	var query_array_tmp = node_obj[node_id]["query"].split("&");

	//... クエリ配列の要素分ループ
	for (var i = 0; i < query_array_tmp.length; i++) {
		var query_array_2 = query_array_tmp[i].split("=");
		
		//... Ajaxデータ配列をセット
		ajax_data_array["_ajax_" + query_array_2[0]] = query_array_2[1];
	}
	
	//... クエリ配列が指定されているとき
	if (node_obj[node_id]["query_key_array"] != undefined) {
		//... クエリ配列の要素分ループ
		for (var i = 0; i < node_obj[node_id]["query_key_array"].length; i++) {
			var query_key = node_obj[node_id]["query_key_array"][i];
			var query_value = node_obj[node_id]["query_value_array"][i];
			
			//... Ajaxデータ配列をセット
			ajax_data_array["_ajax_" + query_key] = query_value;
		}
	}
	
	//... 表示モードが指定されていないとき
	if (ajax_data_array["_ajax__d"] == undefined) {
		ajax_data_array["_ajax__d"] = "part";
	}
	
	//... 表示言語が存在するとき
	if (globals["disp_lang"] != undefined) {
		//... Ajaxデータ配列をセット
		ajax_data_array["_ajax_disp_lang"] = globals["disp_lang"];
	}

	//... パラメータオブジェクトをセット
	var param_obj = new Object();
	
	param_obj["node_id"] = node_id;
	
	//... URLが指定されていないとき
	if (url != undefined) {
		node_obj[node_id]["url"] = url;
	} else if (node_obj[node_id]["url"] == undefined) {
		node_obj[node_id]["url"] = "/app/xml/index.php";
	}
	
	//... 方法が指定されていないとき
	if (node_obj[node_id]["method"] == undefined) {
		node_obj[node_id]["method"] = "GET";
	}
	
	//... コールバックが指定されているとき
	if (callback != undefined) {
		node_obj[node_id]["callback_finish"] = callback;
	}

	//... リクエスト送信
	sendRequest(OuterHTMLOnLoaded, ajax_data_array, node_obj[node_id]["method"], node_obj[node_id]["url"], true, true, "", "", param_obj, node_obj[node_id]["test"]);
	//sendRequest(OuterHTMLOnLoaded, ajax_data_array, node_obj[node_id]["method"], node_obj[node_id]["url"], true, true, "", "", param_obj, true);
}

//... 外部文字変換関数
function ConvertOuterChar(textdoc) {
	textdoc = textdoc.replace(/%%minus%%/g, "−");
	textdoc = textdoc.replace(/%%dash%%/g, "〜");
	textdoc = textdoc.replace(/%%circle1%%/g, "@");
	textdoc = textdoc.replace(/%%circle2%%/g, "A");
	textdoc = textdoc.replace(/%%circle3%%/g, "B");
	textdoc = textdoc.replace(/%%circle4%%/g, "C");
	textdoc = textdoc.replace(/%%circle5%%/g, "D");
	textdoc = textdoc.replace(/%%circle6%%/g, "E");
	textdoc = textdoc.replace(/%%circle7%%/g, "F");
	textdoc = textdoc.replace(/%%circle8%%/g, "G");
	textdoc = textdoc.replace(/%%circle9%%/g, "H");
	textdoc = textdoc.replace(/%%circle10%%/g, "I");
	textdoc = textdoc.replace(/%%circle11%%/g, "J");
	textdoc = textdoc.replace(/%%circle12%%/g, "K");
	textdoc = textdoc.replace(/%%circle13%%/g, "L");
	textdoc = textdoc.replace(/%%circle14%%/g, "M");
	textdoc = textdoc.replace(/%%circle15%%/g, "N");
	textdoc = textdoc.replace(/%%circle16%%/g, "O");
	textdoc = textdoc.replace(/%%circle17%%/g, "P");
	textdoc = textdoc.replace(/%%circle18%%/g, "Q");
	textdoc = textdoc.replace(/%%circle19%%/g, "R");
	textdoc = textdoc.replace(/%%circle20%%/g, "S");
	textdoc = textdoc.replace(/%%k_saki%%/g, "ｱ");
	textdoc = textdoc.replace(/%%k_taka%%/g, "");
	return textdoc;
}

//... 外部HTMLオンロード関数
function OuterHTMLOnLoaded(res, param_obj) {
	var node_id = param_obj["node_id"];

	//... レスポンス内容をセット
	xmldoc = res.responseXML;
	textdoc = res.responseText;
	
	textdoc = ConvertOuterChar(textdoc);
	
	//... HTMLをセット
	node_obj[node_id]["xml"] = xmldoc;
	node_obj[node_id]["html"] = textdoc;

	//... オンロードコールバック関数が指定されていないとき
	if (node_obj[node_id]["callback_onload"] == undefined) {
		node_obj[node_id]["callback_onload"] = SetOuterHTML;
	}

	//... オンロードコールバック関数を実行
	node_obj[node_id]["callback_onload"](node_id);

}

//... ノードタブを切り替え
function ToggleNodeTab(node_id, child_id) {
	//... タブIDをセット
	var tab_id = node_obj[node_id]["tab_id"];
	
	//... タブを切り替え
	ToggleTab(tab_id, child_id);
}

//... 外部HTMLセット関数
function SetOuterHTML(node_id) {
	//... エレメントIDが指定されていないとき
	if (node_obj[node_id]["element_id"] == undefined) {
		node_obj[node_id]["element_id"] = node_id;
	}
	
	//... ウィンドウが指定されているとき
	if (node_obj[node_id]["window"] != undefined) {
		div_element = node_obj[node_id]["window"].document.getElementById(node_obj[node_id]["element_id"]);
	} else {
		div_element = document.getElementById(node_obj[node_id]["element_id"]);
	}
	
	//alert(div_element);

	//prompt("", node_obj[node_id]["html"]);
	
	//... DIVエレメントが存在するとき
	if ((div_element != null) && (div_element != undefined)) {
		//... モードが追加のとき
		if (node_obj[node_id]["mode"].indexOf("%a") >= 0) {
			div_element.innerHTML += node_obj[node_id]["html"];
		} else {
			//div_element.innerHTML = "node_id:" + node_id + "<br />" + "element_id:" + node_obj[node_id]["element_id"] + "<br />" + node_obj[node_id]["html"];
			div_element.innerHTML = node_obj[node_id]["html"];
			//prompt("", node_obj[node_id]["html"]);

			//... HTMLが存在するとき
			if (node_obj[node_id]["html"] != "") {
				//SetStyleById(node_obj[node_id]["element_id"], {display: "block"});
			} else {
				//SetStyleById(node_obj[node_id]["element_id"], {display: "none"});
			}
		}
	}
	
	//... 終了コールバック関数が指定されているとき
	if ((node_obj[node_id]["callback_finish"] != undefined)
	 && (node_obj[node_id]["callback_finish"] != null)) {
		node_obj[node_id]["callback_finish"](node_id);
	}
	
	//... 終了コールバック関数が指定されているとき
	if ((node_obj[node_id]["callback_finish_2"] != undefined)
	 && (node_obj[node_id]["callback_finish_2"] != null)) {
		node_obj[node_id]["callback_finish_2"](node_id);
	}
	
	//... 終了コールバック関数が指定されているとき
	if ((node_obj[node_id]["callback_finish_3"] != undefined)
	 && (node_obj[node_id]["callback_finish_3"] != null)) {
		node_obj[node_id]["callback_finish_3"](node_id);
	}
	
	return false;
}

//... ノードデータ配列セット関数
function SetNodeDataArray(node_id, xmldoc, maxlength) {

	var str = "";
	var remotehostElement = xmldoc.getElementsByTagName('remotehost');
	var searchcodeElement = xmldoc.getElementsByTagName('searchcode');
	var columnsElement = xmldoc.getElementsByTagName('column');
	var thsElement = xmldoc.getElementsByTagName('th');
	var itemsElement = xmldoc.getElementsByTagName('item');

	if (itemsElement.length > maxlength) {
		return itemsElement.length;
	}
	
	//... ノードデータをセット
	node_data[node_id] = new Object();

	node_data[node_id]["xml"] = xmldoc;
	node_data[node_id]["columns"] = new Array(columnsElement.length);
	node_data[node_id]["ths"] = new Array(columnsElement.length);
	node_data[node_id]["data_rows"] = itemsElement.length;
	node_data[node_id]["datas"] = new Array();
	node_data[node_id]["dataObj"] = new Array();
	node_data[node_id]["tables"] = new Array();
	node_data[node_id]["nos"] = new Array();
	node_data[node_id]["codes"] = new Array();
	node_data[node_id]["names"] = new Array();
	node_data[node_id]["digests"] = new Array();

	try {
		node_data[node_id]["remotehost"] = remotehostElement[0].firstChild.nodeValue;
	} catch(e) {
		node_data[node_id]["remotehost"] = "";
	}

	try {
		node_data[node_id]["searchcode"] = searchcodeElement[0].firstChild.nodeValue;
	} catch(e) {
		node_data[node_id]["searchcode"] = "";
	}
		
	//... カラム数分ループ
	for (i = 0; i <= columnsElement.length - 1; i++) {
		node_data[node_id]["columns"][i] = columnsElement[i].firstChild.nodeValue;
		
		try {
			node_data[node_id]["ths"][i] = thsElement[i].firstChild.nodeValue;
		} catch(e) {
			node_data[node_id]["ths"][i] = "";
		}
	}
	
	//... アイテム数分ループ
	for (i = 0; i <= itemsElement.length - 1; i++) {
		
		var tableElement = itemsElement[i].getElementsByTagName('table');
		try {
			node_data[node_id]["tables"][i] = tableElement[0].firstChild.nodeValue;
		} catch(e) {
			node_data[node_id]["tables"][i] = "";
		}
		
		var nosElement = itemsElement[i].getElementsByTagName('no');
		try {
			node_data[node_id]["nos"][i] = nosElement[0].firstChild.nodeValue;
		} catch(e) {
			node_data[node_id]["nos"][i] = "";
		}
		
		var codesElement = itemsElement[i].getElementsByTagName('code');
		try {
			node_data[node_id]["codes"][i] = codesElement[0].firstChild.nodeValue;
		} catch(e) {
			node_data[node_id]["codes"][i] = "";
		}
		
		var namesElement = itemsElement[i].getElementsByTagName('name');
		try {
			node_data[node_id]["names"][i] = namesElement[0].firstChild.nodeValue;
		} catch(e) {
			node_data[node_id]["names"][i] = "";
		}
		
		var digestsElement = itemsElement[i].getElementsByTagName('digest');
		try {
			node_data[node_id]["digests"][i] = digestsElement[0].firstChild.nodeValue;
		} catch(e) {
			node_data[node_id]["digests"][i] = "";
		}
		
		var datasElement = itemsElement[i].getElementsByTagName('data');
		node_data[node_id]["datas"][i] = new Array(columnsElement.length);
		node_data[node_id]["dataObj"][i] = new Object();
		
		//... カラム数分ループ
		for (j = 0; j <= columnsElement.length - 1; j++) {
			try {
				node_data[node_id]["datas"][i][j] = datasElement[j].firstChild.nodeValue;
			} catch(e) {
				node_data[node_id]["datas"][i][j] = "";
			}

			try {
				node_data[node_id]["dataObj"][i][node_data[node_id]["columns"][j]] = datasElement[j].firstChild.nodeValue;
			} catch(e) {
				node_data[node_id]["dataObj"][i][node_data[node_id]["columns"][j]] = "";
			}
		}
	}

	return itemsElement.length;
}

//... 外部HTMLロード関数
function SubmitFormOuterHTML(node_id, element_id, frm_name) {
	//... ノードIDオブジェクトをセット
	if (node_obj[node_id] == undefined) {
		node_obj[node_id] = new Object();
	}
	
	//... フォームをセット
	if (frm_name == undefined) {
		frm_name = node_id;
	}
	
	var frm = document.forms[frm_name];

	//... フォームが指定されているとき
	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;
	}
	
	//... エレメントIDが指定されているとき
	if (element_id != undefined) {
		node_obj[node_id]["element_id"] = element_id;
	}

	//... URLをセット
	node_obj[node_id]["url"] = frm.action;
	node_obj[node_id]["method"] = frm.method;
	
	//... クエリをセット
	var frm_query = decodeURIComponent(Form.serialize(frm_name));
	
	//... 基準クエリが指定されているとき
	if ((node_obj[node_id]["query_2"] != undefined) && (node_obj[node_id]["query_2"] != "")) {
		node_obj[node_id]["query"] = frm_query + "&" + node_obj[node_id]["query_2"];
		//alert("#" + node_obj[node_id]["query"]);
	} else {
		node_obj[node_id]["query"] = frm_query;
	}
	
	//... コールバックをセット
	if (node_obj[node_id]["callback_finish"] == undefined) {
		node_obj[node_id]["callback_finish"] = ClearSubmitFlg;
	}

	//... 読み込み中文字列をセット
	if (node_obj[node_id]["loading_str"] == undefined) {
		node_obj[node_id]["loading_str"] = "検索中...";
	}
	
	if (node_obj[node_id]["test"] == undefined) {
		node_obj[node_id]["test"] = 0;
	}
	
	//... 外部HTMLをロード
	LoadOuterHTML(node_id);
	
	return true;
}

