document.write('<style tyle="text/css">');
document.write('.suggest_community{background:#FFF;border:1px #A0B4C5 solid;}');
document.write('.suggest_community ul{height:25px;line-height:25px;overflow:hidden;padding:0 5px;cursor:default;width:262px;}');
document.write('.suggest_community ul.selected{background-color:#EDF7E7;}');
document.write('.suggest_community ul li{float:left;}');
document.write('.suggest_community ul li.name{font-size:14px;color:#090;}');
document.write('.suggest_community ul li.address{margin-left:5px;font-size:12px;color:#999}');
document.write('</style>');

(function($){
	$.fn.community = function(options){
		var defaults = {
			timeOut:100,
			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_community").appendTo("body").hide();
		var sDivUl;
		var suggestData = [];
		sDiv.css({"position":"absolute","z-index":2});
		sDiv.css({"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();
						$.ajax({
							url: "/plugin/json.do?action=community",
							dataType: "json",
							cache: false,
							success: 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)>-1||enname.indexOf(keyword)==0){
											//if(dataLength<10){
											suggestData.push(data[i]);
											//alert(data[i].address);
											sDiv.append("<ul><li class='name'>" + data[i].name + "</li><li class='address'>" + data[i].address + "</li></ul>");
											dataLength++;
											//}
										}
									}
									if(dataLength>10){
										sDiv.css({width:"290px",height:"250px",overflow:"auto"});
									}else{
										sDiv.css({width:"auto",height:"auto"});	
									}
									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);


