/* custom scripts for the homepage */

$(document).ready(function() {
  function slide_itemVisibleInCallbackBeforeAnimation(carousel, item, idx, state) {
    $('#item_' + idx).removeClass('off');
    $('#item_' + idx).addClass('on');
  }

  function slide_itemVisibleOutCallbackBeforeAnimation(carousel, item, idx, state) {
    $('#item_' + idx).removeClass('on');
    $('#item_' + idx).addClass('off');
  }

  function slide_initCallback(carousel)
  {
    carousel.clip.hover(function() {
      carousel.stopAuto();
    }, function() {
      carousel.startAuto();
    });

    carousel.paused = false;

    carousel.startAuto = function(s) {
      //alert(carousel.paused);
      if (!carousel.paused) {
        if (s != undefined)
          carousel.options.auto = s;

        if (carousel.options.auto == 0)
          return carousel.stopAuto();

        if (carousel.timer != null)
          return;

        var self = carousel;
        carousel.timer = setTimeout(function() {
          self.next();
        }, carousel.options.auto * 1000);
      }
    }

    carousel.next = function() {
      carousel.stopAuto();
      //alert(carousel.first);
      if (!carousel.paused)
      {
        if (carousel.tail != null && !carousel.inTail)
        {
          carousel.scrollTail(false);
        }
        else
        {
          carousel.scroll(((carousel.options.wrap == 'both' || carousel.options.wrap == 'last') && carousel.options.size != null && carousel.last == carousel.options.size) ? 1 : carousel.first + carousel.options.scroll);
        }
      }
    }

    carousel.pause = function() {
      $('#btn-playpause')
      .removeClass('pause')
      .addClass('play');
      carousel.paused = true;
      carousel.stopAuto();
    };

    carousel.play = function() {
      $('#btn-playpause')
      .removeClass('play')
      .addClass('pause');
      carousel.paused = false;
      carousel.startAuto();
    };

    $('#iterators div.iterator').bind('click', function() {
      carousel.pause();
      carousel.scroll($.jcarousel.intval($(this).attr('id').substring(5)));
      return false;
    });

    $('#btn-next').bind('click', function() {
      carousel.next();
      return false;
    });

    $('#btn-playpause').bind('click', function() {
      if (carousel.paused)
      {
        carousel.play();
      }
      else
      {
        carousel.pause();
      }
      return false;
    });
  };

  $('#slideshow li').css('display','block');

  var n = $('#slideshow li').length;
  $("#slideshow").before('<div id="iterators"></div>');
  for (i=0;i<n;i++)
  {
    $("#iterators").append('<div id="item_' + (i+1) + '" class="iterator off"></div>');
  }
  $("#iterators").append('<div id="btn-playpause" class="pause"></div>');

  $('#slideshow').jcarousel({
    // Configuration goes here
    scroll: 1,
    vertical: true,
    wrap: 'both',
    easing:'swing',
    animation:700,
    auto: 5,
    initCallback: slide_initCallback,
    itemVisibleInCallback: {
      onBeforeAnimation: slide_itemVisibleInCallbackBeforeAnimation
    },
    itemVisibleOutCallback: {
      onBeforeAnimation: slide_itemVisibleOutCallbackBeforeAnimation
    },
    buttonNextHTML: null,
    buttonPrevHTML: null
  });
});