var map;
var prefXml = 'http://gourmet.indexes.jp/xml/area.xml';
var cityXml;
var phpFile = 'http://gourmet.indexes.jp/search/jaran_xml2.php';
var resultXml;
var html,htmlLargeAreaSelect,htmlSmallAreaSelect;

//////////////////////////////////////////////////////////////
//コールバック関数 (受信時に実行されます )/////////////////////////
//////////////////////////////////////////////////////////////
//大エリアコールバック
function on_loadSelect_A(oj) {
	//responseXMLでレスポンスを取得
	var res = oj.responseXML;
	resHTML1 = SELECT_A(res);
	//レスポンスされた文字列をDIVへ出力
	document.getElementById("selectA").innerHTML = resHTML1;
	document.getElementById("selectB").innerHTML = resHTML2;
	document.getElementById("selectC").innerHTML = resHTML3;
}
//小エリアコールバック
function on_loadSelect_B(oj) {
	//responseXMLでレスポンスを取得
	var res = oj.responseXML;
	resHTML3 = SELECT_B(res);
	//レスポンスされた文字列をDIVへ出力
	document.getElementById("selectC").innerHTML = resHTML3;
}

//////////////////////////////////////////////////////////////
//HTML変換関数 ////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//都道府県と大エリアのSELECTタグ作成
function SELECT_A(xdoc) {
	htmlLargeAreaSelect = "";
	htmlSmallAreaSelect = "";
	//都道府県の指定がない場合
	if(area1 == "") {
		//XML内の"Prefecture "という名前のタグ(要素)の配列を作る
		var pref = xdoc.getElementsByTagName("Prefecture");
		//selectタグを生成
		html = '<select class="formStyle" name="area1" id="area1" onChange="loadSelect_A2(prefXml,this.value)">';
		html += '<option value="0" selected="selected">都道府県を選択</option>';
		//"pref"タグが出てきた順に処理します
		for( i = 0 ; i < pref.length; i++ ) {
			var ken_cd = pref[i].getAttribute("cd");
			var ken_name = pref[i].getAttribute("name");
			html += '<option value="' + ken_cd + '">' + ken_name + '</option>';
		}
		html += '</select>';
		return html
	//都道府県の指定がある場合
	} else {
		//XML内の"Prefecture "という名前のタグ(要素)の配列を作る
		var pref = xdoc.getElementsByTagName("Prefecture");
		//selectタグを生成
		html = '<select class="formStyle" name="area1" id="area1" onChange="loadSelect_A2(prefXml,this.value)">';
		html += '<option value="0" selected="selected">都道府県を選択</option>';
		//"pref"タグが出てきた順に処理します
		for(i = 0 ; i < pref.length; i++) {
			var ken_cd = pref[i].getAttribute("cd");
			var ken_name = pref[i].getAttribute("name");
			if(area1 != ken_cd) {
				html += '<option value="' + ken_cd + '">' + ken_name + '</option>';
			} else {
				//alert(ken_cd);
				html += '<option value="' + ken_cd + '" selected="selected">' + ken_name + '</option>';
				//htmlLargeAreaSelect初期化
				htmlLargeAreaSelect = '<select class="formStyle" name="area2" id="area2" onChange="loadSelect_B(prefXml,this.value)">';
				htmlLargeAreaSelect += '<option value="0" selected="selected">大エリアを選択</option>';
				htmlLargeAreaSelect += '<option value="0">すべてを選択</option>';
				//現在のPrefecture内のLargeAreaの個数を取得
				var large = pref[i].getElementsByTagName("LargeArea");
				//alert('large.length = '+large.length);
				for(p = 0 ; p < large.length; p++) {
					var large_cd = large[p].getAttribute("cd");
					var large_name = large[p].getAttribute("name");
					if(area2 != large_cd) {
						htmlLargeAreaSelect += '<option value="' + large_cd + '">' + large_name + '</option>';
					} else {
						htmlLargeAreaSelect += '<option value="' + large_cd + '" selected="selected">' + large_name + '</option>';
						//htmlSmallAreaSelect初期化
						htmlSmallAreaSelect = '<select class="formStyle" name="area3" id="area3">';
						htmlSmallAreaSelect += '<option value="0" selected="selected">小エリアを選択</option>';
						htmlSmallAreaSelect += '<option value="0">すべてを選択</option>';
						//現在のLargeArea内のSmallAreaの個数を取得
						var small = large[p].getElementsByTagName("SmallArea");
						//alert('small.length = '+small.length);
						for(d = 0 ; d < small.length; d++) {
							var small_cd = small[d].getAttribute("cd");
							var small_name = small[d].getAttribute("name");
							//alert('area3 = '+area3+' / small_cd'+small_cd);
							if(area3 != small_cd) {
								htmlSmallAreaSelect += '<option value="' + small_cd + '">' + small_name + '</option>';
							} else {
								htmlSmallAreaSelect += '<option value="' + small_cd + '" selected="selected">' + small_name + '</option>';
							}
						}
						htmlSmallAreaSelect += '</select>';
					}
				}
				htmlLargeAreaSelect += '</select>';
			}
		}
		html += '</select>';
		resHTML2 = htmlLargeAreaSelect;
		resHTML3 = htmlSmallAreaSelect;
		return html
	}
}

//都道府県selectタグ作成
function SELECT_B(xdoc) {
	//XML内の"Prefecture "という名前のタグ(要素)の配列を作る
	var pref = xdoc.getElementsByTagName("Prefecture");
	//"pref"タグが出てきた順に処理します
	for( i = 0 ; i < pref.length; i++ ) {
		if(area1 == pref[i].getAttribute("cd")) {
			//現在のPrefecture内のLargeAreaの個数を取得
			var large = pref[i].getElementsByTagName("LargeArea");
			for(p = 0 ; p < large.length; p++) {
				if(area2 == large[p].getAttribute("cd")) {
					//htmlSmallAreaSelect初期化
					htmlSmallAreaSelect = '<select class="formStyle" name="area3" id="area3">';
					htmlSmallAreaSelect += '<option value="0" selected="selected">小エリアを選択</option>';
					htmlSmallAreaSelect += '<option value="0">すべてを選択</option>';
					//現在のLargeArea内のSmallAreaの個数を取得
					var small = large[p].getElementsByTagName("SmallArea");
					//alert('small.length = '+small.length);
					for(r = 0 ; r < small.length; r++) {
						var small_cd = small[r].getAttribute("cd");
						var small_name = small[r].getAttribute("name");
						htmlSmallAreaSelect += '<option value="' + small_cd + '">' + small_name + '</option>';
					}
					htmlSmallAreaSelect += '</select>';
				}
			}
		}
	}
	//alert('SELECT_B = '+htmlSmallAreaSelect);
	return htmlSmallAreaSelect
}
//////////////////////////////////////////////////////////////
//送信用関数A
function loadSelect_A(prefXml,AREA1,AREA2,AREA3) {
	area1 = AREA1;
	area2 = AREA2;
	area3 = AREA3;
	//nalert('loadSelect_A = '+area1);
	sendRequest(on_loadSelect_A,area1,'GET',prefXml,true,true);
}
//送信用関数A2 都道府県selectがchangeしたとき
function loadSelect_A2(prefXml,AREA1) {
	area1 = AREA1;
	area2 = "";
	area3 = "";
	document.getElementById("selectB").innerHTML = '&nbsp;';
	document.getElementById("selectC").innerHTML = '&nbsp;';
	//alert('loadSelect_A = '+area1);
	sendRequest(on_loadSelect_A,area1,'GET',prefXml,true,true);
}
//送信用関数B
function loadSelect_B(prefXml,AREA) {
	area2 = AREA;
	//alert('loadSelect_B = '+area2);
	sendRequest(on_loadSelect_B,area2,'GET',prefXml,true,true);
}