function c_module_nomove(el){
	var elRef  = $(el.getAttribute('nomove_ref'));
	var marginTop = parseInt(el.getAttribute('nomove_marginTop') || '0', 10);
	var bodyEl = /AppleWebKit/i.test(navigator.userAgent) ? document.body : document.documentElement;
	var refPos = getPos(elRef);
	var minTop = refPos.top + marginTop + elRef.offsetHeight;
	var curTop = minTop;
	var oldScroll = 0;

	document.body.appendChild(el);
	el.style.position = 'absolute';
	el.style.margin = '0px';
	el.style.left = refPos.left + 'px';
	el.style.top = curTop + 'px';

	setInterval(function(){
		var newScroll = bodyEl.scrollTop;
		if(oldScroll != newScroll){
			oldScroll = newScroll;
		}else{
			var target = Math.max(minTop, marginTop + newScroll);
			var delta = target - curTop;
			if(!delta) return;
			delta = Math.round(delta * 0.1);
			if(!delta) delta = (target > curTop ? 1 : -1);
			curTop += delta;
			el.style.top = curTop + 'px';
		}
	}, 20);
	
	$r(window, 'onresize', function(){
		var pos = getPos(elRef);
		el.style.left = pos.left + 'px';
	});
	
	function getPos(el){
		var x = 0, y = 0;
		while(el && el.nodeType == 1){
			x += el.offsetLeft;
			y += el.offsetTop;
			el = el.offsetParent;
		}
		return {left: x, top: y};
	}
}