var delCloud = {
		failed: false,
		doTagCloud : function(tags) {
			if(this.failed === false) {
				window.clearTimeout(this.to);
				var user = $('#deliciousUserId').val();
				var minFontSize = 10;
				var maxFontSize = 20;
				var tagArray = [];
				for ( var tagName in tags) {
					if(typeof tagName === "string"){
						tagArray.push( [ tagName, tags[tagName] ]);
					}
				}
				var tagParam = "<tags>";
				tagArray.sort(function(a, b) {
					return b[1] - a[1];
				});
				tagArray = tagArray.slice(0, Math.min(20, tagArray.length));
				for ( var i = 0; i < tagArray.length; i++) {
					var tag = tagArray[i];
					var denominator = (tagArray[0][1] - tagArray[tagArray.length - 1][1]);
					var weight = 0;
					if (denominator !== 0) {
						weight = ((tag[1] - tagArray[tagArray.length - 1][1])) / denominator;
					}
					var fontSizeOfCurrentTag = minFontSize + 
					Math.round((maxFontSize - minFontSize) * weight);
					tagParam += "<a target='_parent' href='http://delicious.com/" + 
					user + "/" + tag[0] + "' style='" + fontSizeOfCurrentTag + 
					"'>" + tag[0] + "</a>";
				}
				tagParam += "</tags>";
				var flashvars = {};
				flashvars.tagcloud = $.URLEncode(tagParam);
				flashvars.mode = "tags";
				flashvars.distr = "true";
				flashvars.tcolor = "0x000033";
				flashvars.tcolor2 = "0x003300";
				flashvars.hicolor = "0x000066";
				flashvars.tspeed = "100";
				var params = {};
				params.wmode = "transparent";
				params.quality = "high";
				params.bgcolor = "#ffffff";
				var attributes = {};
				swfobject.embedSWF("flash/tagcloud.swf", "tagCloud", "400", "500",
						"7.0.0", false, flashvars, params, attributes);
			}
		},
		fetchTags : function() {
			$("#tagCloud").html("<img src='img/ajax-loader.gif' />"); 
			var user = $('#deliciousUserId').val();
			var script = document.createElement('script');
			var url = 'http://feeds.delicious.com/v2/json/tags/' + user + '?callback=delCloud.doTagCloud';
			script.setAttribute('src', url);
			document.getElementsByTagName('head')[0].appendChild(script);
			this.to = window.setTimeout('delCloud.failure()', 10000);
		},
		failure: function() { 
			window.clearTimeout(this.to); 
			this.failed = true; 
			$('#tagCloud').html('<img src="img/link_error.png"/> Connection Error'); 
		}
};
$(document).ready(function (){
	$('#deliciousUserId').keyup(function(e) {
		if(e.keyCode == 13) {
			delCloud.fetchTags();
		}
	});
});
