function addEvent(elm, evType, fn, useCapture)
{
	// Cross-browser event handling for IE5+, NS6+, Mozilla/Gecko and Safari/Konqueror
	// By Scott Andrew
	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if (elm.attachEvent) {
		return elm.attachEvent('on'+evType, fn);
	}
	else {
		elm['on' + evType] = fn;
	}
}


function $() {
	var elements = new Array();

	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);

		if (arguments.length == 1) 
			return element;

		elements.push(element);
	}

	return elements;
}


function getComputedStyleValue (element, cssPropertyName) {
  var ownerDocument, defaultView;
  if ((ownerDocument = element.ownerDocument) &&
      (defaultView = ownerDocument.defaultView) &&
       defaultView.getComputedStyle)
  {
    return defaultView.getComputedStyle(element, '')[cssPropertyName];
  }
  else if (element.currentStyle) {
    return element.currentStyle[cssPropertyName];
  }
} 


function displaySideBySide()
{
	var divs = document.getElementsByTagName("div");
	for (var i=0; i < divs.length; i++) {
		if (divs[i].className.match(/\bsidebyside\b/i)) {
			var sides = divs[i].getElementsByTagName("div");
			for (j=0; j<sides.length; j++) {
				if (sides[j].className) {
					if (sides[j].className.match(/\bfirst\b/i)) {
						var first = sides[j];
					}
					else if (sides[j].className.match(/\bsecond\b/i)) {
						var second = sides[j];
					}
				}
			}

			if (first.getElementsByTagName("div")[0].offsetHeight > second.getElementsByTagName("div")[0].offsetHeight) {
				var biggest = first;
			}
			else {
				var biggest = second;
			}
			var newheight = biggest.getElementsByTagName("div")[0].offsetHeight;

			var testProperties = ['paddingTop', 'paddingBottom', 'borderTopWidth', 'borderBottomWidth']; 
			for (j=0; j < testProperties.length; j++) {
				var property = testProperties[j];
				result = parseInt(getComputedStyleValue(biggest.getElementsByTagName("div")[0], property));
				if (!isNaN(result)) {
					newheight = newheight - result;
				}
			}
			
			first.getElementsByTagName("div")[0].style.height = newheight + "px";
			second.getElementsByTagName("div")[0].style.height = newheight + "px";
		}
	}
}


function displayAlternate()
{
	var divs = document.getElementsByTagName("div");
	for (var i=0; i < divs.length; i++) {
		if (divs[i].className.match(/\balternate\b/i)) {
			var rows = divs[i].getElementsByTagName("div");
			for (var j=0; j<rows.length; j++) {
				if (j % 2 == 0) {
					rows[j].style.background = "right repeat-y url(/images/horiz_grad.jpg)";
				}
			}
		}
	}
}

function setupPage()
{
	if (!document.getElementsByTagName || 
		!document.getElementById)
		return;
		
	displaySideBySide();
	displayAlternate();
}


addEvent(window, "load", setupPage, false);
