﻿// コメントにカスタマイズ絵文字入力機能：画像設定
function getCommentEmojiList() {
    var list = new Array();
    // 画像名、画像URLの設定
    list[list.length] = new Array('24', 'http://in-a-tranz.net/images/emoji/24hours.gif');
	list[list.length] = new Array('angry', 'http://in-a-tranz.net/images/emoji/angry.gif');
	list[list.length] = new Array('annoy', 'http://in-a-tranz.net/images/emoji/annoy.gif');
	list[list.length] = new Array('apple', 'http://in-a-tranz.net/images/emoji/apple.gif');
	list[list.length] = new Array('aries', 'http://in-a-tranz.net/images/emoji/aries.gif');
	list[list.length] = new Array('art', 'http://in-a-tranz.net/images/emoji/art.gif');
	list[list.length] = new Array('bag', 'http://in-a-tranz.net/images/emoji/bag.gif');
	list[list.length] = new Array('ban', 'http://in-a-tranz.net/images/emoji/ban.gif');
	list[list.length] = new Array('banana', 'http://in-a-tranz.net/images/emoji/banana.gif');
	list[list.length] = new Array('bar', 'http://in-a-tranz.net/images/emoji/bar.gif');
	list[list.length] = new Array('baseball', 'http://in-a-tranz.net/images/emoji/baseball.gif');
	list[list.length] = new Array('bearing', 'http://in-a-tranz.net/images/emoji/bearing.gif');
	list[list.length] = new Array('beer', 'http://in-a-tranz.net/images/emoji/beer.gif');
	list[list.length] = new Array('bell', 'http://in-a-tranz.net/images/emoji/bell.gif');
	list[list.length] = new Array('bicycle', 'http://in-a-tranz.net/images/emoji/bicycle.gif');
	list[list.length] = new Array('birthday', 'http://in-a-tranz.net/images/emoji/birthday.gif');
	list[list.length] = new Array('bleah', 'http://in-a-tranz.net/images/emoji/bleah.gif');
	list[list.length] = new Array('bomb', 'http://in-a-tranz.net/images/emoji/bomb.gif');
	list[list.length] = new Array('book', 'http://in-a-tranz.net/images/emoji/book.gif');
	list[list.length] = new Array('boutique', 'http://in-a-tranz.net/images/emoji/boutique.gif');
	list[list.length] = new Array('bread', 'http://in-a-tranz.net/images/emoji/bread.gif');
	list[list.length] = new Array('bud', 'http://in-a-tranz.net/images/emoji/bud.gif');
	list[list.length] = new Array('building', 'http://in-a-tranz.net/images/emoji/building.gif');
	list[list.length] = new Array('bullettrain', 'http://in-a-tranz.net/images/emoji/bullettrain.gif');
	list[list.length] = new Array('bus', 'http://in-a-tranz.net/images/emoji/bus.gif');
	list[list.length] = new Array('cafe', 'http://in-a-tranz.net/images/emoji/cafe.gif');
	list[list.length] = new Array('cake', 'http://in-a-tranz.net/images/emoji/cake.gif');
	list[list.length] = new Array('camera', 'http://in-a-tranz.net/images/emoji/camera.gif');
	list[list.length] = new Array('car', 'http://in-a-tranz.net/images/emoji/car.gif');
	list[list.length] = new Array('cat', 'http://in-a-tranz.net/images/emoji/cat.gif');
	list[list.length] = new Array('book', 'http://in-a-tranz.net/images/emoji/book.gif');
	list[list.length] = new Array('car', 'http://in-a-tranz.net/images/emoji/car.gif');
	list[list.length] = new Array('cloud', 'http://in-a-tranz.net/images/emoji/cloud.gif');
	list[list.length] = new Array('coldsweats01', 'http://in-a-tranz.net/images/emoji/coldsweats01.gif');
	list[list.length] = new Array('dash', 'http://in-a-tranz.net/images/emoji/dash.gif');
	list[list.length] = new Array('happy01', 'http://in-a-tranz.net/images/emoji/happy01.gif');
	list[list.length] = new Array('heart', 'http://in-a-tranz.net/images/emoji/heart04.gif');
	list[list.length] = new Array('note', 'http://in-a-tranz.net/images/emoji/note.gif');
	list[list.length] = new Array('restaurant', 'http://in-a-tranz.net/images/emoji/restaurant.gif');
	list[list.length] = new Array('shine', 'http://in-a-tranz.net/images/emoji/shine.gif');
	list[list.length] = new Array('sign03', 'http://in-a-tranz.net/images/emoji/sign03.gif');
	list[list.length] = new Array('sun', 'http://in-a-tranz.net/images/emoji/sun.gif');
	list[list.length] = new Array('sweat01', 'http://in-a-tranz.net/images/emoji/sweat01.gif');
	list[list.length] = new Array('sweat02', 'http://in-a-tranz.net/images/emoji/sweat02.gif');
	list[list.length] = new Array('up', 'http://in-a-tranz.net/images/emoji/up.gif');
	list[list.length] = new Array('scissors', 'http://in-a-tranz.net/images/emoji/scissors.gif');
    return list;
}

function getCustmizeEmojiAttribute() {
    // 画像タグに含める属性値（alt属性以外）
    var att = 'border="0" style="vertical-align:middle"';

    // ***************** 設定ここまで *****************
    att = (att != '') ? (' ' + att) : '';
    return att;
}

function writeCustmizeEmojiTagList(textarea) {

    // ***************** 設定ここまで *****************
    var list = getCommentEmojiList();
    var att = getCustmizeEmojiAttribute();
    for (var i = 0; i < list.length; i++) {
        window.document.write('<a href="javascript:;" onClick="addCustmizeEmoji(' + textarea + ', \'' + list[i][0] + '\');"><img src="' + list[i][1] + '"' + att + ' alt="' + list[i][0] + '" /></a>');
    }
}

// reference from jugem.jp (c)
function addCustmizeEmoji(obj, tag) {
    var item = '[' + tag + ']';
    if (document.selection) {
        obj.focus();
        sel = document.selection.createRange();
        sel.text = item;
    } else if (obj.selectionStart || obj.selectionStart == '0') {
        var startPos = obj.selectionStart;
        var endPos = obj.selectionEnd;
        obj.value = obj.value.substring(0, startPos) + item + obj.value.substring(endPos, obj.value.length);
    } else {
        obj.value += item;
    }
}
// コメントにカスタマイズ絵文字入力機能：画像変換
function changeCustmizeEmojiTag(commentAreaIdName, commentAreaTag, commentBodyClassName) {

    // ***************** 設定ここまで *****************
    var list = getCommentEmojiList();
    var att = getCustmizeEmojiAttribute();
    var objComArea;
    var classComArea;
    var objComBody = new Array();
    if (commentAreaIdName != '') {
        objComArea = document.getElementById(commentAreaIdName);
        if (!objComArea || !objComArea.innerHTML) return;
        classComArea = objComArea.getElementsByTagName(commentAreaTag);
    } else {
        classComArea = document.getElementsByTagName('*');
    }
    for (var i = 0; i < classComArea.length; i++) {
        if (classComArea[i].className == commentBodyClassName) objComBody[objComBody.length] = classComArea[i];
    }
    for (var i = 0; i < objComBody.length; i++) {
        objComBody[i].innerHTML = getStringCustmizeEmojiTag(list, objComBody[i].innerHTML, att);
    }
}

function getStringCustmizeEmojiTag(list, s, att) {
    for (var i = 0; i < list.length; i++) {
        s = s.split('[' + list[i][0] + ']').join('<img src="' + list[i][1] + '"' + att + ' alt="' + list[i][0] + '" class="emoji" />');
    }
    return s;
}
