// Non-destructive way to add new functions to the window.onload event
function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload !== 'function') {
        window.onload = func;
    } else {
        window.onload = function () {
            oldonload();
            func();
        };
    }
}

// How the matchColumns function works: Apply the CSS class of 'column' to your pages' main columns
function matchColumns() { 
	var divs, contDivs, maxHeight, divHeight, d, i, j;
	// get all <div> elements in the document 
	divs = document.getElementsByTagName('div');
	contDivs = [];
	// initialize maximum height value 
	maxHeight = 0;
	// iterate over all <div> elements in the document 
	for (i = 0;i < divs.length;i++) {
		// make collection with <div> elements with class attribute 'column'
		if (/(^|\\s)column(\\s|$)/.test(divs[i].className)) {
			contDivs[contDivs.length] = divs[i];
		}
	}
	// clear out all the specified heights on the <div> elements
	for (j = 0; j < contDivs.length; j++) {
		contDivs[j].style.height = "";
	}
	// loop through the <div> elements to determine the maximum height for the page
	for (j = 0; j < contDivs.length; j++) {
		d = contDivs[j];
		// determine height for <div> element 
		if (d.offsetHeight) {
			divHeight = d.offsetHeight;
		} else if (d.style.pixelHeight) {
			divHeight = d.style.pixelHeight;
		}
		// calculate maximum height 
		maxHeight = Math.max(maxHeight, divHeight);
	}
	// assign maximum height value to all of container <div> elements
	for (j = 0; j < contDivs.length; j++) {
		if(!isNaN(maxHeight)) contDivs[j].style.height = maxHeight + "px";
	}
}
// Runs the matchColumns function when the page loads
addLoadEvent(matchColumns);
