(function(A){A.fn.tweet=function(D){var C={username:["seaofclouds"],avatar_size:null,count:3,intro_text:null,outro_text:null,join_text:"tweeters_name",loading_text:null,query:null,callback:null};A.fn.extend({linkUrl:function(){var E=[];var F=/((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;this.each(function(){E.push(this.replace(F,'<a href="$1" rel="external">$1</a>'));});return A(E);},linkUser:function(){var E=[];var F=/[\@]+([A-Za-z0-9-_]+)/gi;this.each(function(){E.push(this.replace(F,'<a href="http://twitter.com/$1" rel="external">@$1</a>'));});return A(E);},linkHash:function(){var E=[];var F=/ [\#]+([A-Za-z0-9-_]+) /gi;this.each(function(){E.push(this.replace(F,' <a href="http://search.twitter.com/search?q=&tag=$1&lang=all&from='+C.username.join("%2BOR%2B")+'" rel="external">#$1</a> '));});return A(E);},makeHeart:function(){var E=[];this.each(function(){E.push(this.replace(/[&lt;]+[3]/gi,"<tt class='heart'>&#x2665;</tt>"));});return A(E);}});function B(F){var E=Date.parse(F);var G=(arguments.length>1)?arguments[1]:new Date();var H=parseInt((G.getTime()-E)/1000);if(H<60){return"less than a minute ago";}else{if(H<120){return"about a minute ago";}else{if(H<(45*60)){return(parseInt(H/60)).toString()+" minutes ago";}else{if(H<(90*60)){return"about an hour ago";}else{if(H<(24*60*60)){return"about "+(parseInt(H/3600)).toString()+" hours ago";}else{if(H<(48*60*60)){return"1 day ago";}else{return(parseInt(H/86400)).toString()+" days ago";}}}}}}}if(D){A.extend(C,D);}return this.each(function(){var I=A('<ul class="tweet_list">').appendTo(this),H='<p class="tweet_intro">'+C.intro_text+"</p>",E='<p class="tweet_outro">'+C.outro_text+"</p>",J=A('<p class="loading">'+C.loading_text+"</p>");if(typeof (C.username)=="string"){C.username=[C.username];}var G="";if(C.query){G+="q="+C.query;}G+="&q=from:"+C.username.join("%20OR%20from:");var F="http://search.twitter.com/search.json?&"+G+"&rpp="+C.count+"&callback=?";if(C.loading_text){A(this).append(J);}A.getJSON(F,function(K){if(C.loading_text){J.remove();}if(C.intro_text){I.before(H);}A.each(K.results,function(O,T){var M=C.join_text.replace(/tweeters_name/,"(follow @"+T.from_user+")");M=A([M]).linkUser()[0];if(C.username_replacements&&C.username_replacements[T.from_user]){M=M.replace(new RegExp("@"+T.from_user,"i"),C.username_replacements[T.from_user]);}var R='<span class="tweet_join"> '+M+" </span>",L=((C.join_text)?R:" "),P='<a class="tweet_avatar" href="http://twitter.com/'+T.from_user+'" rel="external"><img src="'+T.profile_image_url+'" height="'+C.avatar_size+'" width="'+C.avatar_size+'" alt="'+T.from_user+'\'s avatar" border="0"/></a>',Q=(C.avatar_size?P:""),N='<span class="tweet_time"><a href="http://twitter.com/'+T.from_user+"/statuses/"+T.id+'" title="view tweet on twitter">'+B(T.created_at)+"</a></span>",S='<span class="tweet_text">'+A([T.text]).linkUrl().linkUser().linkHash().makeHeart()[0]+"</span> ";I.append("<li>"+Q+S+L+"</li>");I.children("li:odd").addClass("tweet_even");I.children("li:even").addClass("tweet_odd");I.children("li:first").addClass("tweet_first");I.children("li:last").addClass("tweet_last");});if(C.outro_text){I.after(E);}if(C.callback){C.callback();}});});};})(jQuery);
//(function(A){A.fn.tweet=function(D){var C={username:["seaofclouds"],avatar_size:null,count:3,intro_text:null,outro_text:null,join_text:"tweeters_name",loading_text:null,query:null,callback:null};A.fn.extend({linkUrl:function(){var E=[];var F=/((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;this.each(function(){E.push(this.replace(F,'<a href="$1" rel="external">$1</a>'));});return A(E);},linkUser:function(){var E=[];var F=/[\@]+([A-Za-z0-9-_]+)/gi;this.each(function(){E.push(this.replace(F,'<a href="http://twitter.com/$1" rel="external">@$1</a>'));});return A(E);},linkHash:function(){var E=[];var F=/ [\#]+([A-Za-z0-9-_]+) /gi;this.each(function(){E.push(this.replace(F,' <a href="http://search.twitter.com/search?q=&tag=$1&lang=all&from='+C.username.join("%2BOR%2B")+'" rel="external">#$1</a> '));});return A(E);},makeHeart:function(){var E=[];this.each(function(){E.push(this.replace(/[&lt;]+[3]/gi,"<tt class='heart'>&#x2665;</tt>"));});return A(E);}});function B(F){var E=Date.parse(F);var G=(arguments.length>1)?arguments[1]:new Date();var H=parseInt((G.getTime()-E)/1000);if(H<60){return"less than a minute ago";}else{if(H<120){return"about a minute ago";}else{if(H<(45*60)){return(parseInt(H/60)).toString()+" minutes ago";}else{if(H<(90*60)){return"about an hour ago";}else{if(H<(24*60*60)){return"about "+(parseInt(H/3600)).toString()+" hours ago";}else{if(H<(48*60*60)){return"1 day ago";}else{return(parseInt(H/86400)).toString()+" days ago";}}}}}}}if(D){A.extend(C,D);}return this.each(function(){var I=A('<ul class="tweet_list">').appendTo(this),H='<p class="tweet_intro">'+C.intro_text+"</p>",E='<p class="tweet_outro">'+C.outro_text+"</p>",J=A('<p class="loading">'+C.loading_text+"</p>");if(typeof (C.username)=="string"){C.username=[C.username];}var G="";if(C.query){G+="q="+C.query;}G+="&q=from:"+C.username.join("%20OR%20from:");var F="http://search.twitter.com/search.json?&"+G+"&rpp="+C.count+"&callback=?";if(C.loading_text){A(this).append(J);}A.getJSON(F,function(K){if(C.loading_text){J.remove();}if(C.intro_text){I.before(H);}A.each(K.results,function(O,T){var M=C.join_text.replace(/tweeters_name/,"(follow @"+T.from_user+")");M=A([M]).linkUser()[0];if(C.username_replacements&&C.username_replacements[T.from_user]){M=M.replace(new RegExp("@"+T.from_user,"i"),C.username_replacements[T.from_user]);}var R='<span class="tweet_join"> '+M+" </span>",L=((C.join_text)?R:" "),P='<a class="tweet_avatar" href="http://twitter.com/'+T.from_user+'" rel="external"><img src="'+T.profile_image_url+'" height="'+C.avatar_size+'" width="'+C.avatar_size+'" alt="'+T.from_user+'\'s avatar" border="0"/></a>',Q=(C.avatar_size?P:""),N='<span class="tweet_time"><a href="http://twitter.com/'+T.from_user+"/statuses/"+T.id+'" title="view tweet on twitter">'+B(T.created_at)+"</a></span>",S='<span class="tweet_text">'+A([T.text]).linkUrl().linkUser().linkHash().makeHeart()[0]+"</span> ";I.append("<li>"+Q+L+S+N+"</li>");I.children("li:odd").addClass("tweet_even");I.children("li:even").addClass("tweet_odd");I.children("li:first").addClass("tweet_first");I.children("li:last").addClass("tweet_last");});if(C.outro_text){I.after(E);}if(C.callback){C.callback();}});});};})(jQuery);
//(function($) {
// 
//  $.fn.tweet = function(o){
//    var s = {
//      username: ["seaofclouds"],              // [string]   required, unless you want to display our tweets. :) it can be an array, just do ["username1","username2","etc"]
//      avatar_size: null,                      // [integer]  height and width of avatar if displayed (48px max)
//      count: 3,                               // [integer]  how many tweets to display?
//      intro_text: null,                       // [string]   do you want text BEFORE your your tweets?
//      outro_text: null,                       // [string]   do you want text AFTER your tweets?
//      join_text:  null,                       // [string]   optional text in between date and tweet, try setting to "auto"
//      auto_join_text_default: "i said,",      // [string]   auto text for non verb: "i said" bullocks
//      auto_join_text_ed: "i",                 // [string]   auto text for past tense: "i" surfed
//      auto_join_text_ing: "i am",             // [string]   auto tense for present tense: "i was" surfing
//      auto_join_text_reply: "i replied to",   // [string]   auto tense for replies: "i replied to" @someone "with"
//      auto_join_text_url: "i was looking at", // [string]   auto tense for urls: "i was looking at" http:...
//      loading_text: null,                     // [string]   optional loading text, displayed while tweets load
//      query: null                             // [string]   optional search query
//    };

//    $.fn.extend({
//      linkUrl: function() {
//        var returning = [];
//        var regexp = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;
//        this.each(function() {
//          returning.push(this.replace(regexp,"<a href=\"$1\">$1</a>"))
//        });
//        return $(returning);
//      },
//      linkUser: function() {
//        var returning = [];
//        var regexp = /[\@]+([A-Za-z0-9-_]+)/gi;
//        this.each(function() {
//          returning.push(this.replace(regexp,"<a href=\"http://twitter.com/$1\">@$1</a>"))
//        });
//        return $(returning);
//      },
//      linkHash: function() {
//        var returning = [];
//        var regexp = / [\#]+([A-Za-z0-9-_]+)/gi;
//        this.each(function() {
//          returning.push(this.replace(regexp, ' <a href="http://search.twitter.com/search?q=&tag=$1&lang=all&from='+s.username.join("%2BOR%2B")+'">#$1</a>'))
//        });
//        return $(returning);
//      },
//      capAwesome: function() {
//        var returning = [];
//        this.each(function() {
//          returning.push(this.replace(/(a|A)wesome/gi, 'AWESOME'))
//        });
//        return $(returning);
//      },
//      capEpic: function() {
//        var returning = [];
//        this.each(function() {
//          returning.push(this.replace(/(e|E)pic/gi, 'EPIC'))
//        });
//        return $(returning);
//      },
//      makeHeart: function() {
//        var returning = [];
//        this.each(function() {
//          returning.push(this.replace(/[&lt;]+[3]/gi, "<tt class='heart'>&#x2665;</tt>"))
//        });
//        return $(returning);
//      }
//    });

//    function relative_time(time_value) {
//      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);
//      if(delta < 60) {
//      return 'less than a minute ago';
//      } else if(delta < 120) {
//      return 'about a minute ago';
//      } else if(delta < (45*60)) {
//      return (parseInt(delta / 60)).toString() + ' minutes ago';
//      } else if(delta < (90*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';
//      }
//    }

//    if(o) $.extend(s, o);
//    return this.each(function(){
//      var list = $('<ul class="tweet_list">').appendTo(this);
//      var intro = '<p class="tweet_intro">'+s.intro_text+'</p>'
//      var outro = '<p class="tweet_outro">'+s.outro_text+'</p>'
//      var loading = $('<p class="loading">'+s.loading_text+'</p>');
//      if(typeof(s.username) == "string"){
//        s.username = [s.username];
//      }
//      var query = '';
//      if(s.query) {
//        query += 'q='+s.query;
//      }
//      query += '&q=from:'+s.username.join('%20OR%20from:');
//      var url = 'http://search.twitter.com/search.json?&'+query+'&rpp='+s.count+'&callback=?';
//      if (s.loading_text) $(this).append(loading);
//      $.getJSON(url, function(data){
//        if (s.loading_text) loading.remove();
//        if (s.intro_text) list.before(intro);
//        $.each(data.results, function(i,item){
//          // auto join text based on verb tense and content
//          if (s.join_text == "auto") {
//            if (item.text.match(/^(@([A-Za-z0-9-_]+)) .*/i)) {
//              var join_text = s.auto_join_text_reply;
//            } else if (item.text.match(/(^\w+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+) .*/i)) {
//              var join_text = s.auto_join_text_url;
//            } else if (item.text.match(/^((\w+ed)|just) .*/im)) {
//              var join_text = s.auto_join_text_ed;
//            } else if (item.text.match(/^(\w*ing) .*/i)) {
//              var join_text = s.auto_join_text_ing;
//            } else {
//              var join_text = s.auto_join_text_default;
//            }
//          } else {
//            var join_text = s.join_text;
//          };

//          var join_template = '<span class="tweet_join"> '+join_text+' </span>';
//          var join = ((s.join_text) ? join_template : ' ')
//          var avatar_template = '<a class="tweet_avatar" href="http://twitter.com/'+ item.from_user+'"><img src="'+item.profile_image_url+'" height="'+s.avatar_size+'" width="'+s.avatar_size+'" alt="'+item.from_user+'\'s avatar" border="0"/></a>';
//          var avatar = (s.avatar_size ? avatar_template : '')
//          var date = '<a href="http://twitter.com/'+item.from_user+'/statuses/'+item.id+'" title="view tweet on twitter">'+relative_time(item.created_at)+'</a>';
//          var text = '<span class="tweet_text">' +$([item.text]).linkUrl().linkUser().linkHash().makeHeart().capAwesome().capEpic()[0]+ '</span>';
//          
//          // until we create a template option, arrange the items below to alter a tweet's display.
//          list.append('<li>' + avatar + date + join + text + '</li>');

//          list.children('li:first').addClass('tweet_first');
//          list.children('li:odd').addClass('tweet_even');
//          list.children('li:even').addClass('tweet_odd');
//        });
//        if (s.outro_text) list.after(outro);
//      });

//    });
//  };
//})(jQuery);