function FJInsertIcon(mt_icon_base) {
    var mt_icons = [
        [ "jitome1.gif", "じっ1", 25, 19 ],
        [ "memomemo.gif", "めもめも", 42, 21 ],
        [ "pekori.gif", "ぺこり", 36, 16 ],
        [ "poka.gif", "ぽかっ", 36, 19 ],
        [ "poripori.gif", "ぽりぽり", 29, 19 ],
        [ "tenntenn.gif", "・・・", 38, 19 ],
        [ "vsign.gif", "ピースサイン", 31, 19 ],
        [ "warai1.gif", "笑1", 25, 19 ],
        [ "warai2.gif", "笑2", 25, 19 ],
        [ "warai4.gif", "笑3", 25, 19 ],
        [ "warai5.gif", "笑4", 31, 19 ],
        [ "wink.gif", "ウィンク", 41, 20 ],
        [ "ase2.gif", "汗1", 25, 19 ],
        [ "ase8.gif", "汗2", 26, 21 ],
        [ "banzai.gif", "ばんざい", 37, 19 ],
        [ "bikkuri.gif", "びっくり", 25, 19 ],
        [ "byebye.gif", "バイバイ", 42, 21 ],
        [ "gu.gif", "ぐっ", 27, 19 ],
        [ "guruguru.gif", "グルグル", 25, 19 ],

        ["sun.gif","sun",16,16],
        ["cloud.gif","cloud",16,16],
        ["rain.gif","rain",16,16],
        ["snow.gif","snow",16,16],
        ["thunder.gif","thunder",16,16],
        ["typhoon.gif","typhoon",16,16],
        ["mist.gif","mist",16,16],
        ["wave.gif","wave",16,16],
        ["sprinkle.gif","sprinkle",16,16],
        ["aries.gif","aries",16,16],
        ["taurus.gif","taurus",16,16],
        ["gemini.gif","gemini",16,16],
        ["cancer.gif","cancer",16,16],
        ["leo.gif","leo",16,16],
        ["virgo.gif","virgo",16,16],
        ["libra.gif","libra",16,16],
        ["scorpius.gif","scorpius",16,16],
        ["sagittarius.gif","sagittarius",16,16],
        ["capricornus.gif","capricornus",16,16],
        ["aquarius.gif","aquarius",16,16],
        ["pisces.gif","pisces",16,16],
        ["sports.gif","sports",16,16],
        ["baseball.gif","baseball",16,16],
        ["golf.gif","golf",16,16],
        ["tennis.gif","tennis",16,16],
        ["soccer.gif","soccer",16,16],
        ["ski.gif","ski",16,16],
        ["basketball.gif","basketball",16,16],
        ["motorsports.gif","motorsports",16,16],
        ["pocketbell.gif","pocketbell",16,16],
        ["train.gif","train",16,16],
        ["subway.gif","subway",16,16],
        ["bullettrain.gif","bullettrain",16,16],
        ["car.gif","car",16,16],
        ["rvcar.gif","rvcar",16,16],
        ["bus.gif","bus",16,16],
        ["ship.gif","ship",16,16],
        ["airplane.gif","airplane",16,16],
        ["house.gif","house",16,16],
        ["building.gif","building",16,16],
        ["postoffice.gif","postoffice",16,16],
        ["hospital.gif","hospital",16,16],
        ["bank.gif","bank",16,16],
        ["atm.gif","atm",16,16],
        ["hotel.gif","hotel",16,16],
        ["school.gif","school",16,16],
        ["24hours.gif","24hours",16,16],
        ["gasstation.gif","gasstation",16,16],
        ["parking.gif","parking",16,16],
        ["signaler.gif","signaler",16,16],
        ["toilet.gif","toilet",16,16],
        ["restaurant.gif","restaurant",16,16],
        ["cafe.gif","cafe",16,16],
        ["bar.gif","bar",16,16],
        ["wine.gif","wine",16,16],
        ["beer.gif","beer",16,16],
        ["japanesetea.gif","japanesetea",16,16],
        ["fastfood.gif","fastfood",16,16],
        ["noodle.gif","noodle",16,16],
        ["boutique.gif","boutique",16,16],
        ["hairsalon.gif","hairsalon",16,16],
        ["karaoke.gif","karaoke",16,16],
        ["movie.gif","movie",16,16],
        ["carouselpony.gif","carouselpony",16,16],
        ["music.gif","music",16,16],
        ["art.gif","art",16,16],
        ["drama.gif","drama",16,16],
        ["event.gif","event",16,16],
        ["ticket.gif","ticket",16,16],
        ["smoking.gif","smoking",16,16],
        ["nosmoking.gif","nosmoking",16,16],
        ["camera.gif","camera",16,16],
        ["bag.gif","bag",16,16],
        ["book.gif","book",16,16],
        ["ribbon.gif","ribbon",16,16],
        ["present.gif","present",16,16],
        ["birthday.gif","birthday",16,16],
        ["telephone.gif","telephone",16,16],
        ["mobilephone.gif","mobilephone",16,16],
        ["memo.gif","memo",16,16],
        ["tv.gif","tv",16,16],
        ["game.gif","game",16,16],
        ["cd.gif","cd",16,16],
        ["heart.gif","heart",16,16],
        ["spade.gif","spade",16,16],
        ["diamond.gif","diamond",16,16],
        ["clover.gif","clover",16,16],
        ["eye.gif","eye",16,16],
        ["ear.gif","ear",16,16],
        ["rock.gif","rock",16,16],
        ["scissors.gif","scissors",16,16],
        ["paper.gif","paper",16,16],
        ["downwardleft.gif","downwardleft",16,16],
        ["downwardright.gif","downwardright",16,16],
        ["up.gif","up",16,16],
        ["down.gif","down",16,16],
        ["updown.gif","updown",16,16],
        ["upwardleft.gif","upwardleft",16,16],
        ["upwardright.gif","upwardright",16,16],
        ["foot.gif","foot",16,16],
        ["shoe.gif","shoe",16,16],
        ["eyeglass.gif","eyeglass",16,16],
        ["wheelchair.gif","wheelchair",16,16],
        ["newmoon.gif","newmoon",16,16],
        ["moon1.gif","moon1",16,16],
        ["moon2.gif","moon2",16,16],
        ["moon3.gif","moon3",16,16],
        ["fullmoon.gif","fullmoon",16,16],
        ["yacht.gif","yacht",16,16],
        ["xmas.gif","xmas",16,16],
        ["phoneto.gif","phoneto",16,16],
        ["mailto.gif","mailto",16,16],
        ["faxto.gif","faxto",16,16],
        ["info01.gif","info01",16,16],
        ["info02.gif","info02",16,16],
        ["mail.gif","mail",16,16],
        ["by-d.gif","by-d",16,16],
        ["d-point.gif","d-point",16,16],
        ["yen.gif","yen",16,16],
        ["free.gif","free",16,16],
        ["id.gif","id",16,16],
        ["key.gif","key",16,16],
        ["enter.gif","enter",16,16],
        ["clear.gif","clear",16,16],
        ["search.gif","search",16,16],
        ["new.gif","new",16,16],
        ["flag.gif","flag",16,16],
        ["freedial.gif","freedial",16,16],
        ["sharp.gif","sharp",16,16],
        ["one.gif","one",16,16],
        ["two.gif","two",16,16],
        ["three.gif","three",16,16],
        ["four.gif","four",16,16],
        ["five.gif","five",16,16],
        ["six.gif","six",16,16],
        ["seven.gif","seven",16,16],
        ["eight.gif","eight",16,16],
        ["nine.gif","nine",16,16],
        ["zero.gif","zero",16,16],
        ["mobaq.gif","mobaq",16,16],
        ["ok.gif","ok",16,16],
        ["heart01.gif","heart01",16,16],
        ["heart02.gif","heart02",16,16],
        ["heart03.gif","heart03",16,16],
        ["heart04.gif","heart04",16,16],
        ["happy01.gif","happy01",16,16],
        ["happy02.gif","happy02",16,16],
        ["angry.gif","angry",16,16],
        ["despair.gif","despair",16,16],
        ["sad.gif","sad",16,16],
        ["wobbly.gif","wobbly",16,16],
        ["note.gif","note",16,16],
        ["notes.gif","notes",16,16],
        ["spa.gif","spa",16,16],
        ["cute.gif","cute",16,16],
        ["kissmark.gif","kissmark",16,16],
        ["shine.gif","shine",16,16],
        ["flair.gif","flair",16,16],
        ["annoy.gif","annoy",16,16],
        ["punch.gif","punch",16,16],
        ["bomb.gif","bomb",16,16],

        ["sleepy.gif","sleepy",16,16],
        ["sign01.gif","sign01",16,16],
        ["sign02.gif","sign02",16,16],
        ["sign03.gif","sign03",16,16],
        ["sign04.gif","sign04",16,16],
        ["sign05.gif","sign05",16,16],
        ["sweat01.gif","sweat01",16,16],
        ["sweat02.gif","sweat02",16,16],
        ["coldsweats01.gif","coldsweats01",16,16],
        ["coldsweats02.gif","coldsweats02",16,16],
        ["think.gif","think",16,16],
        ["confident.gif","confident",16,16],
        ["pout.gif","pout",16,16],
        ["slate.gif","slate",16,16],
        ["pouch.gif","pouch",16,16],
        ["pen.gif","pen",16,16],
        ["pencil.gif","pencil",16,16],
        ["shadow.gif","shadow",16,16],
        ["night.gif","night",16,16],
        ["soon.gif","soon",16,16],
        ["on.gif","on",16,16],
        ["end.gif","end",16,16],
        ["clock.gif","clock",16,16],
        ["appli01.gif","appli01",16,16],
        ["appli02.gif","appli02",16,16],
        ["t-shirt.gif","t-shirt",16,16],
        ["moneybag.gif","moneybag",16,16],
        ["rouge.gif","rouge",16,16],
        ["denim.gif","denim",16,16],
        ["snowboard.gif","snowboard",16,16],
        ["bell.gif","bell",16,16],
        ["door.gif","door",16,16],
        ["dollar.gif","dollar",16,16],
        ["pc.gif","pc",16,16],
        ["loveletter.gif","loveletter",16,16],
        ["wrench.gif","wrench",16,16],
        ["crown.gif","crown",16,16],
        ["ring.gif","ring",16,16],
        ["sandclock.gif","sandclock",16,16],
        ["bicycle.gif","bicycle",16,16],
        ["watch.gif","watch",16,16],

        ["bearing.gif","bearing",16,16],
        ["bleah.gif","bleah",16,16],

        ["empty.gif","empty",16,16],
        ["full.gif","full",16,16],
        ["ban.gif","ban",16,16],
        ["secret.gif","secret",16,16],
        ["pass.gif","pass",16,16],
        ["good.gif","good",16,16],
        ["ng.gif","ng",16,16],


        ["apple.gif","apple",16,16],
        ["banana.gif","banana",16,16],
        ["bottle.gif","bottle",16,16],
        ["riceball.gif","riceball",16,16],
        ["bread.gif","bread",16,16],
        ["bud.gif","bud",16,16],
        ["club.gif","club",16,16],
        ["copyright.gif","copyright",16,16],
        ["crying.gif","crying",16,16],
        ["danger.gif","danger",16,16],
        ["dash.gif","dash",16,16],
        ["delicious.gif","delicious",16,16],

        ["fuji.gif","fuji",16,16],
        ["gawk.gif","gawk",16,16],
        ["impact.gif","impact",16,16],
        ["leftright.gif","leftright",16,16],
        ["maple.gif","maple",16,16],
        ["recycle.gif","recycle",16,16],
        ["run.gif","run",16,16],
        ["shock.gif","shock",16,16],
        ["smile.gif","smile",16,16],
        ["tm.gif","tm",16,16],
        ["tulip.gif","tulip",16,16],
        ["snail.gif","snail",16,16],
        ["fish.gif","fish",16,16],
        ["penguin.gif","penguin",16,16],
        ["pig.gif","pig",16,16],
        ["horse.gif","horse",16,16],
        ["dog.gif","dog",16,16],
        ["cat.gif","cat",16,16],
        ["weep.gif","weep",16,16],
        ["wink2.gif","wink",16,16]

 
    ];
    var i_file = 0;
    var i_alt = 1;
    var i_width = 2;
    var i_height = 3;

    this.insertToTextArea = function(v) {
        var e = document.getElementById('comment-text');
        if (document.selection) {
            e.focus();
            var range = document.selection.createRange();
            range.text = v;
        } else {
            var length = e.textLength;
            var start = e.selectionStart;
            var end = e.selectionEnd;
            if (end == 1 || end == 2) end = length;
            e.value = e.value.substring(0, start) + v + e.value.substr(end, length);
            e.selectionStart = start + v.length;
            e.selectionEnd = start + v.length;
        }
        e.focus();
    };

    this.insertIconEditor = function(i) {
        var i_html;

        if (app.editor.mode == 'iframe') {
            var id = "temp_id_for_retrieving_inserted_element_" + Unique.id();
            i_html = '<img src="' + mt_icon_base + mt_icons[i][i_file] + '" class="mt_icon" width="' + mt_icons[i][i_width] + '" height="' + mt_icons[i][i_height] + '" alt="' + mt_icons[i][i_alt] + '" id="' + id + '" />';
            var inserted = _insertHTML(i_html, false, id, true);
            if (inserted) {
                inserted.src = mt_icon_base + mt_icons[i][i_file];
            }
        }
        else {
            i_html = '<img src="' + mt_icon_base + mt_icons[i][i_file] + '" class="mt_icon" width="' + mt_icons[i][i_width] + '" height="' + mt_icons[i][i_height] + '" alt="' + mt_icons[i][i_alt] + '" />';
            app.editor.actual.setSelection(i_html);
        }
    };

    this.insertIconTag = function(i) {
        var i_html;

        i_html = '<img src="' + mt_icon_base + mt_icons[i][0] + '" class="mt_icon" width="' + mt_icons[i][i_width] + '" height="' + mt_icons[i][i_height] + '" alt="' + mt_icons[i][i_alt] + '" />';
        this.insertToTextArea(i_html);
    };

    this.insertIconMacro = function(i) {
        var i_html;

        i_html = ':' + mt_icons[i][0] + ':';
        this.insertToTextArea(i_html);
    };

    this.listIconsEditor = function() {
        var i;

        var editor = document.getElementById('editor-content-enclosure');
        var editorParent = editor.parentNode;
        var iconDiv = document.createElement('div');
        iconDiv.id = 'editor-content-iconbar';
        iconDiv.style.padding = '3px 10px';
        iconDiv.style.border = '1px solid #cccccc';
        iconDiv.style.borderTop = 'none';
        iconDiv.style.backgroundColor = '#f3f3f3';
        editorParent.insertBefore(iconDiv, editor);
        var spanElement = document.createElement('span');
        spanElement.id = 'editor_insert_icons';
        var html = '';
        for (i = 0; i < mt_icons.length; i++) {
            html += '<img src="' + mt_icon_base + mt_icons[i][i_file] + '" border="0" width="' + mt_icons[i][i_width] + '" height="' + mt_icons[i][i_height] + '" alt="' + mt_icons[i][i_alt] + '" onclick="_fj_insert_icon_obj.insertIconEditor(' + i + ');" style="cursor : pointer;" />';
        }
        spanElement.innerHTML = html;
        iconDiv.appendChild(spanElement);
    };

    this.listIconsCommentForm = function(mode) {
        var i;
        var html = '';

        for (i = 0; i < mt_icons.length; i++) {
            if (mode == 'tag') {
                html += '<img src="' + mt_icon_base + mt_icons[i][i_file] + '" border="0" width="' + mt_icons[i][i_width] + '" height="' + mt_icons[i][i_height] + '" alt="' + mt_icons[i][i_alt] + '" onclick="_fj_insert_icon_obj.insertIconTag(' + i + ');" style="cursor : pointer;" />';
            }
            else if (mode == 'macro') {
                html += '<img src="' + mt_icon_base + mt_icons[i][i_file] + '" border="0" width="' + mt_icons[i][i_width] + '" height="' + mt_icons[i][i_height] + '" alt="' + mt_icons[i][i_alt] + '" onclick="_fj_insert_icon_obj.insertIconMacro(' + i + ');" style="cursor : pointer;" />';
            }
        }
        document.write(html);
    };

    _insertHTML = function(html, select, id, isTempId) {
        var editor = app.editor.actual;
        var selection = editor.getSelection();
        var inserted = null;
        if (selection.createRange) { // Internet Explorer (IE)
            var range = selection.createRange();
            if (selection.type == "None" || selection.type == "Text") {
                try {
                    range.pasteHTML(html);
                } catch (err) {
                    log("Error pasting html on selection of type 'Text' or 'None': " + err);                
                }
                if (defined(id)) {
                    inserted = editor.document.getElementById(id);
                    if(select) 
                        range.moveToElementText(inserted);
                } else {
                    if(range.moveStart) {
                        range.moveStart("character", ((html.length) * (-1)));
                        inserted = range.parentElement();
                    }
                }
                if (select) 
                    range.select();
            }
            else { // IE 'Control' selection    
                range.item(0).outerHTML = html;
                inserted = range.item(0); 
            }
        }
 
        // mozilla
        else if (selection.getRangeAt) {
            var range;
            if (selection.rangeCount)
                range = selection.getRangeAt(0);
            else {
                range = editor.document.createRange();
                range.setStart(editor.document.body, 0);
                range.setEnd(editor.document.body, 0);
                selection.addRange(range);
            }
            var anchor = range.startContainer;

            if (selection && range && editor.isCaretAtEnd(selection, range)) { 
                var paragraph = editor.document.createElement(editor.FORMAT_BLOCK_TAG);
                paragraph.insertBefore(editor.document.createElement("br"), null);
                editor.document.getElementsByTagName("body")[0].insertBefore(paragraph, null);
            } 

            if (select && anchor.nodeType == Node.TEXT_NODE && !html.match( /<[a-z][a-z]*\s/i)) {
                range.setStart(anchor, selection.anchorOffset);
                var insertNode = editor.document.createTextNode(html);
                range.insertNode(insertNode);
                var inserted = insertNode;
            }
            else {
                var pS = anchor.previousSibling;
                var nS = anchor.nextSibling;
                editor.document.execCommand("insertHTML", false, html);
                if(pS !== anchor.previousSibling)
                    inserted = anchor.previousSibling;
                else if(nS !== anchor.nextSibling)
                    inserted = anchor.nextSibling;
                else 
                    inserted = anchor.firstChild;
            }

            if (defined(id))
                inserted = editor.document.getElementById(id);
            if (inserted && inserted.tagName && inserted.tagName.toLowerCase() == "a")
                editor.tagJustInserted = true;
            if (select) {
                range.selectNode(inserted);
                editor.monitorSelection(); // Required for Mozilla for proper arrow keys on highlighted link.
            }
            selection.addRange(range);        
        }

        if(isTempId && inserted) {
            inserted.id = undefined;
            inserted.removeAttribute("id");
        }
        return inserted;
    };
}
