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(i,g){var e=i;var f=JSON.decode(e,true);var j;var h=[];f.response.items.each(function(k){j={};j.name=k.Name.firstName.trim()+" "+k.Name.lastName.trim();j.type=k.__type.contains("PersonaForSearch")?"member":"group";j.userTo=k.Id.replace(/<.*?>/g,"");h.push(j)});c.showList(h,b)}})},showList:function(e,f){var d=this;this.hideList();var b=new Element("ul");e.each(function(h){var g=h.name.match(new RegExp(f,"ig"));if(g){h.htmlName=h.name;g.each(function(j){h.htmlName=h.htmlName.replace(j,"<strong>"+j+"</strong>")});if(h.type=="group"){h.htmlName="<em>"+h.htmlName+"</em>"}var i=new Element("li",{html:'<a id="js-user_'+h.userTo+'">'+h.htmlName+"</a>"}).addEvents({click:function(k){var j=$(k.target);if(j.tagName.toLowerCase()!="li"){j=j.getParent("li")}d.fireEvent("select",h)},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(h.type=="member"){i.setAttribute("title",window.translations["comps-message-Member"])}else{i.setAttribute("title",window.translations["comps-message-Group"])}i.user=h;b.adopt(i)}});var c=b.getElement("li");if(!c){b.adopt(new Element("li",{html:window.translations["comps-message-No_matches_found"],"class":"ig-recepient-notfound"}))}else{c.addClass("hilighted")}var a=$(this.options.inputBox).getCoordinates();if($(this.options.listContainer)){this.acList=$(this.options.listContainer).adopt(b)}else{this.acList=new Element("div",{"class":"ig-suggestions-dropdown"}).adopt(b).setStyles({top:a.bottom,left:a.left,width:a.width-2}).inject(document.body)}d.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")}}}});
