﻿jQuery(function($)
{
	var pname = "top_pickup";	// picup領域の名前
	var movespeed = 500;		// 移動スピード
	var scrollinterval = 3000;	// 自動切り替えの秒数

	var pwid = 0;		// pickup領域の幅
	var pscroll = 0;	// スクロール量
	var ppos = [];		// 各項目の座標
	var plen = 0		// 項目数
	var pnow = 0;		// 現在表示中
	var pdisp = 0;		// 表示される数

	var pobj = $('#' + pname);
	var tobj = pobj.find('table').eq(0);
	var btnPrev = pobj.find('p.prev');
	var btnNext = pobj.find('p.next');

	var pNoAnim = false;	// スクロールが必要な個数かどうか
	var pTimer = setTimeout("", 1);	// タイマー用
	var pAnim = false;


	// 移動可能に変更
	pobj.find('div.inner').css('position', 'relative');
	tobj.css('position', 'relative');


	// テーブル内の項目から、必要な変数を設定
	pobj.each(function()
	{
		pwid = tobj.width();
		plen = tobj.find('tr').eq(0).find('th').size();
		pscroll = tobj.find('th').eq(0).width() + tobj.find('td').eq(0).width();

		pdisp = parseInt(tobj.closest('div.inner').width() / pscroll);
		// 移動が不要な個数
		if (pwid <= pdisp * pscroll)
		{
			pNoAnim = true;
		}

		for (var i = 0; i < plen; i++)
		{
			ppos[i] = -pscroll * i;
		}
	});

	// Prevボタン
	btnPrev.find('a').each(function()
	{
		// スクロールイベントを無効化
		$(this).unbind('click');

		$(this).click(function()
		{
			if (pNoAnim == false)
			{
				resetTimer();
				movePrev();
			}
			return false;
		});
	});

	// Nextボタン
	btnNext.find("a").each(function()
	{
		// スクロールイベントを無効化
		$(this).unbind('click');

		$(this).click(function()
		{
			if (pNoAnim == false)
			{
				resetTimer();
				moveNext();
			}
			return false;
		});
	});

	// Prev
	function movePrev()
	{
		var pos = pnow - 1;
		if (pos < 0)
		{
//			pos = plen - pdisp - 1;
			pos = plen - pdisp;
		}
		movePanel(pos);
	}

	// Next
	function moveNext()
	{
		var pos = pnow + 1;
		if (pos > (plen - pdisp))
		{
			pos = 0;
		}
		movePanel(pos);
	}

	// 領域を移動する関数
	function movePanel(pos)
	{
		var movepos = ppos[pos];
		if (pAnim == false)
		{
			pnow = pos;
			pAnim = true;

			tobj.animate(
//			tobj.stop(true, false).animate(
				{
					left: movepos
				},
				movespeed,
				"easeOutQuart",
				function()
				{
//					pnow = pos;
					pAnim = false;
				}
			);
		}
	}

	// タイマーを初期化する関数
	function resetTimer()
	{
		clearInterval(pTimer);
		pTimer = setInterval(moveNext, scrollinterval);
	}

	// スクロールが必要な個数
	if (pNoAnim == false)
	{
		resetTimer();	// スクロールを開始
	}
	else	// 個数が少ない場合は、ボタンを隠す
	{
		btnPrev.hide();
		btnNext.hide();
	}
});

