function footerPositionManager()
{
	var parent = this;

	var screenTop = null;
	var screenMiddle = null;
	var screenContentMiddle = null;
	var screenBottom = null;

	var screenTopHeight = null;
	var screenMiddleHeight = null;
	var screenBottomHeight = null;
	var screenMiddleOriginalHeight = null;


	this.OnLoad = function()
	{
		screenTop = YAHOO.util.Dom.get("screenTop");
		screenMiddle = YAHOO.util.Dom.get("screenBottom");
		screenContentMiddle = YAHOO.util.Dom.get("footer");
		screenBottom = YAHOO.util.Dom.get("screenMiddle");
	
		screenTopHeight = screenTop.offsetHeight;
		screenMiddleHeight = screenMiddle.offsetHeight;
		screenBottomHeight = screenBottom.offsetHeight;
		screenMiddleOriginalHeight = screenMiddleHeight;

		parent.SetScreenMiddleHeight();

		YAHOO.util.Event.addListener(window, "resize", parent.OnViewportResize);
	}


	this.OnViewportResize = function()
	{
		parent.SetScreenMiddleHeight();
	}


	this.SetScreenMiddleHeight = function()
	{
		screenMiddleHeight = screenMiddle.offsetHeight;
		var currentDocumentHeight = screenTopHeight + screenMiddleHeight + screenBottomHeight;
		var viewportHeight = YAHOO.util.Dom.getViewportHeight();
		var newScreenMiddleHeight = 0;


		// If viewport is smaller than needed content area, keep original size
		if (viewportHeight < currentDocumentHeight)
		{
			newScreenMiddleHeight = screenMiddleOriginalHeight;
		}
		
		// Viewport is larger than the content, stretch it to fit the bottom of the screen
		else
		{
			newScreenMiddleHeight = (viewportHeight - (screenTopHeight + screenBottomHeight));
		}


		if (screenMiddleHeight != newScreenMiddleHeight)
		{
			screenMiddle.style.height = newScreenMiddleHeight + "px";
			screenContentMiddle.style.height = newScreenMiddleHeight + "px";
		}
	}


	YAHOO.util.Event.addListener(window, "load", this.OnLoad);
}


var footerPositionManager = new footerPositionManager();