/*
 *	==================================================================
 *	jquery.boardSlideImage.js
 *	@auther:
 *	@create:2010/10/04
 *	==================================================================
 *	bnrHeight:バナーの高さ
 *	minNum:バナーを何個同時に動かすか
 *	
 * -------------------------------------------------------------------
 *	opition
 * -------------------------------------------------------------------
 *	autoScrollTime:Number スクロールする間隔
 *	scrollSpeed:Number スクロールスピード
 *	minImgNum:Number 最小表示枚数
 *	
 *-------------------------------------------------------------------
 *	Exsample
 *	jQuery("#boardSlideImage").boardSlideImage(70,{"autoScrollTime":3000,"scrollSpeed":800});
 *	-------------------------------------------------------------------
*/
(function(jQuery){

	jQuery.fn.boardSlideImage = function(bnrHeight,options){
		
		var div = this;
	
		/* options */
		var defaults = {
			"autoScrollTime": 3000,
			"scrollSpeed": 800,
			"minImgNum": 3
		};
		
		var setting = jQuery.extend(defaults,options);
		
		var setTimer; //setInterval
		var count = 0; //カウント
		var scrollFlag;
		
		/*----------------------------------------------------
			初期動作
		----------------------------------------------------*/
		$(".imageArea ul li",div).hide();
		$(".imageArea ul li:first",div).show();
		$(".thumbArea ul li a img:first",div).animate({opacity: 0.4},0);
		
		//画像の枚数調べる
		var imgNum = $(".imageArea ul li").length - 1; //画像の枚数
		
		//画像が最小表示枚数より多い場合スクロール開始
		if ($(".imageArea ul li").length > setting.minImgNum) {
			scrollFlag = 1;
		} else {
			scrollFlag = 0;
		}
		
		autoScroll();
		btnEnabled();
		
		/*----------------------------------------------------
			サムネイル イベント
		----------------------------------------------------*/
		$(".thumbArea ul li a",div).click(function(){
			
			//クリックされたボタンのindex検出
			var clickImageNum = $(".thumbArea ul li a",div).index(this);
			count = clickImageNum;
			
			animateConf();
			btnEnabled();
			
			return false;
		});
		
		/*----------------------------------------------------
			次へボタン
		----------------------------------------------------*/
		$(".b_next a",div).click(function(){
			
			if (imgNum <= count) {
				count = 0;
			} else {
				count += 1;
			}
			
			animateConf();
			btnEnabled();
			
			return false;
		});
		
		/*----------------------------------------------------
			前へボタン
		----------------------------------------------------*/
		$(".b_prev a",div).click(function(){
			
			if (count <= 0) {
				count = 0;
			} else {
				count -= 1;
			}
			
			animateConf();
			btnEnabled();
			
			return false;
		});
	
		/*----------------------------------------------------
			画像自動切り替え
		----------------------------------------------------*/
		function autoScroll() {
		
			setTimer = setInterval(function() {
			
				if (imgNum <= count){
					count = 0;
				} else {
					count += 1;
				}
				
				animateConf();
				btnEnabled();
				
				
			},setting.autoScrollTime);
		
		}
		
		/*----------------------------------------------------
			アニメーション
		----------------------------------------------------*/
		function animateConf(){
			
			clearInterval(setTimer);
			
			if (scrollFlag != 0){
				//サムネイルアニメーション
				$(".thumb ul",div).animate({top: "-" + count * bnrHeight + "px"},setting.scrollSpeed);
			}

		  
			if (imgNum + 1 > 1){
				$(".thumb ul li a img",div).animate({opacity: 1.0},0);
				$(".thumb ul li a img:eq(" + count + ")",div).animate({opacity: 0.4},setting.scrollSpeed,autoScroll());
				$(".imageArea ul li",div).hide();
				$(".imageArea ul li:eq(" + count + ")",div).fadeIn(setting.scrollSpeed);
			}
			
		}
		
		/*----------------------------------------------------
			次へ・前へボタン表示・非表示
		----------------------------------------------------*/
		function btnEnabled() {
		
			if (scrollFlag == 0) {
				$(".b_next",div).empty();
			} else if (imgNum == count){
				$(".b_next a",div).hide();
			} else {
				$(".b_next a",div).show();
			}
			
			if (scrollFlag == 0) {
				$(".b_prev",div).empty();
			} else if (count == 0) {
				$(".b_prev a",div).hide();
			} else {
				$(".b_prev a",div).show();
			}
			
		}
	
  }

})(jQuery);
