/**
 * 欢迎使用 KinSlideshow1 幻灯片『焦点图』插件
 * Download by http://www.codefans.net
 * jQuery KinSlideshow1 plugin
 * ========================================〓说明〓========================================================
 * jQuery幻灯片插件，基本能满足你在网页上使用幻灯片(焦点图)效果。兼容IE6/IE7/IE8/IE9,FireFox,Chrome*,Opera。
 * 想要兼容Chrome需要在img标签中写上图片的宽度和高度<img src= width="" height="">,其他浏览器不需要。<img src="">
 * 使用极其方便、简单，外观样式可以自定义,具体定义样式方法和设置其他参数请参见demo文件
 * 不需要自己定义焦点图宽度和高度，自动读取图片宽和高，所有图片尺寸要保持一致。
 * 所有宽度和高度单位都是像素，设置参数时不需要加单位(px)
 * ========================================================================================================
 * @name jquery.KinSlideshow1.js
 * @version 1.0
 * @author Mr.Kin
 * @date 2010-07-25
 * @Email:Mr.Kin@Foxmail.com
 * @QQ:87190493
 *
 * 欲索取最新版本KinSlideshow1或是报告Bug，请发送Email至 【Mr.Kin@Foxmail.com】
 *
 **/


(function($) {

$.fn.KinSlideshow1 = function(settings){

	  settings = jQuery.extend({
		   intervalTime : 10, //切换展示间隔时间 【单位：秒】
		   moveSpeedTime : 400,//切换一张图片所需时间，【单位：毫秒】
		   moveStyle:"left",//切换方向 【 left | right | up | down 】left:向左切换,right:向右切换,up:向上切换,down:向下切换
		   mouseEvent:"mouseclick", //鼠标操作按钮事件,【mouseclick | mouseover】mouseclick：鼠标单击切换。mouseover：鼠标滑过切换。
		   isHasTitleBar:true,//是否显示标题背景，
		   titleBar:{titleBar_height:30,titleBar_bgColor:"#000000",titleBar_alpha:0.1},//标题背景样式，(isHasTitleBar = true 前提下启用)
		   isHasTitleFont:true,//是否显示标题文字 
		   titleFont:{TitleFont_size:12,TitleFont_color:"#FFFFFF",TitleFont_family:"Verdana",TitleFont_weight:"bold"},//标题文字样式，(isHasTitleFont = true 前提下启用)
		   isHasBtn:true, //是否显示按钮
		   btn:{btn_bgColor:"#666666",btn_bgHoverColor:"#CC0000",btn_fontColor:"#CCCCCC",btn_fontHoverColor:"#000000",btn_fontFamily:"Verdana",btn_borderColor:"#999999",btn_borderHoverColor:"#FF0000",btn_borderWidth:1,btn_bgAlpha:0.7} //按钮样式设置，(isHasBtn = true 前提下启用)
	  },settings);
	  var titleBar_Bak = {titleBar_height:40,titleBar_bgColor:"#000000",titleBar_alpha:0.5}
	  var titleFont_Bak = {TitleFont_size:12,TitleFont_color:"#FFFFFF",TitleFont_family:"Verdana",TitleFont_weight:"bold"}
	  var btn_Bak = {btn_bgColor:"#666666",btn_bgHoverColor:"#CC0000",btn_fontColor:"#CCCCCC",btn_fontHoverColor:"#000000",btn_fontFamily:"Verdana",btn_borderColor:"#999999",btn_borderHoverColor:"#FF0000",btn_borderWidth:1,btn_bgAlpha:0.7} //按钮样式设置，(isHasBtn = true 前提下启用)
	  for (var key in titleBar_Bak)
	  {
		  if(settings.titleBar[key] == undefined){
			  settings.titleBar[key] = titleBar_Bak[key];
		  }
	  }	
	  for (var key in titleFont_Bak)
	  {
		  if(settings.titleFont[key] == undefined){
			  settings.titleFont[key] = titleFont_Bak[key];
		  }
	  }
	  for (var key in btn_Bak)
	  {
		  if(settings.btn[key] == undefined){
			  settings.btn[key] = btn_Bak[key];
		  }
	  }	  
	  
	  
	 var KinSlideshow1_BoxObject = this;
	 var KinSlideshow1_BoxObjectSelector = $(KinSlideshow1_BoxObject).selector;
	 var KinSlideshow1_DateArray = new Array();
	 var KinSlideshow1_imgaeLength = 0;
	 var KinSlideshow1_Size =new Array();
	 var KinSlideshow1_changeFlag = 0;
	 var KinSlideshow1_IntervalTime = settings.intervalTime;
	 var KinSlideshow1_setInterval;
	 var KinSlideshow1_firstMoveFlag = true;
	 if(isNaN(KinSlideshow1_IntervalTime) || KinSlideshow1_IntervalTime <= 1){
			KinSlideshow1_IntervalTime = 5;
	 }
	 if(settings.moveSpeedTime > 500){
		 settings.moveSpeedTime = 500;
	 }else if(settings.moveSpeedTime < 100){
		 settings.moveSpeedTime = 100;
	 }
	 
	 function KinSlideshow1_initialize(){
		 $(KinSlideshow1_BoxObject).css({visibility:"hidden"});
		 $(KinSlideshow1_BoxObjectSelector+" a img").css({border:0});
		 KinSlideshow1_start();
	 };
   
     function KinSlideshow1_start(){
		 KinSlideshow1_imgaeLength = $(KinSlideshow1_BoxObjectSelector+" a").length;
		 KinSlideshow1_Size.push($(KinSlideshow1_BoxObjectSelector+" a img").width());
		 KinSlideshow1_Size.push($(KinSlideshow1_BoxObjectSelector+" a img").height());
		 
		$(KinSlideshow1_BoxObjectSelector+" a img").each(function(i){
			KinSlideshow1_DateArray.push($(this).attr("alt"));		
		});
		$(KinSlideshow1_BoxObjectSelector+" a").wrapAll("<div id='KinSlideshow1_content'></div>");
		
	    $("#KinSlideshow1_content").clone().attr("id","KinSlideshow1_contentClone").appendTo(KinSlideshow1_BoxObject);
		KinSlideshow1_setTitleBar();
		KinSlideshow1_setTitleFont();
		KinSlideshow1_setBtn();
		KinSlideshow1_action();
		KinSlideshow1_btnEvent(settings.mouseEvent);
		$(KinSlideshow1_BoxObject).css({visibility:"visible"});
	 };
	 function KinSlideshow1_setTitleBar(){
		$(KinSlideshow1_BoxObject).css({width:KinSlideshow1_Size[0],height:KinSlideshow1_Size[1],overflow:"hidden",position:"relative"});
		$(KinSlideshow1_BoxObject).append("<div class='KinSlideshow1_titleBar'></div>");
		var getTitleBar_Height = settings.titleBar.titleBar_height;//获取面板高度
		
		if(isNaN(getTitleBar_Height)){
			getTitleBar_Height = 40;
		}else if(getTitleBar_Height < 25){
			getTitleBar_Height = 25;
		};
		
		$(KinSlideshow1_BoxObjectSelector+" .KinSlideshow1_titleBar").css({height:getTitleBar_Height,width:"100%",position:"absolute",bottom:0,left:0})
		 if(settings.isHasTitleBar){
		 		$(KinSlideshow1_BoxObjectSelector+" .KinSlideshow1_titleBar").css({background:settings.titleBar.titleBar_bgColor,opacity:settings.titleBar.titleBar_alpha})	 
		 }
	 };
	 function KinSlideshow1_setTitleFont(){
		 if(settings.isHasTitleFont){
			$(KinSlideshow1_BoxObjectSelector+" .KinSlideshow1_titleBar").append("<h2 class='title' style='margin:3px 0 0 6px;padding:0;'></h2>");	
			$(KinSlideshow1_BoxObjectSelector+" .KinSlideshow1_titleBar .title").css({fontSize:settings.titleFont.TitleFont_size,color:settings.titleFont.TitleFont_color,fontFamily:settings.titleFont.TitleFont_family,fontWeight:settings.titleFont.TitleFont_weight});
			setTiltFontShow(0);
		 };
		 
	 };
	 function KinSlideshow1_setBtn(){
		 if(settings.btn.btn_borderWidth > 2){settings.btn.btn_borderWidth = 2}
		 if(settings.btn.btn_borderWidth < 0 || isNaN(settings.btn.btn_borderWidth)){settings.btn.btn_borderWidth = 0}
		 if(settings.isHasBtn && KinSlideshow1_imgaeLength >= 2){
			 $(KinSlideshow1_BoxObject).append("<div class='KinSlideshow1_btnBox' style='position:absolute;right:10px;bottom:5px; z-index:100'></div>");
			 var KinSlideshow1_btnList = "";
			 for(i=1;i<=KinSlideshow1_imgaeLength;i++){
					KinSlideshow1_btnList+="<li>"+i+"</li>";
			 }
			 KinSlideshow1_btnList = "<ul id='btnlistID1' style='margin:0;padding:0; overflow:hidden'>"+KinSlideshow1_btnList+"</ul>";
			 $(KinSlideshow1_BoxObjectSelector+" .KinSlideshow1_btnBox").append(KinSlideshow1_btnList);
			 $(KinSlideshow1_BoxObjectSelector+" .KinSlideshow1_btnBox #btnlistID1 li").css({listStyle:"none",float:"left",width:18,height:18,borderWidth:settings.btn.btn_borderWidth,borderColor:settings.btn.btn_borderColor,borderStyle:"solid",background:settings.btn.btn_bgColor,textAlign:"center",cursor:"pointer",marginLeft:3,fontSize:12,fontFamily:settings.btn.btn_fontFamily,lineHeight:"18px",opacity:settings.btn.btn_bgAlpha,color:settings.btn.btn_fontColor});
			 $("#btnlistID1 li:eq(0)").css({background:settings.btn.btn_bgHoverColor,borderColor:settings.btn.btn_borderHoverColor,color:settings.btn.btn_fontHoverColor});
		 };
	 };
	 function KinSlideshow1_action(){
		switch(settings.moveStyle){
			case "left":  KinSlideshow1_moveLeft(); break;
			case "right": KinSlideshow1_moveRight();break;
			case "up":    KinSlideshow1_moveUp();   break;
			case "down":  KinSlideshow1_moveDown(); break;
			default:      settings.moveStyle = "left"; KinSlideshow1_moveLeft();
		}	 
	 };
	 function KinSlideshow1_moveLeft(){
		$(KinSlideshow1_BoxObjectSelector+" div:lt(2)").wrapAll("<div id='KinSlideshow1_moveBox'></div>");
		$("#KinSlideshow1_moveBox").css({width:KinSlideshow1_Size[0],height:KinSlideshow1_Size[1],overflow:"hidden",position:"relative"});
		$("#KinSlideshow1_content").css({float:"left"});
		$("#KinSlideshow1_contentClone").css({float:"left"});
		$(KinSlideshow1_BoxObjectSelector+" #KinSlideshow1_moveBox div").wrapAll("<div id='KinSlideshow1_XposBox'></div>");
		$(KinSlideshow1_BoxObjectSelector+" #KinSlideshow1_XposBox").css({float:"left",width:"2000%"});
		
		KinSlideshow1_setInterval = setInterval(function(){KinSlideshow1_move(settings.moveStyle)},KinSlideshow1_IntervalTime*1000+settings.moveSpeedTime);
	 };
	 function KinSlideshow1_moveRight(){
		$(KinSlideshow1_BoxObjectSelector+" div:lt(2)").wrapAll("<div id='KinSlideshow1_moveBox'></div>");
		$("#KinSlideshow1_moveBox").css({width:KinSlideshow1_Size[0],height:KinSlideshow1_Size[1],overflow:"hidden",position:"relative"});
		$("#KinSlideshow1_content").css({float:"left"});
		$("#KinSlideshow1_contentClone").css({float:"left"});
		$(KinSlideshow1_BoxObjectSelector+" #KinSlideshow1_moveBox div").wrapAll("<div id='KinSlideshow1_XposBox'></div>");
		$(KinSlideshow1_BoxObjectSelector+" #KinSlideshow1_XposBox").css({float:"left",width:"2000%"});
		$("#KinSlideshow1_contentClone").html("");
		$("#KinSlideshow1_content a").wrap("<span></span>")
		$("#KinSlideshow1_content a").each(function(i){
			$("#KinSlideshow1_contentClone").prepend($("#KinSlideshow1_content span:eq("+i+")").html());
		})
		
		$("#KinSlideshow1_content").html($("#KinSlideshow1_contentClone").html());
		var KinSlideshow1_offsetLeft = (KinSlideshow1_imgaeLength-1)*KinSlideshow1_Size[0];
		$("#KinSlideshow1_moveBox").scrollLeft(KinSlideshow1_offsetLeft);
		KinSlideshow1_setInterval = setInterval(function(){KinSlideshow1_move(settings.moveStyle)},KinSlideshow1_IntervalTime*1000+settings.moveSpeedTime);
	 };	 
	 function KinSlideshow1_moveUp(){
		$(KinSlideshow1_BoxObjectSelector+" div:lt(2)").wrapAll("<div id='KinSlideshow1_moveBox'></div>");//用div包裹
		$("#KinSlideshow1_moveBox").css({width:KinSlideshow1_Size[0],height:KinSlideshow1_Size[1],overflow:"hidden",position:"relative"});
		
		$("#KinSlideshow1_moveBox").animate({scrollTop: 0}, 1);
		KinSlideshow1_setInterval = setInterval(function(){KinSlideshow1_move(settings.moveStyle)},KinSlideshow1_IntervalTime*1000+settings.moveSpeedTime);
		
	 };	 
	 
	 function KinSlideshow1_moveDown(){
		$(KinSlideshow1_BoxObjectSelector+" div:lt(2)").wrapAll("<div id='KinSlideshow1_moveBox'></div>");//用div包裹
		$("#KinSlideshow1_moveBox").css({width:KinSlideshow1_Size[0],height:KinSlideshow1_Size[1],overflow:"hidden",position:"relative"});
		$("#KinSlideshow1_contentClone").html("");
		$("#KinSlideshow1_content a").wrap("<span></span>")
		$("#KinSlideshow1_content a").each(function(i){
			$("#KinSlideshow1_contentClone").prepend($("#KinSlideshow1_content span:eq("+i+")").html());
		})
		$("#KinSlideshow1_content").html($("#KinSlideshow1_contentClone").html());
		
		var KinSlideshow1_offsetTop = (KinSlideshow1_imgaeLength-1)*KinSlideshow1_Size[1];
		$("#KinSlideshow1_moveBox").animate({scrollTop: KinSlideshow1_offsetTop}, 1);
		KinSlideshow1_setInterval = setInterval(function(){KinSlideshow1_move(settings.moveStyle)},KinSlideshow1_IntervalTime*1000+settings.moveSpeedTime);
	 };
	function KinSlideshow1_move(style){
			
			switch(style){
				case "left":
					if(KinSlideshow1_changeFlag >= KinSlideshow1_imgaeLength){
						KinSlideshow1_changeFlag = 0;
						$("#KinSlideshow1_moveBox").scrollLeft(0);
						$("#KinSlideshow1_moveBox").animate({scrollLeft:KinSlideshow1_Size[0]}, settings.moveSpeedTime);
					}else{
						sp =(KinSlideshow1_changeFlag+1)*KinSlideshow1_Size[0];
						$("#KinSlideshow1_moveBox").animate({scrollLeft: sp}, settings.moveSpeedTime);
					}
					setTiltFontShow(KinSlideshow1_changeFlag+1);
					break;
				case "right":
					var KinSlideshow1_offsetLeft = (KinSlideshow1_imgaeLength-1)*KinSlideshow1_Size[0];
					if(KinSlideshow1_changeFlag >= KinSlideshow1_imgaeLength){
						KinSlideshow1_changeFlag = 0;
						$("#KinSlideshow1_moveBox").scrollLeft(KinSlideshow1_offsetLeft+KinSlideshow1_Size[0]);
						$("#KinSlideshow1_moveBox").animate({scrollLeft:KinSlideshow1_offsetLeft}, settings.moveSpeedTime);
					}else{
						if(KinSlideshow1_firstMoveFlag){
							KinSlideshow1_changeFlag++;
							KinSlideshow1_firstMoveFlag = false;
						}
						sp =KinSlideshow1_offsetLeft-(KinSlideshow1_changeFlag*KinSlideshow1_Size[0]);

						$("#KinSlideshow1_moveBox").animate({scrollLeft: sp}, settings.moveSpeedTime);
					}
					setTiltFontShow(KinSlideshow1_changeFlag);
					break;
				case "up":
					if(KinSlideshow1_changeFlag >= KinSlideshow1_imgaeLength){
						KinSlideshow1_changeFlag = 0;
						$("#KinSlideshow1_moveBox").scrollTop(0);
						$("#KinSlideshow1_moveBox").animate({scrollTop:KinSlideshow1_Size[1]}, settings.moveSpeedTime);
					}else{
						sp =(KinSlideshow1_changeFlag+1)*KinSlideshow1_Size[1];
						$("#KinSlideshow1_moveBox").animate({scrollTop: sp}, settings.moveSpeedTime);
					}
					setTiltFontShow(KinSlideshow1_changeFlag+1);
					break;
				case "down":
					var KinSlideshow1_offsetLeft = (KinSlideshow1_imgaeLength-1)*KinSlideshow1_Size[1];
					if(KinSlideshow1_changeFlag >= KinSlideshow1_imgaeLength){
						KinSlideshow1_changeFlag = 0;
						$("#KinSlideshow1_moveBox").scrollTop(KinSlideshow1_offsetLeft+KinSlideshow1_Size[1]);
						$("#KinSlideshow1_moveBox").animate({scrollTop:KinSlideshow1_offsetLeft}, settings.moveSpeedTime);
					}else{
						if(KinSlideshow1_firstMoveFlag){
							KinSlideshow1_changeFlag++;
							KinSlideshow1_firstMoveFlag = false;
						}
						sp =KinSlideshow1_offsetLeft-(KinSlideshow1_changeFlag*KinSlideshow1_Size[1]);

						$("#KinSlideshow1_moveBox").animate({scrollTop: sp}, settings.moveSpeedTime);
					}
					setTiltFontShow(KinSlideshow1_changeFlag);
					break;
			}
			
			KinSlideshow1_changeFlag++;
	}	 
	 
	 function setTiltFontShow(index){
		 if(index == KinSlideshow1_imgaeLength){index = 0};
		 if(settings.isHasTitleFont){
			$(KinSlideshow1_BoxObjectSelector+" .KinSlideshow1_titleBar h2").html(KinSlideshow1_DateArray[index]);
		 };
		$("#btnlistID1 li").each(function(i){
			if(i == index){
				$(this).css({background:settings.btn.btn_bgHoverColor,borderColor:settings.btn.btn_borderHoverColor,color:settings.btn.btn_fontHoverColor});						
			}else{
				$(this).css({background:settings.btn.btn_bgColor,borderColor:settings.btn.btn_borderColor,color:settings.btn.btn_fontColor});						
			}
		 })		 
	 };
	
	function KinSlideshow1_btnEvent(Event){
		switch(Event){
			case "mouseover" : KinSlideshow1_btnMouseover(); break;
			case "mouseclick" : KinSlideshow1_btnMouseclick(); break;			
			default : KinSlideshow1_btnMouseover();
		}
	};
	
	function KinSlideshow1_btnMouseover(){
		$("#btnlistID1 li").mouseover(function(){
			var curLiIndex = $("#btnlistID1 li").index($(this)); 
	  		switch(settings.moveStyle){
				case  "left" :
					KinSlideshow1_changeFlag = curLiIndex-1; break;
				case  "right" :
					if(KinSlideshow1_firstMoveFlag){
						KinSlideshow1_changeFlag = curLiIndex-1; break;
					}else{
						KinSlideshow1_changeFlag = curLiIndex; break;
					}
				case  "up" :
					KinSlideshow1_changeFlag = curLiIndex-1; break;
				case  "down" :
					if(KinSlideshow1_firstMoveFlag){
						KinSlideshow1_changeFlag = curLiIndex-1; break;
					}else{
						KinSlideshow1_changeFlag = curLiIndex; break;
					}					
				
			}
			KinSlideshow1_move(settings.moveStyle);
			$("#btnlistID1 li").each(function(i){
				if(i ==curLiIndex){
					$(this).css({background:settings.btn.btn_bgHoverColor,borderColor:settings.btn.btn_borderHoverColor,color:settings.btn.btn_fontHoverColor});						
				}else{
					$(this).css({background:settings.btn.btn_bgColor,borderColor:settings.btn.btn_borderColor,color:settings.btn.btn_fontColor});						
				}
			})
		})
			
	};
	function KinSlideshow1_btnMouseclick(){
		$("#btnlistID1 li").click(function(){
			var curLiIndex = $("#btnlistID1 li").index($(this)); 
	  		
			switch(settings.moveStyle){
				case  "left" :
					KinSlideshow1_changeFlag = curLiIndex-1; break;
				case  "right" :
					if(KinSlideshow1_firstMoveFlag){
						KinSlideshow1_changeFlag = curLiIndex-1; break;
					}else{
						KinSlideshow1_changeFlag = curLiIndex; break;
					}
				case  "up" :
					KinSlideshow1_changeFlag = curLiIndex-1; break;
				case  "down" :
					if(KinSlideshow1_firstMoveFlag){
						KinSlideshow1_changeFlag = curLiIndex-1; break;
					}else{
						KinSlideshow1_changeFlag = curLiIndex; break;
					}					
				
			}
			KinSlideshow1_move(settings.moveStyle);
			$("#btnlistID1 li").each(function(i){
				if(i ==curLiIndex){
					$(this).css({background:settings.btn.btn_bgHoverColor,borderColor:settings.btn.btn_borderHoverColor,color:settings.btn.btn_fontHoverColor});						
				}else{
					$(this).css({background:settings.btn.btn_bgColor,borderColor:settings.btn.btn_borderColor,color:settings.btn.btn_fontColor});						
				}
			})
		})
			
	};	
	
	
	return KinSlideshow1_initialize();
};
 })(jQuery);
