//	RELEVANT VARIABLES

var browserType = browserType()
var IE = browserType == "IE"
var FF = browserType == "FF" || browserType == "Opera"
var documentHeight
var windowHeight
var mainColumnHeight
var bannerColumnHeight
var footerHeight
var resumeScrollHeight
var table_offset
var columnDifference
var myCounter = 0
var page_loaded = false

//	SET THEIR VALUES

function getHeights () {
	myCounter++
	documentHeight = parseInt(document.documentElement.scrollHeight)
	windowHeight = parseInt(document.documentElement.clientHeight)

	myObject = document.getElementById("mainColumn")
	mainColumnHeight = parseInt(myObject.clientHeight)
	
	myObject = document.getElementById("tempBannerColumn")
	bannerColumnHeight = parseInt(myObject.clientHeight)
	
	myObject = document.getElementById("bottomArea")
	footerHeight = parseInt(myObject.clientHeight)

	columnDifference = mainColumnHeight - bannerColumnHeight

	table_offset = parseInt(document.getElementById("columnDiv").offsetTop)
	
	if (bannerColumnHeight < windowHeight) {
		document.getElementById("bannerColumFiller").style.height = (windowHeight - bannerColumnHeight) + "px"
		resumeScrollHeight = footerHeight
	}
	else
		resumeScrollHeight = (bannerColumnHeight - windowHeight) + footerHeight

	/*	KEEP FOR DEBUGGING
	document.getElementById("show").innerHTML =
		"counter: " + myCounter + "<br/>" +
		"documentHeight: " + documentHeight + "<br/>" +
		"windowHeight: " + windowHeight + "<br/>" +
		"bannerColumnHeight: " + bannerColumnHeight + "<br/>" +
		"resumeScrollHeight: " + resumeScrollHeight + "<br/>"
	*/

	//LET RUN 25 TIMES, SINCE VALUES OF documentHeight AND bannerColumnHeight SOMETIMES NEED A FEW ITERATIONS TO SETTLE
	if (myCounter < 500 && !page_loaded)
		setTimeout("getHeights()", 100)
	else {
		node_cleanup()
		/*alert(
		"main: " + mainColumnHeight + "\n" +
		"counter: " + myCounter + "\n" +
		"documentHeight: " + documentHeight + "\n" +
		"windowHeight: " + windowHeight + "\n" +
		"bannerColumnHeight: " + bannerColumnHeight + "\n" +
		"footerHeight: " + footerHeight + "\n" +
		"resumeScrollHeight: " + resumeScrollHeight + "\n")*/
	}
}

function did_load () {
	page_loaded = true
}
loadAttacher(did_load)

//	CLEAN UP THE TEMPORARILY CREATED OBJECTS

function removeObject (myID) {
	myObject = document.getElementById(myID)
	myObject.parentNode.removeChild(myObject)
}
function node_cleanup () {
	//document.getElementById("show").innerHTML = "cleanup1"
	removeObject("tempBannerColumn")
}

//	NOW LET THE FUN BEGIN!

window.onscroll = function () {
	scrolled = parseInt(IE || FF ? document.documentElement.scrollTop : document.body.scrollTop)
	table_current_position = table_offset - scrolled
	fromBottom = documentHeight - scrolled - windowHeight

	if (table_current_position > 3) {
		situation = "top"
		document.getElementById("bannerColumn").style.position = ""
		document.getElementById("bannerColumn").style.paddingTop = 0
		if (IE || FF)
			document.getElementById("bannerColumn").style.marginRight = 0
	}

	else if (fromBottom < resumeScrollHeight) {
		situation = "bottom"
		document.getElementById("bannerColumn").style.position = ""
		if (bannerColumnHeight < windowHeight)
			document.getElementById("bannerColumn").style.paddingTop = (mainColumnHeight - windowHeight) + "px"
		else
			document.getElementById("bannerColumn").style.paddingTop = columnDifference + "px"
//		document.getElementById("bannerColumn").style.paddingTop = (documentHeight - windowHeight - resumeScrollHeight - table_offset) + "px"
		if (IE || FF)
			document.getElementById("bannerColumn").style.marginRight = 0
	}

	else {
		situation = "middle"
		document.getElementById("bannerColumn").style.position = "fixed"
		document.getElementById("bannerColumn").style.paddingTop = 0
		if (IE)
			document.getElementById("bannerColumn").style.marginRight = myMarginRight
		else if (FF)
			document.getElementById("bannerColumn").style.marginRight = myMarginRight
	}
	/*	KEEP FOR DEBUGGING
	document.getElementById("show2").innerHTML = 
		"documentHeight: " + documentHeight + "<br/>" +
		"windowHeight: " + windowHeight + "<br/>" +
		"bannerColumnHeight: " + bannerColumnHeight + "<br/>" +
		"resumeScrollHeight: " + resumeScrollHeight + "<br/>" +
		"table_offset: " + table_offset + "<br/>" +
		"scrolled: " + scrolled + "<br/>" +
		"fromBottom: " + fromBottom + "<br/>" +
		"table_current_position: " + table_current_position + "<br/>" +
		situation
	*/
}
