(function(c){var a=[];window.setGlobalTags=function(d){a=b(d)};function b(e){var d,f,g=[];if(e){for(f=0;f<e.length;f++){d=e[f];if(typeof e[f]=="object"){d=e[f].tag}g.push(d.toLowerCase())}}return g}c.fn.mtagSuggest=function(e){var j={stubPath:"http://content.mahalo.com/scripts/tagstubs",matchClass:"tagMatches",tagContainer:"span",tagWrap:"span",sort:true,tags:null,url:null,delay:0,separator:" "};var f,d,h=[],g=c.extend({},j,e);if(g.tags){h=b(g.tags)}else{h=a}return this.each(function(){var r=c(this);var t=this;var q,o=false;var s=false;var v=[];var x={position:0,tag:""};var k=document.createElement(g.tagContainer);function m(z,y){if(g.delay){if(t.timer){clearTimeout(t.timer)}t.timer=setTimeout(function(){n(z,y)},g.delay)}else{n(z,y)}}function n(B,A){v=B.value.split(g.separator);q=[];var z,C={},y=false;x={position:currentTags.length-1,tag:""};for(z=0;z<currentTags.length&&z<v.length;z++){if(!y&&currentTags[z].toLowerCase()!=v[z].toLowerCase()){x={position:z,tag:v[z].toLowerCase()};y=true}C[currentTags[z].toLowerCase()]=true}if(x.tag){if(g.url){c.ajax({url:g.url,dataType:"json",data:{tag:x.tag},async:false,success:function(F){q=F}})}else{if(x.tag.length==1){h=b(istubs[x.tag]);p(x,h,C)}else{if(x.tag.length>=2){var D=x.tag.substr(0,2).toCharCode();if(!stubs[x.tag.substr(0,2)]){if(g.stubPath){var E=g.stubPath+"/tagstubs-"+D+".js"}else{var E=j.stubPath+"/tagstubs-"+D+".js"}c.getScript(E,function(){h=b(stubs[x.tag.substr(0,2)]);p(x,h,C)})}else{h=b(stubs[x.tag.substr(0,2)]);p(x,h,C)}if(!stubs[x.tag.substr(0,2)]){stubs[x.tag.substr(0,2)]=[]}}}}}else{l()}}function p(y,A,z){q=[],f,html="";for(f=0;f<A.length;f++){if(A[f].indexOf(y.tag)===0){q.push(A[f])}}q=c.grep(q,function(B,C){return !z[B.toLowerCase()]});if(g.sort){q=q.sort()}if(q.length>0){html+='<h2>Recommended Tags <span class="lightgray-text"><small>(Click to select)</small></span></h2>'}for(f=0;f<q.length;f++){html+="<"+g.tagWrap+' class="tag_suggestion">'+q[f]+"</"+g.tagWrap+">"}if(q.length>0){html+="<br /><br />"}k.html(html);s=!!(q.length)}function l(){k.empty();q=[];s=false}function w(){var y=r.val();if(y==r.attr("title")&&r.is(".hint")){y=""}currentTags=y.split(g.separator);l()}function i(y){var A,z;for(A=0;A<currentTags.length;A++){if(currentTags[A].toLowerCase()!=v[A].toLowerCase()){z=A;break}}if(z==v.length-1){y=y+g.separator}v[A]=y;r.val(v.join(g.separator));r.blur().focus();w()}function u(A){o=false;var y=A.type;var z=false;switch(A.keyCode){case 37:case 38:case 39:case 40:l();return true;case 224:case 17:case 16:case 18:return true;case 8:if(this.value==""){l();w();return true}else{y="keyup";z=true;m(this)}break;case 9:case 13:if(s){if(q[0]){i(q[0])}o=true;return false}else{return true}case 27:l();w();return true;case 32:w();return true}if(y=="keyup"){switch(A.charCode){case 9:case 13:return true}if(z){w()}m(this,A.charCode)}}r.after(k).keypress(u).keyup(u).blur(function(){if(o==true||s){o=false;r.focus()}});k=c(k).click(function(y){if(y.target.nodeName==g.tagWrap.toUpperCase()&&c(y.target).is(".tag_suggestion")){i(y.target.innerHTML)}}).addClass(g.matchClass);w()})}})(jQuery);String.prototype.toCharCode=function(){var d=this.toLowerCase(),b="";for(var a=0;a<d.length;a++){var c=new String(d.charCodeAt(a));while(c.length<3){c="0"+c}b+=c}return b};