$(document).ready(function(){
    /*
     *  Twitter feed
     */
    if ($("#twitter").length) {

       $.ajax({
                url             : 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=WWSRisks',
                dataType	: 'jsonp',
                success		: function(json){

                    $('#twitter .tweet.js-only').remove();
                    $('#twitter .tweet.no-js').remove();

                    for (var i=0; i<json.length; i++) {
                      
                        var posted = timeAgo(json[i].created_at);

                        var regexp = new RegExp('#','g');
                        var str = json[i].text.replace(regexp, '<span class="hash">#</span>');

                        var tweet = $("<div class='tweet'></div>");
                        tweet.append($(
                                        "<p>"+str.withClickableURLs()+"</p><a title='Permalink' class='permalink' href='http://twitter.com/WWSRisks/status/"+json[i].id_str+"'>"+posted+"</a>"
                                    ));
                        $("#twitter .optionsWindow").append(tweet);
                        if (i==0) tweet.fadeIn().addClass('active');
                    }
                }
        });

        function Tweeter(fn, delay) {
            var timerId;
            this.play = function() {
                timerId = window.setInterval(fn, delay);
            }
            this.pause = function() {
                window.clearTimeout(timerId);
            }
            this.play();
        }

        // Start tweets scrolling
        var tweetTimer = new Tweeter(function(){
            var curr = $("#twitter div.active");
            var nxt = (curr.next().length) ? curr.next() : $("#twitter div.tweet").first();

            curr.hide().removeClass('active').css({'opacity':'1'});
            nxt.addClass('active').show();
        }, 8000);

        // Listen for mouse overs to pause tweets
        $('footer').hover(tweetTimer.pause, tweetTimer.play);
        $('#twitter').hover(tweetTimer.pause, tweetTimer.play);
    }
});


String.prototype.withClickableURLs = function() {
	return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(url) {
		return url.link(url);
	});
};

function parseDate(str) {
  var v=str.split(' ');
  return new Date(Date.parse(v[1]+" "+v[2]+", "+v[5]+" "+v[3]+" UTC"));
}


function timeAgo(time){

    time = parseDate(time);

    var date = new Date(time),
        secsago = (((new Date()).getTime() - date.getTime()) / 1000),
        minsago = Math.floor(secsago / 60),
        hoursago = Math.floor(minsago / 60),
        daysago = Math.floor(secsago / 86400),
        weeksago = Math.floor(daysago / 7),
        yearsago = Math.floor(weeksago / 52);

    if (secsago < 60)   return "Posted a moment ago";
    if (minsago < 60)   return "Posted "+minsago+" minutes ago";
    if (hoursago < 24)  return "Posted "+hoursago+" hours ago";
    if (daysago == 1)   return "Posted yesterday";
    if (daysago < 7)    return "Posted "+daysago+" days ago";
    if (weeksago == 1)  return "Posted a week ago";
    if (weeksago < 52)  return "Posted "+weeksago+" weeks ago";
    return (isNaN(yearsago)) ? "" : "Posted "+yearsago+" years ago";
}



