
	
	// 30.07.2008 - JSBASE carousel widget v0.1.0 by Sebastian P. Wolbring

	JSBASE.widget.carousel = function () {
	
		var noVisElms = 7;
		
		// animationSpeed:   0.1 = fast,  1 = normal,  more than 1 = slower;
		var animationSpeed = 1.4;
		var animate = true;
		
		var viewport = $('jsbaseCarouselViewport'); if (!viewport) {return;}
		var viewportWidthInt = parseInt(viewport.getStyle('width')) - 8;
		
		var list = $('jsbaseCarouselList'); if (!list) {return;}
		var listItems = $$('.jsbaseCarouselListItem'); if (!listItems) {return;}
		var listItemWidthInt = viewportWidthInt / noVisElms; // DEPRECATED: parseInt(listItems[0].getStyle('width'));
		var listTotalWidthInt = listItems.length * listItemWidthInt;
		
		var listPositionInt = parseInt(list.getStyle('left'));
		
		var lastScrollPosLeft = 0;
		var lastScrollPosRight = -1 * (listTotalWidthInt - viewportWidthInt);
		
		return {
			move : function (direction) {
				if (typeof(direction) === 'undefined') {direction = 1;}
				var newListPositionInt = listPositionInt + (viewportWidthInt * direction);
				
				if (newListPositionInt < lastScrollPosRight) {
					newListPositionInt = lastScrollPosRight;
				}
				if (newListPositionInt > lastScrollPosLeft) {
					newListPositionInt = lastScrollPosLeft;
				}
				
				var noElmsToMove = Math.abs((newListPositionInt - listPositionInt) / listItemWidthInt);
				var animationDuration = noElmsToMove / noVisElms * animationSpeed;
				
				if (listPositionInt === newListPositionInt) {animate = false;} else {animate = true;}
				
				if (animate === true) {
					// var animation = new Tween(object,property,easing,start,end,duration,suffixe);
					var animation = new Tween(list.style,'left',Tween.setFinish,listPositionInt,newListPositionInt,animationDuration,'px');
					listPositionInt = newListPositionInt;
					animation.start();
				}
			},
			moveLeft : function (e) {
				JSBASE.DOM.prevDefault(e);
				JSBASE.widget.carousel.move(1);
			},
			moveRight : function (e) {
				JSBASE.DOM.prevDefault(e);
				JSBASE.widget.carousel.move(-1);
			}
		}
		
	}();



