function addEvent(elm, evType, fn) {
  if ( elm.addEventListener ) {
    elm.addEventListener(evType, fn, false);
    return true;
  } else if ( elm.attachEvent ) {
    var r = elm.attachEvent("on"+evType, fn);
    return r;
  }
}

function focusFirstFormElement() {
	var e = 0;
	var f = 0;
	var o = null;
	if ( document.forms[0] && document.forms[0].elements[0] ) { // if there is at least one form with at least one element
		while ( f < document.forms.length && e < document.forms[f].elements.length ) {
			o = document.forms[f].elements[e];
			if ( o && o.type == 'text' || o.type == 'password' ) break;
			if ( document.forms[f].elements.length - 1 == e ) { // jump to next form
				e = 0;
				f++;
			} else {
				e++;
			}
		}
		if ( o.type == 'text' || o.type == 'password' ) o.focus();
	}
}