﻿(function($){
	$.fn.conShow = function(options){	
		var set = {
			timeout:          6000,
			listIndexId:      '#listIndex',
			listItem_boxID:   '#listItem_box',
			listItem:         '.listItem',
			oWidth:           200,
			next:             '#down', 
			prev:             '#up'
		};
		options = options || {};
		var opts = $.extend(set,options);
		var n = 0;
		var timer = null;
		var that = this;
		var len = $(this).find(opts.listItem).length;
		var listItem_box = $(opts.listItem_boxID);
		var bStop = false;
		for(var i=0;i<len; i++){
			$('<a>'+(i+1)+'</a>').appendTo($(opts.listIndexId));
		}
		
		var index = $(opts.listIndexId).find('a');
		index.eq(n).addClass('current');
		function play(){
			timer = setInterval(function(){
				n++;
				if(n==len) n=0;				
				listItem_box.stop().animate({left:-(n)*opts.oWidth});
				index.removeClass().eq(n).addClass('current');
			},opts.timeout);
		}
		play();
		function goLeft(){
			listItem_box.stop().animate({left:-(len-1)*opts.oWidth},function(){
					n = len -1;
					index.removeClass().eq(n).addClass('current');
					play();
				});
		}
		function goRight(){
			listItem_box.stop().animate({left:0},function(){
					n = 0;
					index.removeClass().eq(n).addClass('current');
					play();
				});
		}
		$(opts.next).click(function(){
			clearInterval(timer);
			n++;
			if(n==len){
				goRight()
			}else{
				listItem_box.stop().animate({left:-(n)*opts.oWidth},function(){
					index.removeClass().eq(n).addClass('current');
					play();
				});
			}
			
		});
		$(opts.prev).click(function(){
			clearInterval(timer);
			n--;
			if(n==-1){
				goLeft()
			}else{
				listItem_box.stop().animate({left:-(n)*opts.oWidth},function(){
					index.removeClass().eq(n).addClass('current');
					play();
				});
			}
		});
		index.each(function(m){
			$(this).click(function(){
				clearInterval(timer);
				index.removeClass().eq(m).addClass('current');
				listItem_box.stop().animate({left:-(m)*opts.oWidth},function(){
					n = m;
					play();
				});
			});
		});
	}
})(jQuery);
