////////////////////////////////////////////////// autoCompelete
var curWord;
var lastInputTime = 0;
var CUROPT = 0;

var menubackground="#e9f6f9";
var menucolor="#000000";
var upMenu = 0;
var nCurMenu = 0; 
var nMenuLength = 0; 
var bWordSearch = true; 
var compValue = 0;
var k = 0;

var bDirect = 0;


function GetInputField()
{
 	var inputField = null;
 	
 	switch(CUROPT){
 		case 0 : inputField = document.getElementById("BusNo");
 			break;
 		case 1 : inputField = document.getElementById("BusNo");
 			break;
 		case 2 : inputField = document.getElementById("BusNo");
 			break;
 		case 3 : inputField = document.getElementById("Subway");
 			break;
 		case 4 : inputField = document.getElementById("sangho");
 			break;
 	}
	//alert("GetInputField() = " + CUROPT + ": inputField = " + inputField);
	
	return inputField;	
}

function GetInputCID()
{
 	var inputCID = null;
 	
 	switch(CUROPT){
 		case 0 : inputCID = document.sfm1.cid;
 			break;
 		case 1 : inputCID = document.sfm1.cid;
 			break;
 		case 2 : inputCID = document.sfm1.cid;
 			break;
 		case 3 : inputCID = document.sfm2.select;
 			break;
 		case 4 : inputCID = document.sfm3.select_CID;
 			break;
 	}

	return inputCID;	
}

function GetBusNO_Select() {
	var R_Bus;
	for (i=0; i<sfm1.R_Bus.length; i++) {
		if (sfm1.R_Bus[i].checked) R_Bus = sfm1.R_Bus[i].value;
	}
	return parseInt(R_Bus*2);
}

function TrafficDataProcess(){
	var inputField = GetInputField();
	var inputCID = GetInputCID();
	
	var now = new Date();
	var timeGap = now.getTime() - lastInputTime;

	if(timeGap<200 || bDirect==1) return;

	createXMLHttpRequest();      
	
	if(!xmlHttp) return;

	var bwoj = new chkAjaBrowser();
	var opera	  = bwoj.bw.opera;
	var safari	  = bwoj.bw.safari;
	var konqueror = bwoj.bw.konqueror;
	var mozes	  = bwoj.bw.mozes;
	
	if(opera || safari || mozes){
		xmlHttp.onload = function () { TrafficHandleAutoComplete(); }
	} else {

		xmlHttp.onreadystatechange = function ()
		{
			if ( xmlHttp.readyState == 4 ){
				TrafficHandleAutoComplete();
			}
		}
	}
	      
 	var url = "/trafficSearch/engine/TrafficAutoComplete.asp";                        
 	var param = "?Word=" + escape(inputField.value) + "&Opt=" + CUROPT + "&CID=" + escape(inputCID.value);
 	//alert(param);
 	curWord = inputField.value;
 	xmlHttp.open("GET", url+param, true);
	xmlHttp.send(null);	
}

function TrafficAutoComplete(e,opt) {
 	CUROPT = opt;
	if (opt==0) CUROPT = GetBusNO_Select();
	
	var inputField = GetInputField();
  	bDirect = 0;
	
	if (e.keyCode!=13 && e.keyCode!=37 && e.keyCode!=38 && e.keyCode!=39 && e.keyCode!=40) {
 		if(inputField.value.length > 0) {
	 		var now = new Date();
	 		
			lastInputTime = now.getTime();
	
	 		setTimeout(TrafficDataProcess,200);

   		}else{
   			TrafficClearNames();
   		}
   	}
   	else {
   		TrafficKeyEvent(e.keyCode);   	
   	}
}

function TrafficHandleAutoComplete() {
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
			if(xmlHttp.responseXML.getElementsByTagName("Word").length == 0) {
				TrafficClearNames();
			} else {
				TrafficSetNames(xmlHttp.responseXML.getElementsByTagName("Word"));
			}
		} else if (xmlHttp.status == 204){
			TrafficClearNames();
		}
    }
}

function TrafficMouseOut(obj){
	 obj.style.background = "#e9f6f9";
	 obj.style.color = "#000000";
}

function TrafficMouseOver(obj){
	 document.getElementById("popup"+CUROPT).focus();
	 obj.style.background = "#FFFFFF";
	 obj.style.color = "#000000";
}

function popupHidden(cnt){
	for(var i=0; i<5; i++) {
		if (i!=cnt) {
			document.getElementById("popup"+i).style.display = "none";
		}
	}
}

function TrafficSetNames(the_names) {    
    var size = the_names.length;
    setOffsets();
    nMenuLength = size;    
 	var sText = "";

	if (CUROPT==4) {
		sText +="<table width=218 height=100% id=name_table bgcolor=#ffffff border=0 cellspacing=0 cellpadding=0>";
	} else {
		sText +="<table width=140 height=100% id=name_table bgcolor=#ffffff border=0 cellspacing=0 cellpadding=0>";
	}
		sText +="	<tr height=20 bgcolor=#e2f3f7 style='padding:2 0 -1 0;'><td>&nbsp;<b>[ÀÚµ¿¿Ï¼º]<\/td><td align=right><a href=javascript:TrafficClearNames()><img src='http://www.odsay.com/images/cmn/btn_colse3.gif' style='margin:0 4 2 0'><\/a><\/td><\/tr>";			
		sText +="	<tr height=1 bgcolor=#cae8f0><td colspan='2'><\/td><\/tr>";			
		sText +="	<tr><td colspan='2' style='padding:1 2 1 0'>";
		sText +="		<table width=100% border=0 cellspacing=0 cellpadding=0>";
		sText +="			<tr><td>";			
	if (size<4) {	
		sText +="			<div id='TrafficScrollEvent' class='scroll2' style='width:100%; height:100%; OVERFLOW: auto'>"	
	} else {	
		sText +="			<div id='TrafficScrollEvent' class='scroll2' style='width:100%; height:82; OVERFLOW: auto'>"	
	}	
		sText +="				<table width=100% bgcolor=#ffffff border=0 cellspacing=0 cellpadding=0>"		
	var txtNode, txtDisp;
    for (var i = 0; i < size; i++) {
        txtNode = the_names[i].firstChild.data;
        txtDisp = txtNode.split(" ").join("%20");
        sText += "<tr><td colspan='2' style='padding:3 0 1 3' id='"+CUROPT+"trafficMenu"+i+"' onmouseout='TrafficMouseOver(this)' onmouseover='TrafficMouseOut(this)' bgcolor='#FFFFFF' onclick=javascript:TrafficpoPulateName('"+txtDisp+"');>";
        txtNode = txtNode.replace(curWord,"<font color='red'>"+curWord+"</font>");

        sText += txtNode;
        sText += "</td></tr>";
    }    
        sText +="				</table>";
        sText +="			</div>";
        sText += "			</td></tr>";
        sText +="		</td>";
		sText +="	</tr>";
		sText +="</table>";
    
    close();     
//	popupHidden(CUROPT);
	
	if ((CUROPT!=3)&&(CUROPT!=4)) {
		document.getElementById("select_CID").style.display = "none";
	}
	
	document.getElementById("popup"+CUROPT).innerHTML = sText; 	
 	document.getElementById("popup"+CUROPT).style.display = "";
 	
    if(size == 0) TrafficClearNames();       
  }

function setOffsets() {

	var completeDiv = document.getElementById("popup"+CUROPT);
 	var inputField = GetInputField();

    var end = inputField.offsetWidth;
    var left = calculateOffsetLeft(inputField);
    var top = calculateOffsetTop(inputField) + inputField.offsetHeight;

    completeDiv.style.border = "#50b0c1 1px solid";
    completeDiv.style.left = left + "px";
    completeDiv.style.top = top + "px";
}

function calculateOffsetLeft(field) {
	 return calculateOffset(field, "offsetLeft");
}

function calculateOffsetTop(field) {
 	 return calculateOffset(field, "offsetTop");
}

function calculateOffset(field, attr) {
 	var offset = 0;
	while(field) {
   		offset += field[attr]; 
   	  	field = field.offsetParent;
   	}
   	return offset;
}

function TrafficpoPulateName(val) {
 	var inputField = GetInputField();
 	var sTemp;
	sTemp = val.split("%20").join(" ");
	
	inputField.value = sTemp.split("[")[0];
	
    TrafficClearNames();
//    Analyze();
}

function TrafficClearNames() 
{
	var completeDiv = document.getElementById("popup"+CUROPT);
 	completeDiv.innerHTML = "";
    completeDiv.style.display = "none";
    upMenu = 0;
    nCurMenu = 0;    
    nMenuLength =0;
    bWordSearch = true;
    
/*    
    try {
		document.getElementById("select_CID").style.display = "block";
	} catch(e) {
		return;
	}
*/
}

function TrafficClearString(str)
{  
	var t_cnt = str.length;
	var cnt = str.indexOf(">",0);
	
	var tmp = str.substr(cnt+1,t_cnt);	
	var Fcnt = tmp.indexOf("<",0);
	
	var Ftmp = tmp.substr(0,Fcnt);	
	var Ecnt = tmp.indexOf(">",0);
	
	var Etmp = tmp.substr(Ecnt+1,t_cnt);
	
	var temp = Ftmp+Etmp;
	
    return temp.split("[")[0];
}
/////////////////////////////////////
///<--Å°º¸µå ÀÔ·Â

function TrafficKeyEvent(k) {       //°Ë»öÀÇ À¯¹«¸¦ Ã¼Å© ÇÑ´Ù. 
	
	var inputField = GetInputField();
	
    if (inputField.length < 1) return;
    
    switch(k) {
		case 13: //Enter Menudd
			if (compValue >= 0){           
				//inputField.blur();
				TrafficClearNames();
//				Analyze();
				bDirect = 1;
			}        
			break;
			
		case 40: //Down menu 
			//alert("nCurMenu : "+nCurMenu+"---- nMenuLength : "+nMenuLength);
			if(nMenuLength < 1){ return;}			
			
			for(i=0; i<nMenuLength; i++) {				
				document.getElementById(CUROPT+'trafficMenu'+i).style.background = "#FFFFFF";
				document.getElementById(CUROPT+'trafficMenu'+i).style.color = "black";
			}		 
				
			if (nCurMenu < nMenuLength) {
				//¸Þ´º°¡ ÃÖ´ë ¸Þ´ºÀÇ ±æÀÌº¸´Ù ¸Þ´º°¡ ÀÛ´Ù¸é ½ÇÇà
				document.getElementById(CUROPT+'trafficMenu'+nCurMenu).style.background = menubackground;
				document.getElementById(CUROPT+'trafficMenu'+nCurMenu).style.color = menucolor;
				inputField.value =  TrafficClearString(document.getElementById(CUROPT+'trafficMenu'+nCurMenu).innerHTML);				    
				document.getElementById(CUROPT+'trafficMenu'+nCurMenu).focus();
				inputField.focus();
				compValue = nCurMenu;				    
				nCurMenu++;
			}
			else if (nCurMenu == nMenuLength) {// ¸Þ´º°¡ ¸¶Áö¸· ÃÖ´ë ¸Þ´º °ª°ú °°´Ù¸é ÃÖ»óÀÇ ¸Þ´º·Î ÀÌµ¿ÇØ¶ó				    				    			
				document.getElementById(CUROPT+'trafficMenu0').style.background = menubackground;
				document.getElementById(CUROPT+'trafficMenu0').style.color = menucolor;					
				inputField.value = TrafficClearString(document.getElementById(CUROPT+'trafficMenu0').innerHTML);					
				document.getElementById(CUROPT+'trafficMenu0').focus();                       
				inputField.focus();				    
				compValue = nCurMenu;					
				upMenu = nMenuLength;									
				nCurMenu = 1;
			}
			else {//ÃÊ±âÈ­
				nCurMenu = 0;
			}
			
			if (nCurMenu > 0) {	
				upMenu = nCurMenu - 1;                                
			} 
			else if (nCurMenu < 0) {					
				nCurMenu = nMenulength;
				upMenu = nMenuLength;                                
			}
			else {
				upMenu = nMenuLength;
			}
			
			break; 
		case 38: //Up menu		
			//alert("nCurMenu : "+nCurMenu+"---- upMenu : "+upMenu+"---- nMenuLength : "+nMenuLength);
			if(nMenuLength < 1){ return;}
			
			for(i=0; i<nMenuLength; i++) {				
				document.getElementById(CUROPT+'trafficMenu'+i).style.background = "#FFFFFF";
				document.getElementById(CUROPT+'trafficMenu'+i).style.color = "black";
			}
			
            if (nCurMenu  > 1 ){                
                nCurMenu--;                 
            } 
            else if (nCurMenu == 1) {                       
                nCurMenu = 0;
            }
            else if (nCurMenu == 0) {
                nCurMenu = nMenuLength-1;
            }
            else {
				nCurMenu = 0;            
            }
         
            if (nCurMenu > 0) {
                upMenu = nCurMenu - 1;                                                      
                document.getElementById(CUROPT+'trafficMenu'+upMenu).style.background = menubackground;
                document.getElementById(CUROPT+'trafficMenu'+upMenu).style.color = menucolor;
                inputField.value = TrafficClearString(document.getElementById(CUROPT+'trafficMenu'+upMenu).innerHTML);					
                document.getElementById(CUROPT+'trafficMenu'+upMenu).focus();                       
				inputField.focus();
                compValue = upMenu;                             
            }
            else if (nCurMenu == 0) {            
                upMenu = nMenuLength-1;
                inputField.value = TrafficClearString(document.getElementById(CUROPT+'trafficMenu'+upMenu).innerHTML);
                document.getElementById(CUROPT+'trafficMenu'+upMenu).style.background = menubackground;
                document.getElementById(CUROPT+'trafficMenu'+upMenu).style.color = menucolor;
				document.getElementById(CUROPT+'trafficMenu'+upMenu).focus();                       
				inputField.focus();
                compValue = upMenu; 
            }               
            else {
                upMenu = 0;                
            }        
               
            break; 
    } 
}                          
//!-->Å°º¸µå ÀÔ·Â