function initFormRequired() {
    var f = document.getElementById('silas-form');
    if (f && !f.onsubmit) f.onsubmit = checkRequiredFields
}
function checkRequiredFields() {
    var f = document.getElementById('silas-form');
    var firstMissing = false;
    for (var i=0;i<f.length;i++) {
        var elem = f.elements[i]
        if (elem.type == 'text') {
            if (elem && (elem.className.indexOf('required') != -1) && !elem.value) {
                if (!firstMissing) firstMissing = elem
                elem.className += ' missing';
                var label = document.getElementById('label-'+elem.id);
                if (label) label.className += ' missing';
            }
        }
    }
    if (firstMissing) {
        var prevY = window.scrollY
        firstMissing.focus();
        if (prevY != window.scrollY) window.scrollBy(0,-50); // make sure we can see the question
        alert("One or more required fields are missing.");
        return false
    }
    return true;
}
