/**
 * トップページのインフォメーション部分ページャ処理
 */
$(document).ready(function () {
	var _data = new Object,
	hasAutoTurn = true,
	autoTurnObj = null,
	pageWidth = 440, // ページの幅
	slideSpeed = 1000, // ページの遷移スピード(0.8秒)
	autoTurnSpeed = 5 * 1000, // 自動ページ送りの間隔(10秒)
	animateType = 'easeOutBounce';
	
	/**
	 * ページをスライドさせる
	 *
	 * @param int page 表示するページ
	 */
	function setPage (page)
	{
		var page = (page ? page : 1),
		offset = (page - 1) * - pageWidth,
		lastPage = getLastPage();
		
		$('#rcmd_area .wrap').stop();
		$('#rcmd_area .wrap').animate({
			'left': offset + 'px'
		}, slideSpeed, animateType);
		
		// ページャの表示更新
		refreshPager(page, lastPage);
	}
	
	/**
	 * 現在のページ数を返す
	 *
	 * @return int 現在のページ番号
	 */
	function getPage ()
	{
		var page = ~~$('#pages .current').attr('alt');
		return (0 < page) ? page : 1;
	}
	
	/**
	 * 最後のページ番号を返す
	 * 
	 * @return int 最後のページ番号
	 */
	function getLastPage ()
	{
		return $('#pages .max').attr('alt') || 1;
	}
	
	/**
	 * 次のページへ移動
	 */
	function moveNextPage ()
	{
		var page = getPage() + 1;
		setPage((page <= getLastPage()) ? page: 1);
	}
	
	/**
	 * ページャの表示更新
	 * 
	 * @param int page 表示ページ番号
	 * @param int lastPage 最後のページ番号
	 */
	function refreshPager (page, lastPage)
	{
		// 表示中のページ数表示
		$('#pages .current').attr('alt', page).html(page);
		
		// 各ページナビの設定
		if (page > 1) {
			$('#prev').addClass('active').css('opacity', null);
			$('#prev_first').addClass('active').css('opacity', null);
		} else {
			$('#prev').removeClass('active').css('opacity', 0);
			$('#prev_first').removeClass('active').css('opacity', 0);
		}
		if (page < lastPage) {
			$('#next').addClass('active').css('opacity', null);
			$('#next_last').addClass('active').css('opacity', null);
		} else {
			$('#next').removeClass('active').css('opacity', 0);
			$('#next_last').removeClass('active').css('opacity', 0);
		}
	}
	
	/**
	 * 自動ページめくり設定
	 * 
	 * @param bool turn true:自動、false:手動、null:継続
	 */
	function setAutoTurn (turn)
	{
		var pauto = $('#pauto');
		
		if (turn === true || turn === false) {
			hasAutoTurn = turn;
		}
		if (autoTurnObj) {
			clearInterval(autoTurnObj);
		}
		if (hasAutoTurn || turn === true) {
			pauto.find('img').attr('src', '_resource/img/top/btn_pageoff.png').attr('alt', 'クリックでページ送り[自動]に切替');
			autoTurnObj = setInterval(moveNextPage, autoTurnSpeed);
		} else {
			pauto.find('img').attr('src', '_resource/img/top/btn_pageon.png').attr('alt', 'クリックでページ送り[手動]に切替');
		}
	}
	
	// 最初のページへ
	$('#prev_first.active').live('click', function () {
		setPage(1);
		setAutoTurn();
	});
	// 戻る
	$('#prev.active').click(function () {
		var page = getPage() - 1;
		setPage((0 < page) ? page : getLastPage());
		setAutoTurn(false);
	});
	// 次へ
	$('#next.active').click(function () {
		moveNextPage();
		setAutoTurn();
	});
	// 最後のページへ
	$('#next_last.active').live('click', function () {
		setPage(getLastPage());
		setAutoTurn();
	});
	// 自動めくり切り替え
	$('#pauto').click(function () {
		setAutoTurn(!hasAutoTurn);
	});
	
	// 自動ページめくり開始
	setAutoTurn(true);
	
	// ページャの表示更新
	refreshPager(1, getLastPage());
});
