(function( $ ){
 	//Interval flag
 	var flag;

	$.fn.up2down = function(settings){
		var opt = $.extend($.fn.up2down.defaults,settings);
		var $this = $(this);
		$.fn.up2down.flag = parseInt(opt["direction"]);

		//close
		$this.find('a#closeWin').click(function(){
			clearInterval(flag);
			$this.hide();
		});

		$this.hover(
			function(){
				clearInterval(flag);
			},
			function(){
				if($this.css("display")!="none") _up2down($this,opt);
			}
		);
		
		_up2down($this,opt);
	}	

	$.fn.up2down.defaults = {
		"time"      : 100,
		"offset"    : 10,
		//0:down , 1:up
		"direction" : 0
	};

	//action function
	function _up2down(obj,options){
		var offset = parseInt(options["offset"]);
		var time = parseInt(options["time"]);
		flag = setInterval(function(){
			var pos = $(obj).position();
			var boxH = $(obj).outerHeight();
			var sH = parseInt($("html").scrollTop());
			var bodyH = $(window).height();
			if($.fn.up2down.flag==0) {
				if(bodyH-(pos.top+boxH-sH)>0) $(obj).css("top",pos.top+offset);
				else $.fn.up2down.flag=1;
			} else if ($.fn.up2down.flag==1) {
				if(pos.top>0+sH) $(obj).css("top",pos.top-offset);
				else $.fn.up2down.flag=0;
			}
		},
		time);
	}

})( jQuery );

