
$j = jQuery.noConflict();

var carouselScroller;
var carouselCount = 0;
var carouselCurrent = 1;
var scrollerDelay = 5;
var scrollerSpeed = 500;
var carouselWidth = 500;

var addPx = function (value) {
  return value + 'px';
};

var carouselInterval;
var carouselTimer = function () {
  carouselInterval = setInterval( function() {
    carousel.moveMe(carouselWidth);
  }, scrollerDelay * 1000);
};

var carousel = {
  
  init: function (mainScroller, imgList, newWidth, newHeight, newDelayTime, newScrollerSpeed) {
    
    carouselWidth = newWidth;
    carouselScroller = $j('#' + mainScroller);
    carouselCount = imgList.length;
    scrollerDelay = newDelayTime;
    scrollerSpeed = newScrollerSpeed;
    
    for( var iCount in imgList) {
      var imageLink = $j('<a href="#"></a>')
        .attr({
          'href': imgList[iCount][1],
          'target' : imgList[iCount][2]
        });
      var newImage = $j('<img src="' + imgList[iCount][0] + '" width="' + newWidth + '" height="' + newHeight + '" />');
      $j(newImage).css('left', addPx(newWidth*iCount));
      carouselScroller.append(imageLink.append(newImage));
    }
    carouselTimer();
  },
  
  moveMe: function (value) {
    clearInterval(carouselInterval);
    carouselCurrent = (carouselCurrent >= carouselCount)? 1 : (carouselCurrent=carouselCurrent+1);
    var newLeftPosition = -((carouselCurrent-1) * carouselWidth);
    
    carouselScroller.animate({
      left: newLeftPosition
    }, scrollerSpeed, function() {
      carouselTimer();
    });
  }
}
