﻿// shortcut_tip
// 2006.12.11
// require event.js

var ShortcutTip_tiplist = [];
var ShortcutTip_keylist = [];
var ShortcutTip_callback = [];

function ShortcutTip_add(id, key, callback) {
    var obj = document.getElementById(id);
    if(obj) ShortcutTip_tiplist[ShortcutTip_tiplist.length] = obj;
    if(key) ShortcutTip_keylist[ShortcutTip_keylist.length] = key;
    if(callback) ShortcutTip_callback[ShortcutTip_callback.length] = callback;
}

function ShortcutTip_getTip(shortcut) {
    var tip = shortcut.getAttribute('tip');
    var divTip = document.getElementById(shortcut.id + '_' + tip + '_tip');
    if(!divTip) {
        divTip = document.createElement('DIV');
        divTip.id = shortcut.id + '_' + tip + '_tip';
        divTip.style.position = 'absolute';
        divTip.style.visibility = 'hidden';        
        divTip.style.left = recursionLeft(shortcut);
        divTip.style.top = recursionTop(shortcut);
        divTip.style.width = shortcut.offsetWidth;
        divTip.style.height = shortcut.offsetHeight;
        divTip.style.zIndex = 1000;

        divTipBack = document.createElement('DIV');
        divTipBack.style.position = 'absolute';
        divTipBack.style.left = 0;
        divTipBack.style.top = 0;
        divTipBack.style.width = shortcut.offsetWidth;
        divTipBack.style.height = shortcut.offsetHeight;
        divTipBack.style.backgroundColor = 'yellow';
        divTipBack.style.filter = 'alpha(opacity=20)';
        divTip.appendChild(divTipBack);
        
        divTipText = document.createElement('DIV');
        divTipText.style.position = 'absolute';
        divTipText.style.left = 0;
        divTipText.style.top = 0;
        divTipText.style.color = '#fff';
        divTipText.style.backgroundColor = '#900';
        divTipText.style.padding = '2px';
        divTipText.innerHTML = '<font style="font-family:tahoma; font-size:9px;">' + tip + '</font>';
        divTip.appendChild(divTipText);
        document.body.appendChild(divTip);
    }
    return divTip;
}

function ShortcutTip_show() {
    var shortcutList = ShortcutTip_tiplist;
    for(var i=0; i < shortcutList.length; i++) {
        var divTip = ShortcutTip_getTip(shortcutList[i]);
        divTip.style.visibility = 'visible';
    }
}

function ShortcutTip_hide() {
    var shortcutList = ShortcutTip_tiplist;
    for(var i=0; i < shortcutList.length; i++) {
        var divTip = ShortcutTip_getTip(shortcutList[i]);
        divTip.style.visibility = 'hidden';
    }
}

function ShortcutTip_keydown() {
    if(event.ctrlKey && event.shiftKey) {
        ShortcutTip_show();
        for(var i=0; i<ShortcutTip_keylist.length; i++) {
            if(ShortcutTip_keylist[i]==event.keyCode) {
                ShortcutTip_hide();
                ShortcutTip_callback[i](event.keyCode, ShortcutTip_tiplist[i]);
            }
        }        
    }else {
        ShortcutTip_hide();
    }
}

function ShortcutTip_keyup() {
    if(event.ctrlKey || event.shiftKey) {
        ShortcutTip_hide();
    }
}

addKeydownEvent(new CustomEvent('shortcut_tip_keydown', ShortcutTip_keydown, 1));
addKeyupEvent(new CustomEvent('shortcut_tip_keyup', ShortcutTip_keyup, 1));
