<!--
if(typeof Series =="undefined") {
	var Series = new Object();
}
Series.RealLWord = function() {
	var jsBase = "/site/reallword/season1/js";
	var KEY_IN = '/site/reallword/';
	var KEY_OUT = '.do';
	var TOKEN = '_';
	var library = {
		//home: [
			//'HomeUIHelp'
		//],
		//about: [
			//'blogs'
		//],
		//schedule: [
			//'schedule'
		//],
		episodes: [
			'EpisodesUIHelp',
			'PhotoGallery'
		],
		video: [
			'brightcove',
			'title'
		]
	};
	/* =:Startup
	--------------------------------------------------------------------------------------------*/
	function init() {
		if( document.location.search.toString().indexOf('noscript') > -1 ) return;
		document.write( "\n" );
		//loadModule ( library.global, 'global' );
		//loadModule ( library.components, 'components' );
		//loadModule ( library.feeds, 'feeds' );
		parseLocation();
	}
	function parseLocation() {
		var urlStr = document.location.pathname;
		var str1 = urlStr.substr( urlStr.indexOf( KEY_IN ) + KEY_IN.length );
		var str2 = str1.substr( 0, str1.indexOf( KEY_OUT )).replace(/-/, '_');
		var path = str2.split('/');
		//check for flattened homepage
		if( document.location.pathname.indexOf('/index.html') !== -1 ) {
			importModules ( ['home'] );
		}
		else importModules ( path );
	}
	function importModules ( path ) {
		var m = "";
		for( var i=0; i<path.length; i++ ) {
			m += path[i];
			if( typeof library[ m ] == "object" &&  library[ m ] !== null ) {
				loadModule( library[ m ], path[0] );
			}
			m+=TOKEN;
		}
	}
	function loadModule( mod, package ) {
		package = ( package == false ) ? '' : '/' + package;
		for( var i=0; i<mod.length; i++) {
			document.write( '<script language="javascript" src="'+ jsBase + package + '/'+ mod [i] + '.js"></script>'+"\n" );
		}
	}
	/* Reveal public methods 
	-------------------------*/
	return {
		deploy:init
	}
}();
Series.RealLWord.deploy();
Series.RealLWord.DateUtil = function(){

	var monthNames = [ "January", "February", "March", "April", "May", "June",
	    "July", "August", "September", "October", "November", "December" ];

	return {
		
		daysInMonth: function(iMonth, iYear) {
			return 32 - new Date(iYear, iMonth, 32).getDate();
		},
		getAP: function(hour) {
			var ap = "AM";
			
			if (hour > 11) {  ap = "PM"; }
			
			return ap;
		},
		get12Hour: function(hour) {
		
			if (hour > 11) {
				if (hour > 12) { hour = hour - 12; }
			}
			
			if (hour == 0) { hour = 12; }
			
			return hour;
		},
		getMinuteDisplay: function(minute) {
		
			if(minute < 10){
				minute = '0' + minute;
			}
			
			return minute;
		},
		changeTimezone: function(date, hourUtcOffset) {
		
			var utc = date.getTime() + (date.getTimezoneOffset() * 60000);
			return new Date(utc + (3600000*hourUtcOffset));
		},
		getMonthName: function(month){
			return monthNames[month];
		}
	};
};
Series.RealLWord.LiveLounge = function(){
	
	var count = 0;
	
	var runTimeout = function(){
		var t=setTimeout("liveLounge.getNewTweets()",30000);
	};
	
	var getDateDiferenceOutput = function(date1, date2){

		var dateUtil = Series.RealLWord.DateUtil();

		var defaultOutput = "just now";

		var c1, c2;

		if(date1 < date2){
			c1 = date1;
			c2 = date2;
		}
		else if(date2 < date1){
			c2 = date1;
			c1 = date2;
		}
		else{
		 	return defaultOutput;
		}

		var output = null;
		var difference = c2 - c1;
		difference = Math.floor(difference / 1000);
		if(difference > 59){
			difference = Math.floor(difference / 60);
			if(difference > 59){
				difference = Math.floor(difference / 60);
				if(difference > 23){
					output = dateUtil.get12Hour(c1.getHours()) + ":" + dateUtil.getMinuteDisplay(c1.getMinutes()) + " " + dateUtil.getAP(c1.getHours()) + " " + dateUtil.getMonthName(c1.getMonth()) + " " + c1.getDate() + " " + c1.getFullYear();
				}
				else {
					output = "about " + difference + " hour";
					if(difference > 1){
						output += "s"; 
					}
					output += " ago";
				}
			}
			else {
				output = difference + " minute";
				if(difference > 1){
					output += "s"; 
				}
				output += " ago";
			}
		}
		else {
			output = difference + " second";
			if(difference > 1){
				output += "s"; 
			}
			output += " ago";
		}

		if(output === null){
			output = defaultOutput;
		}

		return output;
	};

	var updateTweetTimes = function(){

		var date = new Date();

		var dateUtil = Series.RealLWord.DateUtil();

		var estOffset = -4;
		var estDate = dateUtil.changeTimezone(date, estOffset);


		var tweets = $('tweetbox').select('div.tweet');
		var i=0;
		for (i = 0; i < tweets.length; i++)
		{
			var idStr = "" + tweets[i].id;
			var id = idStr.substr('tweet_'.length);

			var dateInput = $('tweet_' + id + '_date_input');
			var dateString = dateInput.innerHTML;
			$('tweet_' + id + '_date_output').innerHTML = getDateDiferenceOutput(new Date(dateString), estDate);
		}
	};
	
	return {
		
		waitForTweets: function(){
			runTimeout();
		},
		getNewTweets: function(){

			new Ajax.Request('/site/reallword/twitter_update.do',
			  {
			    method:'post',
			    onSuccess: function(response){
				    if(response){
					    var r = response.responseText;
					    if(r != ""){
							count++;
							var newTweetsId = "new_tweets_" + count;
							r = "<div id='" + newTweetsId + "' style='display: none;'><div>" + r + "</div></div>" ;
					      	$('tweetbox').insert({top: r});
							var newTweetsElement = $(newTweetsId);
					      	if(newTweetsElement != null){
					    	  	new Effect.SlideDown(newTweetsElement);
					      	}
					    }
				    }
					updateTweetTimes();
			      	runTimeout();
			    },
			    onFailure: function(){  },
				onException: function(request,error) {
				}
			});
		}
	};
};

var liveLounge = new Series.RealLWord.LiveLounge();
Event.observe(window, 'load', function() {
	liveLounge.waitForTweets();
});

// -->
