$(document).ready(function() {

    setup_flickr_and_twitter();
    setup_subscription_form();
    
    // make the header navigable to home
    $('.banner .header').click(function () { 
        window.location.href = "/";
      });

    // api.flickr.com/services/feeds/photos_public.gne?id=67787339@N00&lang=en-us&format=atom
    var flickr_id = '67787339@N00';
    var base_url = 'http://api.flickr.com/services/feeds/photos_public.gne';
    var params = '?id='+flickr_id+'&lang=en-us&format=json&&jsoncallback=?';
    $.getJSON( base_url+params, function(data){
        write_flickr_data(data);
        // After writing flickr data we load twitter.
        $("#twitter ul").tweet({
            username: "peterstafford",
            join_text: "auto",
            avatar_size: 32,
            count: 4
          });
      });

    gAnalytics();
    setup_disqus();
  });

function write_flickr_data(data){
  var counter = 0;
  $.each(data.items, function(i,item){
      if(counter == 12){ return false; }
      var template = "<li{{cssclass}}><a href='{{link}}'><img src='{{url}}' alt='{{title}}'/></a></li>";
      var view = {
        url: function(){
          return item.media.m.replace("_m.jpg","_s.jpg");
        },
        link: item.link,
        title: item.title,
        counter: counter,
        cssclass: function(){
          if(this.counter == 5){
            return " class='omega'";
          } else {
            return "";
          }
        }
      };
      var html = Mustache.to_html(template, view);
      $('#flickr ul').append(html);
      counter++;
    });
}

function setup_flickr_and_twitter(){
  $("#elsewhere").hide();
  setup_service('#flickr');
  setup_service('#twitter');
}

function setup_service(service){
  $(service).empty();
  $(service).append($('<ul>'));
}

function setup_disqus(){
  if( $('#disqus_thread').length ){
    $('#disqus_thread').disqus({
        domain: 'peterstafford', // REQUIRED
        title: 'The title of the article', 
        message: 'A short description of the article.',
        url: window.location,
        developer: 0 
      }); 
  }
  jQuery.disqusLinks('peterstafford');
}

function gAnalytics(){
  if (typeof(_gat) == "object") {
    var pageTracker = _gat._getTracker("UA-12037196-2"); //Replace XX-xxxxxxx-x with your own code
    pageTracker._initData();
    pageTracker._trackPageview();
  }
}

function setup_subscription_form(){
  $("#subscribe-form").ajaxError(function(event, request, settings){
      $('#subscribe-results').empty();
      $('#subscribe-results').append("<p>An error occurred during your attempt to subscribe, we have been notified and will look into it.</p>");
    });

  $('#subscribe-form').submit(function() {
      var params = $(this).serialize();
      $('#subscribe-results').empty();
      $('#subscribe-results').append("<p>Subscribing...</p>");
      $.post('/subscribe', params, function(){
          $('#subscribe-results').empty();
          $('#subscribe-results').append("<p>Subscribed successfully</p>");
        });
      return false;
    });
}

