var xmlHttp
var max = 15;
var end = 0;
var listSize = 9; /*한화면에 보여질개수*/
var preDiv = '';
var Head = "<table width='100%' border='0' cellspacing='0' cellpadding='0'><tr><td align='center' style='background:#FFFFFF'><table width='97%' border='0' cellspacing='0' cellpadding='0' style='padding-left:5px;'>";
var Foot = "</table></td></tr></table>";
var keyArr_Form = '17,18,27,37,38,39,40,112,113,114,115,116,117,118,119,120,121,122,123,229';
var keyArr = '17,18,37,39,116';
var __Lock = false; /*방향키 __Lock*/
var temp = '';
var o_temp = '';
var baseLength = 0;
var word = '';
var o_word = '';

//영어 to 한글 부분
var en_h = "rRseEfaqQtTdwWczxvg"; 
var reg_h = "[" + en_h + "]"; 

var en_b = { 
    k:0,o:1,i:2,O:3,j:4,p:5,u:6,P:7,h:8,hk:9,ho:10,hl:11,y:12,n:13,nj:14,np:15,nl:16,b:17,m:18,ml:19,l:20 
} 
var reg_b = "hk|ho|hl|nj|np|nl|ml|k|o|i|O|j|p|u|P|h|y|n|b|m|l"; 

var en_f = {
    "":0,r:1,R:2,rt:3,s:4,sw:5,sg:6,e:7,f:8,fr:9,fa:10,fq:11,ft:12,fx:13,fv:14,fg:15,a:16,q:17,qt:18,t:19,T:20,d:21,w:22,c:23,z:24,x:25,v:26,g:27 
} 
var reg_f = "rt|sw|sg|fr|fa|fq|ft|fx|fv|fg|qt|r|R|s|e|f|a|q|t|T|d|w|c|z|x|v|g|";

var reg_exp = new RegExp("("+reg_h+")("+reg_b+")((?:"+reg_f+")(?=(?:"+reg_h+")(?:"+reg_b+"))|(?:"+reg_f+"))","g"); 


function toKorean(str) { 
    return str.replace(reg_exp,replace); 
} 

function replace(str,h,b,f) { 
    return String.fromCharCode(en_h.indexOf(h)*21*28 + en_b[b]*28 + en_f[f] + 44032); 
} 
//영어 to 한글 부분


function FindWord()
{

	keyCode = event.keyCode;
	if (CheckCode(keyCode,keyArr_Form) && document.queryForm.q.value!='')
	{
		temp = document.getElementById("q").value;
		o_temp = temp;
		temp = toKorean(temp);
		var o_K_token = o_temp.split(' ');
		var K_token = temp.split(' ');
		/*
		전송할 키워드
		*/
		o_word = o_K_token[o_K_token.length -1];
		word = K_token[K_token.length -1];
		baseLength = temp.length - word.length;
		
		if(word)
		{
			callXMLRPC("js/word_suggest.asp?qtmp=" + word, "queryForm");
		}
		else
		{
			DivClear();
		}
	}
}

function initXMLHttp()
{
	try {
		type = "Msxml2.XMLHTTP.3.0";
 		xmlHttp = new ActiveXObject(type);
 	} catch (e) {
  		try {
  			type = "Microsoft.XMLHTTP";
   			xmlHttp = new ActiveXObject(type);
  		} catch (E) {
   			xmlHttp = false;
  		}
 	}

	if (!xmlHttp && typeof XMLHttpRequest!='undefined') {
		type = "XMLHttpRequest"
  		xmlHttp = new XMLHttpRequest();
  		
	}
	return xmlHttp;
}
function callXMLRPC(url, method)
{
	/*xml테이터 전송*/
	xmlHttp = initXMLHttp();
	//xmlHttp.onreadystatechange = processReqChange;
	//alert(url);
	xmlHttp.open("GET",url,false);
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttp.send();
	var xResult = xmlHttp.responsetext;
	//alert(xResult);
	if(xResult !=' '){
	DivClear();
	MakeList(xResult);
	}

return;
}
function MakeList(xResult)
{
	var XmlStr = '';
	var tmp;
	var sw = true;
	var t_word = '';
	var DivId = 0;
	__Lock = false;
	end = 0;
	document.getElementById("item").length = 1;
	/*파싱후 출력한다*/
	//alert(xResult);
	var xmlDoc = xResult.split('|');
	
	end = xmlDoc.length;
	
	if(xmlDoc.length > 0){

		document.getElementById("list").style.display = 'block';
		document.getElementById("display").innerHTML = '';
		
		for(var i=0; i<xmlDoc.length; i++)
		{
			tmp = xmlDoc[i].split(',');
			

			if (tmp[2] < 0)
			{
				tmp[2] = tmp[2] * -1;
				t_word = o_word;
			}
			else
			{
				t_word = word;
			}

			t_word = t_word.replace(/\[/i,'\\[');
			t_word = t_word.replace(/\]/i,'\\]');

			DivId = i+1;
			if ((tmp[2] == '2' || tmp[2] == '4' || tmp[2] == '6') && sw)
			{
				XmlStr += "<tr><td height='12' colspan='2'><table width='100%'  border='0' cellspacing='0' cellpadding='0'><tr><td height='1' bgcolor=#CCCCCC></td></tr></table></td></tr>";
				sw = false;
			}
			XmlStr +="<tr id='xmldiv|" + DivId + "' style=\"cursor:hand;background:#FFFFFF\" onmouseover=\"nowColor(" + DivId + ",'T')\" onmouseout=\"nowColor(" + DivId + ",'F')\">";
			XmlStr +="<td height='20'>";
			if (tmp[2] == '1')
			{
				XmlStr += tmp[0].replace(eval("/("+t_word+")/i"),'<font color=#FF6600>$1</font>');
				XmlStr +="</td>";
				//XmlStr +="<td align=right>(" + tmp[1] + "&nbsp;컷)&nbsp;";
				//XmlStr +="</td>";
			} 
			else if (tmp[2] == '3')
			{
				XmlStr += tmp[0].replace(eval("/("+t_word+")/i"),'<font color=#FF6600>$1</font>');
				XmlStr +="</td>";
			} 
			else if (tmp[2] == '4')
			{
				XmlStr += tmp[0].replace(eval("/("+t_word+")$/i"),'<font color=#FF6600>$1</font>');
				XmlStr +="</td>";
			} 
			else if (tmp[2] == '5')
			{
				XmlStr += tmp[0].replace(eval("/("+t_word+")/i"),'<font color=#FF6600>$1</font>');
				XmlStr +="</td>";
			} 
			else if (tmp[2] == '6')
			{
				XmlStr += tmp[0].replace(eval("/("+t_word+")$/i"),'<font color=#FF6600>$1</font>');
				XmlStr +="</td>";
			} 
			else 
			{
				XmlStr += tmp[0].replace(eval("/("+t_word+")$/i"),'<font color=#FF6600>$1</font>');
				XmlStr +="</td>";
			}
				XmlStr +="<td align=right>" + tmp[1] ;
				XmlStr +="</td>";
			
			XmlStr +="</tr>";
			var field = new Option(tmp[0], tmp[0], true);
			document.getElementById("item").options[DivId] = field;
		}
		document.getElementById("display").innerHTML = Head + XmlStr + Foot;
		if (i > 15)
			document.getElementById("sublist").style.height = "310";
		else
			document.getElementById("sublist").style.height = "";

	}else{
		DivClear();
	}
}
function processReqChange()
{
    if (xmlHttp.readyState == 4)
	{
        if (xmlHttp.status == 200)
		{
            DivClear();
            MakeList();
        }
    }
}
function DivClear()
{
	try
	{
		document.getElementById("display").innerHTML = '';
		document.getElementById("list").style.display = 'none';
		document.getElementById("sublist").doScroll("scrollbarPageUp");
		MM_showHideLayers('lightbox','','hide','cart','','hide');
	}
	catch (e) {}
	end = 0;
	preDiv = '';
	return;
}
function Nrecive(str,ctr)
{
	document.queryForm.q.value = temp.substring(0,baseLength) + str;
	/* 방향키 이동이 아닌경우 레이어를 히든 시킴*/
	if(ctr=='T') 
		DivClear();
	return;
}
function eventHandlerBody(e) {
	
    if("undefined"==typeof(e))
        evt = window.event;
    else
        evt = e;
	/* Click Layer id => Body Click is null */
	var elemId = evt.srcElement.id;
	if(elemId=='sublist')
	{
		__Lock = true;
	}
	else
	{
		var idx = parseInt(document.getElementById('itemid').value);
		if(idx>0)
		{
			Nrecive(document.getElementById("item").options[idx].value,'T');
		}
		else
		{
			DivClear();
		}
	}
	return;
}
function eventHandler(e)
{
	/**
    * 37~40 : 방향키
    * 112 ~ 123 : F1~F12, 
    * alt : 18
    * ctl : 17
    * 116 : F5
    * 27 : esc
    */
	if("undefined"==typeof(e))
        evt = window.event;
	else
		evt = e;

	var key = evt.keyCode;
	var elemName = evt.srcElement.name;
	/*페이지 이동 포커스가 아닐때 */
	if(elemName!='start')
	{
		var nKey = CheckCode(key,keyArr)
		if(nKey && !__Lock)
		{
			if(key==38 || key==40)
			{
				SearchControl(key);
			}
		}
	}
	return;
}
function CheckCode(key,mode)
{
	/* Keycode value control*/
	var _Array = mode.split(',');
    for(var i=0;i<_Array.length;i++)
	{
        if(parseInt(_Array[i])==key)
           return false;
    }
    return true;
}
function preCheck(keycode)
{
	if(end > 0)
	{
		if(preDiv) /*키를 이전에 움직인 적이 있는겨우*/
		{
			if(keycode == 38)
				var tail = -1;
			else
				var tail = 1;

			nextDiv = preDiv + (tail);
			if(nextDiv > 0 && nextDiv <= end )
				document.getElementById('xmldiv|' + preDiv).style.background='FFFFFF';
			else
				nextDiv = preDiv;
		}
		else
		{
			nextDiv = 1;
		}
		return nextDiv;
	}
	else
	{
		return 0;
	}

}
function SearchControl(keycode)
{
	var nextDiv = preCheck(keycode);
	if(nextDiv > 0)
	{
		if(nextDiv > listSize && keycode == 40) /*스크롤바 위치 조정*/
		{
			document.getElementById("sublist").doScroll("scrollbarDown");
			document.getElementById("sublist").doScroll("scrollbarDown");
		}
		if((nextDiv+listSize) < end && keycode == 38)
		{
			document.getElementById("sublist").doScroll("scrollbarUp");
			document.getElementById("sublist").doScroll("scrollbarUp");
		}
		/*background-color change*/
		document.getElementById('xmldiv|' + nextDiv).style.background='#F0F0F0';
		Nrecive(document.getElementById("item").options[nextDiv].value,'F');
		preDiv = nextDiv;
	}
	return;
}
function nowColor(code,mode)
{
	if(preDiv) /*키를 이전에 움직인 적이 있는겨우*/
		document.getElementById('xmldiv|' + preDiv).style.background='FFFFFF';

	preDiv = code;
	if(mode=='T')
	{
		document.getElementById('xmldiv|' + code).style.background='#F0F0F0';
		document.getElementById('itemid').value = code;
	}
	else
	{
		document.getElementById('itemid').value = 0;
	}
	return;
}