﻿// JavaScript Document
(function($){
	$.lightbox = function(options){
		var defaults = {
			allArea:null,         // 整个区域
			showPic:null,         // 大图片列表
			autoPlay:0,           // 是否自动播放 1 是的 0 不是
			insertlist:null, 	  // 列表插入位置
			autoInsert:1,         // 是否需要插入列表
			list:null,            // 数字，小图等等列表序列
			on:"on",              // 当前展示图片的样式, 默认为 on ，但是样式要自己去写
			curWindow:"on",       // 当前展示大图的样式
			nowIndex:0,           // 默认第几张开始， 一般都是第一个 就是 编号0 开始  nowIndex = 1 时 为第二张图片 。。。。
			btnNext:null,         // 上一张
			btnPrev:null,         // 下一张
			stopBtn:null,         // 关闭自动播放
			play:null,            // 开启自动播放
			picInfo:null,         // 图片信息
			insertPic:null        //图片信息插入的位置
		}
		var settings = $.extend({},defaults,options);
		var index,$tag = "";
		var time = null;
		

		//初始化的 list 
		if( settings.showPic == null) { return null; }

		
		// 载入小航标操作
		var _len = $(settings.showPic).length, nowIndex = settings.nowIndex ;
		if( nowIndex >= _len ) { 
			settings.nowIndex = 0;
		}
		
		//确认给定的图片信息是否完整，不完成就不显示图片信息，如果改图片信息没有，就用空的表示
		if( settings.picInfo ){
			var pp = settings.picInfo,insertPinInfo="";
			for(var i = 0; i<_len; i++){
				if(!pp[i]) pp[i]="";
				$tag = "span";
				if( i == 0){
					insertPinInfo += "<span>"+pp[i]+"</span>";
				}else{
					insertPinInfo += "<span class='hide'>"+pp[i]+"</span>";
				}
			}
			$(settings.insertPic).html(insertPinInfo);			
		}
		
		if( _len > 0 && settings.autoInsert ){
			var listHtml = "";
			for( var i=1 ; i<=_len ; i++ ){
				if( nowIndex == i-1 ){
					listHtml += ("<a href='#' class='on'>"+i+"</a>");
				}else{
					listHtml += ("<a href='#'>"+i+"</a>");
				}
			}
			$(settings.insertlist).html(listHtml);
			var _selfList = $("a",$(settings.insertlist));
		}
		if( settings.list != null ){
			var _selfList = $(settings.list);
		}
		// 指定默认第几个开始
		if( nowIndex ){
			$(settings.showPic).eq(nowIndex).addClass(settings.curWindow).end().eq(0).removeClass(settings.curWindow);
		}
		
		
		if( _selfList ){
			_selfList.mouseenter(function(){
				index = _selfList.index($(this));
				simple();
				stop();
			});
			$(settings.allArea).mouseenter(function(){
				stop();									
			});
			$(settings.allArea).mouseleave(function(){
				if( settings.autoPlay ) play();										
			});
		}
		if( settings.btnNext != null ){
			$(settings.btnNext).click(function(){
				next();
				if( settings.autoPlay ){
					clearInterval(time);
					autoPlay();
				}
			});
		}
		if( settings.btnPrev != null ){
			$(settings.btnPrev).click(function(){
				prev();
				if( settings.autoPlay ){
					clearInterval(time);
					autoPlay();
				}
			});
		}
		if( settings.stopBtn != null ){
			$(settings.stopBtn).click(function(){
				stop();
			});	
		}
		
		if( settings.play != null ){
			$(settings.play).click(function(){
				play();
			});	
		}
		
		//自动播放
		if( settings.autoPlay ){
			autoPlay();
		}
		
		function simple(){
			if(index != nowIndex ){
				$(settings.showPic).eq(nowIndex).hide().end().eq(index).show();
				_selfList.eq(nowIndex).removeClass(settings.on).end().eq(index).addClass(settings.on);
				if( settings.picInfo ){
					$($tag,settings.insertPic).eq(nowIndex).hide().end().eq(index).show();
				}
				nowIndex = index;
			}
		}
		
		function next(){
			index = (nowIndex+1)%_len;
			simple();
		}
		
		function prev(){
			//if( _selfList.queue().length < 1 ){
				index = (nowIndex+_len-1)%_len;
				simple();
			//}	
		}
		
		function stop(){
			clearInterval(time);
		}
		
		function play(){
			time = setInterval(next,3500);
		}
		
		function autoPlay(){
			clearInterval(time);
			time = setInterval(next,3500);	
		}
		
	}
})($);

