var FeaturedContent = {

	FCO : {},
	RCO : {},
	pageLen : 4,
	HPpage : 1,
	HPurl : "",
	RPurl : "",
	FCselected : 1,
	RandomBuilt: 0,

	buildBox : function(dest) {
		$("#" + dest).append("<div id='FC_Wrapper'></div>");
		this.buildMenu($("#FC_Wrapper"));
	},

	buildEntries : function(d, $dest) {
		var thisObj = this;
		$.each(d, function(i) {
			if (thisObj.FCselected == 1) {
				var tracking = "?utm_source=episodepg_featured&utm_medium=episodepg_featured";
			} 
			else {
				this.RandomBuilt = 1;
				var tracking = "?utm_source=episodepg_random&utm_medium=episodepg_random";
			}
			
			var thumbSrc = this.thumbnail120Url ? this.thumbnail120Url : this.thumbnailUrl;
			$dest.append("<div class='FC_Episode'><a href='" + this.url + tracking  +"'><img width='80' height='60' src=" + thumbSrc + "></a><a href='" + this.url + tracking + "' class='FC_EP_Title'>" + thisObj.getTitle(this.adminTitle) + "</a><a href='" + this.url + tracking + "' class='FC_SH_Name'>" + thisObj.getShowName(this.showName) + "</a><img src='/skin/mercury/images/clock.gif'> "+  thisObj.getDuration(this.media.duration) + "<div class='clear'></div></div>");

	       });
	},

	buildMenu : function($dest) {
		$dest.append("<div id='NubWrapper'><img src='/skin/mercury/images/nub.gif' id='Nub'></div>");
		$dest.append("<div id='FC_Menu'></div>");
		$("#FC_Menu").append("<div id='FC_FeaturedLink'><a href='javascript:FeaturedContent.jumpTo(1)' class='FC_Menu_link'><img src='/skin/mercury/images/handpicked_fc.gif'></a></div>");
		$("#FC_Menu").append("<div id='FC_RelatedLink'><a href='javascript:FeaturedContent.jumpTo(2)' class='FC_Menu_link'><img src='/skin/mercury/images/random_fc.gif'></a></div>");
		$dest.append("<div id='FC_Content'></div>");
		$("#FC_Content").append("<div id='FC_HP' class='FC_Content_Feature'></div>");
		$("#FC_Content").append("<div id='FC_RC' class='FC_Content_Feature'></div>");
		this.buildEntries(this.FCO, $("#FC_HP"));
	},

	embed : function(FC, RC, dest) {
	
		var thisObj = this;

		this.HPurl = FC;
		var FCurl = FC + "&pagelen=" + this.pageLen + "&page=1";

		this.RPurl = RC;
		var RCurl = RC + "&pagelen=" + this.pageLen + "&page=1&sort=random";

		//$.getJSON(FCurl, function(jsonF){		
		//	thisObj.FCO = jsonF;
		//	$.getJSON(RCurl, function(jsonR){		
		//		thisObj.RCO = jsonR;
		//		thisObj.init(dest);
		//	});
		//});

		// Allow for caching
		this.dest = dest;
		FCurl = FCurl.replace("callback=?","callback=FeaturedContent.populateFeatured");
		this.RCurl = RCurl.replace("callback=?","callback=FeaturedContent.populateRandom");

		$.ajax({url:FCurl, dataType:"script", cache:true});
	},
	
	populateFeatured: function(featured) {
		FeaturedContent.FCO = featured;
		$.ajax({url:this.RCurl, dataType:"script", cache:true});
	},

	populateRandom: function(random) {
		this.RCO = random;
		this.init(this.dest);
	},

	init : function (dest) {
		this.buildBox(dest);
	},

	getDuration : function (s) {
		return(Math.floor(s/60) + ":" + this.pad(s%60));
	},
	
	
	getShowName : function(n) {
		if (n.length > 40) {
			return(n.substring(0, 40) + "...")
		} else {
			return(n);
		}
	},
	
	getTitle : function(t) {
		if (t.length > 23) {
			return(t.substring(0, 23) + "<span style='font-size: 8px; color: #999;'>...</span>")
		} else {
			return(t);
		}
	},

	jumpTo : function(s) {
		this.FCselected = s;
		if (s==1) {
			$("#Nub").animate({ 
			marginLeft: "0px"
			}, 500 );
			
			$("#FC_Content").animate({ 
			marginLeft: "0px"
			}, 500 );
		} else {
			if (!(this.RandomBuilt)) {
				this.buildEntries(this.RCO, $("#FC_RC"));			
			}
			
			$("#Nub").animate({ 
			marginLeft: "170px"
			}, 400 );
			
			$("#FC_Content").animate({ 
			marginLeft: "-310px"}, 400 );
		}
	},

	pad : function(n) {
		if (n < 10) { return ("0" + n); } else { return n; }
	},
	
	refresh : function() {
		var thisObj = this;
		this.HPpage++;
		if (this.FCselected == 1) {
			$("#FC_HP").empty();
			var FCurl = this.HPurl + "&pagelen=" + this.pageLen + "&page=" + this.HPpage;
		} else {
			$("#FC_RC").empty();
			var FCurl = this.RPurl + "&pagelen=" + this.pageLen + "&page=" + this.HPpage + "&sort=random";
		}
		$.getJSON(FCurl, function(json){
			if(thisObj.FCselected == 1) {
				thisObj.buildEntries(json, $("#FC_HP"));
			} else {
				thisObj.buildEntries(json, $("#FC_RC"));
			}
		});
	}

};

