	var currentSuggestBox;
	var lastKeyword = "";
	var categoryMain;
	var searchKeyword;
	var suggestPath = '/ss.do';
	var ajaxFlag = true;
	var suggestLock = false;
	var keyMoveLock = true;
	document.onkeydown = function(){
		var evt = window.event ? window.event : null;
		if(evt != null){
			if(event.keyCode == 13){
 				return false;
			}
		}
		
	}
	function showSuggest(element,transport){
		if(transport.responseText.replace(/(^\s*)|(\s*$)/g, "") == "empty"){
			clearSuggest();
			return
		}
		var pos = $(element).cumulativeOffset();
		var list = $("suggestlist");
		if(list != null){
			list.innerHTML = transport.responseText;
			list.setStyle({
				left:pos.left + "px",
				top:pos.top + $(element).getHeight() + "px",
				width:($(element).getWidth() - 2 + "px"),
				display:"block"
			});
		}
		keyMoveLock = false;
	}
	
	function clearSuggest(){
		keyMoveLock = true;
		setTimeout(function(){
			var list = document.getElementById("suggestlist");
			if(list != null){
				list.style.display = "none";
			lastKeyword = "";
			}
		},200);
	}
	function  ajaxKeyDown(element,event){
		
		currentSuggestBox = element;
		if(event.keyCode =='13'){
			var txt = document.getElementById(currentSuggestBox.id);
			var categoryId = ($('preCategory') == null || $('preCategory').value == "" ) ? 1 : $('preCategory').value;
			var info = {keyword:txt.value,category:categoryId};
			var searchBoxId = element.id.substr(10);
			setMimeType(searchBoxId);
			doSearch(info);
			return;
		}else if(event.keyCode =='38'){
			if(keyMoveLock){
				return;
			}
			suggestLock == true;
			getCurrentTdUp();
		}else if(event.keyCode =='40'){
			if(keyMoveLock){
				return;
			}
			suggestLock == true;
			getCurrentTdDown();
		}
		
	}
	function ajaxKeyUp(element,event){
		currentSuggestBox = element;
		if(element.value.replace(/(^\s*)|(\s*$)/g, "") == "" || event.keyCode =='27'){
			clearSuggest();
			return;
		}
		if(event.keyCode =='38'){
			
		}else if(event.keyCode =='40'){
			
		}else if(event.keyCode =='13'){
			//FF Browser
			if(!window.event){
				if(element.value != lastKeyword){
					doSuggest(element);
					lastKeyword = element.value;
				}
			}
			return;
		}
		else{
			if(element.value == lastKeyword){
				lastKeyword = element.value;
				return;
			}else{
				doSuggest(element);
				return;
			}	
		}
		
	}

	function doSuggest(element){
		currentSuggestBox = element;
		var keyword = element.value;
		if(keyword.length > 200){
			keyword = keyword.substr(0,200);
		}
		var parms = "?keyword=" + encodeURIComponent(keyword);
		new Ajax.Request(suggestPath,{
			 method:'get',
			 parameters:parms,
			 onSuccess:function(transport){
			 	showSuggest(element,transport);
			 }
    	})
	}

	function mover(liItem)
	{
		var list = document.getElementById("suggestlist");
		if(list != null){
			var li = list.getElementsByTagName("li");
			for(var i = 0;i < li.length;i++){
				if(li[i].style.color == "white")
				{
					li[i].style.color = "black";
					li[i].style.backgroundColor = "white";
				}
			}
			liItem.style.cursor="default";
			liItem.style.backgroundColor="blue";
			liItem.style.color="white";
		}
	}

	function mout(li)
	{
		li.style.backgroundColor="white";
		li.style.color="black"
	}

	function choose(li,idx)
	{
		var txt = document.getElementById(currentSuggestBox.id);
		var keyword = document.getElementsByClassName('suggestKeyword',$(li));
		var orgCharset=document.charset;
		document.charset='UTF-8';
		txt.value = keyword[0].innerHTML;
		document.charset=orgCharset;
		
		var categoryId = ($('preCategory') == null || $('preCategory').value == "" ) ? 1 : $('preCategory').value;
		var info = {keyword:txt.value,category:categoryId};
		doSearch(info);
	}
	function setCursorPosition(oInput,oStart,oEnd)
	{
	    if(oInput.setSelectionRange) {
	        oInput.setSelectionRange(3,3);
	        oInput.focus();
	    }
	}
	function getCurrentTdDown()
	{
		
		var list = document.getElementById("suggestlist");
		if(list != null){
			var li = list.getElementsByTagName("li");
			var txt = document.getElementById(currentSuggestBox.id);
			var flag = 0;
			for(var i = 0;i < li.length;i++)
			{
				var keyword = document.getElementsByClassName('suggestKeyword',$(li[i]));
				if(li[i].style.color == "white")
				{
					//li[i].setAttribute("onmouseover","");
					if(i == li.length - 1)
					{
						mover(li[i]);
						var keyword = document.getElementsByClassName('suggestKeyword',$(li[i]));
						txt.value = keyword[0].textContent || keyword[0].innerText;
						lastKeyword = txt.value;
					}
					else
					{
						mover(li[i+1]);
						var keyword = document.getElementsByClassName('suggestKeyword',$(li[i+1]));
						txt.value = keyword[0].textContent || keyword[0].innerText;
						lastKeyword = txt.value;
					}
					
					flag = 1;
					break;
				}
			}
			if(flag == 0)
			{
				mover(li[0]);
				var keyword = document.getElementsByClassName('suggestKeyword',$(li[0]));
				txt.value = keyword[0].textContent || keyword[0].innerText;
				lastKeyword = txt.value;
			}
		}
		
	}
	
	function getCurrentTdUp()
	{
		var list = document.getElementById("suggestlist");
		if(list != null){
			var li = list.getElementsByTagName("li");
			var txt = document.getElementById(currentSuggestBox.id);
		
			for(var i = 0;i < li.length;i++)
			{
				
				if(li[i].style.color == "white")
				{
					//li[i].setAttribute("onmouseover","");
					if(i != 0)
					{
						mover(li[i-1]);
						var keyword = document.getElementsByClassName('suggestKeyword',$(li[i-1]));
						txt.value = keyword[0].textContent || keyword[0].innerText;
						var leng = txt.value.length;
						setTimeout(function(){setCursorPosition(txt,leng,leng);},0.5);
						lastKeyword = txt.value;
						
					}
					else
					{
						mout(li[0]);	
						txt.focus();
					}
					break;
				}
			}
		}
	}
	
