// A number of related trend functions grouped together
var RelatedTrends = new function() {
	
	var trend_id = "";
	var suggested_trends;
	var got_suggested_trends = false;
	var related_trends;
	var got_related_trends = false;
	var tname = '';
	
	//retrieve comments to display on page  
	this.getSuggestedTrends = function(trend_name) {
	    jQuery.getJSON("/api/v2/trends/search.json?q=" + trend_name + "&callback=?", function(data)
		{
		    //loop through all items in the JSON array 
			if(data)
			{
				suggested_trends = data;
				got_suggested_trends = true;
				if (got_related_trends) {
			 		RelatedTrends.showTrends();
				}
			}
		});
	}

			
	this.getRelatedTrends = function(trend_name)
	{
		jQuery.getJSON("/api/v2/trend/" + trend_name + "/related.json?callback=?", function(data1) {
			if(data1)
			{
				related_trends = data1;
				got_related_trends = true;
				if (got_suggested_trends) {
			 		RelatedTrends.showTrends();
				}
			}
		});
	}					

	this.showTrends = function(){
		
		var html = '<ul style="overflow:hidden;margin-bottom:10px;margin-left:0px" id="similar_trends_list">';
		for (var x = 0; x < suggested_trends.length; x++) {
			if(suggested_trends[x][1] != tname)
			{
				html += RelatedTrends.formatRelatedText(suggested_trends[x][1],suggested_trends[x][0],suggested_trends[x][2],suggested_trends[x][3], .5);
			}
		}
		html += "</ul>"
	
		// add trend items to panel
		jQuery('#similar_trends'+trend_id).empty();
 		jQuery("#similar_trends"+trend_id).append(html);
		for (var x = 0; x < related_trends.length; x++) {
			RelatedTrends.add(related_trends[x][1],related_trends[x][0],related_trends[x][2],related_trends[x][3], .5);
		}
		jQuery("#related_edit_buttons").fadeIn();
	}
	
	this.reloadTrends = function(trend_name) {
		tname = trend_name;
		RelatedTrends.getRelatedTrends(tname);
		RelatedTrends.getSuggestedTrends(tname);
	}
}

RelatedTrends.add = function(trend, id, slug, blurb)
{
	if(jQuery("#similar_trend_" + id).length == 0) {
		jQuery("#similar_trends_list").append(RelatedTrends.formatRelatedText(trend, id, slug, blurb, .5));
	}
	// add to textbox
	if(related_trends != null)
	{
		related_trends.add(trend, id);
	}
	
	jQuery("#similar_trend_" + id).fadeTo("slow", "1"); // related trend--just darken
}

RelatedTrends.formatRelatedText = function (name, id, slug, blurb, opacity)
{
	var html = '<li class="textboxlist-bit textboxlist-bit-box" id="similar_trend_' + id + '" style="opacity:' + opacity +'"><a href="/trend/' + slug + '" title="' + blurb + '">' + name + '</a></li>';
	return html;	
}

RelatedTrends.editRelatedTrends = function() {
	RelatedTrends.setRelatedTrendsAsButtons();
	jQuery("#related_edit_buttons").fadeOut();		
	jQuery("#related_trends_form").slideDown();
	jQuery("#related_save_buttons").fadeIn();		
}

RelatedTrends.saveRelatedTrends = function() {
	var yourTrends=jQuery('#related_trends').val();
	jQuery.post('/api/v2/trend/related/update',{trend_id:WhatTheTrend.id,related_trends:yourTrends},function(html){
		RelatedTrends.reloadTrends(WhatTheTrend.trendname);
		jQuery("#related_save_buttons").fadeOut();		
		jQuery("#related_trends_form").slideUp();
		jQuery("#related_edit_buttons").fadeIn();		
	},'html');
}

RelatedTrends.cancelRelatedTrends  = function(){
	RelatedTrends.reloadTrends(WhatTheTrend.trendname);
	jQuery("#related_save_buttons").fadeOut();			
	jQuery("#related_trends_form").slideUp();		
	jQuery("#related_edit_buttons").fadeIn();		
}

RelatedTrends.setRelatedTrendsAsButtons = function()
{
	jQuery("#similar_trends li a").click(function (event) { 
		event.preventDefault();
		id = this.parentNode.id.substring(14);
		RelatedTrends.add(this.text, id, encodeURIComponent(this.text), this.title); 
	});
}

RelatedTrends.setRelatedTrendsAsLinks = function()
{
	jQuery("#similar_trends li a").unbind("click");
}

RelatedTrends.remove = function(id)
{
	if(id.value != undefined) {
		jQuery("#similar_trend_" + id.value[0]).fadeTo("fast", ".5");
	}
}

