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 leftHeight;
		var	rightHeight;
		var tallest;
		var pageHeaderHeight;
		
		if (windowHeight > 0) {
			var containerHeight = document.getElementById('pageContainer').offsetHeight;
			var footerElement = document.getElementById('footer');
			var footerHeight  = footerElement.offsetHeight;
			
			pageHeaderHeight = document.getElementById('pageHeader').offsetHeight;
			
			if (document.getElementById('leftColumn')) {
				leftHeight = document.getElementById('leftColumn').offsetHeight;
			} else {
				leftHeight = 0;
			}
			if (document.getElementById('rightColumn')) {
				rightHeight = document.getElementById('rightColumn').offsetHeight;
				rightHeight += pageHeaderHeight;
			} else {
				rightHeight = 0;
			}
			
			if (rightHeight > leftHeight) {
				tallest = rightHeight;
			} else {
				tallest = leftHeight;
			}
			
			if (containerHeight > tallest) {
				tallest = containerHeight;
			}
			
			/*
			alert(
				"Tallest: " + tallest + "\n" +
				"Window: " + windowHeight + "\n" +
				"Footer: " + footerHeight + "\n" +
				""
			);
			*/
			
			if (windowHeight > (tallest + footerHeight)) {
				footerElement.style.position = 'absolute';
				footerElement.style.top = (windowHeight - footerHeight) + 'px';
			} else {
				footerElement.style.position = 'absolute';
				footerElement.style.top = (tallest) + 'px';
			}
			//footerElement.style.top = "200px;";
			
			/*
			if (windowHeight - (tallest + 200 + footerHeight) >= 0) {
				footerElement.style.position = 'relative';
				//footerElement.style.top = (windowHeight - (footerHeight + tallest)) + 'px';
				footerElement.style.top = (tallest + 200) + 'px';
				//alert("Window: " + windowHeight);
				//alert("Relative: " + containerHeight);
			} else {
				footerElement.style.position = 'relative';
				footerElement.style.top = (windowHeight - (footerHeight)) + 'px';
				//alert("Window: " + windowHeight);
				//alert("Static: " + containerHeight);
			}
			*/
		}
	}
}

window.onload = function() {
	setFooter();
}
window.onresize = function() {
	setFooter();
}