//----------------------------
//floatingメニューの実装ライブラリ
//シンプルにcssのtop値をアニメーション制御する
//初期位置はCSSで設定して下さい。
//20110930　beta版制作（非jqueryライブラリ）
//201111120　jqueryライブラリ化
//20120120 高速化
//----------------------------
/*
//sample
var option = {
	time:350,
	parent:window
};
$("#menu").floatingmenu( option );
*/

(function($) {
	$.fn.floatingmenu = function( option ){
		if(!  !! option ){
			option = {
				time:350,
				parent:window
			};
		}
		if(! !! option.window ){
			option.window = window;
		}
		var _win = $( option.window );
		var px = "px";
		
		var opt = {
			duration:option.time,
			queue: false
		};
		
		
		var func = function( obj ){
			var _this = $( obj );
			var default_floating_menu_position_top = _this.offset().top;

			var menuYloc = parseInt(_this.css("top").substring(0,_this.css("top").indexOf( px )));
			
			var sc_func = function () { 
				var sc_roll = _win.scrollTop();
				var offset = ( default_floating_menu_position_top <= sc_roll ) ? menuYloc+sc_roll - default_floating_menu_position_top +px : default_floating_menu_position_top +px;
				_this.animate({top:offset}, opt );
			};
			_win.scroll( sc_func );
			sc_func();
		};
	
		var arr = this.get();
		for( var i=0,l=arr.length; i<l ; ++i ){
			func( arr[i] );
			
		}
		return this;
	};
})(jQuery);
