(function(){
	// CONSTANTS
	var developerId = '10f53e53fb4ed6f6e75b20315e8e2271';		// 要変更
	var affiliateId = '0948c56d.2c5b1780.0948c56e.1db1affe';	// 要変更
	var callBack    = 'createAreaSelect';
	var operation   = 'GetAreaClass';
	var version     = '2009-03-26';
	var requestUrl = 'http://api.rakuten.co.jp/rws/2.0/json?';
	var param = [];
	param.push('developerId='+developerId);
	param.push('callBack='+callBack);
	param.push('operation='+operation);
	param.push('version='+version);
	if(affiliateId) {
		param.push('affiliateId='+affiliateId);
	}
	var scriptTag = document.createElement('script');
	scriptTag.src = requestUrl + param.join('&');
	document.body.appendChild(scriptTag);
})();

var defaultMiddleArea = 'kanagawa';
var defaultSmallArea = 'hakone';
var rakutenTr_smallAreaData = new Array();
var rakutenTr_datailAreaData = new Array();

function createAreaSelect(data) {
	var prefListTag = '<select id="middleClassCode" name="middleClassCode" onChange="setSmallArea()"><option value="">指定なし</option>';
	if(data.Header.Status == "Success") {
		var middleClassList = data.Body.GetAreaClassInfo.largeClass.middleClass;
		for(var i = 0; i < middleClassList.length; i++) {
			var middleClassCode = middleClassList[i].middleClassCode;
			var selected = "";
			if(middleClassCode == defaultMiddleArea) {
				selected = ' selected="selected"';
			}
			prefListTag += '<option value="' + middleClassCode + '"' + selected + '>' + middleClassList[i].middleClassName + '</option>';
			rakutenTr_smallAreaData[middleClassCode] = middleClassList[i].smallClass;
		}
	}
	document.getElementById('middleClassList').innerHTML = prefListTag;
	if(defaultMiddleArea != null && defaultMiddleArea.length != 0) {
		setSmallArea();
	}
}
function setSmallArea() {
	var code = document.getElementById('middleClassCode').value;
	var tag = '<select id="smallClassCode" name="smallClassCode" onChange="setDetailArea()"><option value="">指定なし</option>';
	if(code != null && code.length != 0) {
		var smallClassList = rakutenTr_smallAreaData[code];
		for(var i = 0; i < smallClassList.length; i++) {
			var selected = "";
			if(document.getElementById('smallClassCode') == null
					&& smallClassList[i].smallClassCode == defaultSmallArea) {
				selected = ' selected="selected"';
			}
			tag += '<option value="' + smallClassList[i].smallClassCode + '"' + selected + '>' + smallClassList[i].smallClassName + '</option>';
			if(smallClassList[i].detailClass != null) {
				var detailClassList = smallClassList[i].detailClass;
				rakutenTr_datailAreaData[smallClassList[i].smallClassCode] = detailClassList;
			} else {
				document.getElementById('detailClassList').innerHTML = "";
			}
		}
		document.getElementById('smallClassList').innerHTML = tag;
		document.getElementById('largeClassCode').value = "japan";
	} else {
		document.getElementById('smallClassList').innerHTML = "";
	}
}
function setDetailArea() {
	var code = document.getElementById('smallClassCode').value;
	if(code != null && code.length != 0) {
		var detailClassList = rakutenTr_datailAreaData[code];
		if(detailClassList != null) {
			var tag = '<select id="detailClassCode" name="detailClassCode"><option value="">指定なし</option>';
			for(var j = 0; j < detailClassList.length; j++) {
				tag += '<option value="' + detailClassList[j].detailClassCode + '">' + detailClassList[j].detailClassName + '</option>';
			}
			document.getElementById('detailClassList').innerHTML = tag;
		} else {
			document.getElementById('detailClassList').innerHTML = "";
		}
	}
}
