var bDebugMode	= false;
var nCurMenu	= 0;
var nMenuLength = 0;
var nHeightPerLine = 14;
var rMenu;
var bAutoRequest = false;
var sSentQuery = "";
var sLastReceived = "default";
var sMenuColor = "#F9FBF0";
var sMenuColorSelected = "#EAF1C9";
var suggestKeyword;
var lSuggestResult;
var searchString;
var locObj;
var isOri;

function goLocAjax(loc_desc, loc_cd, cnt_desc, cnt_cd, conti){
	if(isOri == 'Y'){
		document.auct_reg.ORI_LOC_NM.value = loc_desc + ", " + cnt_desc;
		document.auct_reg.ORI_LOC.value = conti + "_" + loc_cd;
	}else{
		document.auct_reg.DST_LOC_NM.value = loc_desc + ", " + cnt_desc;
		document.auct_reg.DST_LOC.value = conti + "_" + loc_cd;	
	}
	return;
}

function suggestSuccess(oj){
	nCurMenu	= 0;
	nMenuLength = 0;
	rMenu = new Array();
	var str = oj.responseText;
	if(sLastReceived != str){
		sLastReceived = str;
		if(str != "" && str.length > 6){
			rMenu = str.split(";");
			nMenuLength = rMenu.length;
			nCurMenu = 0;
			var sList = "<dl>";
			for(var i=1; i <= rMenu.length; i++){
				var del = rMenu[i-1].split("|");//ILL_LOC_DESC, ILL_LOC_CD, ILL_CNT_DESC, ILL_CNT, ICL_CONTI
				var del0 = del[0];
				if(del0.substring(0,3) == '???'){
					del0 = del0.substring(3);
				}
				sList += "<div id='menu"+isOri+i+"'>&nbsp;&nbsp;<a href='javascript:goLocAjax(\""+del0+"\",\""+del[1]+"\",\""+del[2]+"\",\""+del[3]+"\",\""+del[4]+"\");' class='automake'>" + del0 + ", " + del[2] + "</a></div>";
			}
			sList += "</dl>";
			getById(lSuggestResult).innerHTML = sList;
			getById(lSuggestResult).style.display = "";
		}else{
			getById(lSuggestResult).style.display = "none";
		}
	}
	return;
}

function cancelEvent(e){ 
	e.returnValue=false;
	if(e && e.preventDefault) e.preventDefault();
}

function keyUp(e, loc){
	if(!e){
		e = window.event;
	}
	if(loc == 'ORI'){
		suggestKeyword = 'suggestKeyword1';
		lSuggestResult = 'lSuggestResult1';
		searchString = document.auct_reg.ORI_LOC_NM.value;
		locObj = document.auct_reg.ORI_LOC;
		isOri = 'Y';
	}else{
		suggestKeyword = 'suggestKeyword2';
		lSuggestResult = 'lSuggestResult2';
		searchString = document.auct_reg.DST_LOC_NM.value;
		locObj = document.auct_reg.DST_LOC;
		isOri = 'N';
	}
	
	var oLayerSuggest = getById(lSuggestResult);
	var oPLayerSuggest = getById(lSuggestResult);
	
	
	var oP = getById(suggestKeyword);

	if((oP.value).length <2){
		oPLayerSuggest.style.display='none';
		return;
	}
	
	var nKeyCode = e.keyCode;
	//mouse click의 경우 무시한다!
	if(nKeyCode == 229) return;

	switch(nKeyCode){
		case 13:
			if(nCurMenu > 0){
				var del = rMenu[nCurMenu-1].split("|");//ILL_LOC_DESC, ILL_LOC_CD, ILL_CNT_DESC, ILL_CNT, ICL_CONTI
				bAutoRequest = false;
				var del0 = del[0];
				if(del0.substring(0,3) == '???'){
					del0 = del0.substring(3);
				}
				oP.value =  del0 + ", " + del[2];
				locObj.value = del[4] + "_" + del[1];
				oPLayerSuggest.style.display='none';
				nMenuLength = 0;
				nCurMenu = 0;
				return;
			}
			break;
		case 40: // down arrow
			if(nMenuLength > 0 ){
				if(nCurMenu != nMenuLength && nCurMenu != 0)
					getById('menu'+isOri+nCurMenu).style.background = sMenuColor;
				nCurMenu++;
				if(nCurMenu >= nMenuLength)
					nCurMenu = nMenuLength;
				getById('menu'+isOri+nCurMenu).style.background = sMenuColorSelected;
				getById('menu'+isOri+nCurMenu).focus();
				if(!(oLayerSuggest.scrollTop >((nCurMenu-8) * nHeightPerLine) && oLayerSuggest.scrollTop <((nCurMenu-8) * nHeightPerLine)+(nHeightPerLine * 7))){
					if((oLayerSuggest.scrollTop + nHeightPerLine) ==((nCurMenu-8) * nHeightPerLine))
						oLayerSuggest.scrollTop = oLayerSuggest.scrollTop - nHeightPerLine;
					else
						oLayerSuggest.scrollTop =(nCurMenu-7) * nHeightPerLine;
				}
			}
			cancelEvent(e);
			break;
		case 38: // up arrow
			if(nMenuLength > 0 ){
				if(nCurMenu != 0)
					getById('menu'+isOri+nCurMenu).style.background = sMenuColor;
				nCurMenu--;
				if(nCurMenu <= 0)
					nCurMenu = 1;
				getById('menu'+isOri+nCurMenu).style.background = sMenuColorSelected;
				if(!(oLayerSuggest.scrollTop >((nCurMenu-8) * nHeightPerLine) && oLayerSuggest.scrollTop <((nCurMenu-8) * nHeightPerLine)+(nHeightPerLine * 7))){
					if((oLayerSuggest.scrollTop + nHeightPerLine) ==((nCurMenu-8) * nHeightPerLine))
						oLayerSuggest.scrollTop = oLayerSuggest.scrollTop - nHeightPerLine;
					else
						oLayerSuggest.scrollTop =(nCurMenu-7) * nHeightPerLine;
				}
			}
			cancelEvent(e);
			break;
		default:
			bAutoRequest = false;
			try{
				if(isOri == 'Y')
					sendRequest(suggestSuccess,'&flag=S&isOri=Y&ORI_LOC_NM=' + encodeURIComponent(searchString),'GET','/eservice/alps/kr/schedule/doorAjax.do',true,true)
				else
					sendRequest(suggestSuccess,'&flag=S&isOri=N&DST_LOC_NM=' + encodeURIComponent(searchString),'GET','/eservice/alps/kr/schedule/doorAjax.do',true,true)
			}catch(e){
				alert(e);
				return 0;
			}
			cancelEvent(e);
	}
	return;
}




var bDebugModePort	= false;
var nCurMenuPort	= 0;
var nMenuLengthPort = 0;
var nHeightPerLinePort = 14;
var rMenuPort;
var bAutoRequestPort = false;
var sSentQueryPort = "";
var sLastReceivedPort = "default";
var sMenuColorPort = "#F9FBF0";
var sMenuColorPortSelectedPort = "#EAF1C9";
var suggestKeywordPort;
var lSuggestResultPort;
var searchStringPort;
var locObjPort;

function goPortAjax(loc_desc, loc_cd, cnt_desc, cnt_cd, conti){
	document.frmData.loc_cd.value = loc_cd;
	document.frmData.loc_desc.value = loc_desc + ", " + cnt_desc;
	return;
}

function suggestSuccessPort(oj){
	var str = oj.responseText;
	if(sLastReceivedPort != str){
		sLastReceivedPort = str;
		if(str != "" && str.length > 6){
			rMenuPort = str.split(";");
			nMenuLengthPort = rMenuPort.length;
			nCurMenuPort = 0;
			var sList = "<dl>";
			for(var i=1; i <= rMenuPort.length; i++){
				var del = rMenuPort[i-1].split("|");
				var del0 = del[0];
				if(del0.substring(0,3) == '???'){
					del0 = del0.substring(3);
				}
				sList += "<div id='menu"+i+"'>&nbsp;&nbsp;<a href='javascript:goPortAjax(\""+del0+"\",\""+del[1]+"\",\""+del[2]+"\",\""+del[3]+"\",\""+del[4]+"\");' class='automake'> " + del0 + ", " + del[2] + "</a></div>";
			}
			sList += "</dl>";
			getById('lSuggestResultPort').innerHTML = sList;
			getById('lSuggestResultPort').style.display = "";
		}else{
			getById('lSuggestResultPort').style.display = "none";
		}
	}
}

function keyUpPort(e){
	if(!e){
		e = window.event;
	}

	searchStringPort = document.frmData.loc_desc.value;

	var oP = getById('suggestKeywordPort');
	//searchStringPort = oP.value;

	var oLayerSuggest = getById('lSuggestResultPort');
	var oPLayerSuggest = getById('lSuggestResultPort');
	
	if((oP.value).length <2){
		oPLayerSuggest.style.display='none';
		return;
	}	

	var nKeyCode = e.keyCode;
	//mouse click의 경우 무시한다!
	if(nKeyCode == 229) return;
	switch(nKeyCode){
		case 13:
			if(nCurMenuPort != 0){
				var del = rMenuPort[nCurMenuPort-1].split("|");
				var del0 = del[0];
				if(del0.substring(0,3) == '???'){
					del0 = del0.substring(3);
				}
				bAutoRequestPort = false;
				oP.value =  del0 + ", " + del[2];
				document.frmData.loc_cd.value =  del[1];
				oPLayerSuggest.style.display='none';
				nMenuLengthPort = 0;
				nCurMenuPort = 0;
				return;
			}
			break;
		case 40: // down arrow
			if(nMenuLengthPort > 0 ){
				if(nCurMenuPort != nMenuLengthPort && nCurMenuPort != 0)
					getById('menu'+nCurMenuPort).style.background = sMenuColorPort;
				nCurMenuPort++;
				if(nCurMenuPort >= nMenuLengthPort)
					nCurMenuPort = nMenuLengthPort;
				getById('menu'+nCurMenuPort).style.background = sMenuColorPortSelectedPort;
				getById('menu'+nCurMenuPort).focus();
				if(!(oLayerSuggest.scrollTop >((nCurMenuPort-8) * nHeightPerLinePort) && oLayerSuggest.scrollTop <((nCurMenuPort-8) * nHeightPerLinePort)+(nHeightPerLinePort * 7))){
					if((oLayerSuggest.scrollTop + nHeightPerLinePort) ==((nCurMenuPort-8) * nHeightPerLinePort))
						oLayerSuggest.scrollTop = oLayerSuggest.scrollTop - nHeightPerLinePort;
					else
						oLayerSuggest.scrollTop =(nCurMenuPort-7) * nHeightPerLinePort;
				}
			}
			cancelEvent(e);
			break;
		case 38: // up arrow
			if(nMenuLengthPort > 0 ){
				if(nCurMenuPort != 0)
					getById('menu'+nCurMenuPort).style.background = sMenuColorPort;
				nCurMenuPort--;
				if(nCurMenuPort <= 0)
					nCurMenuPort = 1;
				getById('menu'+nCurMenuPort).style.background = sMenuColorPortSelectedPort;
				if(!(oLayerSuggest.scrollTop >((nCurMenuPort-8) * nHeightPerLinePort) && oLayerSuggest.scrollTop <((nCurMenuPort-8) * nHeightPerLinePort)+(nHeightPerLinePort * 7))){
					if((oLayerSuggest.scrollTop + nHeightPerLinePort) ==((nCurMenuPort-8) * nHeightPerLinePort))
						oLayerSuggest.scrollTop = oLayerSuggest.scrollTop - nHeightPerLinePort;
					else
						oLayerSuggest.scrollTop =(nCurMenuPort-7) * nHeightPerLinePort;
				}
			}
			cancelEvent(e);
			break;
		default:
			bAutoRequestPort = false;
			try{
				sendRequest(suggestSuccessPort,'&flag=P&loc_desc=' + encodeURIComponent(searchStringPort),'GET','/eservice/alps/kr/schedule/doorAjax.do',true,true)
			}catch(e){
				alert(e);
				return 0;
			}
	}
	return;
}

function getById(id, where){
	if(where == null)
		return document.getElementById(id);
	else
		return eval(where + ".document.getElementById('"+id+"')");
}