(function($) {
	$.fn.extend({

		promotionBar : function(options) {

			var defaults = {
				easing				: '',
				delay				: 800,
				container			: '',
				slideDiv			: '',
				slideNav			: '',
				easing				: ''
			};

			var options = $.extend(defaults, options);

			return this.each(function() {
				var o 			= options;
				var obj			= $(this);
				var slideDiv	= obj.find(o.slideDiv);
				var slideNav	= obj.find(o.slideNav);
				var slideDivs	= slideDiv.find('div');
				var totalItem   = slideDivs.length;
				var viewItem    = 4;
				var step	    = 0;				
				var timer	    = setTimeout('void(0)',50);
				var slideDivWidth		= 176;
				var isManual		= false;
				

				/////////////////////////auto calculate container width
				slideWidth		= 0;
				for(i=0;i<totalItem;i++){
					slideWidth += $(slideDivs[i]).width();
					slideWidth += 41;
				}
								
				slideDiv.css('width',(slideWidth));
				slideDiv.css('left','0px');
				
				slideNav.click(itemClicked);
				slideNav.hover(itemHover,itemHout);
				
				itemHout();
					
				function itemHover(){
					window.clearTimeout(timer);
					isManual = true;
				};
				
				function itemHout(){
					timer = setTimeout(itemClicked,4000);
					isManual = false;
				};
				
				function itemClicked(){
					
					clickedButton 	= $(this).attr('class'); // prev or next
					clickedButton   = clickedButton?clickedButton:'next';
					
					slideDivCssLeft	= parseInt(slideDiv.css('left'));
					
					step += clickedButton == 'next' ? 1 : -1;
					
					//bound
					if(step < 0) step = 0;
//					if(step > totalItem - viewItem ) step = totalItem - viewItem ;
					//loop
					step %= (totalItem +1 - viewItem);
					
					
					if(clickedButton == 'next'){
						slideWidth = step * (-slideDivWidth) ;
						
					}else{
						slideWidth = step * (-slideDivWidth);						
					}
	
					slideDiv.stop(0,1).animate({'left':slideWidth+'px' },o.delay,o.easing);
					
					if(isManual == false){
						timer = setTimeout(itemClicked,4000);
					}		
				
					return false;
				};
				
			});

		}
	});
})(jQuery);

