function getTagCloud() {
	$("#tagCloudDiv").html("");
	$("#tagCloudDivLoading").show();
	$.post("tagAction_getAllTags", {start: 0, count: 0}, function(results) {
	     if (results.success) {
		     var minCount = results.contents.minTagCount;
		     var levelGap = (results.contents.maxTagCount - minCount) / 4;
	    	 for(var i = 0; i < results.contents.tags.length; i++) {
		    	 var tag = results.contents.tags[i];
		    	 var tagElem = $('<div class="tagRaw"></div>').text(tag.name)
		    	 	.appendTo($("#tagCloudDiv"));
		    	 if (tag.count < minCount + levelGap) {
		    		 tagElem.addClass("tagCloud1");
		    	 } else if (tag.count < minCount + 2 * levelGap) {
		    		 tagElem.addClass("tagCloud2");
		    	 } else if (tag.count < minCount + 3 * levelGap) {
		    		 tagElem.addClass("tagCloud3");
		    	 } else {
		    		 tagElem.addClass("tagCloud4");
		    	 }
		    	 
		    	 if((i+1)%10 == 0) {
		    		 $('<div class="clear spacer2"></div>').appendTo($("#tagCloudDiv"));
		    	 }
	    	 }
		 }
	     else {
	    	 $("#tagCloudDiv").html(result.message);
	    	 displayStatusMessage("status-messages", result.message, "error", 30000);
	     }
	     $("#tagCloudDivLoading").hide();
	     addTagLinks();
	 }, "json");
}

function getHighestRatedPages() {
	$("#highestRatedPages").html("");
	$("#highestRatedPagesLoading").show();
	$.post("topTableAction_getHighestRatedPages", {}, function(result) {
		var html = "";
		if(result.success) {
			var ttu = result.contents.topTableUtility;
			for(var i = 0; i < ttu.length; i++) {
				var websiteTitle = ttu[i].pageTitle;
				if(websiteTitle == "") websiteTitle = ttu[i].pageUrl;
				html += "<div class='stats-table-left left'><a class='link-14-dark' title='" + ttu[i].pageUrl + "' target='_blank' " +
						"href='" + ttu[i].pageUrl + "'>" + websiteTitle + "</a></div>" +
						"<div class='stats-table-right left' style='width:104px;font-size:14px;color:#3a3a3a'>" + ttu[i].ratingOverall.toFixed(2) + "</div><div class='clear spacer2'></div>";
				//ttu[i].ratingCount
			}
		}
		else {
			html += result.message;
			displayStatusMessage("status-messages", result.message, "error", 30000);
		}
		$("#highestRatedPages").html(html);
		$("#highestRatedPagesLoading").hide();
		$("#highestRatedPages").slideDown();
	}, 'json');
}

function getMostRatedPages() {
	$("#mostRatedPages").html("");
	$("#mostRatedPagesLoading").show();
	$.post("topTableAction_getMostRatedPages", {}, function(result) {
		var html = "";
		if(result.success) {
			var ttu = result.contents.topTableUtility;
			for(var i = 0; i < ttu.length; i++) {
				var websiteTitle = ttu[i].pageTitle;
				if(websiteTitle == "") websiteTitle = ttu[i].pageUrl;
				html += "<div class='stats-table-left left'><a class='link-14-dark' title='" + ttu[i].pageUrl + "' target='_blank' " +
						"href='" + ttu[i].pageUrl + "'>" + websiteTitle + "</a></div>" +
						"<div class='stats-table-right left' style='width:104px;font-size:14px;color:#3a3a3a'>" + addCommas(ttu[i].ratingCount) + "</div><div class='clear spacer2'></div>";
				//ttu[i].ratingOverall
			}
		}
		else {
			html += result.message;
			displayStatusMessage("status-messages", result.message, "error", 30000);
		}
		$("#mostRatedPages").html(html);
		$("#mostRatedPagesLoading").hide();
		$("#mostRatedPages").slideDown();
	}, 'json');
}

function getTopSharers(tp) {
	$("#mostActiveSharers").html("");
	$("#mostActiveSharersLoading").show();
	$.post("topTableAction_getTopSharers", { timePeriod: tp }, function(result) {
		var html = "";
		if(result.success) {
			var ttu = result.contents.topTableUtility;
			for(var i = 0; i < ttu.length; i++) {
				html += "<div class='stats-table-left left' style='font-size:14px;color:#3a3a3a'>" + ttu[i].userName + "</div>" +
						"<div class='stats-table-right left' style='width:104px;font-size:14px;color:#3a3a3a'>" + addCommas(ttu[i].shares) + "</div><div class='clear spacer2'></div>";
			}
		}
		else {
			html += result.message;
			displayStatusMessage("status-messages", result.message, "error", 30000);
		}
		$("#mostActiveSharers").html(html);
		$("#mostActiveSharersLoading").hide();
		$("#mostActiveSharers").slideDown();
	}, 'json');
}

function addTagLinks() {
	$(".tagRaw").each(function (i) {
		var target = $(this);
		var tagText = target.text();
		var tagName = tagText.split('(')[0]; // Remove the count
		
		target.text("");
		$("<a></a>").attr("href", "bShareBoxAll?tag="+encodeURIComponent(tagName)).text(tagText).appendTo(target);
		target.removeClass("tagRaw");
		target.addClass("tag");
		target.css("display","inline");
	});
}

function addCommas(nStr) {
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}