/*!
 * jQCloud Plugin for jQuery
 *
 * Version 0.2.5
 *
 * Copyright 2011, Luca Ongaro
 * Licensed under the MIT license.
 *
 * Date: Sat Nov 05 18:14:54 +0100 2011
*/
(function(a){"use strict",a.fn.jQCloud=function(b,c){var d=this,e=d.attr("id"),f={width:d.width(),height:d.height(),center:{x:d.width()/2,y:d.height()/2},delayedMode:b.length>50,randomClasses:0};typeof c=="function"&&(c={callback:c}),c=a.extend(f,c||{}),d.addClass("jqcloud");var g=function(){var f=function(a,b){var c=function(a,b){return Math.abs(2*a.offsetLeft+a.offsetWidth-2*b.offsetLeft-b.offsetWidth)<a.offsetWidth+b.offsetWidth&&Math.abs(2*a.offsetTop+a.offsetHeight-2*b.offsetTop-b.offsetHeight)<a.offsetHeight+b.offsetHeight?!0:!1},d=0;for(d=0;d<b.length;d++)if(c(a,b[d]))return!0;return!1};for(var g=0;g<b.length;g++)b[g].weight=parseFloat(b[g].weight,10);b.sort(function(a,b){return a.weight<b.weight?1:a.weight>b.weight?-1:0});var h=2,i=[],j=c.width/c.height,k=function(g,k){var l=e+"_word_"+g,m="#"+l,n=typeof c.randomClasses=="number"&&c.randomClasses>0?" r"+Math.ceil(Math.random()*c.randomClasses):a.isArray(c.randomClasses)&&c.randomClasses.length>0?" "+c.randomClasses[Math.floor(Math.random()*c.randomClasses.length)]:"",o=6.28*Math.random(),p=0,q=Math.round((k.weight-b[b.length-1].weight)/(b[0].weight-b[b.length-1].weight)*9)+1,r=a("<span>").attr("id",l).attr("class","w"+q).addClass(n).attr("title",k.title||k.text||""),s="";if(!k.handlers)s=k.url!==undefined?"<a href='"+encodeURI(k.url).replace(/'/g,"%27")+"'>"+k.text+"</a>":k.text;else{s=a("<a>").attr("href","#").text(k.text);for(var t in k.handlers)k.handlers.hasOwnProperty(t)&&typeof k.handlers[t]=="function"&&a(s).bind(t,k.handlers[t])}d.append(a(r).append(s));var u=a(m,d),v=u.width(),w=u.height(),x=c.center.x-v/2,y=c.center.y-w/2,z=u[0].style;z.position="absolute",z.left=x+"px",z.top=y+"px";while(f(document.getElementById(l),i))p+=h,o+=(g%2===0?1:-1)*h,x=c.center.x-v/2+p*Math.cos(o)*j,y=c.center.y+p*Math.sin(o)-w/2,z.left=x+"px",z.top=y+"px";i.push(document.getElementById(l))},l=function(a){a=a||0,a<b.length?(k(a,b[a]),setTimeout(function(){l(a+1)},10)):typeof c.callback=="function"&&c.callback.call(this)};c.delayedMode||c.delayed_mode?l():(a.each(b,k),typeof c.callback=="function"&&c.callback.call(this))};return setTimeout(function(){g()},10),this}})(jQuery)
