/*
// TWiT LIVE JS DOCUMENT
// CREATED: 2009 JULY 24 
// BY: KEVIN PORTEOUS
// WEB: HTTP://WWW.KEVINPORTEOUS.COM
// EMAIL: KEVIN[at]KEVINPORTEOUS.COM
//
// LAST UPDATED: 2010 JANUARY 16
*/

var defaultStream = "#ustream"; //"#bitgravity" "#bitgravity-high" "#ustream" "#audio" "#justintv"
var updateFrequecey = 120; // update frequency of ajax data

var update = setInterval( ajaxCall, updateFrequecey * 1000); // make ajax calls at regular intervals

$(document).ready(function(){

// #################################################################### \\
// # SHOW TIP LEO FANCY BOX        							          # \\                    
// #################################################################### \\

$("a.fb").fancybox({ 'frameWidth' : 400, 'frameHeight' : 410, 'overlayShow' : false, 'zoomSpeedIn' : 600, 'zoomSpeedOut' : 500, 'easingIn' : 'easeOutBack', 'easingOut'	: 'easeInBack' });

// #################################################################### \\
// # CHECK IF COOKIE HAS BEEN SET							          # \\                    
// #################################################################### \\

if ( $.cookie('TWiTStream') == null ) { var selectStream = defaultStream; } else { var selectStream = $.cookie('TWiTStream'); };

// #################################################################### \\
// # PLAY DEFAULT OR SELECTED STREAM						          # \\                    
// #################################################################### \\

ajaxCall();

playStream(selectStream);

$(".popout").popupwindow(profiles);

$('#streamsNav').find('a').click(function () { playStream(this.hash); return false; });

$('#showcalendar').click(function () {
	
	// load google calendar iframe
	$("#calendar").empty().prepend('<iframe src=\"http://www.google.com/calendar/embed?src='
						   + 'r8psn8mpajnfa2703k43l6o014' // Google Calendar Code
						   + '@group.calendar.google.com&amp;ctz='
						   + 'America/Los_Angeles' // Calendar Timezone
						   + '&amp;program&amp;mode='
						   + 'AGENDA' // Calendar Type
						   + '\" frameborder=\"0\" width=\"100%\" height=\"450\" style=\"background-color:#FFF;\"></iframe>'
						   + '<div id=\"calendar_links\">'
						   + '<a href=\"http://www.google.com/calendar/feeds/'
						   + 'r8psn8mpajnfa2703k43l6o014' // Google Calendar Code
						   + '@group.calendar.google.com/public/basic\" target=\"_blank\">'
						   + '<img src=\"assets/images/xml_icon.jpg\" alt=\"XML Calendar\" width=\"32\" height=\"16\" border=\"0\" />'
						   + '</a>'
						   + '</div>'
	).slideToggle("slow");
	
	return false;

});


}); // END DOC READY

// #################################################################### \\
// # SCRIPTING FOR POPOUT WINDOW (START)							  # \\                    
// #################################################################### \\

var profiles =
{
	video:
	{
		height:452,
		width:768,
		top:0,
		left:0,
		clearVideo:1,
		resizable:0,
		location:0

	},

	chat:
	{
		height:452,
		width:640,
		top:0, 
		left:768,
		location:0
	},

	survey:
	{
		height:500,
		width:800,
		top:0, 
		left:0,
		location:0,
		scrollbars:1
	},
	
	liveblog:
	{
		height:500,
		width:875,
		top:0, 
		left:0,
		location:0,
		scrollbars:0
	}

};

// #################################################################### \\
// # SCRIPTING FOR POPOUT WINDOW (END)								  # \\                    
// #################################################################### \\


// #################################################################### \\
// # TWiT Time (START)												  # \\                    
// #################################################################### \\

$(document).keydown(function (e) { 

	if(e.which == 32) { 

	function isDST() {

	   var d=new Date();
	   var dY=d.getFullYear();
	   var d1=new Date(dY,0,1,0,0,0,0); 
	   var d2=new Date(dY,6,1,0,0,0,0);
	   var d1a=new Date((d1.toUTCString()).replace(" GMT",""));
	   var d2a=new Date((d2.toUTCString()).replace(" GMT",""));
	   var o1=(d1-d1a)/3600000;
	   var o2=(d2-d2a)/3600000;
	   var rV=0;
	   if (o1!=o2) {
			d.setHours(0);d.setMinutes(0);d.setSeconds(0);d.setMilliseconds(0);
			var da=new Date((d.toUTCString()).replace(" GMT",""));
			o3=(d-da)/3600000;		
			rV=(o3==o1)?0:1;
	   };
		return rV;	
	
	}; // EOF isDST??

	var dst = isDST();

	if(dst == 0){ timeOffset = -8; } else { timeOffset = -7; };

	var twitTime = {
		utc: true,
		utc_offset: timeOffset // TIME OFFSET
	};

	$('.clock-time').jclock(twitTime);

	$('#clock').fadeIn("Slow").animate({opacity: 1.0}, 5000).fadeOut("Slow");

	return false; 

	} 
	
});

// #################################################################### \\
// # TWiT TIME (END)												  # \\                    
// #################################################################### \\

// #################################################################### \\
// # PLAY STREAM (START)											  # \\                    
// #################################################################### \\

function playStream(a) {
									   
		try {

		// set all buttons ti off
		$('#streamsNav a').find('img').each(function() {
		
			var src = $(this).attr("src").replace("_off", "").match(/[^\.]+/) + "_off.jpg";
			$(this).attr("src", src);
		
		});
		
		// set selected to on
		$(a).find('img').each(function() {
		
			var src = $(this).attr("src").replace("_off", "").match(/[^\.]+/) + ".jpg";
			$(this).attr("src", src);
		
		});
		
		} catch(err) { /* THERE WAS AN ERROR */ };
	
		loadStream(a);
		
		// set the stream cookie
		
		$.cookie('TWiTStream', a);
				
		return false;
	
}; // EOF platStream


// #################################################################### \\
// # PLAY STREAM (END)											  # \\                    
// #################################################################### \\

// #################################################################### \\
// # AJAX CALLS (START)						  						  # \\                    
// #################################################################### \\

function ajaxCall(){
	
	// GET VIEWERS / STREAM STATUS
	
	var noCache = Date();
	
	$('#view-count li').remove();
	
	$.getJSON("../data/stream.json", { "noCache": noCache }, function(data) {
	
	var obj = (data);
	
	$.each(obj, function(i, val) {

		$('#view-count').append('<li>'+(obj[i].name) +': ' + (obj[i].count) + '</li>');
		if(obj[i].status == 'true'){ $(i).addClass('streamUp');  $(i).removeClass('streamDown'); } else { $(i).addClass('streamDown'); $(i).removeClass('streamUp');};
		
	});

		$('#view-count').innerfade({ animationtype: 'slide', speed: 100, timeout: 5000, containerheight: '1.5em' });
	
	});	
	
	// GET PODCASTS

	$.ajax({
		url: "../data/podcast.txt",
		cache: true,
		success: function(html){
		
			$("#podcasts").html(html);
		
		}
	});

	
	
};

// #################################################################### \\
// # AJAX CALLS (END)						  						  # \\                    
// #################################################################### \\


// #################################################################### \\
// # REPLACE STREAM (START)					  						  # \\                    
// #################################################################### \\

function loadStream(newStream){

	// clear all layers
	$('#video').removeClass('audio_play');
	$('#popoutvideo').show();
	$('#bull1').show();
	$('#bitgravityBandwith').hide();
	$("#now_playing").hide();



switch(newStream){
	
	case "#bitgravity":	
	var so = new SWFObject( stablerelease, "TWiTBitGravity", "100%", "100%", "9.0.115", "#000000");
	so.addVariable("File", "http://bglive-a.bitgravity.com/twit/live/low");
	so.addVariable("FileLabel", "Standard Quality");
	so.addVariable("FileBitrate", "400");
	so.addVariable("DefaultLevel", "1");
	so.addVariable("Mode", "live");
	so.addVariable("AutoPlay", "true");
	so.addVariable("ScrubMode", "simple");
	so.addVariable("BufferTime", "3");
//	so.addVariable("VideoFit", "automatic");
	so.addVariable("VideoFit", "stretch");
	so.addVariable("DefaultRatio", "1.777778");
	so.addVariable("LogoImage", "http://bitcast-b.bitgravity.com/player/6/assets/bglogo100.png");
	so.addVariable("LogoPosition", "topright");
	so.addVariable("LogoLink", "http://bitgravity.com");
	so.addVariable("ColorBase", "#3493b0");
	so.addVariable("ColorControl", "#ffffff");
	so.addVariable("ColorHighlight", "#a2dbec");
	so.addVariable("ColorFeature", "#a2dbec");
	so.addVariable("AutoBitrate", "off");
	so.addVariable("ForceRatio", "true");
	so.addVariable("DefaultRatio", "16/9");
	so.addVariable("AudioChannel", "left"); // added at CES 2010
	so.addParam("allowFullScreen", "true");
	so.addParam("allowScriptAccess", "always");
	so.addParam("wmode", "transparent");
	so.write("video");
	
	$('#bitgravityBandwith').show();
	break;

	case "#bitgravity-high":	
	var so = new SWFObject( stablerelease, "TWiTBitGravity", "100%", "100%", "9.0.115", "#000000");
	so.addVariable("File", "http://bglive-a.bitgravity.com/twit/live/high");
	so.addVariable("FileLabel", "High Quality");
	so.addVariable("FileBitrate", "1000");
	so.addVariable("DefaultLevel", "1");
	so.addVariable("Mode", "live");
	so.addVariable("AutoPlay", "true");
	so.addVariable("ScrubMode", "simple");
	so.addVariable("BufferTime", "3");
//	so.addVariable("VideoFit", "automatic");
	so.addVariable("VideoFit", "stretch");
	so.addVariable("DefaultRatio", "1.777778");
	so.addVariable("LogoImage", "http://bitcast-b.bitgravity.com/player/6/assets/bglogo100.png");
	so.addVariable("LogoPosition", "topright");
	so.addVariable("LogoLink", "http://bitgravity.com");
	so.addVariable("ColorBase", "#3493b0");
	so.addVariable("ColorControl", "#ffffff");
	so.addVariable("ColorHighlight", "#a2dbec");
	so.addVariable("ColorFeature", "#a2dbec");
	so.addVariable("AutoBitrate", "off");
	so.addVariable("ForceRatio", "true");
	so.addVariable("DefaultRatio", "16/9");
	so.addVariable("AudioChannel", "left"); // added at CES 2010
	so.addParam("allowFullScreen", "true");
	so.addParam("allowScriptAccess", "always");
	so.addParam("wmode", "transparent");
	so.write("video");
	
	$('#bitgravityBandwith').show();
	break;

	case "#ustream":	
	//var so = new SWFObject("http://cdn1.ustream.tv/swf/4/viewer.107.swf?cid=1/1524", "TWiTUstream", "100%", "100%", "9", "#000000");
	//so.addVariable("flashvars", "autoplay=true&amp;brand=embed&amp;cid=1524&amp;volume=0");
	//var so = new SWFObject("http://cdn1.ustream.tv/swf/4/viewer.107.swf?cid=1/488104", "TWiTUstream", "100%", "100%", "9", "#000000");
	//so.addVariable("flashvars", "autoplay=true&amp;brand=embed&amp;cid=488104&amp;VideoFit=stretch"); //&amp;volume=0
	var so = new SWFObject("http://www.ustream.tv/flash/live/1/1524", "TWiTUstream", "100%", "100%", "9", "#000000");
	so.addVariable("flashvars", "autoplay=true&amp;brand=embed&amp;cid=1524&amp;VideoFit=stretch"); //&amp;volume=0
	so.addParam("scale", "exactfit");
	so.addParam("swliveconnect", "false");
	so.addParam("allowscriptaccess", "never");
	so.addParam("menu", "false");
	so.addParam("allowFullScreen", "true");
	so.addParam("wmode", "transparent");
	so.write("video");
	break;

	case "#justintv":	
	var swf = new SWFObject("http://www.justin.tv/widgets/live_embed_player.swf", "TWiTJustinTV", "100%", "100%", "9", "#000000");
	swf.addVariable('start_volume', '0.5');
	swf.addVariable('backgroundImage', 'channel');
	swf.addVariable('channel', 'twit');
	swf.addVariable('hostname', 'www.justin.tv');
	swf.addVariable('consumer_key', 'uzHsKh3yJaBa9ySIBLyWNA');
	swf.addVariable('auto_play', 'true');
	swf.addParam('allowNetworking', 'all');
	swf.addParam('allowFullScreen', 'true');
	swf.addParam('allowScriptAccess', 'always');
	swf.addParam('wmode', 'opaque');
	swf.setAttribute('useExpressInstall', 'http://www-cdn.justin.tv/widgets/expressinstall.swf');
	swf.write('video');
	break;

	case "#audio":	
	var so = new SWFObject('assets/player/player-viral.swf','mpl','100%','35','9');
	so.addParam('allowfullscreen','false');
	so.addParam('allowscriptaccess','always');
	so.addParam('wmode','opaque');
	so.addVariable('duration','86400');
	so.addVariable('file','http://twit.am:80/listen');
	so.addVariable("skin", "assets/player/skin.swf");
	so.addVariable('type','sound');
	so.addVariable('autostart','true');
	so.write('video');
	
	$('#video').addClass('audio_play');
	
	$('#popoutvideo').hide();
	$('#bull1').hide();
	break;

}; 
	
}; // EOF

// #################################################################### \\
// # REPLACE STREAM (END)					  						  # \\                    
// #################################################################### \\