var fieldHoverBorderColor 	= null;
var fieldBorderColor 		= null;

initFields();

function initFields() {
	addEvent(window, 'load', function() {
		this.fieldHoverBorderColor = getStyle('a:hover', 'color');
		this.fieldBorderColor = getStyle('.textfield', 'borderColor');
	});

	addEvent(window, 'load', function() {
		var input, textarea;
		var inputs = document.getElementsByTagName('input');

		for (var i = 0; (input = inputs[i]); i++) {
			if(	input.type != 'submit' &&
				input.type != 'button' &&
				input.type != 'radio' &&
				input.type != 'file' &&
				input.type != 'checkbox') {

				addEvent(input, 'focus', onInputFocus);
				addEvent(input, 'blur', onInputBlur);
			}
		}

		var textareas = document.getElementsByTagName('textarea');

		for (var i = 0; textarea = textareas[i]; i++) {
			addEvent(textarea, 'focus', onInputFocus);
			addEvent(textarea, 'blur', onInputBlur);
		}
	});
}

function extractSource(e) {
	/* Cookie-cutter code to find the source of the event */
	if (isUndefined(e)) {
		e = window.event;
	}

	var source = null;

	if (!isUndefined(e.target)) {
		source = e.target;
	} else if (!isUndefined(e.srcElement)) {
		source = e.srcElement;
	}

	return source;
}

function onInputFocus(e) {
	var source = extractSource(e);

	if(fieldHoverBorderColor && source) {
		source.style.borderColor = fieldHoverBorderColor;
	}
}

function onInputBlur(e) {
	var source = extractSource(e);

	if(fieldBorderColor && source) {
		source.style.borderColor = fieldBorderColor;
	}
}