function useId(blog, id, url, element, char) {
    element = document.getElementById(id);
    // alert('using ' + id);
    char = element.value.charAt(element.selectionStart - 1);
    // alert(char);
    url = blog + "/wp-content/plugins/charpal/html/char-insert.html?id=" + id;
    window.open(url,
        '',
        'width=400, height=200, top=200, left=400'
        + ' resizable=yes, status=no, toolbar=no, menubar=no, scrollbars=yes'
    );
    return false;
}

function charpal(blog) {
    if (!document.getElementById('comment')) {
        return;
    }
    var comment = document.getElementById('comment');
    var parent = comment.parentNode;
    var instruct = document.createElement('p');

    instruct.appendChild(document.createTextNode('Press '));
    instruct.appendChild(makeElement('strong', 'Alt-Shift-x or Ctrl-x'));
    instruct.appendChild(document.createTextNode(' (browser-specific) to bring up Charpal. or click '));
    var link = makeElement('a', 'here.');
    link.onclick = function () { useId(blog,'comment'); };
    link.onkeypress = function () { useId(blog,'comment'); };
    instruct.appendChild(link);
    parent.insertBefore(instruct,comment);

    var hiddenDiv = document.createElement('div');
    hiddenDiv.setAttribute('style', 'width: 0px; height: 0px; overflow: hidden; position: absolute;');
    hiddenDiv.appendChild(createAccessButton(blog, 'x'));
    parent.insertBefore(hiddenDiv,instruct);
}

function createAccessButton(blog, char) {
    var access = document.createElement('input');
    access.setAttribute('type', 'button');
    access.setAttribute('accesskey', char);
    access.setAttribute('onClick', "useId('" + blog + "', 'comment');");
    return access;
}

function makeElement (el, text) {
    var element = document.createElement(el);
    element.appendChild(document.createTextNode(text));
    return element;
}
