	var scrollLayer = {
		_isResize : false,
		_end_point : 0,
		_distance : 0,
		start : function(sId){
			
			var scrollElement = document.body;
			var bodyTop = scrollElement.scrollTop;
			var htmlTop = (document.documentElement||document).scrollTop;
			if( bodyTop != htmlTop )	scrollElement = ( ( bodyTop == 0 ) ? document.documentElement||document : scrollElement );
			
		    var top_point, start_point, timer; 
		    var obj_layer   = document.getElementById(sId);
			var innerH = window.innerHeight;
	
			var realTop = elementInfo(obj_layer).top;
		    top_point   = obj_layer.style.top;
		    start_point = parseInt(top_point, 10); 
			var endP = scrollElement.scrollTop < 0 ? 0 : scrollElement.scrollTop;
		    this._end_point = this._isResize ? this._end_point : endP;
			
		    //limit_point = scrollElement.scrollHeight - obj_layer.offsetHeight - 1050; 
			limit_point = scrollElement.scrollHeight - obj_layer.offsetHeight;
	
			if( window.navigator.appName == "Microsoft Internet Explorer") innerH = document.documentElement.clientHeight;

			this._end_point += innerH/2;
			this._distance = innerH - (realTop+(this._end_point-start_point) - scrollElement.scrollTop);

			if (this._distance < 100) {
				this._isResize = true;
				this._end_point = this._end_point - (100 - this._distance);
			}else{ this._isResize = false; }
			
		    if ( this._end_point > limit_point ) this._end_point = limit_point + innerH/2;
		    if ( this._end_point < top_point ) this._end_point = top_point + innerH/2;
			
			//document.title = obj_layer.style.top;
			if (start_point != this._end_point) {
				scroll_amount = Math.ceil(Math.abs(this._end_point - start_point) / 15);
				var top = (start_point + ((this._end_point < start_point) ? -scroll_amount : scroll_amount));
				obj_layer.style.top = ( top < 0 ? 0 : top ) + "px";
			}

		   timer = setTimeout (function(){
		   		scrollLayer.start(sId);
		   }, 1); 
		}
	};
	var elementInfo = function(oEl){
	    var e = oEl;
		var t = 0 ;
		var l = 0;
		
		while (typeof e != "undefined" && e != null ){
	        t += e.offsetTop;
	        l += e.offsetLeft;
	        e = e.offsetParent;
	    }
	    return {
	        top: t,
	        left: l
	    }
	}