
/* 
 * Prevent the enter key from submitting the form.  Use as the 
 * "onkeydown" tag attribute.  E.g.:
 *
 *    <input ... onkeydown="return blockEnter(event)" />
 *
 * Code from Goodman, _JavaScript_&_DHTML_Cookbook_; (pp203).
 */
function blockEnter(evt)
{
    evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode :
                   ((evt.which) ? evt.which : evt.keyCode);
    if (charCode == 13 || charCode == 3) {
        return false;
    } else {
        return true;
    }
}

/*
 * Code from Goodman, _JavaScript_&_DHTML_Cookbook_; (pp201).
 */
function focusElement(formName, elemName)
{
    var elem = document.forms[formName].elements[elemName];
    elem.focus();
    elem.select();
}

/*
 * Verify that an input element's value is a (reasonably) valid e-mail
 * address.
 *
 * Code from Goodman, _JavaScript_&_DHTML_Cookbook_; (pp196).
 */
function isEMailAddr(elem)
{
    var str = elem.value;
    var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
    if (!str.match(re)) {
        return false;
    } else {
        return true;
    }
}

/*
 * Code from Goodman, _JavaScript_&_DHTML_Cookbook_; (pp211).
 */
function numeralsOnly(evt)
{
    evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode : 
                   ((evt.keyCode) ? evt.keyCode 
                                  : ((evt.which) ? evt.which : 0));
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        alert("Enter numerals only in this field.");
        return false;
    }
    return true;
}

/*
 * Return the string value of the set radio button, or false if none.
 */
function radioValue(elem)
{
    var len = elem.length;

    for (var i = 0; i < len; i++) {
        if (elem[i].checked) {
            return elem[i].value;
        }
    }
    return false;
}

