jQuery.fn.tagCloud=function(cl,givenOptions){if(!cl||!cl.length){return this}var defaults={sort:function(a,b){return a.tag<b.tag?-1:(a.tag==b.tag?0:1)},click:function(tag){location.href="/tag/"+tag},maxFontSizeEm:3};var options={};jQuery.extend(options,defaults,givenOptions);var max=-1;var min=cl[0].count;$.each(cl,function(i,n){max=Math.max(n.count,max);min=Math.min(n.count,min)});if(options.sort){cl.sort(options.sort)}var diff=(max==min?1:(max-min)/(options.maxFontSizeEm-1));function getNormalizedSize(count){return 0.95+(count-min)/diff}this.empty();for(var i=0;i<cl.length;++i){var tag=cl[i].tag;var tagEl=jQuery('<a href="/tag/'+tag+'" class="tagcloudlink" style="font-size: '+getNormalizedSize(cl[i].count)+'em">'+tag+"</a>").data("tag",tag);if(options.click){tagEl.click(function(event){event.preventDefault();options.click(jQuery(event.target).data("tag"),event)})}this.append(tagEl).append(" ")}return this};