function getWindowHeight()
{
	var windowHeight=0;
	if (typeof(window.innerHeight)=='number') 
	{
		windowHeight=window.innerHeight;
	}
	else 
	{
		if (document.documentElement && document.documentElement.clientHeight) 
		{
			windowHeight= document.documentElement.clientHeight;
		}
		else 
		{
			if (document.body&&document.body.clientHeight) 
			{
				windowHeight=document.body.clientHeight;
			}
		}
	}
	return windowHeight;
}
function positionFooter() 
{
	if (document.getElementById) 
	{
		if (document.getElementById('pagefooter') != null)
		{
			if (
			     (document.getElementById('pageheader') != null)
			     && (document.getElementById('pagecontent') != null)
			     && (document.getElementById('pagesidebar') != null)
			    )
			    {
				var windowHeight=getWindowHeight();
				if (windowHeight>0) 
				{
					var headerElement = document.getElementById('pageheader')
					var headerHeight= headerElement.offsetHeight;

					var maindivElement = document.getElementById('pagecontent')	
					var maindivHeight = maindivElement.offsetHeight;

					var sidebarElement = document.getElementById('pagesidebar')
					var sidebarHeight = sidebarElement.offsetHeight;

					var contentHeight =0;

				    if (sidebarHeight>maindivHeight) 
				    {
						contentHeight=sidebarHeight;
					} 
					else
					{
						contentHeight=maindivHeight;
					}

					var footerElement=document.getElementById('pagefooter');
					var footerHeight=footerElement.offsetHeight;

					if(windowHeight < ( headerHeight+contentHeight+footerHeight))
					{
						//Window is shorter than content

						if ((windowHeight-(contentHeight + headerHeight))>=0) 
						{
							footerElement.style.position='relative';
							var relativefootertop = 0;
							if ((sidebarHeight - maindivHeight + 10) > 0) 
							{
								//if sidebar bottom is greater than content bottom then shift footer down to content bottom + difference
								relativefootertop = (contentHeight - maindivHeight - (footerHeight*0.5));
							}
							else
							{
								relativefootertop = (windowHeight-(contentHeight + headerHeight)) - (footerHeight*0.5);
							}


								if (relativefootertop < 0)
									relativefootertop = 0;
								footerElement.style.top=(relativefootertop)+'px';

						}
						else 
						{
							if( (sidebarHeight - maindivHeight + 10) <= 0 )
							{
								footerElement.style.position='static';
							}
							else
							{
								footerElement.style.position='relative';
								var relativefootertop = (sidebarHeight - maindivHeight + 10);
								if (relativefootertop < 0)
									relativefootertop = 0;
								footerElement.style.top=(relativefootertop) +'px';

							}
						}
					}
					else
					{
						// Window is taller than content
						// move the footer down

						var desiredfootertop = windowHeight - footerHeight;
						var maindivbottom = maindivHeight + headerHeight;

						if (headerHeight > 100)
						{
							// Non-admin pages
							var relativefootertop = desiredfootertop - maindivbottom - 38;

							if (relativefootertop < 38)
								relativefootertop += 18;
						}
						else
						{
							//Admin pages
						    if (maindivHeight == 352)
								// Admin home page 
								var relativefootertop = desiredfootertop - maindivbottom - 38;
							else
								// Other admin pages
								var relativefootertop = desiredfootertop - maindivbottom - 20;

						}

						if (relativefootertop < 0)
							relativefootertop = 0;


						footerElement.style.position='relative';
						footerElement.style.top = (relativefootertop)+'px';
					}

					/*						
					var outputstring = "";
					outputstring += "windowHeight = " + windowHeight + "\n";
					outputstring += "HeaderHeight = " + headerHeight + "\n";
					outputstring += "maindivHeight = " + maindivHeight + "\n";
					outputstring += "sidebarHeight = " + sidebarHeight + "\n";
					outputstring += "ContentHeight = " + contentHeight + "\n";
					outputstring += "footerHeight = " + footerHeight + "\n";
					outputstring += "footerPosition = " + footerElement.style.position + "\n";
					outputstring += "footerElement.style.top = " + footerElement.style.top + "\n";
					outputstring += "desiredfootertop = " + desiredfootertop + "\n";
					outputstring += "maindivbottom = " + maindivbottom + "\n";
					outputstring += "maindivElement.top = " + maindivElement.y + "\n";
					outputstring += "sidebarElement.top = " + sidebarElement.y + "\n";
					alert(outputstring);
					*/			

				}
			}	
		}
	}
}

addLoadEvent(positionFooter) 
window.onresize = function() {
positionFooter();
}

