$(function() {
  var viewport = $('.featured .items');
  var scrubber = $('.scrubber .items');
	var twitter = $('.news-feed .updates .slider .items');
/*    var poll_twitter = $('#poll #twitter .items');*/

  viewport.find('.item').eq(0).siblings().find('.info').hide();

  if (Browser.isWebkit && Browser.supportsTouch) {
    var controller = new McKinney.TouchSlider();
    var twitter_controller = new McKinney.TouchSlider();
    var scrubber_controller = new McKinney.TouchSlider();
/*    var poll_controller = new McKinney.TouchSlider();
*/    scrubber.css('background', 'url(images/scrubber.png) no-repeat');
  } else {
    var controller = new McKinney.Slider();
    var twitter_controller = new McKinney.Slider();
    var scrubber_controller = new McKinney.Slider();
/*    var poll_controller = new McKinney.Slider();
*/    scrubber.css('background', 'url(images/scrubber-pc.png) center center no-repeat');
  }

  $('.featured .previous').hide();
  $('.updates .slider .previous').css('opacity', 0.25);
  $('.news .previous').css('opacity', 0.25);
  $('.dots').hover(function() { $(this).css('cursor', 'pointer') });

  // Main Slider
  controller.init(viewport, {
    next: $('.featured .next'), 
    previous: $('.featured .previous')
  });
  controller.subscribe('transition_end', function(c) {
    var page_num = c.page(c.current_x);
    var current = viewport.find('.item').eq(page_num);
    var overlay = current.find('.info');
    if (!overlay.is(':visible')) {
      current.siblings(':visible').find('.info').hide();
      overlay.fadeIn();
    }

    toggleArrows(c, {hide: true});
  });
  controller.subscribe('end_no_move', function(c) {
    unBindEvent(c.element[0], 'webKitTransitionEnd', c);
  });
  
  
  
  // Scrubber
  for(var i = 0; i < viewport.find('.item').size(); i++) {
    var dot = $('<div class="dot"></div>').css('left', (i * 159)+'px');
    $('.scrubber .dots').append(dot);
    $('.scrubber .line').css('width', i * 159 + 'px');
  }
  scrubber_controller.init(scrubber, {reverse: true}); 
  scrubber_controller.subscribe('move', function(c) {
    var current_x = -c.current_x * 6;
    controller.current_x = current_x;
    controller.update(current_x);
  });
  controller.subscribe('move', function(c) {
    var current_x = -c.current_x * 1/6;
    scrubber_controller.current_x = current_x;
    scrubber_controller.update(current_x);
  });
  $('.scrubber .dots .dot').click(function() {
    var index = $(this).index();
    controller.current_x = controller.pageX(index);
    controller.update(controller.current_x);
    scrubber_controller.current_x = scrubber_controller.pageX(index);
    scrubber_controller.update(scrubber_controller.current_x);

    return false; 
  });


  // Social slider
  twitter_controller.init(twitter, { 
    next: $('.news-feed .updates .slider .next'), 
    previous: $('.news-feed .updates .slider .previous')
  }); 
  twitter_controller.subscribe('transition_end', function(c) {
    toggleArrows(c);
  });
/*  poll_controller.init(poll_twitter, {
    next: $('#poll #twitter .next'),
    previous: $('#poll #twitter .previous')
  });
  poll_controller.subscribe('transition_end', function(c) {
    toggleArrows(c);
  });*/
  
	
	function toggleArrows(controller, opts) {
    var opts = jQuery.extend({hide: false}, opts);

    var page_num = controller.page(controller.current_x);
    if (page_num === controller.structure.item_count - 1) {
      if (opts.hide) {
        controller.opts.next.css({display: 'none'});
      } else {
        controller.opts.next.css('opacity', 0.25);
      }
    } else {
      if (opts.hide) {
        controller.opts.next.css({display: 'block'});
      } else {
        controller.opts.next.css('opacity', 1);
      }
    }
    if (page_num === 0) {
      if (opts.hide) {
        controller.opts.previous.css({display: 'none'});
      } else {
        controller.opts.previous.css('opacity', 0.25);
      }
    } else {
      if (opts.hide) {
        controller.opts.previous.css({display: 'block'});
      } else {
        controller.opts.previous.css('opacity', 1);
      }
    }
  }

 /* $('#suggest_box').focus(function() {
    if ($(this).val() === 'Suggest a battle...') {
      $(this).val('');  
    }
  }).blur(function() {
    if ($(this).val() === '') {
      $(this).val('Suggest a battle...');  
    }
  });
*/



  // Autoslide the Machine slider
  var ap_count = 1;
  var autoplay = setInterval(function() {
    if (ap_count < $('.scrubber .dots .dot').size()) { 
      controller.current_x = controller.limitXBounds(controller.nextPageX(controller.current_x));
      controller.update(controller.current_x, true);
      controller.runHook('move', controller);
      ap_count += 1;
    } else {
      clearInterval(this);
    }
  }, 3500);
  
  $('.featured .next,.featured .previous,.scrubber .dots .dot').click(function() { clearTimeout(autoplay); });
  if (Browser.isWebkit && Browser.supportsTouch) {
    window.addEventListener('scroll', function() { clearTimeout(autoplay); }, false);
  }
  controller.subscribe('first_move', function(c) { clearTimeout(autoplay); });



/*  $('.news-feed .item p,#poll .item p').each(function(i,p) {
    $(p).html($(p).html().replace(/([a-z]+:\/\/[a-z0-9-_]+\.[a-z0-9-_:~%&\?\/.=]+[^:\.,\)\s*$])/ig, '<a href="$1" target="_blank">$1</a>').replace(/\@([a-zA-Z0-9_]{1,15})/g, '<a href="http://twitter.com/$1" target="_blank">@$1</a>'));
  });
*/
  $('.updates .twitter').click(function() { _gaq.push(['_trackEvent', 'Home', 'Feed', 'Twitter']); });
  $('.updates .facebook').click(function() { _gaq.push(['_trackEvent', 'Home', 'Feed', 'Facebook']); });
  $('.updates .youtube').click(function() { _gaq.push(['_trackEvent', 'Home', 'Feed', 'YouTube']); });
  $('.updates .flickr').click(function() { _gaq.push(['_trackEvent', 'Home', 'Feed', 'Flickr']); });
});

/*$('#suggest_button').click(function() {
  if ($('#suggest_box').val() !== 'Suggest a battle...') {
    $('#suggestion form').submit();
  }
  return false;
});
*/
