	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 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);
		noPrototypeAjax.get(suggestPath+parms, showSuggestNoPrototype);
	}
	
	function showSuggestNoPrototype(transport) {
		if(transport.responseText.replace(/(^\s*)|(\s*$)/g, "") == "empty"){
			clearSuggest();
			return
		}
		var list = document.getElementById("suggestlist");
		var box = document.getElementById("suggestboxhead");
		var boxLeft = 0;
		var boxTop = 0;
	    do {
	      boxTop += box.offsetTop  || 0;
	      boxLeft += box.offsetLeft || 0;
	      box = box.offsetParent;
	    } while (box);
		    
		if(list != null){
			list.innerHTML = transport.responseText;			
			list.style.left = boxLeft + "px";
			list.style.top = boxTop + document.getElementById("suggestboxhead").offsetHeight + "px";
			list.style.width = document.getElementById("suggestboxhead").offsetWidth - 2 + "px";
			list.style.display = "block";
		}
		keyMoveLock = false;
	}

	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";
					li[i].style.width = list.style.width;
				}
			}
			liItem.style.cursor="default";
			liItem.style.backgroundColor="blue";
			liItem.style.color="white";
			liItem.style.width=list.style.width;
		}
	}

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

	function choose(li,idx)
	{
		var txt = document.getElementById(currentSuggestBox.id);
		var keyword = document.getElementById('suggestKeyword'+idx);
		var orgCharset=document.charset;
		document.charset='UTF-8';
		txt.value = keyword.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.getElementById('suggestKeyword'+i);
				if(li[i].style.color == "white")
				{
					//li[i].setAttribute("onmouseover","");
					if(i == li.length - 1)
					{
						mover(li[i]);
						var keyword = document.getElementById('suggestKeyword'+i);
						txt.value = keyword.textContent || keyword.innerText;
						lastKeyword = txt.value;
					}
					else
					{
						mover(li[i+1]);
						var keyword = document.getElementById('suggestKeyword'+(i+1));
						txt.value = keyword.textContent || keyword.innerText;
						lastKeyword = txt.value;
					}
					
					flag = 1;
					break;
				}
			}
			if(flag == 0)
			{
				mover(li[0]);
				var keyword = document.getElementById('suggestKeyword0');
				txt.value = keyword.textContent || keyword.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.getElementById('suggestKeyword'+(i-1));
						txt.value = keyword.textContent || keyword.innerText;
						var leng = txt.value.length;
						setTimeout(function(){setCursorPosition(txt,leng,leng);},0.5);
						lastKeyword = txt.value;
						
					}
					else
					{
						mout(li[0]);	
						txt.focus();
					}
					break;
				}
			}
		}
	}
	

