(function(jQuery){
  jQuery.fn.extend({
    tagCloud: function(options) {

        var defaults = {
               maxSize: 2,
               minSize: 0.8,
               classes: {
                tagCloud:"tag_cloud",
                tag: "tag_cloud_tag",
                tagLink: "tag_cloud_link"
               }
        };

        var options = jQuery.extend(defaults, options);

        var maxValue = 1;
        var minValue = 999;
        var currentValue = 0;



        return this.each(function() {


          var obj = jQuery(this);

          /*
          * Add appropriate classes
          */
          
          

          obj.addClass(options.classes.tagCloud);
          obj.find("a").addClass(options.classes.tagLink);
          obj.find("div").addClass(options.classes.tag);


          obj.find("."+options.classes.tagLink).each(function(){
	  var count=jQuery(this).attr("count");
            currentValue = parseInt(jQuery(this).attr("count"));
            maxValue = (currentValue > maxValue ? currentValue : maxValue);
            minValue = (minValue > currentValue ? currentValue : minValue);
          });
	  var multiplier=1;
          if((maxValue-minValue)>0){
            multiplier=(options.maxSize-options.minSize)/(maxValue-minValue);
	  }
	  var size=1;

          obj.find("."+options.classes.tagLink).each(function(){
            currentValue = parseInt(jQuery(this).attr("count"));
            size = options.minSize + ((maxValue-(maxValue-(currentValue-minValue)))*multiplier);
            jQuery(this).css({"font-size":""+size+"em"});
          });

        });

      }
  });
})(jQuery);
