(function($) {

	var plugin = Echo.createPlugin({
	        "name": "SourceIconTweaks",
	        "applications": ["Stream"],
	        "init": function(plugin, application) {
			plugin.extendRenderer("Item", "sourceIcon", function() {
				var item = this;
				var source = item.data.source.name;
				if (source) {
					var icon = plugin.config.get(item, "icons." + source);
					if (icon) {
						item.data.source.icon = icon;
					}
				} 
				item.parentRenderer("sourceIcon", arguments);
			});
	        }
	});
})(jQuery);

/* pre-gigya share plugin */
(function($) {

var plugin = Echo.createPlugin({
	"name": "USASocialSharing",
	"applications": ["Submit"],
	"init": function(plugin, application) {
		plugin.extendRenderer("Submit", "shareContainer", plugin.renderers.Submit.shareContainer);
		plugin.extendTemplate("Submit",	plugin.shareTemplate, "insertAfter", "echo-submit-post-container");
		plugin.listenEvents(application);
	}
});

plugin.shareTemplate = '<div class="echo-submit-shareContainer echo-primaryFont echo-primaryColor shareOff"></div>';

plugin.renderers = {"Submit": {}};

plugin.addLabels({
	"sharePrompt": "Share your comment:",
	"shareContent": "I just commented '{content}' on {domain}"
});

plugin.renderers.Submit.shareContainer = function(element, dom) {
	var application = this;
	if (application.config.get("mode") == "compact") {
		element.hide();
		return;
	}
	var typed = dom.get("text").val().length;
	var shareLabel = plugin.config.get(application, "sharePrompt", 0);
	var providers = plugin.config.get(application, "providers", 0);
	
	//var html  = '<div id="shareTitle">' + shareLabel + '</div>';
	var html  = '';
	html += '<div id="shareMsg"><div class="shareMsgClose"><a href="javascript:usa_closeMsg();"><img src="http://chatter.usanetwork.com/images/btn_close.png" /></a></div><span></span></div>';
	
	for (var i=0 ; i<providers.length ; i++)
	{
		var providerName = providers[i].name;
		var providerIcon = providers[i].icon;
		var providerLabel = providers[i].label;
		var providerLoginFunction = providers[i].loginFunction;
		var providerLogoutFunction = providers[i].logoutFunction;
		
		html += ('<div id="share' + providerName + 'Container">');
		html += ('<div class="shareLogin"><img src="' + providerIcon + '" onclick="$(\'#share' + providerName + 'Container input\').click();' + providerLoginFunction + ';"></div>');
		html += ('<div class="shareInput" style="display: block;"><input type="checkbox" onclick="' + providerLoginFunction + '" value="1" name="share' + providerName + '" id="share' + providerName + '"></div>');
		html += ('<label for="share' + providerName + '">' + providerLabel + '</label>');
		//html += '<div id="' + providerName.toLowerCase() + 'User" style="display: block;"><div id="connected' + providerName + 'Avatar"></div><div id="connected' + providerName + 'Logout"><a href="javascript:' + providerLogoutFunction + ';">Sign-out</a></div></div>';
		//html += '<div id="' + providerName.toLowerCase() + 'User" style="display: block;"><div id="connected' + providerName + 'Avatar"></div></div>';
		html += '<div class="clear"></div>';
		html += '</div>';
	}
	html += '<div class="clear"></div>';
	
	element.html(html);
	
	application.parentRenderer("shareContainer", arguments);
	//this.rerender("shareContainer");
	plugin.detectLoggedInState(this);
};


plugin.listenEvents = function(application) {
	plugin.subscribe(application, "Submit.onPostComplete", function(topic, args) {
		var config = function(key, defaults) {
			return plugin.config.get(application, key, defaults);
		};
		
		var text = $.stripTags(args.postData.content);
		var source = plugin.config.get(application, "source", 0);
		usa_shareComment(text, source);
	});
};

plugin.detectLoggedInState = function(application) {
	//console.log('detectLoggedInState');
	var user = new Echo.User({"appkey": application.config.data.appkey});
	//console.log(user);
	user.init(function() {
		//console.log(user.logged());
	    if (user.logged()) {
	        // user is logged in
	    	$('.echo-submit-shareContainer').removeClass('shareOff');
	    	
	    	$('.echo-auth-logout').click(function() {
	    		usa_facebookSignOut();
	    		usa_showTwitterSignOut();
	    	})
	    } else {
	        // user is not logged in
	    	$('.echo-submit-shareContainer').addClass('shareOff');
	    }
	}); 
}

})(jQuery);


var EchoRiverClient;
var usa_chatterSite;
var usa_chatter = function(curated, all, allCondensed, chat, submitTarget, share) {
	this.curatedQuery = curated;
	this.allQuery = all;
	this.allQueryCondensed = allCondensed;
	this.chatQuery = chat;
	this.submitTargetURL = submitTarget;
	this.share = share;
}

var url = window.location.href;
var urlParts = url.split('/');
if (urlParts[3].toLowerCase() == 'series' && urlParts[4].toLowerCase() == 'toughenough')
{
	var usa_chatterObj = new usa_chatter(
		"childrenof:http://chatter.usanetwork.com/toughenough/officialtweets/* safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"(childrenof:http://chatter.usanetwork.com/toughenough/*  OR childrenof:http://chatter.usanetwork.com/toughenough/public/facebookfanpage/*) safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged itemsPerPage:20",
		"childrenof:http://chatter.usanetwork.com/toughenough/* safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:3",
		"childrenof:http://chatter.usanetwork.com/toughenough/public/comments safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"http://chatter.usanetwork.com/toughenough/public/comments",
		false
	);
	usa_chatterSite = 'toughenough';
}
else if (urlParts[3].toLowerCase() == 'movies' && urlParts[4].toLowerCase() == 'samaxe')
{
	var usa_chatterObj = new usa_chatter(
		"childrenof:http://chatter.usanetwork.com/toughenough/officialtweets/* safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"(childrenof:http://chatter.usanetwork.com/toughenough/*  OR childrenof:http://chatter.usanetwork.com/toughenough/public/facebookfanpage/*) safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged itemsPerPage:20",
		"childrenof:http://chatter.usanetwork.com/toughenough/* safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:3",
		"childrenof:http://chatter.usanetwork.com/toughenough/public/comments safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"http://chatter.usanetwork.com/toughenough/public/comments",
		false
	);
	
	usa_chatterSite = 'burnnotice';
}
else if (urlParts[3].toLowerCase() == 'series' && urlParts[4].toLowerCase() == 'criminalintent')
{
	usa_chatter = function(curated, all, allCondensed, chat, submitTarget, share, question, answer) {
		this.curatedQuery = curated;
		this.allQuery = all;
		this.allQueryCondensed = allCondensed;
		this.chatQuery = chat;
		this.submitTargetURL = submitTarget;
		this.share = share;
		this.questionsQuery = question;
		this.answersQuery = answer;
	}
	
	var usa_chatterObj = new usa_chatter(
		"(childrenof:http://chatter.usanetwork.com/laworderci/officialtweets/* OR childrenof:http://chatter.usanetwork.com/laworderci/public/facebookfanpage/*) safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"(childrenof:http://chatter.usanetwork.com/laworderci/* OR childrenof:http://chatter.usanetwork.com/laworderci/public/facebookfanpage/*) safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged itemsPerPage:20",
		"childrenof:http://chatter.usanetwork.com/laworderci/* safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:3",
		"childrenof:http://chatter.usanetwork.com/laworderci/public/comments -markers:lociQuestion safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"http://chatter.usanetwork.com/laworderci/public/comments",
		false,
		"childrenof:http://chatter.usanetwork.com/laworderci/* markers:lociQuestion safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged itemsPerPage:20",
		"childrenof:http://chatter.usanetwork.com/laworderci/* markers:lociQuestion safeHTML:false sortOrder:reverseChronological state:ModeratorApproved itemsPerPage:20"
	);
	
	usa_chatterSite = 'loci';
}
else if (urlParts[3].toLowerCase() == 'series' && urlParts[4].toLowerCase() == 'inplainsight')
{
	var usa_chatterObj = new usa_chatter(
		"(childrenof:http://chatter.usanetwork.com/inplainsight/officialtweets/* OR childrenof:http://chatter.usanetwork.com/inplainsight/public/facebookfanpage/*) safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"(childrenof:http://chatter.usanetwork.com/inplainsight/* OR childrenof:http://chatter.usanetwork.com/inplainsight/public/facebookfanpage/*) safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged itemsPerPage:20",
		"childrenof:http://chatter.usanetwork.com/inplainsight/* safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:3",
		"childrenof:http://chatter.usanetwork.com/inplainsight/public/comments safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"http://chatter.usanetwork.com/inplainsight/public/comments",
		false
	);
	
	usa_chatterSite = 'inplainsight';
}
else if (urlParts[3].toLowerCase() == 'series' && urlParts[4].toLowerCase() == 'covertaffairs')
{
	var usa_chatterObj = new usa_chatter(
		"(childrenof:http://chatter.usanetwork.com/covertaffairs/officialtweets/* OR childrenof:http://chatter.usanetwork.com/covertaffairs/public/facebookfanpage/*) safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"(childrenof:http://chatter.usanetwork.com/covertaffairs/* OR childrenof:http://chatter.usanetwork.com/covertaffairs/public/facebookfanpage/*) safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged itemsPerPage:20",
		"childrenof:http://chatter.usanetwork.com/covertaffairs/* safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:3",
		"childrenof:http://chatter.usanetwork.com/covertaffairs/public/comments safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"http://chatter.usanetwork.com/covertaffairs/public/comments",
		false
	);
	
	usa_chatterSite = 'covertaffairs';
}

else if (urlParts[3].toLowerCase() == 'series' && urlParts[4].toLowerCase() == 'whitecollar')
{
	var usa_chatterObj = new usa_chatter(
		"(childrenof:http://chatter.usanetwork.com/whitecollar/officialtweets/* OR childrenof:http://chatter.usanetwork.com/whitecollar/public/facebookfanpage/*) safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"(childrenof:http://chatter.usanetwork.com/whitecollar/* OR childrenof:http://chatter.usanetwork.com/whitecollar/public/facebookfanpage/*) safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged itemsPerPage:20",
		"childrenof:http://chatter.usanetwork.com/whitecollar/* safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:3",
		"childrenof:http://chatter.usanetwork.com/whitecollar/public/comments safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"http://chatter.usanetwork.com/whitecollar/public/comments",
		false
	);
	
	usa_chatterSite = 'whitecollar';
}

else if (urlParts[3].toLowerCase() == 'series' && urlParts[4].toLowerCase() == 'fairlylegal')
{
	var usa_chatterObj = new usa_chatter(
		"(childrenof:http://chatter.usanetwork.com/fairlylegal/officialtweets/* OR childrenof:http://chatter.usanetwork.com/fairlylegal/public/facebookfanpage/*) safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"(childrenof:http://chatter.usanetwork.com/fairlylegal/* OR childrenof:http://chatter.usanetwork.com/fairlylegal/public/facebookfanpage/*) safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged itemsPerPage:20",
		"childrenof:http://chatter.usanetwork.com/fairlylegal/* safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:3",
		"childrenof:http://chatter.usanetwork.com/fairlylegal/public/comments safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"http://chatter.usanetwork.com/fairlylegal/public/comments",
		false
	);
	
	usa_chatterSite = 'fairlylegal';
}
else if (urlParts[3].toLowerCase() == 'series' && urlParts[4].toLowerCase() == 'psych')
{
	var usa_chatterObj = new usa_chatter(
		"(childrenof:http://chatter.usanetwork.com/psych/officialtweets/* OR childrenof:http://chatter.usanetwork.com/psych/public/facebookfanpage/*) safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"(childrenof:http://chatter.usanetwork.com/psych/* OR childrenof:http://chatter.usanetwork.com/psych/public/facebookfanpage/*) safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged itemsPerPage:20",
		"childrenof:http://chatter.usanetwork.com/psych/* safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:3",
		"childrenof:http://chatter.usanetwork.com/psych/public/comments safeHTML:false sortOrder:reverseChronological -state:ModeratorDeleted,ModeratorFlagged,SystemFlagged,CommunityFlagged itemsPerPage:20",
		"http://chatter.usanetwork.com/psych/public/comments",
		false
	);
	
	usa_chatterSite = 'psych';
}

var usa_totalUsaStreamItems;
var usa_currentStreamTop = 0;
var usa_streamScrollHeight = -100;
var usa_currentStreamPage = 1;
var usa_streamPageSize = 3;
var usa_streamLoading = true;
var usa_waitingForStream = false;

function usa_updateStreamScroll()
{
	if (usa_waitingForStream)
	{
		var nextScroll = 5 + (usa_currentStreamPage * usa_streamScrollHeight);
		$('.echo-stream-body').css('top', String(nextScroll) + 'px');
		usa_currentStreamPage++;
		usa_waitingForStream = false;
	}
}

function usa_streamBack()
{
	var eb = $(".echo-stream-body");
	usa_totalUsaStreamItems = eb.find(".echo-item-content").length;

	if (usa_totalUsaStreamItems > 3 && usa_currentStreamPage >= 1)
	{
		usa_currentStreamPage--;
		var nextScroll = 5 + (usa_currentStreamPage * usa_streamScrollHeight);
		$('.echo-stream-body').css('top', String(nextScroll) + 'px');
	}
}

function usa_streamNext()
{
	var eb = $(".echo-stream-body");
	usa_totalUsaStreamItems = eb.find(".echo-item-content").length;

	if (usa_totalUsaStreamItems > 3 && usa_totalUsaStreamItems > (usa_currentStreamPage * usa_streamPageSize) && !usa_streamLoading)
	{
		var nextScroll = 5 + (usa_currentStreamPage * usa_streamScrollHeight);
		$('.echo-stream-body').css('top', String(nextScroll) + 'px');
		usa_currentStreamPage++;
	}
	else
	{
		usa_waitingForStream = true;
		$('.echo-stream-more').click();
	}
}

var currentHash;
var hashTimeout;

function usa_pollHash()
{
	if (currentHash != window.location.hash)
	{
		currentHash = window.location.hash;
		usa_refreshAd();
	}
	
	hashTimeout = setTimeout(usa_pollHash, 1000 * 1);
}

function usa_refreshAd()
{
	clearTimeout(chatterAdTimeout);
	// ad
	document.getElementById('chatterAd300x250iframe').src = document.getElementById('chatterAd300x250iframe').src;

	// omniture
	var s=s_gi('nbcuglobal,nbcuusanetworkd,nbcuusanetbu'); 
	void (s.t());

	chatterAdTimeout = setTimeout(usa_refreshAd, 1000 * 60);
}

var chatterAdTimeout;
var controlsOrder;

function usa_chatterShowChat()
{
	EchoRiverClient.config.set("query", usa_chatterObj.chatQuery);
	EchoRiverClient.refresh();

	jQuery('#navChat').addClass('selected');
	jQuery('#navAll').removeClass('selected');
	jQuery('#navCurated').removeClass('selected');

	usa_refreshAd();
}

function usa_chatterShowCurated()
{
	EchoRiverClient.config.set("query", usa_chatterObj.curatedQuery);
	EchoRiverClient.refresh();

	jQuery('#navChat').removeClass('selected');
	jQuery('#navCurated').addClass('selected');
	jQuery('#navAll').removeClass('selected');

	usa_refreshAd();
}

function usa_chatterShowAll()
{
	EchoRiverClient.config.set("query", usa_chatterObj.allQuery);
	EchoRiverClient.refresh();

	jQuery('#navChat').removeClass('selected');
	jQuery('#navAll').addClass('selected');
	jQuery('#navCurated').removeClass('selected');

	usa_refreshAd();
}

function usa_chatterShowAll()
{
	EchoRiverClient.config.set("query", usa_chatterObj.allQuery);
	EchoRiverClient.refresh();

	jQuery('#navChat').removeClass('selected');
	jQuery('#navAll').addClass('selected');
	jQuery('#navCurated').removeClass('selected');

	usa_refreshAd();
}

function usa_chatterShowAllNoRefresh()
{
	EchoRiverClient.config.set("query", usa_chatterObj.allQuery);
	EchoRiverClient.refresh();
	jQuery('#navChat').removeClass('selected');
	jQuery('#navAll').addClass('selected');
	jQuery('#navCurated').removeClass('selected');
}

function usa_chatterShowPoll()
{
	clearTimeout(hashTimeout);
	jQuery('#poll').css('display', 'block');
	jQuery('#trivia').css('display', 'none');
	jQuery('#followUs').css('display', 'none');
	jQuery('#navPoll').addClass('selected');
	jQuery('#navTrivia').removeClass('selected');
	jQuery('#navFollow').removeClass('selected');

	usa_refreshAd();
}

function usa_chatterShowTrivia()
{
	if (typeof currentHash == 'undefined')
	{
		currentHash = window.location.hash;
	}
	hashTimeout = setTimeout(usa_pollHash, 1000 * 1);
	jQuery('#poll').css('display', 'none');
	jQuery('#trivia').css('display', 'block');
	jQuery('#followUs').css('display', 'none');
	jQuery('#navPoll').removeClass('selected');
	jQuery('#navTrivia').addClass('selected');
	jQuery('#navFollow').removeClass('selected');

	usa_refreshAd();
}

function usa_chatterShowFollow()
{
	clearTimeout(hashTimeout);
	jQuery('#poll').css('display', 'none');
	jQuery('#trivia').css('display', 'none');
	jQuery('#followUs').css('display', 'block');
	jQuery('#navPoll').removeClass('selected');
	jQuery('#navTrivia').removeClass('selected');
	jQuery('#navFollow').addClass('selected');

	usa_refreshAd();
}


//sharing

var maxChars = 500;
var usa_debugFlag = true;
var usaTwitterPopup;

function usa_loadTwitterDataFromIframe()
{
	if (typeof $('#twitterVerifiedIframe').attr('src') != 'undefined')
	{
		document.getElementById('twitterVerifiedIframe').src = document.getElementById('twitterVerifiedIframe').src; 
	}
	else
	{
		$('.echo-submit-shareContainer').append('<div style="display:none;"><iframe id="twitterVerifiedIframe" src="/app/twitter/verified.php?config=usanetwork"></div>');
	}
}

function usa_signInWithTwitter()
{
	if (typeof $('input[name="shareTwitter"]:checked').val() != "undefined")
	{
		// checked
		if (usa_readCookie('usa_twitter_token'))
		{
			usa_updateCharsRemaining();
		}
		else
		{
			var width = 815;
		    var height = 365;
		    var left = parseInt((screen.availWidth - width) / 2);
		    var top = parseInt((screen.availHeight - height) / 2);
		    var windowFeatures = "width=" + width + ",height=" + height + ",status,resizable,scrollbars=yes,left=" + left + ",top=" + top + "screenX=" + left + ",screenY=" + top;
		    usaTwitterPopup = window.open('/app/twitter/redirect.php?config=usanetwork', "usa_signInWithTwitter", windowFeatures);
		}
	}
	else
	{
		usa_updateCharsRemaining();
	}
}

function usa_debug(msg)
{
	if (usa_debugFlag)
	{
		if (typeof console != "undefined")
		{
			console.log (msg);
		}
	}
}

function usa_showTwitterSignOut()
{
	var width = 815;
    var height = 365;
    var left = parseInt((screen.availWidth - width) / 2);
    var top = parseInt((screen.availHeight - height) / 2);
    var windowFeatures = "width=" + width + ",height=" + height + ",status,resizable,scrollbars=yes,left=" + left + ",top=" + top + "screenX=" + left + ",screenY=" + top;
    usaTwitterPopup = window.open('/app/twitter/clear-sessions.php?config=usanetwork', "usa_signInWithTwitter", windowFeatures);
    $('#twitterUser').html('');
}

function usa_twitterSignOut()
{
	$('#shareTwitter').removeAttr('checked');
}

function usa_facebookLogin()
{
	if (typeof $('input[name="shareFacebook"]:checked').val() != "undefined")
	{
		// checked
		FB.getLoginStatus(function(response) {
			if (response.session) {
				// logged in and connected user, do nothing
			} else {
				FB.login(usa_facebookLoginCallback, {perms:'publish_stream'});
			}
		});
	}
}

function usa_facebookSignOut()
{
	FB.getLoginStatus(function(response)
	{
		if (response.session)
		{
			FB.logout(function(response) { 
				$('#shareFacebook').removeAttr('checked');
			});
		}
	});
}

function usa_facebookLoginCallback(response)
{
	usa_debug('fn: usa_facebookLoginCallback');
	if (response.perms)
	{		
		if (response.perms == '[]')
		{
			// no permissions granted, show message
			usa_debug('no permissions granted');
		}
		else
		{
			// user granted some permissions.
			// perms is a comma separated list of granted permissions
			if (response.session)
			{
				usa_debug('user connected succesfully');
				usa_checkFacebook();
			}
			else
			{
			    // user is not logged in, lost session?
				usa_debug('user is not logged in, lost session');
			}
		}
    }
	else
	{
		// no permissions granted, show message
		usa_debug('no permissions granted');
	}
}

function usa_shareComment(comment, source)
{
	var shareFB = (typeof $('input[name="shareFacebook"]:checked').val() != "undefined" ? $('input[name="shareFacebook"]:checked').val() : '0');
	var shareTW = (typeof $('input[name="shareTwitter"]:checked').val() != "undefined" ? $('input[name="shareTwitter"]:checked').val() : '0');

	if (shareFB == 1 || shareTW == 1)
	{
		$.ajax({
			type: "POST",
			dataType: 'json',
			url: '/app/chatter/share-comment.php',
			data: 'show=' + usa_chatterSite + '&comment=' + comment + '&source=' + escape(source) + 
					'&shareFB=' + shareFB +
					'&shareTW=' + shareTW,
			success: function (response) {
				if (response.success == 1)
				{
					// do nothing for success
				}
				else
				{
					$('#shareMsg span').html('ERROR: ' + response.errors[0] + ' Please try again.');
					$('#shareMsg').fadeIn('slow');
				}
			}
		});
	}
}

if (typeof usa_readCookie == 'undefined')
{
	usa_readCookie = function (name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	}
}

function usa_displayFacebookConnected(id, name)
{
	$('#shareFacebookContainer .shareInput').css('display', 'block');
	usa_updateCharsRemaining();
}

function usa_displayTwitterConnected(avatar, name)
{
	$('#shareTwitterContainer .shareInput').css('display', 'block');
	usa_updateCharsRemaining();
}

function usa_setupFacebook(meObject)
{
	usa_displayFacebookConnected(meObject.id, meObject.name);
}

function usa_checkFacebook()
{
	FB.getLoginStatus(function(response) {
		if (response.session) {
			// logged in and connected user, someone you know
			FB.api('/me', function(response) {
				usa_setupFacebook(response);
			});
		} else {
			// no user session available, someone you dont know
 		}
	});
	usa_updateCharsRemaining();
}

function usa_setupTwitter(avatar, username, name)
{
	usa_displayTwitterConnected(avatar, name);
}

function usa_updateCharsRemaining()
{
	if (typeof $('input[name="shareTwitter"]:checked').val() != "undefined")
	{
		var bitlyLength = 21;
		var hashTagLength = usa_chatterSite.length + 2;
		maxChars = 140 - bitlyLength - hashTagLength;
	}
	else
	{
		maxChars = 1000;
	}

	EchoSubmit.config.set('plugins.SubmitTextCounter.limit', maxChars);
	EchoSubmit.rerender('counterLabel');
}

function usa_checkTwitter()
{
	if (usa_readCookie('usa_twitter_token'))
	{
		usa_updateCharsRemaining();
	}
}

function usa_closeMsg()
{
	$('#shareMsg').fadeOut('slow');
}

function usa_pauseStream()
{
	EchoRiverClient.stopLiveUpdates();
	EchoRiverClient.activities.paused = true;
	EchoRiverClient.rerender("state");
}

function usa_resumeStream()
{
	EchoRiverClient.startLiveUpdates();
	EchoRiverClient.activities.paused = false;
	EchoRiverClient.rerender("state");
}

function usa_pauseResumeStream()
{
	if ($('#pauseResume').hasClass('live'))
	{
		usa_pauseStream();
		$('#pauseResume').removeClass('live');
		$('#pauseResume').addClass('paused');
	}
	else
	{
		usa_resumeStream();
		$('#pauseResume').addClass('live');
		$('#pauseResume').removeClass('paused');
	}
}

if (typeof usa_readCookie == 'undefined')
{
	usa_readCookie = function (name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	}
}

function usa_setMarker(marker)
{
	EchoSubmit.config.set("plugins.MetadataTweaks.markers", [marker]);
    EchoSubmit.rerender("markers");
}

function usa_initChatter(type)
{
	var maxChars = 60;
	var query = usa_chatterObj.allQueryCondensed;

	if (typeof usa_chatterPageType == 'undefined')
	{
		if (type == 'condensed')
		{
			maxChars = 60;
			query = usa_chatterObj.allQueryCondensed;
		}
		else if (type == 'expanded')
		{
			maxChars = 2000;
			query = usa_chatterObj.allQuery;
		}
	}
	else if (usa_chatterPageType == 'FULL')
	{
		maxChars = 2000;
		query = usa_chatterObj.allQuery;
	}
		
	if (usa_chatterSite == 'loci')
	{
		/*
		initQuery = usa_chatterObj.questionsQuery;
		jQuery('#askVincentAnswers').removeClass('selected');
		jQuery('#askVincentQuestions').addClass('selected');
		$('#askVincentStreamToggles a').fadeIn('fast');
		jQuery('#navAskVincent').addClass('selected');
		jQuery('#navAll').removeClass('selected');
		jQuery('#askVincent').fadeIn('slow');
		*/

		initQuery = usa_chatterObj.allQuery;
		jQuery('#askVincentAnswers').removeClass('selected');
		jQuery('#askVincentQuestions').addClass('selected');
		//$('#askVincentStreamToggles a').fadeIn('fast');
		//jQuery('#navAskVincent').addClass('selected');
		//jQuery('#navAll').removeClass('selected');
		//jQuery('#askVincent').fadeIn('slow');
	}
	
   EchoRiverClient = new Echo.Stream({
          "target": document.getElementById("echo-stream"),
          "appkey": "prod.usanetwork",
		  "query": query,
          "maxBodyCharacters": maxChars,
          "viaLabel": {"icon": true,"text": true},
          "reTag": false,
          "streamStateLabel": {"icon": true,"text": true},
          "aggressiveSanitization": false,
          "plugins": [
			{
            	"name": "Whirlpools",
                "after": 2,
                "clickable": true
          	},
          	{
            	"name": "CommunityFlag"
    	  	},
    	  	{
    			"name": "SourceIconTweaks",
    			"icons": {
    				"usanetwork": "http://www.usanetwork.com/favicon.png"
    			}
    		},
        	{
    	      	"name": "Reply",
    	      	"nestedPlugins": [{
    	              "name": "FormAuth",
    	              "identityManagerLogin": identityManager, 
    	              "identityManagerSignup": identityManager,
    	              "identityManagerEdit": identityManager,
    	              "submitPermissions": "forceLogin"
    	          }]
    	    }
          ]
  });

   Echo.Broadcast.subscribe("User.onInit",
		    function(topic, data, contextId) {
				usa_checkFacebook();
				usa_checkTwitter();
				EchoSubmit.rerender("shareContainer");
		    }
		);

		Echo.Broadcast.subscribe("User.onInvalidate",
		    function(topic, data, contextId) {
				EchoSubmit.rerender("shareContainer");
		    }
		);
   
   if (typeof usa_chatterPageType == 'undefined')
   {
	  	Echo.Broadcast.subscribe("Stream.onReady",
			function(topic, data, contextId) {
	  			usa_streamLoading = false;
	  			if ($('#usa_chatter').hasClass('open') && typeof usa_chatterPageType == 'undefined')
				{
	  				$('.echo-stream-more').css('display', 'none');
				}
	  			usa_updateStreamScroll();
	  			setTimeout("usa_refreshChatterScroll()", 1000);
			}
		);
	
		Echo.Broadcast.subscribe("Stream.onMoreButtonPress",
			function(topic, data, contextId) {
				usa_streamLoading = true;
				$('.echo-stream-more').css('display', 'block');
			}
		);
   }
}
