1// -----------
var intGlobalBodyHeight;
var intLineHeight = 17;
var intMinimumNoOfRows = 10;
var intVisibleColumns = 1;
var intCurrentPage = 0;
var intNoOfPages;
var oPageIconsDiv;
var oPageNumbersDiv;
var oPreviousPageDiv;
var oNextPageDiv;
var intSubtractedSpaceHeight = 0;
var arrColumns = new Array();
// -----------
function addEvent(oObject, strEvent, strFunctionToCall){
	if(oObject.addEventListener){
		oObject.addEventListener(strEvent, strFunctionToCall, false);
	}
	else if(oObject.attachEvent){
		oObject.attachEvent(("on" + strEvent), strFunctionToCall);
	}
	else{
		eval("window.on" + strEvent + " = " + strFunctionToCall);
	}
}
// -----------
addEvent(window, "load", positionTextColumns);
addEvent(window, "resize", positionTextColumns);
// -----------
function positionTextColumns(){
	if(document.all && event.type == "resize"){
		return false;
	}
	var intBodyHeight = (typeof window.innerHeight != "undefined")? window.innerHeight : (document.documentElement && (document.documentElement.offsetHeight > document.body.offsetHeight))? document.documentElement.offsetHeight : document.body.offsetHeight;
	if(intGlobalBodyHeight != intBodyHeight){
		intGlobalBodyHeight = intBodyHeight;
//		var intHeightForColumnContainer = Math.ceil((intBodyHeight - 300) / intLineHeight) * intLineHeight;
		var intHeightForColumnContainer = 342;
		var intMinimumColumnContainerHeight = intLineHeight * intMinimumNoOfRows;
		intHeightForColumnContainer = (intHeightForColumnContainer < (intMinimumColumnContainerHeight))? intMinimumColumnContainerHeight : intHeightForColumnContainer;
		var oContainerColumnDiv = document.getElementById("containerColumnDiv");
		oContainerColumnDiv.style.height = intHeightForColumnContainer + "px";								
		var oColContent = document.getElementById("colContentDiv");
		oColContent.style.display = "block";
		var strContent = oColContent.innerHTML;
		var intNoOfColumns = Math.ceil(oColContent.offsetHeight / intHeightForColumnContainer);
		oContainerColumnDiv.innerHTML = "";	
		var oNewCol;
		var intColHeight;
		var intColMarginTop;
		var intColumnHeightSpan;
		var arrAllSpaceDivs;
		var oSpaceDiv;
		intSubtractedSpaceHeight = 0;
		var intArrayLocation;
		oPageIconsDiv = document.getElementById("pageIconsDiv");
		oPageNumbersDiv = document.getElementById("pageNumbersDiv");
		var oPageIcon;
		var oPageNumber;
		for(var i=0; i<intNoOfColumns; i++){
			oNewCol = document.createElement("div");
			oNewCol.className = "innerColumn";
			oNewCol.innerHTML = strContent;
			oContainerColumnDiv.appendChild(oNewCol);
			intColHeight = (intHeightForColumnContainer * (i + 1)) + intSubtractedSpaceHeight;
			intColMarginTop = (intHeightForColumnContainer * i) + intSubtractedSpaceHeight;
			intColumnHeightSpan = intColMarginTop;					
			arrAllSpaceDivs = oNewCol.getElementsByTagName("div");
			if(arrAllSpaceDivs.length > 0 && i > 0){
				for(var j=0; j<arrAllSpaceDivs.length; j++){
					oSpaceDiv = arrAllSpaceDivs[j];
					if(oSpaceDiv.offsetTop == intColMarginTop){
						intSubtractedSpaceHeight += intLineHeight;
						oSpaceDiv.className = "hiddenSpaceDiv";
					}							
				}
			}
			oNewCol.style.height = intColHeight + "px";
			oNewCol.style.marginTop = "-" + intColMarginTop + "px";
			if(i >= intVisibleColumns){
				oNewCol.style.display = "none";
			}
			intArrayLocation = Math.floor(i / intVisibleColumns);
			if(typeof arrColumns[intArrayLocation] == "undefined"){
				arrColumns[intArrayLocation] = new Array();
			}
			arrColumns[intArrayLocation].push(oNewCol);			
		}
		intNoOfPages = Math.ceil(intNoOfColumns / intVisibleColumns);
		oPageIconsDiv.innerHTML = "";
		oPageNumbersDiv.innerHTML = "";
		if(intNoOfPages > 1){
			for(var k=0; k<intNoOfPages; k++){
	        	oPageIcon = document.createElement("img");
				oPageIcon.setAttribute("id", ("pageIcon_" + k));
				oPageIcon.setAttribute("src", ("images/" + ((k == 0)? "selectedPageIcon" : "pageIcon") + ".gif"));
				oPageIcon.onclick = function (oEvent){
					var intParsedId = parseInt(this.getAttribute("id").substr(this.getAttribute("id").lastIndexOf("_")).replace(/_/, ""), 10);
					goToPage(false, intParsedId);
				};
				oPageIconsDiv.appendChild(oPageIcon);
				oPageNumber = document.createElement("div");
				oPageNumber.setAttribute("id", ("pageNumber_" + k));
				oPageNumber.innerHTML = k + 1;
				oPageNumber.onclick = function (oEvent){
					var intParsedId = parseInt(this.getAttribute("id").substr(this.getAttribute("id").lastIndexOf("_")).replace(/_/, ""), 10);
					goToPage(false, intParsedId);
				};
				oPageNumbersDiv.appendChild(oPageNumber);
	        }
			document.getElementById("pageVisualNavigationDiv").style.width = (intNoOfPages * 21) + "px";
		}
		oPreviousPageDiv = document.getElementById("previousPageDiv");
		oNextPageDiv = document.getElementById("nextPageDiv");
		oPreviousPageDiv.style.display = "none";
		oNextPageDiv.style.display = (intNoOfPages > 1)? "block" : "none";
		oColContent.style.display = "none";		
		oColContent.style.color = "red";
	}
}
// -----------
function goToPage(bForward, intPage){
	var oColumn;
	if(typeof intPage != "undefined"){
		intCurrentPage = intPage;
	}
	var intPageToShow = (typeof intPage != "undefined")? intPage : (bForward)? (++intCurrentPage) : (--intCurrentPage);
	for(var i=0; i<arrColumns.length; i++){
		oColumn = arrColumns[i];
		for(var j=0; j<oColumn.length; j++){
        	oColumn[j].style.display = (i == intPageToShow)? "block" : "none";
        }
    }
	var arrPageIcons = oPageIconsDiv.getElementsByTagName("img");
	var arrPageNumbers = oPageNumbersDiv.getElementsByTagName("div");
	for(var k=0; k<arrPageIcons.length; k++){
		if(k == intPageToShow){
	    	arrPageIcons[k].setAttribute("src", "images/selectedPageIcon.gif");
			arrPageNumbers[k].className = "bold";
		}
		else{
			arrPageIcons[k].setAttribute("src", "images/pageIcon.gif");
			arrPageNumbers[k].className = "";
		}
    }
	oPreviousPageDiv.style.display = (intCurrentPage > 0)? "block" : "none";
	oNextPageDiv.style.display = ((intCurrentPage + 1) < intNoOfPages)? "block" : "none";
	// This line is here to force Safari 1.0 to re-render the page. Otherwise it crashes.
	var intBodyWidth = document.body.offsetWidth;
}
// -----------
// Added push method to the Array object for support in IE 5 on Mac
Array.prototype.push = ArrayPush;
function ArrayPush(value){
	this[this.length] = value;
}
// -----------