var old_keyword = null;
var current_keyword_i = -1;

function show_search_keyword_list(obj,e){
	if(obj.value==""){remove_search_keyword_list();return;}
	if(e.keyCode == 40 || e.keyCode == 38){
		select_search_keyword_list(e,obj);
	}else{
		var word = Utils.trim(obj.value);
		word = obj.value.replace(/[^A-Za-z0-9\' ]/gi,"");
		if(old_keyword == word){
			return;	
		}
		old_keyword = word;
		var url = "index.php?main_page=search_area_keyword&k="+word;				
		Ajax.call(url, '', function(word,obj){
								return function(result){
									show_search_keyword_list_response(result,word,obj);										
								}	 
						   }(word,obj), 'GET', 'JSON');	   
	}	
}
function show_search_keyword_list_response(result,word,obj){
	if(result.length == 0){
		remove_search_keyword_list();
		return;
	}
	//create list div
	if(!document.getElementById('list')){
		var div = document.createElement('div');
		div.id = 'list';
		div.className = 'listkey';
//      div.style.width = obj.offsetWidth + 'px';
//		div.style.top = findPosY(obj)+obj.offsetHeight+'px';
//		div.style.left = findPosX(obj)+'px';
		document.getElementById("keywords_assn").appendChild(div);
	}
		
	var str = '<div><dl>';	
	for(var i = 0 ; i < result.length; i++){
		var reg = new RegExp("("+word+")","i");
		//str += '<dd><a href="javascript:void(0)"><p style="float:left; margin:0">'+result[i].k.replace(reg,'<span class="redbold">$1</span>')+'</p></a></dd>';
		str += '<dd><a href="javascript:void(0)"><p style="float:left; margin:0">'+result[i].replace(reg,'<span class="redbold">$1</span>')+'</p></a></dd>';
	}
	str += '<div class="clearBoth"></div></dl></div>';	
	document.getElementById('list').innerHTML = str;
	search_keywrod_bind(obj);
}
function search_keywrod_bind(obj){
	var dd = document.getElementById('list').getElementsByTagName('dd');
	for(var i = 0 ; i < dd.length ; i++){
		
		Utils.observe(dd[i],'click',function(obj,v){
										return function(){
											search_keyword_onclick(obj,v);
										}		 
									}(obj,dd[i]));	
	}
}
function search_keyword_onclick(obj,v){	
	obj.value = Utils.stripHTMLTag(v.getElementsByTagName("p")[0].innerHTML);
	remove_search_keyword_list();
}
function remove_search_keyword_list(){
	if(document.getElementById('list')){
		current_keyword_i = -1;
		document.getElementById("keywords_assn").removeChild(document.getElementById('list'));
	}
}
function select_search_keyword_list(e,obj){
	if(!document.getElementById('list')){return}
	var dd = document.getElementById('list').getElementsByTagName('dd');
	if(e.keyCode == 40){ //��
		current_keyword_i++;
		if(current_keyword_i > dd.length-1)current_keyword_i = 0;
	}	
	if(e.keyCode == 38){ //��
		current_keyword_i--;
		if(current_keyword_i < 0)current_keyword_i = dd.length-1;	
	}	
	for(var i = 0 ; i < dd.length ; i++){
		if(i == current_keyword_i){
			dd[i].className = 'keybg';			
			obj.value = Utils.stripHTMLTag(dd[i].getElementsByTagName("p")[0].innerHTML);
		}else{
			dd[i].className = '';	
		}		
	}
}
