$(function(){
  $('#hero').cycle({
    fx: 'fade',
    prev: '#goLeft',
    next: '#goRight',
    pause: 1,
    timeout: 0
  });
  
  $('#mbLogin, #mbLoginArrow').mouseover(function(){
    $('#loginPanel').slideDown();
  });
  
  $('#loginPanel, #nav').mouseover(function(e){
    e.stopPropagation();
  });
  
  function loginFunction() {
    $('#forgotPass').html('<a href="#" class="redLink" id="cancelLink">Cancel</a>');
    $('#passWrap').hide();
    $('#loginPanel').animate({height:'100px'});
    
    $('#cancelLink').mouseup(function(){
      restoreLogin();
      $('body').bind('mouseover', function(){hidePanel();});
    });
    
    $('#signinButton').attr('value', 'Recover');
    $('#loginForm').attr('action', '/send_password.php');
  }
  
  function restoreLogin() {
    $('#forgotPass').html('<a href="#" class="blueLink" id="forgotLink">Forgot password?</a>');
    $('#passWrap').show();
    $('#loginPanel').css({height:'150px'});
    
    $('#forgotLink').mouseup(function(){
      loginFunction();
      $('body').unbind('mouseover');
    });
    
    $('#signinButton').attr('value', 'Sign in');
    $('#loginForm').attr('action', '/login.php');
  }
  
  function hidePanel() {
    $('#loginPanel').slideUp(function(){
      restoreLogin();
    });
  }
  
  $('body').mouseover(function(){
    hidePanel();
  });
  
  $('#forgotLink').mouseup(function(){
    loginFunction();
  });

  var featuredOffset = 0;
  
  var updateFeatured = function(offset) {
    $.each(featuredList, function(i,v) {    
      var idx = i + offset;
      
      if (idx < 0) {
        idx += featuredList.length;
      } else if (idx >= featuredList.length) {
        idx %= featuredList.length;
      }
    
      $('#'+v).html('<a href="'+ featured['links'][idx] +'"><img src="'+ featured['thumbnails'][idx] +'" /></a><div class="featuredLabel"><div class="featuredArrow"><a href="'+ featured['links'][idx] +'"><img src="img/featuredArrow.png" /></a></div>'+ featured['labels'][idx] +'</div>');
    });
  }
  
  $('#featuredLeft').mouseup(function() {
    featuredOffset--;
    if (featuredOffset < featuredList.length*-1) {
      featuredOffset += featuredList.length;
    }
    updateFeatured(featuredOffset);
  });
  
  $('#featuredRight').mouseup(function() {
    featuredOffset++;
    if (featuredOffset >= featuredList.length) {
      featuredOffset -= featuredList.length;
    }
    updateFeatured(featuredOffset);
  });
  
  updateFeatured(featuredOffset);
});
