﻿(function($) {
	$.fn.npfpccSlider = function(options){  
		// 默认配置属性
		var defaults = {
			btnShow:        '',    //按钮显示方式 number为数字显示
			numberCls:       'nemberBtn',    //数字显示层的id
			numberCss:      {width:150,height:15,top:315,left:605},    //数字显示层的默认样式
			prevCls: 		'prevBtn',    //按钮"上一个"的class名称
			prevCss:        {top:315,left:685},
			nextCls: 		'nextBtn',    //按钮"下一个"的class名称
			nextCss:        {top:315,left:720},
			pauseShow:       true,    //是否显示"暂停"按钮
			pauseCls:       "pauseBtn",    //按钮"暂停"的class名称
			pauseCss:        {top:316,left:702},
			text:           false,
			textCss:        {top:177,left:0},
			auto:			true,     //是否自动播放
			speed: 			800,
			pause:			3000
		}; 
	    var options = $.extend(defaults, options);
		var that = $("a",this);
		that.each(function(e){$(this).attr("autoindex",e);})
		var n = 0;
		this.css({"position":"relative"});
		//添加按钮
		if(options.btnShow != "number"){
			    this.append("<div class='focusBtn'></div>");
				this.append("<div class="+options.prevCls+" title='上一个'></div>");
				this.append("<div class="+options.nextCls+" title='下一个'></div>");
				$($(".focusBtn"),this).css({"position":"absolute","z-index": 100,"top": options.prevCss.top-10,"left":options.prevCss.left-10});
				$($("."+options.prevCls),this).css({"position":"absolute","z-index": 999,"top": options.prevCss.top,"left":options.prevCss.left,"cursor":"pointer"});
				$($("."+options.nextCls),this).css({"position":"absolute","z-index": 999,"top": options.nextCss.top,"left":options.nextCss.left,"cursor":"pointer"});
				if(options.pauseShow) {
				   this.append("<div class="+options.pauseCls+" title='暂停'></div>"); 
				   $($("."+options.pauseCls),this).css({"position":"absolute","z-index": 999,"top": options.pauseCss.top,"left":options.pauseCss.left,"cursor":"pointer"});}
				var timeout; if(options.auto){timeout = setInterval(function(){autotime();},options.pause);}
				that.hover(function(){var Div = $(this).parent("div");clearInterval(timeout); Div.find("."+options.pauseCls).addClass("pauseDis");Div.find("."+options.nextCls).removeClass("nextDis");},function(){timeout = setInterval(function(){autotime();},options.pause);$(this).parent("div").find("."+options.pauseCls).removeClass("pauseDis");});
				
				$("."+options.prevCls).click(function(){
					 clearTimeout(timeout);
					 var Div = $(this).parent("div");
					 var i = Number($(this).parent("div").find(".show").attr("autoindex"))-1;
					 if(i<0) i=6;  show(i); 
					 $(this).addClass("prevDis");
					 Div.find("."+options.nextCls).removeClass("nextDis");
					 Div.find("."+options.pauseCls).removeClass("pauseDis");
				}).mouseout(function(){
					 $(this).removeClass("prevDis");
					 timeout = setInterval(function(){autotime();},options.pause);	
				})
				
				$("."+options.nextCls).click(function(){
					 clearTimeout(timeout);
					 var Div = $(this).parent("div");
					 var i = Number($(this).parent("div").find(".show").attr("autoindex"))+1;
					 if(i==that.length) i = 0; show(i);
					 Div.find("."+options.prevCls).removeClass("prevDis");  
					 Div.find("."+options.pauseCls).removeClass("pauseDis");
				}).mouseout(function(){
					 $(this).removeClass("nextDis");	
					 timeout = setInterval(function(){autotime();},options.pause);
				})
				
				$("."+options.pauseCls).click(function(){
					 if($(this).attr("class") == options.pauseCls)	{							   
					 clearTimeout(timeout);
					 var Div = $(this).parent("div");
					 Div.find("."+options.nextCls).removeClass("nextDis");	
					 Div.find("."+options.pauseCls).addClass("pauseDis");	
					 } else {
						 $(this).parent("div").find("."+options.pauseCls).removeClass("pauseDis");	
						 timeout = setInterval(function(){autotime();},options.pause);
					 }
				})
				
				function show(e){
					that.hide();that.removeClass("show");
					that.eq(e).fadeIn("slow");that.eq(e).addClass("show");
					that.parent("div").find("."+options.prevCls).removeClass("prevDis");
					that.parent("div").find("."+options.nextCls).addClass("nextDis");
					n = e;
				}
		}else{	
		        //添加按钮
				this.append("<div class="+options.numberCls+"></div>");
				$("."+options.numberCls).css({"position":"absolute","z-index": 999,"width": options.numberCss.width,"height": options.numberCss.height,"top": options.numberCss.top,"left":options.numberCss.left,"cursor":"pointer"});
				if(options.text){
					this.append('<div class="focustext"></div>');
					this.append('<div class="focustextbg"></div>');
				}
				that.parent("div").find(".focustext").css({"position":"absolute","z-index": 100,"top": options.textCss.top,"left":options.textCss.left});
				that.parent("div").find(".focustextbg").css({"position":"absolute","z-index": 99,"top": options.textCss.top,"left":options.textCss.left});
				that.parent("div").find(".focustext").html(that.attr("title"));
				function getLi(){
					var count = that.length;
					var html = "<ul>";
					for(var i=1;i<=count;i++){html+="<li title="+$("img",that).eq(i-1).attr("title")+">"+i+"</li>";}
					html+="</ul>";
					return html;
				}
				$("."+options.numberCls).html(getLi()); 
				$("li",$("."+options.numberCls)).eq(0).addClass("hov");
				var timeout; if(options.auto){timeout = setInterval(function(){autotime();},options.pause);}
				that.hover(function(){clearInterval(timeout);},function(){timeout = setInterval(function(){autotime();},options.pause);});$("li",$("."+options.numberCls)).each(function(e){$(this).attr("size",e);});
				$("li",$("."+options.numberCls)).mouseover(function(){
					 clearTimeout(timeout);
					 var i = $(this).attr("size");
					 show(i); 
				})
				function show(e){
					that.parent("div").find(".focustext").hide();
					that.parent("div").find(".focustextbg").hide();
					that.hide();that.removeClass("show");
					that.eq(e).fadeIn("slow");that.eq(e).addClass("show");
					$("li",$("."+options.numberCls)).removeClass("hov");
					$("li",$("."+options.numberCls)).eq(e).addClass("hov");
					var title = that.eq(e).attr("title");
					that.parent("div").find(".focustext").html(title);
					that.parent("div").find(".focustext").show();
					that.parent("div").find(".focustextbg").css({"opacity":"0.5"}).show();
					n = e;
				}
		}
		function autotime(){
				n++;if(n==that.length){n=0;}
				show(n,that);
		} 
	}
})(jQuery);

	
$(function(){
	$("#focus").npfpccSlider({
	btnShow:"number",
	numberCss:{width:190,height:20,top:145,left:116},
	text:true
	});	
})