/*globals twitterlib */

/*
* Welcome sourcecode reader :)
* This file is unminifined for your reading pleasure
* (c) 2011 Simon Højberg 
* 
* */

(function () {

  // -------------------- util / helpers -------------------
  var util = {
    // http://www.dustindiaz.com/smallest-domready-ever/
    domready: function (f) {
      if (document.addEventListener) {
        document.addEventListener('DOMContentLoaded',f);
      }
      else {
        window.onload = f;
      }
    },

    // (c) John Resig
    // Timeago from a ISO time
    timeago: function (time) {
      var date = new Date((time || "").replace(/-/g,"/").replace(/[TZ]/g," ")),
          diff = (((new Date()).getTime() - date.getTime()) / 1000),
          day_diff = Math.floor(diff / 86400);
            
    if ( isNaN(day_diff) || day_diff < 0 || day_diff >= 31 ) {
      return;
    }
            
    return day_diff === 0 && (
            diff < 60 && "just now" ||
            diff < 120 && "1 minute ago" ||
            diff < 3600 && Math.floor( diff / 60 ) + " minutes ago" ||
            diff < 7200 && "1 hour ago" ||
            diff < 86400 && Math.floor( diff / 3600 ) + " hours ago") ||
        day_diff === 1 && "Yesterday" ||
        day_diff < 7 && day_diff + " days ago" ||
        day_diff < 31 && Math.ceil( day_diff / 7 ) + " weeks ago";

    }

  };
  
  // DOM Selector helpers (doesnt work in IE6 + IE7)
  var one = function (selector) {
   return document.querySelector(selector); 
  };

  var all = function (selector) {
   return document.querySelectorAll(selector); 
  };

  // -------------------- app -------------------
  var icreateui = {

    init: function () {
      icreateui.loadTweets();  
    },

    loadTweets: function () {
      twitterlib.timeline('shojberg', {limit: 20}, function (tweets, options) {
        var t, d, i, frag = document.createDocumentFragment(),
            tweetsNode = one("#tweets");

        tweetsNode.innerHTML = "";

        for (i = 0; i < 4; i++) {
          t = document.createElement("li");
          t.innerHTML = twitterlib.ify.clean(tweets[i].text);
          t.innerHTML += "<div class='tweet_posted_at'>" + ( util.timeago(tweets[i].created_at) || "" ) + "</div>";
          frag.appendChild(t);
        }

        tweetsNode.appendChild(frag.cloneNode(true));

      });
    }

  };

  // run init on dom ready
  util.domready(icreateui.init);

}());

