jQuery.fn.liScroll = function(settings) {
		settings = jQuery.extend(settings, settings);		
		return this.each(function(){
				/*表示領域のオブジェクトを取り出す*/
				var $strip = jQuery(this);
				
				/*表示領域のオブジェクトにクラスを追加*/
				$strip.addClass("newsticker")
				
				/*表示領域の幅*/
				var stripWidth = 0;
				
				/*表示領域の各要素をdivでくくる*/
				var $mask = $strip.wrap("<div class='mask'></div>");
				
				/*表示領域の各要素をdivでくくる*/
				var $tickercontainer = $strip.parent().wrap("<div class='tickercontainer'></div>");
				
				/*表示領域の幅を取得する*/
				var containerWidth = $strip.parent().parent().width();	//a.k.a. 'mask' width 	
				
				/*表示領域の幅に各要素の幅を足す*/
				$strip.find("li").each(function(i){
					stripWidth += jQuery(this, i).width();
				});
				
				/*表示領域の幅を上で用意した幅にする*/
				$strip.width(stripWidth);
				
				/*アニメーションする時間(ミリ秒)*/
/*				var defTiming = stripWidth/settings.travelocity;*/
				
				/*移動量*/
/*				var totalTravel = stripWidth+containerWidth;*/
				
				/*移動量*/
				var offset = jQuery(this).offset();
				var totalTravel = stripWidth+offset.left;

				/*アニメーションする時間(ミリ秒)*/
				var defTiming = totalTravel/settings.travelocity;
				
				/*一度の移動関数*/
				function scrollnews(spazio, tempo){
					/*各要素の動き*/
					/*引数：表示領域からspazio分左へ移動していく、tempoミリ秒動く、linear(等速)で移動、アニメーション終了時に実行する関数*/
					$strip.animate({left: '-='+ spazio}, tempo, "linear", 
						function(){
							/*移動量*/
							var offset = jQuery(this).offset();
							var totalTravel = stripWidth+offset.left;
							
							/*アニメーションする時間(ミリ秒)*/
							var defTiming = totalTravel/settings.travelocity;
							
							/*アニメーション終了時に実行する関数*/
							$strip.css("left", containerWidth);	/*右端に戻す*/
							scrollnews(totalTravel, defTiming);	/*再びアニメーションを開始する*/
						}
					);
				}
				
				/*アニメーションを開始する*/
				scrollnews(totalTravel, defTiming);
				
				/*マウスオーバー、マウスアウトの動き設定*/
				$strip.hover(
					
					/*マウスオーバー時の動き*/
					function(){
						/*停止*/
						jQuery(this).stop();
					},
					
					/*マウスアウト時の動き*/
					function(){
						/*表示領域の表示位置を取得*/
						var offset = jQuery(this).offset();
						
						/*現在のX座標に表示幅を足す*/
						var residualSpace = offset.left + stripWidth;

						/*リセットした表示サイズからアニメーション時間を求める*/
						var residualTime = residualSpace/settings.travelocity;

						/*アニメーション開始*/
						scrollnews(residualSpace, residualTime);
					}
				);
		});	
};
