addListener = function ( el, evt, fn, preBubble ) {
    if (el.addEventListener)  // W3C DOM
        el.addEventListener(evt,fn,preBubble);
    else if (el.attachEvent) { // IE DOM
         var r = el.attachEvent("on"+evt, fn);
    }
	return r;
}

addListener(window, 'load', function() {
	var links = [];
	var anchors = document.getElementsByTagName("a");

	// Hide appropriate elements
	var regions = document.getElementById("regions").getElementsByTagName("div");
	for (i=0; i < regions.length; i++)
		regions[i].style.display = "none";
	
	for (i=0; i < anchors.length; i++) {
		if (anchors[i].className == "regionAnchor")
			links.push(anchors[i]);
	}
	
	for (i=0; i < links.length; i++) {
		addListener(links[i], 'click', function(e) {
			// Define the event object (cross-browser friendly)
			var event = e || window.event;
			var a = event.srcElement || this;
			var href = a.href.split("#")[a.href.split("#").length-1];
			var nodes = document.getElementById("regions").childNodes || [];

			// Hide all visible elements
			for (i=0; i < nodes.length; i++) {
				if (nodes[i].style)
					nodes[i].style.display = "none";
			}

			for (i=0; i < nodes.length; i++) {
				var classes = (nodes[i].getAttribute) ? nodes[i].className.split(" ") : [];
				if (href == classes[classes.length-1]) {
					nodes[i].style.display = "block";
					break;
				}
			}
			
			// Stop the anchor's click event from bubbling up the DOM heirarchy
			if (event.stopPropagation)
				event.stopPropagation();
			else
				event.cancelBubble = true;
		}, true);
	}
}, true);