var objContent, objContainer, intContainerWidth, intColumnHeight, intColumns, intGutter, arrDivs, intCurrTextSize;

var isIE = (navigator.appName == 'Microsoft Internet Explorer') ? true : false;
var isSafari = (navigator.appVersion.indexOf('Safari') >= 0) ? true : false;

function createColumns() {
	arrDivs = objContent.getElementsByTagName('div');
	var intColumnWidth = Math.floor((intContainerWidth / intColumns) - (intGutter * (intColumns - 1)));
	for(var intCount = 0; intCount < intColumns; intCount++) {
		var objColumn = document.createElement('div');
		objColumn.setAttribute('id', 'column'+ intCount);
		objColumn.style.height = intColumnHeight +'px';
		objColumn.style.left = (intCount * (intColumnWidth + intGutter)) +'px';
		objColumn.style.top = '0px';
		objColumn.style.position = 'absolute';
		objContainer.appendChild(objColumn);
	}
	layoutDivs(0);
}

function layoutDivs(intDivCount) {
	var intNewTextSize = (isIE) ? parseFloat(objTextSize.currentStyle.fontSize.replace('pt', '')) : parseFloat(document.defaultView.getComputedStyle(objTextSize,null).fontSize.replace('px', ''));
	if(intCurrTextSize != intNewTextSize) {
		var intDivCount = intDivCount + 0;
		var intColumnCount = 0;
		for(var intCount = 0; intCount < intColumns; intCount++) {
			var intHeight = 0;
			var objColumn = document.getElementById('column'+ intCount);
			objColumn.innerHTML = '';
			do {
				if(arrDivs[intDivCount] != null) {
					var objDiv = arrDivs[intDivCount].cloneNode(true);
					intHeight = intHeight + arrDivs[intDivCount].offsetHeight;
					if(intHeight <= intColumnHeight) {
						objColumn.appendChild(objDiv);
						intDivCount++;
					}
					else {
						intColumnCount++;
					}
				}
				else {
					intColumnCount++;
				}
			} while(intColumnCount == intCount);
		}
		intCurrTextSize = intNewTextSize;
		createPages();
	}
}

function createPages() {
	var intHeight = 0, arrColumns = new Array();
	arrColumns[0] = 0;
	for(var intCount = 0; intCount < arrDivs.length; intCount++) {
		intHeight = intHeight + arrDivs[intCount].offsetHeight;
		if(intHeight > intColumnHeight) {
			intHeight = arrDivs[intCount].offsetHeight;
			arrColumns[arrColumns.length] = intCount;
		}
	}
	if(arrColumns.length > intColumns) {
		var arrPages = new Array();
		for(var intCount = 0; intCount < arrColumns.length; intCount++) {
			if(intCount % intColumns == 0) {
				arrPages[arrPages.length] = '<a href="#" title="go to: page '+ (arrPages.length + 1) +'" onclick="showPage('+ arrColumns[intCount] +');"><span class="pagenumber" style="background-image: url(/files/images/pages/'+ (arrPages.length + 1) +'.gif);"><span class="hidden"> '+ (arrPages.length + 1) +' </span></span></a>';
			}
		}
		var strPages = arrPages.join('<span class="hidden"> | </span>');
		document.getElementById('pagenumbers').innerHTML = '<span id="pagetext">page </span>'+ strPages;
	}
	else
		document.getElementById('pagenumbers').innerHTML = '';
}

function showPage(intStartPos) {
	intCurrTextSize = 0;
	layoutDivs(intStartPos);
}

function eventRedraw() {
	layoutDivs(0);
}

function initDivColumns(intWidth, intHeight, intIGutter, intIColumns, strContentID, strContainerID) {
	if(document.getElementById(strContentID) != null) {
		intContainerWidth = intWidth;
		if(isSafari)
			intColumnHeight = intHeight + 5;
		else
			intColumnHeight = intHeight;
		intGutter = intIGutter;
		intColumns = intIColumns;
		objContent = document.getElementById(strContentID);
		objContainer = document.getElementById(strContainerID);
		objTextSize = document.getElementById('textsize');
		
		objContent.style.visibility = 'hidden';
		//objContainer.style.width = intContainerWidth +'px';
		objContainer.style.height = intColumnHeight +'px';
		//objContainer.style.overflow = 'hidden';
		objContainer.style.position = 'absolute';
		
		createColumns();
		if(document.addEventListener) {
			document.addEventListener('keyup', eventRedraw, true);
			document.addEventListener('mousemove', eventRedraw, true);
		}
		else if(document.attachEvent) {
			document.attachEvent('onkeyup', eventRedraw);
			document.attachEvent('onmousemove', eventRedraw);
		}
		else {
			document.onkeyup = eventRedraw;
			document.onmousemove = eventRedraw;
		}
	}
}