

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}else {
		obj["on"+type] = obj["e"+type+fn];
	}
}
var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();

function init() {
	imgCaption();
	replaceSelect();
}

function replaceSelect() {
	oHistory = document.getElementById('history');
	if (oHistory) { 
		oList = oHistory.getElementsByTagName('ul');
		var oEntries = oList[0].getElementsByTagName('a');
		var oSelectBox = document.createElement('select');
		oSelectBox.className = 'histSelect';
		var oDefaultOption = document.createElement('option');
		var oDefaultTxt = document.createTextNode('Select a specific entry:');
		oDefaultOption.setAttribute('value', null);
		oDefaultOption.appendChild(oDefaultTxt);
		oSelectBox.appendChild(oDefaultOption);
		for (var i=0; i < oEntries.length; i++) {
			var oOption = document.createElement('option');
			oOption.setAttribute('value', oEntries[i].href);
			var oOptText = document.createTextNode("- " + oEntries[i].firstChild.nodeValue);
			oOption.appendChild(oOptText);
			oSelectBox.appendChild(oOption);
		}
		oHistory.insertBefore(oSelectBox, oHistory.firstChild);
		oHistory.removeChild(oList[0].parentNode);
		var oSelect = oHistory.getElementsByTagName('select')[0];
		addEvent(oSelect, 'change', submitForm);
	}
}
function submitForm() {
	if(this.value != null) {
		window.location = this.value;
	}
}

function imgCaption() {
	var oImage = document.getElementById('mainImg');
	if(oImage) {
		var oImgCapt = oImage.getAttribute('alt');
		var oCaptSpan = document.createElement('span');
		oCaptSpan.className = 'imgCaption';
		var oCaptTxt = document.createTextNode(oImgCapt);
		oCaptSpan.appendChild(oCaptTxt);
		oImage.parentNode.appendChild(oCaptSpan);
	}
}
addEvent(window, 'load', init);

navHover = function() {
	var lis = document.getElementById("navigation").getElementsByTagName("LI");
	for (var i=0; i<lis.length; i++) {
		lis[i].onmouseover=function() {
			this.className+=" iehover";
		}
		lis[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" iehover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", navHover);

function insertPrintButton(id, buttonText) {
	if(window.print) {
		return insertButton(id, buttonText, _print, "/i/b/btnPrintPage.gif");
	}
}

function insertButton(id, buttonText, functionPointer, imgSrc) {
	if(document.getElementById && document.createTextNode) {
		var o = document.getElementById(id);
		if(o) {
			var oA = _createNode("a");
			oA.style.textDecoration = "none";
			oA.href = "#";
			oA.tabIndex = -1;
			oA.setAttribute("buttonId", id);
			attachEventHandler(oA, "click", functionPointer);
			o.appendChild(oA);
	
			if(imgSrc) {
				var oImg = _createNode("img");
				oImg.src = imgSrc;
				oImg.alt = buttonText;
				oA.appendChild(oImg);
			} else {
				var oButton = _createNode("input");
				oButton.type = "button";
				oButton.value = buttonText;
				oA.appendChild(oButton);
			}
		}
	}
	
	return false;
}

function _print(e) {
	window.print();
	
	return false;
}
