// coding: utf-8

/**
 * create XMLHttpRequest
 * bool createXHR()
 * @returns  object  XHR
 */
function createXHR()
{
	// Win IE
	if (window.ActiveXObject) {
		try {
			// MSXML2
			return new ActiveXObject("Msxml2.XMLHTTP")
		} catch (e) {
			try {
				// Old MSXML
				return new ActiveXObject("Microsoft.XMLHTTP")
			} catch (e2) {
				return null
			}
		 }
	} else if (window.XMLHttpRequest) {
		// Win IE以外のXMLHttpRequestオブジェクト実装ブラウザ
		return new XMLHttpRequest()
	} else {
		return null
	}
}
//


/**
 * void requestFile(array data, string method, string fileName, boolean async, string elementId)
 * @param  data      array   array[name] = value
 * @param  method    string  HTTP request method
 * @param  filename  string  request target URI
 * @param  async     bool    true: async / false: sync
 * @param  id        string  element Id for callback
 */
function requestFile(data, method, fileName, async, id)
{
	//XMLHttpRequestオブジェクト生成
	var xhr = createXHR();
	
	//open メソッド
	xhr.open(method, fileName, async);
	
	//受信時に起動するイベント
	xhr.onreadystatechange = function()
	{
		// readyState = 4 で受信完了, (HTTP)status = 200 OK
		if (xhr.readyState == 4 && xhr.status == 200) {
			if (onLoaded != "undefined") {
				onLoaded(xhr, id);
			}
		}
	}
	//
	
	// HTTP header
	xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded; charset=UTF-8");

	// 送信データ
	var senddata = "";
	for (var key in data) {
		if (senddata != "") {
			senddata += "&";
		}
		senddata += key + "=" + encodeURIComponent(data[key]);
	}
	
	// send メソッド
	xhr.send(senddata);
}
//



function changeSelectData(param1, param2, toID, method, fileName, async) {

	var ajax = createXHR()
	
	//open メソッド
	ajax.open(method, fileName, async) //[2]
	//受信時に起動するイベント
	ajax.onreadystatechange = function()  //[4]
	{ 
	  //readyState値は4で受信完了
	  if (ajax.readyState == 4 && ajax.status == 200) { //[5]
	  	//コールバック
		var xml = ajax.responseXML;
		var res = xml.getElementsByTagName("result");
		var id = xml.getElementsByTagName("tid");

		var obj = document.getElementById(toID);
		var len = obj.length;

		for ( var i = 0; i < len; i++ )
			obj.options[0] = null;

		for (var i = 0; i < res.length; i++) {
			var pid = id[i].firstChild.nodeValue;
			var val = res[i].firstChild.nodeValue;
//			obj.length++;
			len = obj.length;
//			obj.options[len - 1].text = val;
//			obj.options[len - 1].val = pid;
			var opt = document.createElement("option");
			opt.value = pid;
			var str = document.createTextNode(val);
			opt.appendChild(str);

			if ( i == 0 ) {
				opt.selected = true;
			}

			obj.insertBefore(opt, obj.options[len]);
		}

//		var obj = document.getElementById(toID);
//		obj.innerHTML = ajax.responseText;
	  }
	}
	
	// header
	ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded; charset=UTF-8");

	var senddata = "";
	senddata = "val1=" + param1;
	if ( param2 ) {
		senddata += "&val2=" + param2;
	}

	//send メソッド
	ajax.send(senddata); //[3]

/*
	serverURL = serverURL + '?' + dataVal;
	ajax.open("POST", serverURL);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4 && ajax.status == 200) {
			var obj = document.getElementById(objID);
			obj.innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);
*/
}
