﻿/*
 *	soChange 1.4 - simple gallery with jQuery
 *	made by bujichong 2009-12-14
 *	作者：不羈蟲  2009-12-14
 * Download by http://www.codefans.net
 * http://hi.baidu.com/bujichong/
 */

(function ($) {
$.fn.soChange = function (o) {
    return  new $sG(this, o);
			//alert('do');
    };

	var settings = {
		thumbObj:null,//導航對象
		botPrev:null,//按鈕上一個
		botNext:null,//按鈕下一個
		thumbNowClass:'now',//導航對象當前的class,默認為now
		thumbOverEvent:true,//滑鼠經過thumbObj時是否切換對象，默認為true，為false時，只有滑鼠點擊thumbObj才切換對象
		slideTime:1000,//平滑過渡時間，默認為1000ms
		autoChange:true,//是否自動切換，默認為true
		clickFalse:true,//導航對象如果有鏈接，點擊是否鏈接無效，即是否返回return false，默認是return false鏈接無效，當thumbOverEvent為false時，此項必須為true，否則滑鼠點擊事件衝突
		overStop:true,//滑鼠經過切換對象時，切換對象是否停止切換，並於滑鼠離開後重啟自動切換，前提是已開啟自動切換
		changeTime:5000,//自動切換時間
		delayTime:300//滑鼠經過時對象切換遲滯時間，推薦值為300ms
	};

 $.soChangeLong = function(e, o) {
    this.options = $.extend({}, settings, o || {});
	var _self = $(e);
	var set = this.options;
	var thumbObj;
	var size = _self.size();
	var nowIndex = 0; //定義全局指針
	var index;//定義全局指針
	var startRun;//預定義自動運行參數
	var delayRun;//預定義延遲運行參數

//初始化
	_self.hide();
	_self.eq(0).show();

//主切換函數
function fadeAB () {
	if (nowIndex != index) {
		if (set.thumbObj!=null) {
		$(set.thumbObj).removeClass(set.thumbNowClass).eq(index).addClass(set.thumbNowClass);}
		if (set.slideTime <= 0) {
			_self.eq(nowIndex).hide();
			_self.eq(index).show();	
		}else{
			_self.eq(nowIndex).fadeOut(set.slideTime);
			_self.eq(index).fadeIn(set.slideTime);
		}
		nowIndex = index;
		if (set.autoChange==true) {
		clearInterval(startRun);//重置自動切換函數
		startRun = setInterval(runNext,set.changeTime);}
		}
}




//切換到下一個
function runNext() {
	index =  (nowIndex+1)%size;
	fadeAB();
}

//點擊任一圖片
	if (set.thumbObj!=null) {
	thumbObj = $(set.thumbObj);
//初始化
	thumbObj.removeClass(set.thumbNowClass).eq(0).addClass(set.thumbNowClass);

		thumbObj.click(function () {
			index = thumbObj.index($(this));
			fadeAB();
			if (set.clickFalse == true) {
				return false;
			}
		});
		if (set.thumbOverEvent == true) {
		thumbObj.mouseenter(function () {
			index = thumbObj.index($(this));
			delayRun = setTimeout(fadeAB,set.delayTime);
		});
		thumbObj.mouseleave(function () {
			clearTimeout(delayRun);
		});
		}
	}

//點擊上一個
	if (set.botNext!=null) {
		$(set.botNext).click(function () {
			if(_self.queue().length<1){
			runNext();}
			return false;
		});
	}

//點擊下一個
	if (set.botPrev!=null) {
		$(set.botPrev).click(function () {
			if(_self.queue().length<1){
			index = (nowIndex+size-1)%size;
			fadeAB();}
			return false;
	});
	}

//自動運行
	if (set.autoChange==true) {
	startRun = setInterval(runNext,set.changeTime);
	if (set.overStop == true) {
		_self.mouseenter(function () {
			clearInterval(startRun);//重置自動切換函數
			
		});
		_self.mouseleave(function () {
			startRun = setInterval(runNext,set.changeTime);
		});
		}
	}

}

var $sG = $.soChangeLong;

})(jQuery);




