(function() {
  var API_KEY, NSID, error_handler, expand_ent, flickr, html_photo, month_names, reader_url, rss, search, tweet;
  API_KEY = 'aa46665f5d4d9a969dbdf36f54a63f84';
  NSID = '90424900@N00';
  reader_url = 'http://www.google.com/reader/public/javascript/feed/http://www.google.com/reader/public/atom/user%2F01407570165553862154%2Fstate%2Fcom.google%2Fbroadcast?callback=?';
  flickr = function(method, data, onsuccess, onerror) {
    data.method = method;
    data.api_key = API_KEY;
    data.format = 'json';
    return $.getJSON("http://api.flickr.com/services/rest/?jsoncallback=?", data, function(result) {
      var key, value, _results;
      if (result.stat === 'ok') {
        delete result.stat;
        _results = [];
        for (key in result) {
          value = result[key];
          onsuccess(value);
          break;
        }
        return _results;
      } else if (onerror != null) {
        return onerror(result.code, result.message);
      }
    });
  };
  html_photo = function(p) {
    return "<div class=\"frame\"><a href=\"http://www.flickr.com/photos/" + p.owner + "/" + p.id + "\"><img src=\"http://farm" + p.farm + ".static.flickr.com/" + p.server + "/" + p.id + "_" + p.secret + "_s.jpg\"></a></div>";
  };
  error_handler = function(code, message) {
    return window.alert(message);
  };
  rss = function(url, div) {
    $.getJSON(url, function(result) {
      var anno, content, item, n, _i, _j, _len, _len2, _ref, _ref2, _results;
      n = 0;
      _ref = result.items;
      _results = [];
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        item = _ref[_i];
        content = "<li><a href=\"" + item.alternate.href + "\">" + item.title + "</a>";
        _ref2 = item['annotations'];
        for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) {
          anno = _ref2[_j];
          content += "&nbsp;<span class=\"comment\">" + anno.content + "</span>";
        }
        content += "</li>";
        $(div).append(content);
        if (++n >= 10) {
          break;
        }
      }
      return _results;
    });
    return error_handler;
  };
  search = function(user, div) {
    return flickr('flickr.photos.search', {
      user_id: user,
      per_page: 21
    }, function(result) {
      var p, _i, _len, _ref, _results;
      _ref = result.photo;
      _results = [];
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        p = _ref[_i];
        _results.push($(div).append(html_photo(p)));
      }
      return _results;
    }, error_handler);
  };
  expand_ent = function(tweet) {
    var a, anno, end, ent, last, m, parts, post, pre, start, t, text, u, _i, _j, _k, _l, _len, _len2, _len3, _len4, _ref, _ref2, _ref3;
    anno = [];
    ent = tweet.entities;
    _ref = ent.urls;
    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
      u = _ref[_i];
      anno.push({
        url: u.url,
        start: u.indices[0],
        end: u.indices[1]
      });
    }
    _ref2 = ent.hashtags;
    for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) {
      t = _ref2[_j];
      anno.push({
        url: 'http://twitter.com/#!/search?q=' + t.text,
        start: t.indices[0],
        end: t.indices[1]
      });
    }
    _ref3 = ent.user_mentions;
    for (_k = 0, _len3 = _ref3.length; _k < _len3; _k++) {
      m = _ref3[_k];
      anno.push({
        url: 'http://twitter.com/#!/' + m.screen_name,
        start: m.indices[0],
        end: m.indices[1]
      });
    }
    anno.sort(function(a, b) {
      var _ref, _ref2;
      return (_ref = a.start === b.start) != null ? _ref : {
        0: (_ref2 = a.start < b.start) != null ? _ref2 : -{
          1: 1
        }
      };
    });
    last = 0;
    parts = [];
    for (_l = 0, _len4 = anno.length; _l < _len4; _l++) {
      a = anno[_l];
      start = a.start;
      end = a.end;
      text = tweet.text.substring(start, end);
      parts.push(tweet.text.substring(last, start));
      pre = '<a href="' + a.url + '">';
      post = '</a>';
      parts.push(pre + text + post);
      last = end;
    }
    parts.push(tweet.text.substring(last));
    return parts.join("");
  };
  month_names = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
  tweet = function(div) {
    return $.getJSON('http://api.twitter.com/1/statuses/user_timeline.json?callback=?', {
      screen_name: '_thedudeabides_',
      include_entities: 1,
      count: 10
    }, function(tweets) {
      var tweet, _i, _len, _results;
      _results = [];
      for (_i = 0, _len = tweets.length; _i < _len; _i++) {
        tweet = tweets[_i];
        _results.push($(div).append('<li>' + expand_ent(tweet) + '</li>'));
      }
      return _results;
    });
  };
  $(document).ready(function() {
    if ($('#flickr-feed').size() > 0) {
      search(NSID, '#flickr-feed');
    }
    if ($('#reader').size() > 0) {
      rss(reader_url, '#reader');
    }
    if ($('#tweets').size() > 0) {
      tweet('#tweets');
    }
    if ($('#gallery').size() > 0) {
      return $("#gallery a").fancybox({
        showCloseButton: false,
        showNavArrows: true,
        transitionIn: 'none',
        transitionOut: 'none',
        titlePosition: "inside",
        overlayColor: "#FFF",
        overlayOpacity: "0.6",
        changeSpeed: 1,
        changeFade: 1
      });
    }
  });
}).call(this);

