/**********************************************
*
*		jQuery Plug-in
*		自動コンテンツスライダー
*		2011.9.28　takuya fujioka
*
**********************************************/
$(function(){

	/*
	*	設定
	*/
	var trgtBox = $('#blc_topics');	// スライダーBOX
	var boxWidth = 550;					// BOXの幅 [px]
	var interval = 4000;					// スライドの間隔 [msec.]
	var speed = 800;						// スライドのスピード [msec.]
	var easing = 'easeOutBack';			// イージング

	/*
	*	変数初期化
	*/
	var slider = $( '#slider', trgtBox );		// スライダー<ul>
	var sliderLi = $( '#slider li', trgtBox );	// スライダー<li>
	var pos = 1;										// 現在表示位置
	var wait = false;									// ウェイト（停止）フラグ

	/*
	*	処理
	*/
	// コンテンツの数を取得
	var n = sliderLi.length;

	// コンテンツの数に応じてスライダーulのwidthをセット
	slider.css( 'width', boxWidth*n );

	// コンテンツの数に応じてナビを生成
	for ( i = 0; i < n; i++ ){
		$('#numbers', trgtBox).append('<li>●</li>');
	}

	// ナビの1番目をアクティブ化
	$('#numbers li:first-child', trgtBox).addClass('activenum');


	// 一定時間ごとに自動スクロール
	setInterval(function(){
		if(!wait){ slide() }
	}, interval ); // この値が待ち時間


	/*
	*	コンテンツ・ナビゲーションのホバー時
	*/
	// 自動スライドを停止
	trgtBox.hover(function(){
		wait = true;
	},
	function(){
		wait = false;
	})

	/*
	*	ナビゲーションのクリック時
	*/
	$('#numbers li').click(function(){
		var index = $('#numbers li').index(this);
		slide(index);
	})


	/*
	*	fn) スライド
	*/
	function slide(toPos){
		//
		// 移動先が指定されていなかった場合
		//
		if( !toPos && toPos !== 0 ){
			// 現在位置を算出
			pos = -( slider.css('left').replace('px','') ) / boxWidth + 1;
			
			// 現在位置がコンテンツの数より多ければ最初に戻る
			if( n > pos ){
				slider.animate({ left: '-=' + boxWidth }, speed, easing );
				// ナビゲーション
				navi(pos);
			}
			else{
				slider.animate({ left:0 }, speed, easing );
				// ナビゲーション
				navi(0);
			}
		}
		//
		// 移動先が指定されている場合
		//
		else{
			slider.animate({ left: '-' + toPos*boxWidth }, speed, easing );
			// ナビゲーション
			navi(toPos);
		}
	}


	/*
	*	fn) ナビゲーション
	*/
	function navi(active){
		// 現在地に応じてアクティブ化を振り直す
		$('#numbers li', trgtBox).removeClass('activenum').
		eq(active).addClass('activenum');
	}

});
