function initHighlight() {
    if (!document.getElementsByTagName){ return; }
    var allfields = getElementsByTagNames("input,textarea,select");

    // loop through all input tags and add events
    for (var i=0; i<allfields.length; i++){
        var field = allfields[i];
        if (field.getAttribute("class") == "form-box") {
            field.onfocus = function () {this.className = 'form-box focus';}
            field.onblur = function () {this.className = 'form-box';}
        }
		else if (field.getAttribute("class") == "form-select") {
            field.onfocus = function () {this.className = 'form-select focus';}
            field.onblur = function () {this.className = 'form-select';}
        }
		else if (field.getAttribute("class") == "form-area") {
            field.onfocus = function () {this.className = 'form-area focus';}
            field.onblur = function () {this.className = 'form-area';}
        }
    }
}

// Nifty function to add onload events without overwriting
// ones already there courtesy of the lovely and talented
// Simon Willison http://simon.incutio.com/
function addLoadEvent(func) {   
    var oldonload = window.onload;
    if (typeof window.onload != 'function'){
        window.onload = func;
    } else {
        window.onload = function(){
        oldonload();
        func();
        }
    }
}

addLoadEvent(initHighlight);

function getElementsByTagNames(list,obj) {
	if (!obj) var obj = document;
	var tagNames = list.split(',');
	var resultArray = new Array();
	for (var i=0;i<tagNames.length;i++) {
		var tags = obj.getElementsByTagName(tagNames[i]);
		for (var j=0;j<tags.length;j++) {
			resultArray.push(tags[j]);
		}
	}
	var testNode = resultArray[0];
	if (!testNode) return [];
	if (testNode.sourceIndex) {
		resultArray.sort(function (a,b) {
				return a.sourceIndex - b.sourceIndex;
		});
	}
	else if (testNode.compareDocumentPosition) {
		resultArray.sort(function (a,b) {
				return 3 - (a.compareDocumentPosition(b) & 6);
		});
	}
	return resultArray;
}