var AutocompleteUserSearch=new Class({Implements:[Options,Events],options:{inputBox:null,delimiterCodes:[Utils.keyCode.TAB,Utils.keyCode.ENTER,Utils.keyCode.COMMA],onSelect:function(){},onComplete:function(){},page:1,itemsperpage:5,groupId:null,criteria:null,listContainer:null},initialize:function(b){var a=this;this.setOptions(b);if(!this.options.inputBox){return null}$(this.options.inputBox).addEvents({keydown:function(c){switch(c.code){case Utils.keyCode.LEFT:a.fireEvent("previous");c.stop();break;case Utils.keyCode.RIGHT:a.fireEvent("next");c.stop();break;case Utils.keyCode.UP:a.hilightPrevious();c.stop();break;case Utils.keyCode.DOWN:a.hilightNext();c.stop();break;case Utils.keyCode.ESC:a.hideList();c.stop();break;default:if(a.options.delimiterCodes.contains(c.code)){if((c.code==Utils.keyCode.TAB&&this.value=="")||(c.code==Utils.keyCode.ENTER&&a.acList.getElement(".ig-recepient-notfound"))){break}a.fireEvent("select",a.acList.getElement(".hilighted").user);a.hideList();c.stop()}break}},keyup:function(c){switch(c.code){case Utils.keyCode.LEFT:case Utils.keyCode.RIGHT:case Utils.keyCode.UP:case Utils.keyCode.DOWN:case Utils.keyCode.TAB:case Utils.keyCode.ENTER:case Utils.keyCode.COMMA:case Utils.keyCode.ESC:break;default:if(!this.value){a.hideList();return false}a.request(this.value);break}}})},request:function(b){var a=this;Utils.debounce(function(){a.callAPI(b)},200)},callAPI:function(b){var c=this;if(!b||b.length<2){return null}var a={};if(this.options.page){a.page=this.options.page}if(this.options.itemsperpage){a.itemsperpage=this.options.itemsperpage}if(this.options.groupId){a.groupId=this.options.groupId}a.criteria=b;var d=new ApiClient({apimethod:"users/searchByName",method:"get",queryparams:a,onSuccess:function(g,j){var i=g;var e=JSON.decode(i,true);var h;var f=[];e.response.items.each(function(k){h={};h.name=k.Name.firstName.trim()+" "+k.Name.lastName.trim();h.type=k.__type.contains("PersonaForSearch")?"member":"group";h.userTo=k.Id.replace(/<.*?>/g,"");f.push(h)});c.showList(f,b)}})},showList:function(a,b){var f=this;this.hideList();var d=new Element("ul");a.each(function(i){var h=i.name.match(new RegExp(b,"ig"));if(h){i.htmlName=i.name;h.each(function(j){i.htmlName=i.htmlName.replace(j,"<strong>"+j+"</strong>")});if(i.type=="group"){i.htmlName="<em>"+i.htmlName+"</em>"}var g=new Element("li",{html:'<a id="js-user_'+i.userTo+'">'+i.htmlName+"</a>"}).addEvents({click:function(k){var j=$(k.target);if(j.tagName.toLowerCase()!="li"){j=j.getParent("li")}f.fireEvent("select",i)},mouseenter:function(k){$$("li.hilighted").removeClass("hilighted");var j=$(k.target);if(j.tagName.toLowerCase()!="li"){j=j.getParent("li")}j.addClass("hilighted")},mouseleave:function(k){var j=$(k.relatedTarget);if(j.tagName.toLowerCase()!="li"){j=j.getParent("li")}if(j&&j.tagName.toLowerCase()=="li"){$$("li.hilighted").removeClass("hilighted")}}});if(i.type=="member"){g.setAttribute("title",window.translations["comps-message-Member"])}else{g.setAttribute("title",window.translations["comps-message-Group"])}g.user=i;d.adopt(g)}});var e=d.getElement("li");if(!e){d.adopt(new Element("li",{html:window.translations["comps-message-No_matches_found"],"class":"ig-recepient-notfound"}))}else{e.addClass("hilighted")}var c=$(this.options.inputBox).getCoordinates();if($(this.options.listContainer)){this.acList=$(this.options.listContainer).adopt(d)}else{this.acList=new Element("div",{"class":"ig-suggestions-dropdown"}).adopt(d).setStyles({top:c.bottom,left:c.left,width:c.width-2}).inject(document.body)}f.fireEvent("onComplete")},hideList:function(){if(this.acList){if(!$(this.options.listContainer)){this.acList.dispose()}else{this.acList.set("html","")}}},hilightPrevious:function(){var a=this.acList.getElement(".hilighted");if(a){var b=a.getPrevious("li");if(b){a.removeClass("hilighted");b.addClass("hilighted")}}},hilightNext:function(){var a=this.acList.getElement(".hilighted");if(a){var b=a.getNext("li");if(b){a.removeClass("hilighted");b.addClass("hilighted")}}}});
