function SpdtKeyHandler() {
    this.focusListener = null;
    this.globalListener = null;
    this.keyEventListeners = new Object();
}
SpdtKeyHandler.prototype.setGlobalListener = function (listener) {
    this.globalListener = listener;
}
SpdtKeyHandler.prototype.setFocusListener = function (listener) {
    this.focusListener = listener;
}
SpdtKeyHandler.prototype.handleKeyUp = function (evt) {
    var rtno = true;
    evt = (evt) ? evt : ((window.event) ? event : null);
    if (evt) {
        var charCode = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
        if (_SpdtKeyHandler.focusListener != null) {
            rtno = _SpdtKeyHandler.focusListener.keyUp(evt.ctrlKey,evt.altKey,charCode);
        }
        if (_SpdtKeyHandler.globalListener != null) {
            rtno = _SpdtKeyHandler.globalListener.keyUp(evt.ctrlKey,evt.altKey,charCode);
        }
    }
    return false;
}
SpdtKeyHandler.prototype.handleKeyDown = function (evt) {
    var rtno = true;
    evt = (evt) ? evt : ((window.event) ? event : null);
    if (evt) {
        var target = (evt.target) ? evt.target : evt.srcElement;
        var charCode = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
        if ((charCode == 13 || charCode == 3) && (target.nodeName == "INPUT" && target.type == "text")) {
            rtno = false;
        }
    }
    return rtno;
}

_SpdtKeyHandler = new SpdtKeyHandler();
document.onkeyup = _SpdtKeyHandler.handleKeyUp;
document.onkeydown = _SpdtKeyHandler.handleKeyDown;
