document.write('<style tyle="text/css">');
document.write('.suggest_building{background:#FFF;border:1px #A0B4C5 solid;font-size:14px;color:#090;}');
document.write('.suggest_building ul{height:25px;line-height:25px;overflow:hidden;padding:0 5px;cursor:default;width:262px;}');
document.write('.suggest_building ul.selected{background-color:#EDF7E7;}');
document.write('.suggest_building ul li.fr{font-size:12px;color:#999}');
document.write('</style>');

(function($){
	$.fn.building = function(options){
		var defaults = {
			showLine:10,
			timeOut:5,
			callback:function(){return }
		};
		$.extend(defaults,options);
		var _this = $(this);
		_this.show();
		if(_this.attr("autocomplete")=="off") return false;
		_this.attr("autocomplete","off");
		var keyword;
		var line = -1;
		var ulLength = 0;
		var timeOutId;
		var sDiv = $("<div>").addClass("suggest_building").appendTo("body").hide();
		var sDivUl;
		var suggestData = [];
		sDiv.css({"position":"absolute","z-index":2});
		sDiv.css({/*"width":_this[0].clientWidth,*/"top":_this.offset().top + _this[0].clientHeight,"left":_this.offset().left});
		_this.bind('keydown',function(event){
			event = event || window.event;
			switch(event.keyCode){
				case 38:	//上键
					if(line > -1){
						line--;
					}
					if(line==-1){
						line = ulLength - 1;
					}
					selectedLine();
					break;
				case 40:	//下键
					if(line >= -1){
						line++;
					}
					if(line==ulLength){
						line = 0;
					}
					selectedLine();
					break;
				case 13:	//回车键
					value();
					return false;
					break;
				case 9:	//Tab键
					break;
				default:
					if(timeOutId){
						clearTimeout(timeOutId);
					}
					timeOutId = window.setTimeout(function(){
						keyword = $.trim(_this.val());
						if(keyword==""){
							sDiv.empty().hide();
							return false;
						}
						keyword = keyword.toLowerCase();
						$.getJSON('/plugin/json.do?action=loupan&t='+Math.random(),function(data){
							sDiv.html("");
							suggestData = [];
							if(data){
								var dataLength = 0;
								for(var i=0;i<data.length; i++){
									var name = data[i].name;
									var enname = data[i].enname;
									if(name.indexOf(keyword)==0||enname.indexOf(keyword)==0){
										if(dataLength<defaults.showLine){
											suggestData.push(data[i]);
											sDiv.append("<ul><li class='fl'>" + data[i].name + "</li><li class='fr'>" + data[i].price + "</li></ul>");
											dataLength++;
										}
									}
								}
								sDivUl = sDiv.children("ul");
								ulLength = sDivUl.length;
								if(ulLength > 0){
									sDivUl.each(function(j){
										$(this).mouseover(function(){
											sDivUl.removeClass("selected");
											$(this).addClass("selected");
											line = j;
										}).mouseout(function(){
											$(this).removeClass("selected");
											line = -1;
										}).click(function(e){
											e.preventDefault();
											e.stopPropagation();
											value();
										});
									});
									sDiv.show();
								}else{
									sDiv.empty().hide();
								}
							}
						});
					},defaults.timeOut);
					line = -1;
					break;
			}
		})
		_this.bind('blur',function(){
			window.setTimeout(function(){
				sDiv.empty().hide();
			},200);
		});
		
		//选中行
		function selectedLine(){
			sDivUl.removeClass("selected");
			sDivUl.eq(line).addClass("selected");
			_this.val(suggestData[line].name);
		}
		//输入值
		function value(){
			if(line>-1&&line < ulLength){
				_this.val(suggestData[line].name);
				defaults.callback(suggestData[line]);
			}
			sDiv.empty().hide();
			line = -1;
		}
	}
})(jQuery);


