(function($){var _1=[];window.setGlobalTags=function(_2){_1=_3(_2);};function _3(_4){var _5,i,_6=[];for(i=0;i<_4.length;i++){_5=_4[i];if(typeof _4[i]=="object"){_5=_4[i].tag;}_6.push(_5.toLowerCase());}return _6;};$.fn.tagSuggest=function(_7){var _8={"matchClass":"tagMatches","tagContainer":"span","tagWrap":"span","sort":true,"tags":null,"url":null,"delay":500,"separator":" "};var i,_9,_a=[],_b=$.extend({},_8,_7);if(_b.tags){_a=_3(_b.tags);}else{_a=_1;}return this.each(function(){var _c=$(this);var _d=this;var _e,_f=false;var _10=false;var _11=[];var _12={"position":0,tag:""};var _13=document.createElement(_b.tagContainer);function _14(el,key){if(_b.delay){if(_d.timer){clearTimeout(_d.timer);}_d.timer=setTimeout(function(){_15(el,key);},_b.delay);}else{_15(el,key);}};function _15(el,key){_11=el.value.split(_b.separator);_e=[];var i,_16="",_17={},_18=false;_12={position:currentTags.length-1,tag:""};for(i=0;i<currentTags.length&&i<_11.length;i++){if(!_18&&currentTags[i].toLowerCase()!=_11[i].toLowerCase()){_12={position:i,tag:_11[i].toLowerCase()};_18=true;}_17[currentTags[i].toLowerCase()]=true;}if(_12.tag){if(_b.url){$.ajax({"url":_b.url,"dataType":"json","data":{"tag":_12.tag},"async":false,"success":function(m){_e=m;}});}else{for(i=0;i<_a.length;i++){if(_a[i].indexOf(_12.tag)===0){_e.push(_a[i]);}}}_e=$.grep(_e,function(v,i){return !_17[v.toLowerCase()];});if(_b.sort){_e=_e.sort();}for(i=0;i<_e.length;i++){_16+="<"+_b.tagWrap+" class=\"_tag_suggestion\">"+_e[i]+"</"+_b.tagWrap+"> ";}_13.html(_16);_10=!!(_e.length);}else{_19();}};function _19(){_13.empty();_e=[];_10=false;};function _1a(){var v=_c.val();if(v==_c.attr("title")&&_c.is(".hint")){v="";}currentTags=v.split(_b.separator);_19();};function _1b(tag){var i,_1c;for(i=0;i<currentTags.length;i++){if(currentTags[i].toLowerCase()!=_11[i].toLowerCase()){_1c=i;break;}}if(_1c==_11.length-1){tag=tag+_b.separator;}_11[i]=tag;_c.val(_11.join(_b.separator));_c.blur().focus();_1a();};function _1d(ev){_f=false;var _1e=ev.type;var _1f=false;switch(ev.keyCode){case 37:case 38:case 39:case 40:_19();return true;case 224:case 17:case 16:case 18:return true;case 8:if(this.value==""){_19();_1a();return true;}else{_1e="keyup";_1f=true;_14(this);}break;case 9:case 13:if(_10){_1b(_e[0]);_f=true;return false;}else{return true;}case 27:_19();_1a();return true;case 32:_1a();return true;}if(_1e=="keyup"){switch(ev.charCode){case 9:case 13:return true;}if(_1f){_1a();}_14(this,ev.charCode);}};_c.after(_13).keypress(_1d).keyup(_1d).blur(function(){if(_f==true||_10){_f=false;_c.focus();}});_13=$(_13).click(function(ev){if(ev.target.nodeName==_b.tagWrap.toUpperCase()&&$(ev.target).is("._tag_suggestion")){_1b(ev.target.innerHTML);}}).addClass(_b.matchClass);_1a();});};})(jQuery);
