//------------------------------------------------------------------------------------
//3桁区切りカンマ付加
//------------------------------------------------------------------------------------
function addFigure(str)
{
	var num = new String(str).replace(/,/g, "");
	while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
	return num;
}

//------------------------------------------------------------------------------------
//距離問い合わせ
//------------------------------------------------------------------------------------
var gzXmlHttp	= 0;
var gzLock01	= false;

/* XmlHttpRequest */
function createXmlHttpRequest()
{
	var xmlhttp = false;
	if(window.XMLHttpRequest){
		xmlhttp = new XMLHttpRequest();
	}
	else if(window.ActiveXObject){
		try{
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e){
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlhttp;
}

/* 距離問い合わせ実行 */
function queryDistanceExec(mode, idx)
{
	if(!gzLock01){
		gzLock01 = true;
		TimerID01 = setInterval(
			function(){
				var ret = queryDistance(mode, idx);
				if(ret){
					clearInterval(TimerID01);
					gzLock01 = false;
				}
			},
			10);
	}
}

/* 距離問い合わせ処理 */
function queryDistance(mode, idx)
{
	if(!gzXmlHttp) gzXmlHttp = createXmlHttpRequest();
	
	if(!gzXmlHttp || gzXmlHttp.readyState == 1 || gzXmlHttp.readyState == 2 || gzXmlHttp.readyState == 3){
		return false; 
	}
	else{
		clearInterval(TimerID01);
	}
	
	var dbox = document.getElementById("SelDepIataBox"+idx);
	var abox = document.getElementById("SelArrIataBox"+idx);
	var rbox = document.getElementById("ChkRoundTripBox"+idx);
	var cbox = document.getElementById("PutDistanceBox"+idx);
	
	gzDepIataIdx[idx]	= dbox.selectedIndex;
	gzArrIataIdx[idx]	= abox.selectedIndex;
	if(mode == 2){
		gzDepAreaIdx[idx]	= document.getElementById("SelDepAreaBox"+idx).selectedIndex;
		gzArrAreaIdx[idx]	= document.getElementById("SelArrAreaBox"+idx).selectedIndex;
	}
	gzRoundTripChk[idx]	= rbox.checked;
	
	var rtflag;
	if(rbox.checked){
		rtflag = 1;
	}
	else{
		rtflag = 0;
	}
	
	gzXmlHttp.open("GET", "/js/query/queryDistance.php?mode="+mode+"&rt="+rtflag+"&iata="+dbox.value+","+abox.value, true);
	gzXmlHttp.onreadystatechange = function(){
		if(gzXmlHttp.readyState == 4 && gzXmlHttp.status == 200 && gzXmlHttp.responseText != ""){
			var resArray = gzXmlHttp.responseText.split("\t");
			if(resArray.length == 2){
				var doc = "";
				if(resArray[0] == 0 || resArray[1] == 0){
					doc += '<table border="0" cellspacing="0" cellpadding="0">';
					doc += '<tr>';
					doc += '<th class="elm1">往復</th>';
					doc += '<td class="elm2"><input id="ChkRoundTripBox'+idx+'" type="checkbox" name="round_trip['+idx+']" value="1" onClick="queryDistanceExec('+mode+', '+idx+');" '+(rtflag == 1?'checked':'')+'></td>';
					doc += '<td class="elm8">';
					doc += '<input id="HdnDistanceBox'+idx+'" type="hidden" name="distance['+idx+']" value="">';
					doc += '<input id="HdnCo2SubTotalBox'+idx+'" type="hidden" name="co2subtotal['+idx+']" value="">';
					doc += '<div class="error_message">'+(dbox.value == '' || abox.value == ''?'便を選択してください':'選択された便はありません')+'</div>';
					doc += '</td>';
					doc += '<th class="elm7"><a href="javascript:insertInputBox();"><img class="btn" src="/images/b_apt_add.gif" alt="空路を追加" width="69" height="27" border="0"></a></th>';
					doc += '</tr>';
					doc += '</table>';
					gzDistance[idx]		= "";
					gzCo2SubTotal[idx]	= "";
				}
				else{
					doc += '<table border="0" cellspacing="0" cellpadding="0">';
					doc += '<tr>';
					doc += '<th class="elm1">往復</th>';
					doc += '<td class="elm2"><input id="ChkRoundTripBox'+idx+'" type="checkbox" name="round_trip['+idx+']" value="1" onClick="queryDistanceExec('+mode+', '+idx+');" '+(rtflag == 1?'checked':'')+'></td>';
					doc += '<th class="elm3">距離</th>';
					doc += '<td class="elm4"><input id="HdnDistanceBox'+idx+'" type="hidden" name="distance['+idx+']" value="'+resArray[0]+'">'+addFigure(resArray[0])+'km</td>';
					doc += '<th class="elm5">CO2排出量</th>';
					doc += '<td class="elm6"><input id="HdnCo2SubTotalBox'+idx+'" type="hidden" name="co2subtotal['+idx+']" value="'+resArray[1]+'">'+addFigure(resArray[1])+'kg</td>';
					doc += '<th class="elm7"><a href="javascript:insertInputBox();"><img class="btn" src="/images/b_apt_add.gif" alt="空路を追加" width="69" height="27" border="0"></a></th>';
					doc += '</tr>';
					doc += '</table>';
					gzDistance[idx]		= resArray[0];
					gzCo2SubTotal[idx]	= resArray[1];
				}
				cbox.innerHTML = doc;
			}
		}
	}
	gzXmlHttp.send(null);
	return true;
}

//------------------------------------------------------------------------------------
//国際空港選択ボックス操作
//------------------------------------------------------------------------------------

/* 国際空港問い合わせ実行 */
function selIntAptExec(ridx, aidx, num)
{
	var TimerID02 = setInterval(
		function(){
			var ret = selIntApt(ridx, aidx, num);
			if(ret){
				clearInterval(TimerID02);
				gzLock02 = false;
			}
		},
		10);
}

/* 国際空港問い合わせ処理 */
function selIntApt(ridx, aidx, num)
{
	if(!gzXmlHttp) gzXmlHttp = createXmlHttpRequest();
	
	if(!gzXmlHttp || gzXmlHttp.readyState == 1 || gzXmlHttp.readyState == 2 || gzXmlHttp.readyState == 3){
		return false; 
	}
	
	var rbox = document.getElementById(ridx);
	var abox = document.getElementById(aidx);
	gzXmlHttp.open("GET", "/js/query/selIntApt.php?rid="+rbox.value, true);
	gzXmlHttp.onreadystatechange = function()
	{
		if(gzXmlHttp.readyState == 4 && gzXmlHttp.status == 200 && gzXmlHttp.responseText != ""){
			var resArray = gzXmlHttp.responseText.split("\n");
			abox.disabled = false;
			abox.options.length = resArray.length;
			for(var i = 0; i < resArray.length; i++){
				var setval = resArray[i].split("\t");
				abox.options[i] = new Option(setval[1], setval[0]);
			}
			abox.selectedIndex = num;
			if(resArray.length == 1 && setval[0] == ""){
				abox.selectedIndex = 0;
				abox.disabled = true;
			}
		}
	}
	gzXmlHttp.send(null);
	
	return true;
}

