window.addEvent('domready', function() {
	
	if(multiColumn){
		initMultiColumns('content', numberOfColumns, 40);
	}
});
var numberOfColumns = 2;
var multiColumn = false;
var backedUp = false;
var origWidth = false;
var colWidth = false;
var tolerance = 30;
var debug = false;
function initMultiColumns(wrapperId, numOfColumns, gutter){
	if(numOfColumns > 1){
		var divSizer = new Element('div', {'id': 'divSizer'	}).injectBefore($(wrapperId));
		divSizer.setStyles({'visibility':'hidden','position':'absolute'});
		//backup original content into a div for printing and refreshing
		//make sure you attach a print stylesheet which turns this div's display to block
		//and the wrapper div's display to none
		if(!backedUp){ 
			var justForPrint = new Element('div', {'id': 'justForPrint'	}).injectBefore($(wrapperId));
			justForPrint.setStyle('display', 'none');
			$(justForPrint).innerHTML = convertColBreaks($(wrapperId)); 
		}
		if(!origWidth){	origWidth = $(wrapperId).getCoordinates().width;}
		if(!colWidth && numOfColumns == 2){	colWidth = (origWidth / numOfColumns) - (gutter/2);	}
		if(!colWidth && numOfColumns == 3){ colWidth = (origWidth / numOfColumns) - (gutter / 1.5);}
		if(!colWidth && numOfColumns > 3){ colWidth = (origWidth / numOfColumns) - (gutter / (numOfColumns -(numOfColumns / 1.5) ));}
		divSizer.setStyle('width', colWidth);
		divSizer.innerHTML = $('justForPrint').innerHTML;
		var newHeight = (($(divSizer).getCoordinates().height) / numOfColumns)+ tolerance;
		$(wrapperId).setStyle('height',newHeight);
		if(debug){$(wrapperId).setStyle('background','#ccc');}
		var columns = Columns.splitText($('justForPrint').innerHTML, colWidth, newHeight);
		$(wrapperId).innerHTML = "";
		var gutters = new Array();
		for (var i = 0; i < columns.length; i ++)
		{
			var left = (colWidth * i);
			if(i>0){ left = left + (gutter*i);}
			if(i >= numOfColumns){
				var column = $(wrapperId).getElements('.column').getLast();
			}else{
				var column = new Element('div', {'class': 'column'	});
			}
			column.injectInside($(wrapperId));
			
			column.setStyles({'width': colWidth, 'position':'absolute','overflow':'hidden','diplay':'block'});
			if(i < numOfColumns){column.setStyle('left', left);}
			if(debug){column.setStyle('border', '1px dashed #999');}
			
			column.innerHTML = column.innerHTML + columns[i];
			if(i == (columns.length-1) && i >= numOfColumns){$(wrapperId).setStyle('height',$(column).getCoordinates().height);	}
			
			gutters.push( new Element('div', {'class': 'gutter'	}).setStyles({'width': gutter, 'position':'absolute','overflow':'hidden','diplay':'block', left:(left+colWidth) }) );
			
		}
		for (var i = 0; i < (numOfColumns-1); i ++)
		{
			if(debug){$(gutters[i]).setStyle('border', '1px dotted green');}
			$(gutters[i]).injectInside($(wrapperId));
			$(gutters[i]).setStyle('height',$(wrapperId).getCoordinates().height);
		}	
	}
}

function convertColBreaks(obj){
	var childArray = $(obj).getElements('hr');;
	for(i=0;i<childArray.length;i++){
		if(
			$(childArray[i]) &&
			$(childArray[i]).getNext() && 
			$(childArray[i]).getTag() && 
			$(childArray[i]).getNext().getTag() &&  
			$(childArray[i]).getTag().toLowerCase() == 'hr' && 
			$(childArray[i]).getNext().getTag().toLowerCase() == 'hr'
		){
			//if(debug){alert('there is a break');}
			var hr1 =$(childArray[i]);
			var hr2 =$(childArray[i]).getNext();
			var columnBreak = new Element('span', {'class': 'colbreak'	}).injectBefore($(hr1));
			$(hr1).remove();
			$(hr2).remove();
		}
	}
	return obj.innerHTML;
}
