// ==================================================
// 交通機関種別ID → 駅情報リスト
// ・フォーム・要素名の制限
// form -> form1
// 交通機関種別ID -> transport_kind_id
// ==================================================

var xmlhttp = false;

// IE 7では、XMLHttpRequestが使えるようになっているが、overrideMimeType()が実装されていない
// そのため、IE系であればActiveXを使うようにしている。
if(window.ActiveXObject)
{
	xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
else if(window.XMLHttpRequest)
{
	xmlhttp = new XMLHttpRequest();
	xmlhttp.overrideMimeType('text/xml');
}

// 駅検索を行う
function doSearchTransport(transport_place_id)
{
	var objForm = document.form1;

	if(objForm.search_transport_kind_id.value == "")
	{
		alert('駅種別を選択してください。');
		return;
	}
	var transportKindId = objForm.search_transport_kind_id.value;

	var url = "/transportlist/search/format/json/transportkindid/" + transportKindId + "/place_id/" + transport_place_id;

	xmlhttp.open('GET', url, true);
	xmlhttp.onreadystatechange = changeCombo;
	xmlhttp.send(null);
}

// 住所の書き込みを行う
function changeCombo()
{
	var objForm = document.form1;

	if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
	{
		try
		{
			// サービスからのリストを取得する
			eval("var response = (" + xmlhttp.responseText + ")");

			// デフォルトの駅IDを取得
			var transport_place_id = response['transport_place_id'];

			// 対象となるコンボボックスを指定
			sele = document['form1']['search_transport_place_id'];

			if(sele)
			{
				// セレクトボックスのクリア
				count = sele.options.length;
				for(ii = count; ii > 0; ii--)
				{
					sele.options[ii] = null;
				}

				// セレクトボックスに値を割り当てる
				for(ii = 0; true; ii++)
				{
					if(response['id_' + ii] == null || response['id_' + ii] == "")
					{
						break;
					}

					sele.options[ii + 1] = new Option(response['name_' + ii], response['id_' + ii]);

					// 初期選択に指定された物を選択する
					if(response['id_' + ii] == transport_place_id)
					{
						sele.options[ii + 1].selected = true;
					}
				}
			}
		}
		catch(e)
		{
			alert(e.message);
		}
	}
}

