(function($) {
    $.fn.bannerslider=function(options){
        var defaults={
            Time:4000,              // 切换时间间隔，单位毫秒，1秒=1000毫秒
            AutoStart:true,         // 是否自动开始播放
	    switchEffect:'fadeOut', // 切换特效,fadeOut, ease, none,
	    SwitchPath: 'left',      // up , left
            SwitchMode:'Click',     // 图片切换的方式，Click为单击切换，Hover为鼠标移动到按钮上时切换
            SwitchTime:1200         // 切换时间，单位毫秒，1秒=1000毫秒
        };
	var Timer = 0 ;
        var opts=$.extend(defaults,options);
        var $this=$(this);
	var ul =  $(this).find('ul') ;
	var list = $(this).find('li') ;
	var _iheight= $(this).height();
	var _iwidth = $(this).width();
	var count = list.length;
	Init(this);
        if(opts.AutoStart){
	    Timer =setTimeout(function(){
                Slide(1);
            },opts.Time);
	    list.eq(0).css({zIndex:3});
	    list.eq(1).css({zIndex:2});
	}
	$('#prev').bind('click',function(){
	    var index = list.index($this.find('.current'));
	    Slide(index-1);
	});
	$('#next').bind('click',function(){
	    var index = list.index($this.find('.current'));
	    Slide(index+1);
	});

        function Slide(index){ // 切换到第 index
            StopSlider(); // 先清楚掉以前的setTimeOut;
            // current表示当前停止在哪个元素上上面，其上一张为 prev
	    var current = list.index($this.find('.current'));
	    if(index > count -1)
	    {
		index = 0;
	    }
	    if(index < 0)
	    {
		index = count -1 ;
	    }
	    if(opts.switchEffect=='fadeOut')
	    {
		list.eq(current).css({zIndex:3});
		list.eq(index).css({zIndex:2});
		list.eq(current).stop(true,false).animate({opacity: 0}, {duration: opts.SwitchTime , complete:function(){
			list.css({zIndex:1,opacity:1});
			list.eq(index).css({zIndex:3}).show();
		}});

		//list.eq(current).fadeOut(opts.switchTime,function(){
		//
                   //	});
	    }
	    else if(opts.switchEffect=='ease')
	    {
			if(opts.SwitchPath=='up')
			{
				var topx = -1 * _iheight * index ;
				ul.animate({top : topx}, {duration: opts.SwitchTime, easing: 'easeOutQuad'});
			}
			else if(opts.SwitchPath == 'left')
			{
				var leftx = -1 * _iwidth * index;
				ul.animate({left : leftx}, {duration: opts.SwitchTime, easing: 'easeOutQuad'});
			}
	    }
	    
	    
	    
	   /*
	   list.eq(current).fadeOut(opts.SwitchTime,function(){
                        list.eq(index).show();
            });
	    */
	   
            // 切换表示当前元素
	    list.removeClass('current');
	    list.eq(index).addClass('current');
	    // 开始下一次循环
	    Timer =setTimeout(function(){
                Slide(index+1);
            },opts.Time);
        }

	
        function Init(obj){
	    if(opts.switchEffect=='fadeOut')
	    {
		ul.css({position:'relative'});
		list.css({position:'absolute', zIndex: 1});
	    }
	    else if(opts.switchEffect=='ease')
	    {
		     if(opts.SwitchPath == 'up')
		    {
			    $this.find('ul').css({position:'absolute', width: _iwidth, height : _iheight * list.length});
		    }
		    else if(opts.SwitchPath == 'left')
		    {
			    $this.find('ul').css({position:'absolute', height: _iheight, width : _iwidth * list.length});
			    $this.find('li').css({'float': 'left'});
		     }
	    }
            //list.hide();
            //list.eq(0).show();
        }

        function StopSlider(){
	    ul.stop();
	    if(Timer) clearTimeout(Timer);
        }
    }

})(jQuery);

