var originalItems = null

function activateDefaultCarouselBehavior(carousel) {
  originalItems = $('ul#carousel li');
  
  // Disable autoscrolling if the user clicks the prev or next button.
  carousel.buttonNext.bind('click', function() {
      carousel.startAuto(0);
  });

  carousel.buttonPrev.bind('click', function() {
      carousel.startAuto(0);
  });

  // Pause autoscrolling if the user moves with the cursor over the clip.
  carousel.clip.hover(function() {
      carousel.stopAuto();
  }, function() {
      carousel.startAuto();
  });
  
  $('li.sponsor').click(function(){
    button = $(this);
    id = button.attr('id').substr(8);
    carousel.stopAuto();
    carousel.scroll(parseInt(id), true);
  });
}

function mycarousel_itemVisibleInCallback(carousel, item, i, state, evt)
{
    // The index() method calculates the index from a
    // given index who is out of the actual item range.
    var idx = carousel.index(i, originalItems.length);
    carousel.add(i, mycarousel_getItemHTML(originalItems[idx - 1]));
};

function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt)
{
    carousel.remove(i);
};

function mycarousel_getItemHTML(item)
{
    return $(item).html();
};


jQuery(document).ready(function(){
  $('.window').removeClass('window');
  $('#carousel').jcarousel({
    auto: 3,
    scroll: 1,
    wrap: 'circular',
    initCallback: activateDefaultCarouselBehavior,
    itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback},
    itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}
  });
});