$(document).ready(function(){
	//helpb2b_autocomplete($("#search_input_bar"),$(".suggest-container"),10);
})

function helpb2b_autocomplete(autoInput,suggeatContainer,showCount){
	
	var scUL=suggeatContainer.find("ul");
	
	var currentLiIndex=-2;
	
	initPosition();
	
	autoInput.keyup(function(event){
		searchMatchResult($.trim($(this).val()),event);
	}).dblclick(function(event){
		searchMatchResult($.trim($(this).val()),event);
	}).blur(function(){
		suggeatContainer.slideUp("500");
	})
	
	suggeatContainer.find("li").live("mouseover",function(){
		suggeatContainer.find("li").removeClass("selected");
		$(this).addClass("selected");
		currentLiIndex=suggeatContainer.find("li").index($(this)[0]);
	}).live("click",function(){
		autoInput.val($(this).find("span:first").html());
		suggeatContainer.slideUp("500");
	})
	
	function searchMatchResult(keyword,event){
		
		var keycode=event.keyCode;
		if(keycode==38||keycode==40||keycode==13||keycode==24){
			switch(keycode) {
				case 38:moveSelect(-1);
					selectChangeBack();
					break;
				case 40:moveSelect(1);
					selectChangeBack();
					break;
				case 24:
					window.focus();
					break;
				default:break;
			}	
		}else{
			if(keyword!=""){
				$.ajax({
					url:"/js/test.json",
					type:"post",
					dataType:"json",
					data:"keyword="+keyword,
					success:function(data){
						if(data!=null)
							fillSuggestContainer(data);
					}
				})
			}
		}
		
	}
	
	function moveSelect(step){
		if(currentLiIndex==-2) {
			currentLiIndex=0;
		}else {
			currentLiIndex+=step;
		}
		var liSize=suggeatContainer.find("li").length;
		if(currentLiIndex>=liSize) {
			currentLiIndex=0;
		}
		if(currentLiIndex<0) {
			currentLiIndex=liSize-1;
		}
		autoInput.val(suggeatContainer.find("li:eq("+currentLiIndex+")").find("span:first").html());
	}

	function selectChangeBack() {
		var listSize=suggeatContainer.find("li").length;
		for(var i=0;i<listSize;i++) {
			if(i==currentLiIndex) {
				suggeatContainer.find("li:eq("+i+")").addClass("selected");
			}else {
				suggeatContainer.find("li:eq("+i+")").removeClass("selected");
			}
		}
	}

	function fillSuggestContainer(data){
		scUL.empty();
		$.each(data,function(eIndex,e){
			if(eIndex==showCount)
				return false;
			scUL.append("<li><span class='suggest-key'>"+e['name']+"</span><span class='suggest-result'>约"+e['resultCount']+"条结果</span></li>");
		})
		suggeatContainer.slideDown(500);
	}
	
	function initPosition(){
		var input_w=autoInput.width();
		var input_h=autoInput.height();
		var input_x=autoInput.position().left;
		var input_y=autoInput.position().top;
		
		suggeatContainer.css({width:input_w,left:input_x,top:input_y+input_h+7});
		
	}
}

