var MIN_FONT_SIZE = 10;
var MAX_FONT_SIZE = 25;

var tagClouds = null;

$(function() {

	$.getJSON("gettagclouds.php", function(data) {

		tagClouds = data;

		$("#tagcloud_dia").click(function(e) {
                        e.preventDefault();
			$(".tagcloud_estilo").removeClass("tagcloud_ativa");
			$(this).addClass("tagcloud_ativa");			
			reloadTagCloud(tagClouds.dia);
		});
		$("#tagcloud_semana").click(function(e) {
			e.preventDefault();
                        $(".tagcloud_estilo").removeClass("tagcloud_ativa");
			$(this).addClass("tagcloud_ativa");			
			reloadTagCloud(tagClouds.semana);
		});
		$("#tagcloud_mes").click(function(e) {
			e.preventDefault();
                        $(".tagcloud_estilo").removeClass("tagcloud_ativa");
			$(this).addClass("tagcloud_ativa");			
			reloadTagCloud(tagClouds.mes);
		});
		$("#tagcloud_total").click(function(e) {
			e.preventDefault();
                        $(".tagcloud_estilo").removeClass("tagcloud_ativa");
			$(this).addClass("tagcloud_ativa");			
			reloadTagCloud(tagClouds.total);
		});

		reloadTagCloud(data.dia);
		$("#tagcloud_dia").addClass("tagcloud_ativa");

	});
});

function reloadTagCloud(data) {

	$("#tagCloud").empty();

	$("<ul>").attr("id", "tagList").appendTo("#tagCloud");

	var maxFrequency = Math.log(data.max);
	var minFrequency = Math.log(data.min);

	$.each(data.tags, function(i, val) {
		var li = $("<li>").addClass("clouditem");
		$("<span>").text(val.tag).appendTo(li);
		li.children().css("fontSize", getLabelSize(val.freq, maxFrequency, minFrequency));
		li.appendTo("#tagList");
	});

}

function getLabelSize(frequency, maxFrequency, minFrequency) {
	var weight = (Math.log(frequency) - minFrequency) / (maxFrequency - minFrequency);
	var fontSize = MIN_FONT_SIZE + Math.round((MAX_FONT_SIZE - MIN_FONT_SIZE) * weight);
	return fontSize + "pt";
}
