// イベントハンドラを追加する
document.onkeydown = com_OnKeyDown;
document.onmousedown = com_OnMouseDown;
document.ondragstart = com_OnDragStart;
document.onmousewheel = com_OnMouseWheel;
document.oncontextmenu = com_OnContextMenu;

/** keydownイベントの処理を行います。 */
function com_OnKeyDown() {
//return true;

    //Ctrl + ALT
    if (event.altKey && event.ctrlKey) {
        alert("押下したキーは使用できません。");
        event.keyCode = 0;
        return false;
    }

    // ALT+
    if (event.altKey) {
        switch (event.keyCode) {
            case  36: //Home
            case  37: //<-
            case  39: //->
            case  68: //D
                alert("押下したキーは使用できません。");
                event.keyCode = 0;
                return false;
            case 115: //F4
                event.keyCode = 0;
                return false;
        }
    }

    // Ctrl+
    if (event.ctrlKey) {
        switch (event.keyCode) {
            case   9: //TAB
            case  13: //Enter
            case  37: //<-
            case  39: //->
            case  65: //A
            case  66: //B
            case  68: //D
            case  69: //E
            case  70: //F
            case  72: //H
            case  73: //I
            case  76: //L
            case  78: //N
            case  79: //O
            case  82: //R
            case  83: //S
            case  87: //W
            case 219: //[
            case 221: //]
                alert("押下したキーは使用できません。");
                event.keyCode = 0;
                return false;
        }
    }

    // Key
    switch (event.keyCode) {
        case 8: // BS
            // 入力できるところ以外で入力をクリアする
            if (event.srcElement == null);
            else if ( event.srcElement.tagName.toUpperCase() != "INPUT" &&
                event.srcElement.tagName.toUpperCase() != "TEXTAREA");
            else if ( event.srcElement.readOnly );
            else if ( event.srcElement.tagName.toUpperCase() == "INPUT" &&
                event.srcElement.type.toUpperCase() != "TEXT" &&
                event.srcElement.type.toUpperCase() != "PASSWORD");
            else break;

            event.keyCode = 0;
            return false;
        case  27: //ESC
        //case  91: //Windows
        case  93: //コンテキストメニュー
        case 113: //F2
        case 114: //F3
        case 115: //F4
        case 116: //F5
        case 117: //F6
        case 118: //F7
        case 119: //F8
        case 120: //F9
        case 121: //F10
        case 122: //F11
        case 123: //F12
            alert("押下したキーは使用できません。\n再入力してください。");
            event.keyCode = 0;
            return false;
    }
}

/** mousedownイベントの処理を行います。 */
function com_OnMouseDown() {
return true;

    //SHIFT
    if (event.shiftKey) return true;

    if ((event.button & 2) != 0) {
        alert("押下したキーは使用できません。\n再入力してください。");
        return false;
    }
}

/** dragstartイベントの処理を行います。 */
function com_OnDragStart() {
    return false;
}

/** mousewheelイベントの処理を行います。 */
function com_OnMouseWheel() {

    // Shiftキーを押しながらマウスのホイールを回すと、前後のページに行くので回避
    if (event.shiftKey) {
        return false;
    }

    // Ctrlキーを押しながらマウスのホイールを回すと、文字の拡大縮小を行うので回避
    if (event.ctrlKey) {
        return false;
    }
}
/** oncontextmenuイベントの処理を行います。 */
function com_OnContextMenu() {
//return true;
    alert("右クリックは使用できません。");
    return false;
}
