$(function () {
	var $spy = $('ul.spy');

	if($spy.size() > 0){
		$spy.each(function (){
			var $ul			= $(this);			//ul.spy
			var $li			= $('li', $ul);		//ul li
			var len_base	= $li.size();
			var disp_top	= len_base * 2;

			//表示制限に達していなければ処理不要
			if(len_base <= spy_limit)	return;

			var spy_limit	= $ul.attr('limit') || 5;			//表示制限
			var interval	= $ul.attr('interval') || 5000;		//デフォルト表示インターバル

			var effect = !$.browser['msie'];
			/*
			//高さの算出
			var h = 0;
			for(var i=0; i<spy_limit; i++){
				h += $($li[i]).height() + 8;
			}
			
			//表示する高さを限定
			$ul.css({'overflow':'hidden', 'height':h});
			*/

			//一時的に非表示
			$li.hide();
			
			//非表示の複製×２を先頭に追加
			var $cln	= $li.clone();
			$ul.prepend($cln).prepend($cln.clone());
			$cln = null;

			//表示ローテーション処理
			function _spy(){
				if(disp_top == 0){
					//非表示アイテムが無くなったので初期位置に戻して非表示化
					disp_top	= len_base * 2;
					var $tmp_li = $('li', $ul);
					$tmp_li.hide();

					for(var i=disp_top; i<(disp_top+spy_limit); i++){
						$($tmp_li[i]).show();
					}
				}

				disp_top--;
				var $myLi = $('li:eq(' + (disp_top) + ')', $ul);
				var myInterval = $myLi.attr('interval') || interval;
				if(effect)	$myLi.fadeIn('slow');		//重い & IEで表示安定せず
				$myLi.show();
				$('li:eq(' + (disp_top + spy_limit) + ')', $ul).hide();
				$myLi = null;

				//次回呼び出し
				setTimeout(arguments.callee, myInterval);
			}

			//初期表示
			$li.show();
			$('li:gt(' + (disp_top + spy_limit - 1) + ')', $ul).hide();

			//表示ローテーション起動
			setTimeout(_spy, $('li:eq(' + (disp_top) + ')', $ul).attr('interval') || interval);
		});
	}
});