// JavaScript Document

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 setFooter() {
	if (document.getElementById) {
		var windowHeight = getWindowHeight();
		var sidebarElement = document.getElementById('sidebar');
		sidebarElement.style.height = 'auto';
		if (windowHeight > 0) {
		    var mainNavigationWrapperHeight = document.getElementById('main_navigation_wrapper').offsetHeight;
		    var headerHeight = document.getElementById('header').offsetHeight;
		    var bannerHeight = document.getElementById('carousel').offsetHeight;
			var contentHeight = mainNavigationWrapperHeight + headerHeight + bannerHeight + 35;
			
			var sidebarPosition = contentHeight;
			if (document.getElementById('main_content').offsetHeight >= sidebarElement.offsetHeight) {
				contentHeight += document.getElementById('main_content').offsetHeight;
				sidebarElement.style.height = document.getElementById('main_content').offsetHeight + 'px';
			}
			else 
				contentHeight += sidebarElement.offsetHeight;
				
			var footerElement = document.getElementById('footer');
			var footerHeight = footerElement.offsetHeight;

			if (windowHeight > (contentHeight + footerHeight)) {
				footerElement.style.position = 'absolute';
				footerElement.style.top = (windowHeight - footerHeight) + 'px';
				footerElement.style.left = '0px';
				sidebarElement.style.height = (windowHeight - footerHeight - sidebarPosition)+'px';
			}
			else {
				footerElement.style.position = 'relative';
				footerElement.style.top  = '0px';
			}
		}
	}
}

$(document).ready (function() {
	setFooter();
});

$(window).resize (function() {
	setFooter();
});