var tryFocus = function(obj) {
    try {
        obj.focus();
    } catch(error) {
        return;
    }
}
var formFocus = function() {
    var primary;
    var alternate;
    if(document.focusOverride) {
        primary = document.focusOverride.focus();
    } else {
        for(var i = 0; i < document.forms.length; i++) {
            var form = document.forms[i];
            for(var j = 0; j < form.elements.length; j++) {
                var elem = form.elements[j];
                if(!elem.focus)
                    continue;
                if(elem.className.match(/\bnofocus\b/))
                    continue;
                if(elem.type == 'text' || elem.type == 'textarea') {
                    primary = elem;
                    break;
                }
                if(!alternate && (elem.type == 'select-one' || elem.type == 'select-multiple'))
                    alternate = elem;
            }
            if(primary)
                break;
        }
    }
    if(primary)
        tryFocus(primary);
    else if(alternate)
        tryFocus(alternate);
}
if(window.attachEvent) {
    window.attachEvent('onload', formFocus);
} else {
    if(window.onload) {
        var curronload = window.onload;
        var newonload = function() {
            curronload();
            formFocus();
        };
        window.onload = newonload;
    } else {
        window.onload = formFocus;
    }
}
