$(document).ready(init);
//-------------------------------------------------------------------------------------------------
function init(){
	scoreBoardInit();
	videoThumbInit();
	initTweetFeed();
	stylingInit();
	connectPodCasts();
}
//-------------------------------------------------------------------------------------------------



//*************************************************************************************************
//BREAKING NEWS
//***********************************************************************************************
var bNHeadline;
//-----------------------------------------------------------------------------------------------
function initBreakNews(headline){
	bNHeadline = headline;
	setTimeout(animateOnDiv, 1500);
}
//-----------------------------------------------------------------------------------------------
function loadBreakingNewsSwf(){
	var flashV = genFlashVars("#A80F09");
	flashV["vars"]["headline"] = bNHeadline;
	swfobject.embedSWF(document.MEDIA_URL+"flash/breakingNewsBar.swf", "breakingNews_cnt", 950, 67, "9.0.28", document.MEDIA_URL+"flash/flashExpressInstall/expressInstall.swf", flashV["vars"], flashV["params"], flashV["attributes"]);
}
//-----------------------------------------------------------------------------------------------
function animateOnDiv(){
	$("div#breakingNews").css("visibility", "visible");
	$("div#breakingNews").css("height", 0);
	$("div#breakingNews").css("opacity", 0);
	$("div#breakingNews").animate({'height': 67, 'opacity': 1}, 500, loadBreakingNewsSwf);
}
//-----------------------------------------------------------------------------------------------


//*************************************************************************************************
//POD CASTS
//************************************************************************************************
var audioPods;
var currentPod;
//-------------------------------------------------------------------------------------------------
function connectPodCasts(){
	audioPods = $("div.exclusiveAudio div#list ul li");
	addListenLinkFunc();
}
//-------------------------------------------------------------------------------------------------
function addListenLinkFunc(){
	$(audioPods).each(onEach);
	
	function onEach(index){
		$($("div#links a", audioPods[index])[0]).click(clickListenAction);
	}
}
//-------------------------------------------------------------------------------------------------
function turnOffAllOtherPod(){
	if(currentPod != null){
		$(currentPod)[0].stopPlayer();
	}
}
//------------------------------------------------------------------------------------------------
function clickListenAction(){
	var swfID = $(this).attr("control_id");
	var targPod = $("object#control_"+swfID, audioPods);
	$(targPod)[0].startPlayer();
}
//-------------------------------------------------------------------------------------------------
function clickAudioPod(swfID){
	turnOffAllOtherPod();
	currentPod = $("object#control_"+swfID, audioPods);
}
//-------------------------------------------------------------------------------------------------



//*************************************************************************************************
//SCOREBOARD
//*************************************************************************************************
var scoreBoxAmount;
var scoreBoxBoardWidth;
var scoreBoardAdvanceCount = 1;
var scoreBoardNumberOfAdvances;
var scoreBoxAnimating = false;
var scoreBoxVelocity;
var scoreBoxAdvanceStates;
var SCORE_BOXES_PER_SLIDE = 12;
var SCORE_BOX_SPACE = 55;
//-------------------------------------------------------------------------------------------------
function scoreBoardInit(){
	scoreBoxAmount = $("div#footer div.scoreBoard ul li").length;
	
	if(scoreBoxAmount > 0){
		var scoreUL = $("div#footer div.scoreBoard ul");
		
		$("div#footer div.slideBox").css("left", 0);
		
		scoreBoxBoardWidth = parseFloat($("div#footer div.scoreBoard").css("width"));
		scoreBoardNumberOfAdvances = Math.ceil(scoreBoxAmount/SCORE_BOXES_PER_SLIDE);
		
		scoreBoxAdvanceStates = setAdvanceStates(scoreBoxAmount, SCORE_BOXES_PER_SLIDE, SCORE_BOX_SPACE, scoreBoardNumberOfAdvances);
		
		setScoreSliderWidth();
		setScoreArrorButtonStates();
	}
}
//-------------------------------------------------------------------------------------------------
function setAdvanceStates(currAmount, amountPerSlide, unitSpace, numOfAdvances){
	var stateArray = new Array();
	
	if(currAmount > amountPerSlide){
		var sA = currAmount - amountPerSlide;
		
		stateArray.push(0);
		for(var i = 1; i<numOfAdvances; i++){

			var chunkAmount;
			if(sA >= amountPerSlide){
				sA = sA - amountPerSlide;
				chunkAmount = amountPerSlide;
			}else{
				chunnkAmount = sA;
			}
			
			stateArray.push((sA * unitSpace)*-1);
			
		}
	}
	
	return stateArray;
}
//-------------------------------------------------------------------------------------------------
function setScoreSliderWidth(){
	$("div#footer div.slideBox").css("width", (scoreBoxBoardWidth*SCORE_BOX_SPACE));
}
//-----------------------------------------------------------------------------------------------
function setScoreArrorButtonStates(){
	if(scoreBoxAmount <= SCORE_BOXES_PER_SLIDE){
		$("div#footer div.leftButt").css("visibility", "hidden");
		$("div#footer div.righttButt").css("visibility", "hidden");
	}else{
		
		if(scoreBoardAdvanceCount == 1){
			turnOffArrow($("div#footer div.leftButt"));
		}else{
			turnOnArrow($("div#footer div.leftButt"), scoreAdvanceLeft, "-28px");
		}
		
		if(scoreBoardAdvanceCount == scoreBoardNumberOfAdvances){
			turnOffArrow($("div#footer div.rightButt"));
		}else{
			turnOnArrow($("div#footer div.rightButt"), scoreAdvanceRight, "-28px");
		}
	
	}
}
//------------------------------------------------------------------------------------------------
function turnOnArrow(arrow, func, nudge){
	$(arrow).click(func);
	$(arrow).css("background-position", "left "+nudge);
	$(arrow).css("cursor", "pointer");
}
//------------------------------------------------------------------------------------------------
function turnOffArrow(arrow){
	$(arrow).unbind("click");
	$(arrow).css("background-position", "left 0px");
	$(arrow).css("cursor", "default");
}
//-------------------------------------------------------------------------------------------------
function slideScoreBox(){
	scoreBoxAnimating = true;
	var advanceVal =  parseFloat(scoreBoxAdvanceStates[scoreBoardAdvanceCount-1]);
	$("div#footer div.slideBox").animate({left: advanceVal}, 500, doneScoreSlideAnimation);
}
//------------------------------------------------------------------------------------------------
//--------
//HANDLERS
//------------------------------------------------------------------------------------------------
function scoreAdvanceLeft(){
	if(!scoreBoxAnimating){
		scoreBoxVelocity = 1;
		scoreBoardAdvanceCount += (scoreBoxVelocity*-1);
		setScoreArrorButtonStates();
		slideScoreBox();
	}
}
//-------------------------------------------------------------------------------------------------
function scoreAdvanceRight(){
	if(!scoreBoxAnimating){
		scoreBoxVelocity = -1;
		scoreBoardAdvanceCount += (scoreBoxVelocity*-1);
		setScoreArrorButtonStates();
		slideScoreBox();
	}
}
//-------------------------------------------------------------------------------------------------
function doneScoreSlideAnimation(){
	scoreBoxAnimating = false;
}
//-------------------------------------------------------------------------------------------------




//*************************************************************************************************
//VIDEO THUMBS
//*************************************************************************************************
var videoThumbType; //homePage or watchItAll
var videoThumbAmount;
var videoThumbFrameWidth;
var videoThumbVelocity;
var videoThumbAdvanceCount = 1;
var videoThumbNumberOfAdvances;
var videoThumbAdvanceStates;
var videoThumbAnimating = false;
var THUMB_SPACE = 98;
var THUMB_AMOUNT_PER_SLIDE = 5;
//-------------------------------------------------------------------------------------------------
function videoThumbInit(){
	
	videoThumbAmount = $("div.videoPlayer div#thumbSelectors ul li").length;
	
	if(videoThumbAmount > 0){
		videoThumbType = ($("div.videoPlayer").attr("type"));
		
		var thumbUL = $("div.videoPlayer div#thumbSelectors ul");
		$($("li div", thumbUL)[0]).attr("playing", "true");
		
		var initVideo = $($("li div", thumbUL)[0]).attr("video");
		var initVideoID = $($("li div", thumbUL)[0]).attr("vidID");
		
		addVideoPlayer(initVideo);
		swapFaceBookStatus(initVideoID);
		
		if(videoThumbType == "homePage"){
			$("div.videoPlayer div#slideBox").css("left", 0);
			
			videoThumbFrameWidth = parseFloat($("div.videoPlayer div#thumbs").css("width"));
			videoThumbNumberOfAdvances = Math.ceil(videoThumbAmount/THUMB_AMOUNT_PER_SLIDE);
			videoThumbAdvanceStates = setAdvanceStates(videoThumbAmount, THUMB_AMOUNT_PER_SLIDE, THUMB_SPACE, videoThumbNumberOfAdvances);
			
			setVideoSliderWidth();
			setVideoButtonStates();
		}
		
		turnThumbStateOn($("li div[playing=true]", thumbUL));
		
		addVideoThumbsFunc();
	}
}
//-------------------------------------------------------------------------------------------------
function addVideoPlayer(initVideo){
	var flashVV = genFlashVars("#000000", initVideo, $("div.videoPlayer").attr("stillURL"));
	swfobject.embedSWF(document.MEDIA_URL+"flash/videoPlayer.swf", "videoPlayer_cnt", 496, 304, "9.0.28", document.MEDIA_URL+"flash/flashExpressInstall/expressInstall.swf", flashVV["vars"], flashVV["params"], flashVV["attributes"]);
}
//-------------------------------------------------------------------------------------------------
function setVideoSliderWidth(){
	$("div.videoPlayer div#slideBox").css("width", (videoThumbAmount*THUMB_SPACE));
}
//-------------------------------------------------------------------------------------------------
function addVideoThumbsFunc(){
	$("div.videoPlayer div#thumbSelectors ul li div.thumbWrapper").each(function(index) {
		$(this).hover(hoverOverVideoThumb, hoverOutVideoThumb);
		$(this).click(clickVidThumb);
	});
}
//-----------------------------------------------------------------------------------------------
function setVideoButtonStates(){
	if($("div.videoPlayer div#thumbSelectors ul li div.thumbWrapper").length <= THUMB_AMOUNT_PER_SLIDE){
		$("div.videoPlayer div#leftButt").css("visibility", "hidden");
		$("div.videoPlayer div#rightButt").css("visibility", "hidden");
	}else{
	
		if(videoThumbAdvanceCount == 1){
			turnOffArrow($("div.videoPlayer div#leftButt"));
		}else{
			turnOnArrow($("div.videoPlayer div#leftButt"), advanceLeft, "-27px");
		}
		
		if(videoThumbAdvanceCount == videoThumbNumberOfAdvances){
			turnOffArrow($("div.videoPlayer div#rightButt"));
		}else{
			turnOnArrow($("div.videoPlayer div#rightButt"), advanceRight, "-27px");
		}
	}
}
//-------------------------------------------------------------------------------------------------
function slideVideoBox(){
	videoThumbAnimating = true;
	var advanceVal =  parseFloat(videoThumbAdvanceStates[videoThumbAdvanceCount-1]);
	$("div.videoPlayer div#slideBox").animate({left: advanceVal}, 500, doneVideoSlideAnimation);
}
//-------------------------------------------------------------------------------------------------
function turnThumbStateToHover(butt){
	if(videoThumbType == "homePage"){
		$("img", butt).css("left", -85);
	}else{
		$($(butt).parent()).css("background-color", "#e5e5e5");
	}
}
//-------------------------------------------------------------------------------------------------
function turnThumbStateOn(butt){
	if(videoThumbType == "homePage"){
		$("img", butt).css("left", -170);
	}else{
		$($(butt).parent()).css("background-color", "#e5e5e5");
	}
}
//-------------------------------------------------------------------------------------------------
function turnThumbStateOff(butt){
	if(videoThumbType == "homePage"){
		$("img", butt).css("left", 0);
	}else{
		$($(butt).parent()).css("background-color", "#FFFFFF");
	}
}
//-------------------------------------------------------------------------------------------------
//--------
//HANDLERS
//--------
	function advanceLeft(){
	if(!videoThumbAnimating){
		videoThumbVelocity = 1;
		videoThumbAdvanceCount += (videoThumbVelocity*-1);
		setVideoButtonStates();
		slideVideoBox();
	}
}
//-------------------------------------------------------------------------------------------------
function advanceRight(){
	if(!videoThumbAnimating){
		videoThumbVelocity = -1;
		videoThumbAdvanceCount += (videoThumbVelocity*-1);
		setVideoButtonStates();
		slideVideoBox();
	}
}
//-------------------------------------------------------------------------------------------------
function doneVideoSlideAnimation(){
	videoThumbAnimating = false;
}
//-------------------------------------------------------------------------------------------------
function hoverOverVideoThumb(){
	if($(this).attr("playing") != "true"){
		turnThumbStateToHover(this);
	}
}
//-------------------------------------------------------------------------------------------------
function hoverOutVideoThumb(){
	if($(this).attr("playing") != "true"){
		turnThumbStateOff(this);
	}
}
//-------------------------------------------------------------------------------------------------
function clickVidThumb(){
	if($(this).attr("playing") != "true"){
		//change visual state
		switchOldVideoThumbPlayingStateBack();
		turnThumbStateOn($(this));
		$(this).attr("playing", "true");
		
		//pass vars to flash
		document.getElementById("videoPlayer_cnt").changeVideo($(this).attr("video"));
		swapFaceBookStatus($(this).attr("vidID"));
		
		//change words
		$("div.videoPlayer div#title").html($(this).attr("title"));
		$("div.videoPlayer div#date").html($(this).attr("date"));
		$("div.videoPlayer div#description").html($(this).attr("description"));
	}
}
//-------------------------------------------------------------------------------------------------
function switchOldVideoThumbPlayingStateBack(){
	turnThumbStateOff($("div.videoPlayer div#thumbSelectors ul li div.thumbWrapper[playing=true]"));
	$("div.videoPlayer div#thumbSelectors ul li div.thumbWrapper[playing=true]").removeAttr("playing");
}
//-------------------------------------------------------------------------------------------------
function swapFaceBookStatus(id){
	if(videoThumbType == "watchItAll"){
		$("div.videoPlayer div#button").empty();
		
		var baseURL = $("div.videoPlayer div#button").attr("base_url");
		
		$("div.videoPlayer div#button").append('<iframe src="http://www.facebook.com/plugins/like.php?href='+baseURL+id+'&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;" allowTransparency="true"></iframe>');
	}	
}
//------------------------------------------------------------------------------------------------





//*************************************************************************************************
//STYLING
//*************************************************************************************************
var currentAdToHide;
//-------------------------------------------------------------------------------------------------
function stylingInit(){
	addHideAddFunc();
	removeLastBorderOnLists();
	addRssFeedIconFunc();
	addSubNavFunc();
}
//-------------------------------------------------------------------------------------------------
function addHideAddFunc(){
	$("div.content div#hideAdButton").click(adHideClickHand);
}
//-------------------------------------------------------------------------------------------------
function removeLastBorderOnLists(){
	$.each($("div.plugin_twitter"), removeBorder);
	$.each($("div.content div.headlineList"), removeBorder);
	$.each($("div.content div.eventsAndPromotions"), removeBorder);
	$.each($("div.content div.insights"), removeBorder);
	$.each($("div.content div.exclusiveAudio"), removeBorder);
	$.each($("div.content div#blogInsights"), removeBorder);
	
	function removeBorder(index, ele){
		lis = $("ul li", ele);
		$(lis[lis.length-1]).css("border-bottom", "none");
	}
}
//-------------------------------------------------------------------------------------------------
function addRssFeedIconFunc(){
	$("div.mainNav li#rssFeedLink").hover(rssIconOn, rssIconOff);
}
//-------------------------------------------------------------------------------------------------
function addSubNavFunc(){
	$("div.mainNav li.topMenu").each(onEach);
	
	function onEach(index){
		$(this).hover(subHoverInHand, subHoverOutHand);
	}
}
//-------------------------------------------------------------------------------------------------
function turnOnMainButt(targ){
	$("a", targ).first().css("color", "#000000");
	$(targ).css("background-color", "#9d9999");
}
//-------------------------------------------------------------------------------------------------
function turnOffMainButt(targ){
	$("a", targ).first().css("color", "#FFFFFF");
	$(targ).css("background-color", "transparent");
}
//-------------------------------------------------------------------------------------------------
//HANDLERS
//-------------------------------------------------------------------------------------------------
function adHideClickHand(e){
	var ad = $(this).parent();
	$(ad).animate({'height':'0px', "opacity":"0"}, 750, hideObj);

	currentAdToHide = $(ad);
}
//-------------------------------------------------------------------------------------------------
function hideObj(){
	$(currentAdToHide).css("display", "none");
}
//-------------------------------------------------------------------------------------------------
function rssIconOn(){
	$("div", this).css("background-position", "left -17px");
}
//-------------------------------------------------------------------------------------------------
function rssIconOff(){
	$("div", this).css("background-position", "left top");
}
//-------------------------------------------------------------------------------------------------
function subHoverInHand(){
	$("ul", this).css("visibility", "visible");
	turnOnMainButt(this);
}
//-------------------------------------------------------------------------------------------------
function subHoverOutHand(){
	$("ul", this).css("visibility", "hidden");
	turnOffMainButt(this);
}
//-------------------------------------------------------------------------------------------------







//*************************************************************************************************
//TWITTER
//*************************************************************************************************
var twitterUser = "810whb";
var tweetList = "all";
var tweetsToPrint = 5;
var tweetCallCavity;
var acquiringTweets = true;
//-------------------------------------------------------------------------------------------------
function initTweetFeed(){
	if($("div.content div.plugin_twitter").length > 0){
		setMoreTweetsFunc();
		createTweetCallCavity();
		
		if($("div.content div.innerContent").length > 0){
			tweetsToPrint = 20;
			addButtonFunc();
		}
		
		injectNewFeed();
	}
}
//-------------------------------------------------------------------------------------------------
function setMoreTweetsFunc(){
	$("div.plugin_twitter div#moreButt a").attr("href", "http://twitter.com/"+twitterUser+"/"+tweetList);
}
//-------------------------------------------------------------------------------------------------
function addButtonFunc(){
	$("div.plugin_twitter div#catButtons div").each(onEach);

	function onEach(index){
		$(this).click(tweetBtnHand);
		$(this).hover(tweetFeedBtnInHand, tweetFeedBtnOutHand);
	}
}
//-------------------------------------------------------------------------------------------------
function createTweetCallCavity(){
	$("div.content div.plugin_twitter").append("<div class='tweetCallCavity'></div>");
}
//-------------------------------------------------------------------------------------------------
function clearTweets(){
	$("div.tweetCallCavity").empty();
	$("div.plugin_twitter ul#twitter_update_list").empty();
}
//-------------------------------------------------------------------------------------------------
function injectNewFeed(){
	acquiringTweets = true;
	$("div.tweetCallCavity").append("<script type='text/javascript' src='http://api.twitter.com/1/"+twitterUser+"/lists/"+tweetList+"/statuses.json?callback=printTweets'></script>");
}
//-------------------------------------------------------------------------------------------------
function printTweets(twitters) {
	if(twitters.length < tweetsToPrint){
		tweetsToPrint = twitters.length;
	}
	
	
  var statusHTML = [];
  for (var i=0; i<tweetsToPrint; i++){
    var username = "http://twitter.com/"+twitters[i].user.screen_name;
    var image_url = twitters[i].user.profile_image_url;
    var status_id = twitters[i].id;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
      return '<a href="'+url+'">'+url+'</a>';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
    });
    
    var html = '<li><div class="twitter_profile_pic"><a href="' + username + '"><img height="48" width="48" src="' + image_url + '" /></a></div><div id="twitterTextBasedContent"><div class="twitter_user"><a href="http://twitter.com/' + twitters[i].user.screen_name + '/">' + twitters[i].user.screen_name + '</a></div><div class="twitter_status">'+status+'</div><div class="twitter_status_details_time"><a href="http://twitter.com/'+username+'/statuses/'+status_id+'">'+relative_time(twitters[i].created_at)+'</a></div><div class="twitter_status_details_actions"><a id="reply" href="http://twitter.com/?status=@'+username+'&in_reply_to_status_id='+status_id+'&in_reply_to='+username+'">Reply</a><a id="retweet" href="http://twitter.com/?status=RT @'+username+' '+twitters[i].text.replace('"', "'")+'">Retweet</a><div class="clearFloat"></div></div></div></li>'
    
    statusHTML.push(html);
  }
  document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
  twitterFeedCleanUp();
}
//-------------------------------------------------------------------------------------------------
function relative_time(time_value) {
  var values = time_value.split(" ");
  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
  var parsed_date = Date.parse(time_value);
  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
  delta = delta + (relative_to.getTimezoneOffset() * 60);

  if (delta < 60) {
    return 'less than a minute ago';
  } else if(delta < 120) {
    return 'about a minute ago';
  } else if(delta < (60*60)) {
    return (parseInt(delta / 60)).toString() + ' minutes ago';
  } else if(delta < (120*60)) {
    return 'about an hour ago';
  } else if(delta < (24*60*60)) {
    return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
  } else if(delta < (48*60*60)) {
    return '1 day ago';
  } else {
    return (parseInt(delta / 86400)).toString() + ' days ago';
  }
}
//-------------------------------------------------------------------------------------------------
function twitterFeedCleanUp(){
	removeLastBorderOnLists();
	acquiringTweets = false;
}
//-------------------------------------------------------------------------------------------------
function setOffTweetBtnState(btn){
	$(btn).css("background-color", "transparent");
	$(btn).css("color", "#FFFFFF");
	$(btn).css("font-weight", "normal");
}
//-------------------------------------------------------------------------------------------------
function setNewTweetOnButton(newOnButton){
	var oldOn = $("div.plugin_twitter div#catButtons div#on");
	$(oldOn).removeAttr("id");
	setOffTweetBtnState($(oldOn));
	
	$(newOnButton).attr("id", "on");
}
//-------------------------------------------------------------------------------------------------
function tweetClickAction(btn){
	acquiringTweets = true;
	setNewTweetOnButton(btn);
	clearTweets();
		
	tweetList = $(btn).attr("list");
	
	setMoreTweetsFunc();
	injectNewFeed();
}
//-------------------------------------------------------------------------------------------------
//HANDLERS
//-------------------------------------------------------------------------------------------------
function tweetBtnHand(){
	if(!acquiringTweets){
		tweetClickAction(this);
	}
}
//-----------------------------------------------------------------------------------------------
function tweetFeedBtnInHand(){
	$(this).css("background-color", "#FFFFFF");
	$(this).css("color", "#A80F09");
}
//-------------------------------------------------------------------------------------------------
function tweetFeedBtnOutHand(){
	if($(this).attr("id") != "on"){
		setOffTweetBtnState(this);
	}
}
//-------------------------------------------------------------------------------------------------

