/**
 * jSlide
 * 滚动BANNER
 *
 * _this.init() 开始执行
 * $(element).slide({effect:"up",title:false});
 *
 * @version	1.0
 * @author	Li Jian
 * @date	2010/08
 *
 */
(function(){
	$.fn.slide = function(options){
		var settings = {
			autoStart	:	true,
			speed		:	3000,		//滚动速度
			effect		:	"fadeIn",	//显示效果
			titleBar	:	true,		//是否显示BAR
			title		:	true,		//是否显示title
			titleBarBg	:	"#fff",		//BAR条颜色
			opacity		:	"0.7",		//BAR条透明度
			current		:	0			//第几个开始
		};

		if(options) $.extend(settings,options);

		var _this = this,
			_ul = _this.find("UL"),
			_li = _ul.find("LI"),			
			_liH = _li.innerHeight(),
			_liW = _li.innerWidth(),
			_items = _li.size(),
			_tag = settings.current + 1,
			cloneNo = false;		
		
		//初始化
		_this.init = function()
		{
			if(_items > 1)
			{
				settings.titleBar ? _this.addTitleBar() : "";
				_this.addNumberBtn()
			    _this.addTitle(settings.current);				
				_this.hover(function(){	clearInterval(slideStart);},
							function(){	slideStart = setInterval(_this.play, settings.speed);});				
				var slideStart = setInterval(_this.play, settings.speed);
			}
		}

		//创建titleBar
		_this.addTitleBar = function()
		{
			_this.append("<div class=\"slideTitleBarBg\"></div>");
			$(".slideTitleBarBg").css({
				"background-color"	:	settings.titleBarBg,
				"opacity"			:	settings.titleBar ? settings.opacity : 1
			});
		}

		//创建数字按钮
		_this.addNumberBtn = function(){
			_this.append("<div class=\"slideNumberBtn\"></div>");
			_itemsHTML = "";
			_li.each(function(i){
				_itemsHTML += "<a"+(i==settings.current ? " class=\"current\"" : "")+">"+(i+1)+"</a>";
			});
			$(".slideNumberBtn").html(_itemsHTML);
			var btnItem = $(".slideNumberBtn").find("a");
			btnItem.each(function(i){
				$(this).click(function(){
					btnItem.attr("class","").eq(i).attr("class","current");
					_this.effect(settings.effect,i);
					_this.addTitle(i);
					_tag = i+1;
				});
			});
		}

		//效果切换
		_this.play = function(effect,item){
			if(_tag > _items-1) _tag = 0;			
			$(".slideNumberBtn").find("a").attr("class","").eq(_tag).attr("class","current");
			_this.effect(settings.effect,_tag);
			_this.addTitle(_tag);			
			_tag++;
		}

		//创建TITLE
		_this.addTitle = function(item){			
			if(settings.titleBar){
				if(settings.title){	
					if($(".slideNumberBtn").find("span").size() < 1)  $(".slideNumberBtn").prepend("<span></span>");
					$(".slideNumberBtn span").html(_li.find("img").eq(item).attr("alt"));
				}
			}
		}
		//确定复制否后连续滚动
		_this.cloneNo = function(){
			if(!cloneNo)
			{
				_li.eq(_items-1).clone().prependTo(_ul);
				cloneNo = true;
			}
		}
		//展示效果
		_this.effect = function(effect,item)
		{			
			switch(effect)
			{
				case "show":
					_li.stop().hide().eq(item).show();
					break;
				case "fadeIn":
					_li.stop().hide().eq(item).fadeIn();
					break;				
				case "up":											
					_this.cloneNo();
					_ul
						.css({
							"position"		:	"absolute",								
							"top"			:	-(item * _liH),
							"margin-top"	:	0
						})
						.stop()
						.animate({
							"margin-top"	:	-_liH
						},settings.speed * 0.6);					
					break;				
				case "left":					
					_this.cloneNo();					
					_ul
						.css({
							"position"		:	"absolute",
							"width"			:	_liW * (_items + 1),
							"left"			:	-(item * _liW),
							"margin-left"	:	0
						})
						.stop()
						.animate({
							"margin-left"	:	-_liW
						},settings.speed * 0.6);
					_ul.find("li").css({"float"		:	"left"});
					break;
			}
		}	
		
		_this.init();
	}
})();
