$(function(){
  // flickr
  $("div.flickr").each(function(){
    var e = $(this), image = "<a href='{link}'><img src='{media.s}' alt='{title}' /></a>"
    $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?id=" + e.attr("data-flickr-id") + "&format=json&jsoncallback=?", function(data){
      $.each(data.items.slice(0, 5), function(){
        this.media.s = this.media.m.replace("_m", "_s")
        e.append($.nano(image, this))
      })
    })
  })

  // twitter
  $.getJSON("http://twitter.com/statuses/user_timeline/trix_software.json?callback=?", function(statuses) {
    var e = $("ul.tweets")
    e.empty()
    $.each(statuses, function(i, item){
      if (i < 3) {
        var status = {text: $.linkify(this.text), screen_name: $.linkify("@" + this.user.screen_name)}
        $("ul.tweets").append($.nano("<li><strong>{screen_name}</strong>: {text}</li>", status))
      }
    })
  })
  
  // github
  var repo = "<li>" + 
    "<a href='{url}'>{name}</a> " + 
    "{description} " +
    "<div class='stats'><span class='forks'>{forks} forks,</span> <span class='watchers'>{watchers} watchers</span></div>"
  "</li>"
  $(".repos").each(function(){
    var e = $(this)
    $.getJSON("http://github.com/api/v2/json/repos/show/" + e.attr("data-github-username") + "?callback=?", function(data) {
      e.empty()
      $.each(e.attr("data-github-projects").split(" "), function() {
        var name = this
        var project = $.grep(data.repositories, function(r) {
          return r.name == name
        })
        var current = project[0]
        current["description"] = $.truncate(current["description"], 77)
        e.append($.nano(repo, current))
      })
    })
  })
  
  // scroller
  $(".scroller .navigation a").click(function(){
    $(".scroller .navigation a").removeClass("selected")
    $(this).addClass("selected")
    var left = 0 - $($(this).attr("href")).position().left
    $(".scroller .content").animate({marginLeft: left})
    return false
  })
  
  // fancybox
  $(".scroller .window a").attr("rel", "group");
  $(".scroller .window a").fancybox({
    zoomSpeedIn: 500,
    zoomSpeedOut: 500,
    overlayColor: "#000"
  })
  
  $("a.hire_us, a.contact_us").fancybox({
    frameHeight: 500,
    frameWidth: 500,
    overlayColor: "#000"
  })
  
  // technologies
  setInterval(function(){
    var e = $(".technology:visible")
    e.fadeOut("fast", function(){
      e.nextAll(".technology").add($(".technology")).eq(0).fadeIn("slow")
    })
  }, 6000)
  
  // open external links in new window
  $('a[href^="http"]').live("click", function() {
    $(this).attr('target', '_blank')
  })
})

