function iecompattest()
{
	return (document.compatMode && document.compatMode!="BackCompat") ? document.documentElement : document.body
}

function visibleTop(elementID, minMarginFromTop)
{
	// Init speed (higher number -> slower movements)
	var speed = 4;

	// Identify the browser
	var netscape = 0;
	
	if(navigator.appName.indexOf("Netscape") != -1 || window.opera!=undefined)
	{
		netscape = 1;
	}
	
	// Get the element
	var element = document.getElementById(elementID);
	
	// Ensure we got the element
	if(element==null)
	{
		return;
	}
	
	// Init. the element's style
	if(document.layers)
	{
		element.style=element;
	}
	
	// Get the element's position
	function findPos(obj) 
	{
		var curtop = 0;

		if(obj.offsetParent) 
		{
			do 
			{
				curtop += obj.offsetTop;
			} 
			while (obj = obj.offsetParent);
		}
		
		return curtop;
	};
	
	var posFromTop  = findPos(element);
	var addedOffset = 0;
	
	// Move the element away from the browser's top border
	window.moveFromTop=function()
	{
		// Get the scroll height
		var scrollY = netscape ? pageYOffset : iecompattest().scrollTop;
		
		// Get the distance between the top and our element (including our margin)
		var distance = (scrollY+minMarginFromTop)-posFromTop;
		
		// If we scrolled and hid our element...
		if(distance>0)
		{
			addedOffset += distance/speed;
			posFromTop  += distance/speed;
			
			element.style.top = addedOffset + "px";
		}
		// Else, if we scrolled back...
		else if(addedOffset>0)
		{
			// Move the element back up (but not all the way)
			if(addedOffset+distance>0)
			{
				addedOffset += distance/speed;
				posFromTop  += distance/speed;
				
				element.style.top = addedOffset + "px";			
			}
			// Move the element all the way up
			else
			{
				posFromTop  -= addedOffset/speed;
				addedOffset -= addedOffset/speed;				
				
				element.style.top = addedOffset + "px";
			}
		}		
		
		// Loop...	
		setTimeout("moveFromTop()", 10);
	};
	
	moveFromTop();
}