﻿(function($) {
  var width = 0;
  var slider = '#news-wrapper';
  var viewport = '#majorprojects-latest-news';
  var previousButton = 'a#button-previous-news';
  var nextButton = 'a#button-next-news';
  var itemSelector = '.majorprojects-news-item';
  var itemWidth = 200;
  var timer = null;
  var timerTime = 10000;
  var numberOfItems = 1;
  var currentItem = 1;
  var sliding = false;

  $.fn.newsslider = function() {
    return this.each(function() {
      $(viewport).find(slider).each(function() {
        numberOfItems = $(this).children(itemSelector).length;
        width = (numberOfItems * itemWidth);
        $(this).css('width', width + 'px');
      });

      $(viewport).find(previousButton).click(function() {
        $.fn.newsslider.PreviousItem();
        return false;
      });

      $(viewport).find(nextButton).click(function() {
        $.fn.newsslider.NextItem();
        return false;
      });

      $('#majorprojects-latest-news-label').html(currentItem + ' of ' + numberOfItems);
      setTimeout("$.fn.newsslider.NextItem()", timerTime);
    });
  };

  $.fn.newsslider.Slide = function() {
    $('#majorprojects-latest-news-label').html(currentItem + ' of ' + numberOfItems);
    $(slider).animate({ 'left': -((currentItem - 1) * itemWidth) + 'px' }, 'slow', function() { sliding = false; });
  }

  $.fn.newsslider.PreviousItem = function() {
    clearTimeout(timer);

    if (!sliding) {
      sliding = true;

      currentItem--;

      if (currentItem < 1) {
        currentItem = numberOfItems;
      }

      $.fn.newsslider.Slide();
    }

    timer = setTimeout("$.fn.newsslider.PreviousItem()", timerTime);
  };

  $.fn.newsslider.NextItem = function() {
    clearTimeout(timer);

    if (!sliding) {
      sliding = true;
      currentItem++;

      if (currentItem > numberOfItems) {
        currentItem = 1;
      }

      $.fn.newsslider.Slide();
    }

    timer = setTimeout("$.fn.newsslider.NextItem()", timerTime);
  };

})(jQuery);