

/**
 * Sets the carrent focus to the element with this id.
 * @param elementId The id of the element to focus on.
 */
function setFocus(elementId) {
    if ( (elementId != null) && (elementId.length > 0) ) {
        var ele = document.getElementById(elementId);
        if ( ele != null ) {
            ele.focus();
            ele.select();
        }
    }
}

/**
 * Allows only decimal numbers to be entered into this field.
 */
function decimalsOnly(field, event) {
    return numbersOnly(field, event, true, false);
}

/**
 * Does not allow any non-numeric characters to be entered into this field.
 */
function numbersOnly(field, event, decimalAllowed, signAllowed) {
    var key;
    var keychar;

    if (window.event) { 
       key = window.event.keyCode;
    } else if (event) {
       key = event.which;
    } else {
       return true;
    }
    //alert("Key pressed! ASCII-value: " + key + ":" + keychar);
    keychar = String.fromCharCode(key);
    
    var accept = false;
    // control keys
    if ((key===null) ||
        (key===0) ||
        (key==8) ||
        (key==9) ||
        (key==13) ||
        (key==27)) {
        accept = true;
    } else if((event.ctrlKey) && ((key==99) || (key==118) || (key==120))) {
        
        accept = true;
    } else if ((("0123456789").indexOf(keychar) > -1)) {
        accept = true;
    } else if (decimalAllowed && keychar == "." && field.value.indexOf(".") == -1) {
        accept = true;
    } else if (signAllowed && (keychar=="-" || keychar=="+") && field.value.length==0) {
        accept = true;
    }
    return accept;
}
