String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,"")};String.prototype.strlen=function(){var c=0;var b=this.toString().trim();for(var a=0;a<b.length;a++){if(b.charCodeAt(a)>255){c+=2}else{c++}}return c};function _autoSearch(j,a,b,c,e,g,f){this.maxview=e;this.arrs=j;this.menu=null;this.mindex=-1;this.src=a;this.container=b;this.node=b.parentNode;this.prompt=c;this.tmpcontent="";this.beginflag=false;this.com_sel=null;this.cb=g;var k=this;this.listencall=function(){if(k.beginflag){k.doSearch()}};this.mylisten=new Form.Element.Observer(this.src,0.1,this.listencall);this.release=function(){k.menu=null;k.mindex=-1;k.node.style.display="none";if(k.com_sel==null){k.src.value=c}if($("friendPhoto")){$("friendPhoto").style.backgroundImage=""}};this.wrap_selectItem=function(l){return function(){k.selectItem(l)}};this.getSelectedByMouse=function(l){return function(){k.getSelected(l)}};this.src.onfocus=function(){if(k.src.value.trim()==k.prompt){k.src.value=""}k.beginflag=true};this.beginsearch=function(){k.beginflag=true};this.src.onkeyup=function(){setTimeout(k.beginsearch,100)};this.src.onblur=function(){this.beginflag=false;k.release()};this.src.onkeydown=function(l){if(l==null){l=window.event}return k.selectByKeybord(l.keyCode)};if(f>0){this.src.focus();for(var h=0;h<j.length;h++){if(j[h].uid==f){this.src.value=j[h].name;var d=this.menu;window.setTimeout(function(){k.selectItem(h);k.selectByKeybord(13)},100);break}}}}_autoSearch.prototype.doSearch=function(){var d=this.src.value.trim();if(d==""){this.displaynone("请输入好友姓名...");return}if(this.tmpcontent==d){return}this.tmpcontent=this.src.value.trim();if(this.tmpcontent==this.prompt){return}if(this.tmpcontent==""){this.node.style.display="none";return}this.com_sel=null;if(true){var a=new Array();for(var b=0,c=0;b<this.arrs.length&&c<this.maxview;++b){try{_r=this.arrs[b].name.toLowerCase().indexOf(this.tmpcontent.toLowerCase())>-1;if(_r){a.push(this.arrs[b]);++c}}catch(f){}}if(a.length>0){this.display(a)}else{this.displaynone("无匹配结果...")}}};_autoSearch.prototype.display=function(a){this.menu=new Array();this.mindex=-1;this.container.innerHTML="";for(var d=0;d<a.length;d++){var e=document.createElement("div");e.className="com_list";var c=a[d].name;var f=c.toLowerCase().replace(this.tmpcontent.toLowerCase(),"<span class='search_highlight'>"+this.tmpcontent.toLowerCase()+"</span>");e.innerHTML=f;var b=a[d].uid;e.id=this.container.id+"com_"+b;if(d==a.length-1){e.style.borderBottomStyle="none"}Event.observe(e,"mouseover",this.wrap_selectItem(d),false);Event.observe(e,"mousedown",this.getSelectedByMouse(d),false);this.menu[d]={item_id:e.id,cid:b,cname:c,photo:a[d].head_url};this.container.appendChild(e)}this.container.style.background="#fff";this.node.style.display="";this.selectItem(0)};_autoSearch.prototype.displaynone=function(a){this.container.innerHTML=a;this.container.style.background="#ddd";this.container.style.color="#333";this.menu=null;this.mindex=-1;this.node.style.display="";if($("friendPhoto")){$("friendPhoto").style.backgroundImage=""}};_autoSearch.prototype.selectItem=function(b){if(this.menu==null){return}if(b>this.menu.length-1){b=0}if(b<0){b=this.menu.length-1}if(this.mindex!=-1){$(this.menu[this.mindex]["item_id"]).className="com_list"}if($("friendPhoto")){$("friendPhoto").style.backgroundImage="url("+this.menu[b].photo+")"}$(this.menu[b]["item_id"]).className="com_list_selected";this.mindex=b;var a=this.node.scrollHeight*this.mindex/this.menu.length-80;if(a>0){this.node.scrollTop=a}else{this.node.scrollTop=0}};_autoSearch.prototype.getSelected=function(a){this.beginflag=false;if(this.menu==null||this.mindex<0){return}var b=this.menu[this.mindex];this.com_sel=b.cid;this.tmpcontent=b.cname;this.cb(this.getItem());this.release()};_autoSearch.prototype.getItem=function(){for(i=0;i<this.arrs.length;i++){if(this.arrs[i].uid==this.com_sel){return this.arrs[i]}}return null};_autoSearch.prototype.selectByKeybord=function(a){if(a==38){this.selectItem(this.mindex-1);return false}else{if(a==40){this.selectItem(this.mindex+1);return false}else{if(a==13){this.getSelected(this.index);return false}else{return true}}}};