// Execute the following functions when the document has fully loaded
window.onload = function() {
	buttonHover();
	openLinksInNewWindow();
};

// Open links in new window by applying target value of '_blank' through JavaScript
function openLinksInNewWindow() {

	// Element array of anchor elements
	var anchors = document.getElementsByTagName('a');

	// Loop through anchor elements, and if any have a class of 'newWindowLink'
	for (var i = 0; i < anchors.length; i++) {
		if (hasClass(anchors[i], 'newWindowLink')) {

			// Add a target value of '_blank'
			anchors[i].target = '_blank';
		}
	}
}

function $(id) {
	return document.getElementById(id);
}

function addClass(el, className) {
	if (!hasClass(el, className)) el.className += ' ' + className;
}

function addLoadEvent(func) {
	var oldOnload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}
	else {
		window.onload = function() {
			if (oldOnload) {
				oldOnload();
			}
			func();
		};
	}
}

function buttonHover() {
	var inputs = document.getElementsByTagName('input');

	for (var i = 0; i < inputs.length; i++) {
		if (hasClass(inputs[i], 'button')) {

			inputs[i].onmouseover = function () {
				addClass(this, 'buttonHover');
			};

			inputs[i].onmouseout = function () {
				removeClass(this, 'buttonHover');
			};
		}
	}
}

function hasClass(el, className) {
	var regex = new RegExp('(^|\\s)' + className + '(\\s|$)');
	return regex.test(el.className);
}

function removeClass(el, className) {
	var regex = new RegExp('(^|\\s)' + className + '(\\s|$)');
	el.className = el.className.replace(regex, ' ');
}