$.fn.AutoComplete=function(C,H){var N=this;var E=$(N).val();var F="";var G=false;var M={iwidth:"0px",iLengthLower:1,iLengthUpper:50,strPara:"sk",zIndex:1,hasscroll:0,hasclose:1,desfun:function(){}};$.extend(M,H);var L=M.iLengthLower;var B=M.iLengthUpper;var I=M.strPara;if($("#autocomplete").length<1){$("body").append("<div id='autocomplete' class='autocompletefloor'></div>")}$("#autocomplete").hide();$(N).keyup(function(P){O(P.keyCode)});$(N).keydown(function(P){J(P.keyCode)});$(N).bind("blur",function(){F=$("#autocomplete ul .selected .keyname").text();if(F.length>0&&F!=$(N).val()){$(N).val(F);M.desfun()}A()});var K=function(P){return P.replace(/\+/g,"%2B").replace(/\"/g,"%22").replace(/\'/g,"%27").replace(/\//g,"%2F")};function A(){$("#autocomplete").hide().html("");E="";G=false}function D(){var Q=$(N).offset();var P=(M.iwidth=="0px")?$(N).width()+6:M.iwidth;$("#autocomplete").css({"z-index:":M.zIndex,width:P,top:parseInt(Q.top+$(N).outerHeight()-1)+"px",left:parseInt(Q.left)+"px"}).show();E="";G=true}function O(Q){var P=$(N).val();if(Q==38||Q==40||Q==13||Q==27||Q==9){return }if((E==""||P!=E)&&P.length>=L&&P.length<=B){$.ajax({type:"Get",dataType:"json",url:C,data:I!=""?I+"="+K(P):"",success:function(R){R=R.keylist;if(R.length>0){var S="<ul>";$.each(R,function(T,V){if(V.keyname.length>0){S+='<li class="keyinfo"><span class="keyname">'+V.keyname+"</span>";try{if(V.keyextend.length>0){S+='<span class="keyextend">'+V.keyextend+"</span>"}}catch(U){}S+="</li>"}});if(M.hasclose==1){S+='<li class="close"><span>关闭</span></li>'}S+="</ul>";$("#autocomplete").html(S);$("#autocomplete .keyinfo").mouseover(function(){$("#autocomplete .selected").removeClass("selected");$(this).removeClass("unselected").addClass("selected")}).mouseout(function(){$(this).removeClass("selected").addClass("unselected")}).click(function(){if(F.length()>0){$(N).val(F)}});D()}else{A();return }}});E=$(N).val()}if(E.length==0||E.length<=L||E.length>=B){A()}}function J(P){if(P==27){A()}if(P==13){A();M.desfun()}if(!G){return }ObjSelected=$("#autocomplete ul .selected");if(ObjSelected.length>0){if(P==38){if(ObjSelected.prev().text()!=""){ObjSelected.removeClass("selected").addClass("unselected").prev().removeClass("unselected").addClass("selected");$(N).val($("#autocomplete ul .selected .keyname").text())}else{ObjSelected.removeClass("selected").addClass("unselected");$("#autocomplete .keyinfo:last").removeClass("unselected").addClass("selected");$(N).val($("#autocomplete ul .selected .keyname").text())}}else{if(P==40){if(ObjSelected.next().text()!=""){ObjSelected.removeClass("selected").addClass("unselected").next().removeClass("unselected").addClass("selected");$(N).val($("#autocomplete ul .selected .keyname").text())}else{ObjSelected.removeClass("selected").addClass("unselected");$("#autocomplete .keyinfo:first").removeClass("unselected").addClass("selected");$(N).val($("#autocomplete ul .selected .keyname").text())}}}}else{if(P==38){$("#autocomplete .keyinfo:last").removeClass("unselected").addClass("selected");$(N).val($("#autocomplete .keyinfo:last .keyname").text())}else{if(P==40){$("#autocomplete .keyinfo:first").removeClass("unselected").addClass("selected");$(N).val($("#autocomplete .keyinfo:first .keyname").text())}}}}};