(function($){
  var $window = $(window);
  var $head = $('head');
  var $header = $('#header');
  var $wrapper = $('#wrapper');
  var $facebook = $('#facebook-list');
  var $twitter = $('#twitter-list');
	
  var contentOrder = [loadSocialFeed];
  var headerHeight = $header.height();
	
  var MIN_WIDTH = 960;
  var MAX_WIDTH = 1160;
  var FACEBOOK_LIMIT = 10;
  var TWITTER_LIMIT = 15;

        

  function init () {
    if (window.isFallback) {
      initFallback();
    } else {
      $window.bind('resize', onResizehandler);
      onResizehandler();
    }
    $header.find('a').each(function(){
      return $(this).attr('target', '_blank');
    });
  }

  function initFallback () {
    // Load styles.
    $head.append('<link rel="stylesheet" href="/css/fallback.css" type="text/css"/>');
		
    // Load content (only on home page - makes for faster loading of info pages).
    if(window.loadSocialFeed){
      getContent();
    }   
    
    // setup slideshow cycle
    if($.isFunction($.fn.cycle)){
      $(".kilroy-cycle").cycle({
        slideExpr: ".kilroy-cycle-item",
        timeout: 5000,
        pause: true,
		next: "#kilroy-nav-next",
		prev: "#kilroy-nav-prev"
      });
    }
    
    // bind close-back button (stupid close of new window/tab for morons)
    $(".back-close").click(function(e){
      e.preventDefault();
      window.close();
    });
    
  }
	
  function getContent () {
    var service = contentOrder.shift();
    if (service) service(getContent);
  }
	
  function loadSocialFeed (callback) {
    $.get('/api/socialfeed', function (data, status) {
      if (status === 'success') {
        var items = data.data.facebook.feed;
        var content = '<ul>';
        for (var i = 0, n = Math.min(items.length, FACEBOOK_LIMIT); i < n; i++) {
          content += '<li><h4>' + items[i].name + '</h4>';
          if (items[i].message !== "") content += '<p>' + items[i].message + '</p>';
          if (items[i].picture !== "") content += '<img src="' + items[i].picture + '">';
          content += '</li>';
        }
        content += '</ul>';
        $facebook.append(content);
				
        items = data.data.twitter.feed;
        content = '<ul>';
        for (i = 0, n = Math.min(items.length, TWITTER_LIMIT); i < n; i++) {
          content += '<li><p>' + items[i].message + '</p></li>';
        }
        content += '</ul>';
        $twitter.append(content);

        callback();
      }
    });
  }

  function onResizehandler () {
    var w = $window.width();
    var h = $window.height();
    var wTarget = Math.max(MIN_WIDTH, Math.min(w, MAX_WIDTH));
    var lTarget = Math.max(0, (w-wTarget)*0.5);
    $wrapper.css({
      'left': lTarget + 'px', 
      'width': wTarget + 'px', 
      'height': h - headerHeight + 'px'
    });
  }

  $(init);

})(jQuery);


