﻿// コメントにカスタマイズ絵文字入力機能：画像設定
function getCommentEmojiList() {
    var list = new Array();
    // 画像名、画像URLの設定
    list[list.length] = new Array('sun', 'emoji/sun.gif');
	list[list.length] = new Array('cloud', 'emoji/cloud.gif');
	list[list.length] = new Array('sprinkle', 'emoji/sprinkle.gif');
	list[list.length] = new Array('snow', 'emoji/snow.gif');
	list[list.length] = new Array('thunder', 'emoji/thunder.gif');
	list[list.length] = new Array('sleepy', 'emoji/sleepy.gif');
	list[list.length] = new Array('moon3', 'emoji/moon3.gif');
	list[list.length] = new Array('restaurant', 'emoji/restaurant.gif');
	list[list.length] = new Array('cafe', 'emoji/cafe.gif');
	list[list.length] = new Array('cake', 'emoji/cake.gif');
	list[list.length] = new Array('camera', 'emoji/camera.gif');
	list[list.length] = new Array('present', 'emoji/present.gif');
	list[list.length] = new Array('sheep', 'emoji/sheep.gif');
	list[list.length] = new Array('chick', 'emoji/chick.gif');
	list[list.length] = new Array('dash', 'emoji/dash.gif');
	list[list.length] = new Array('good', 'emoji/good.gif');
	list[list.length] = new Array('note', 'emoji/note.gif');
	list[list.length] = new Array('shine', 'emoji/shine.gif');
	list[list.length] = new Array('diamond', 'emoji/diamond.gif');
	list[list.length] = new Array('heart01', 'emoji/heart01.gif');
	list[list.length] = new Array('heart02', 'emoji/heart02.gif');
	list[list.length] = new Array('heart04', 'emoji/heart04.gif');
	list[list.length] = new Array('heart', 'emoji/heart.gif');
	list[list.length] = new Array('loveletter', 'emoji/loveletter.gif');
	list[list.length] = new Array('ribbon', 'emoji/ribbon.gif');
	list[list.length] = new Array('sweat02', 'emoji/sweat02.gif');
	list[list.length] = new Array('sweat01', 'emoji/sweat01.gif');
	list[list.length] = new Array('smile', 'emoji/smile.gif');
	list[list.length] = new Array('wink', 'emoji/wink.gif');
	list[list.length] = new Array('gawk', 'emoji/gawk.gif');
	list[list.length] = new Array('weep', 'emoji/weep.gif');
	list[list.length] = new Array('lovely', 'emoji/lovely.gif');
	list[list.length] = new Array('happy01', 'emoji/happy01.gif');
	list[list.length] = new Array('wobbly', 'emoji/wobbly.gif');
	list[list.length] = new Array('shock', 'emoji/shock.gif');
	list[list.length] = new Array('pout', 'emoji/pout.gif');
	list[list.length] = new Array('think', 'emoji/think.gif');
	list[list.length] = new Array('leaf', 'emoji/leaf.gif');
	list[list.length] = new Array('cherryblossom', 'emoji/cherryblossom.gif');
	list[list.length] = new Array('tulip', 'emoji/tulip.gif');
	list[list.length] = new Array('maple', 'emoji/maple.gif');
	list[list.length] = new Array('clover', 'emoji/clover.gif');
	list[list.length] = new Array('tv', 'emoji/tv.gif');
	list[list.length] = new Array('wave', 'emoji/wave.gif');
	list[list.length] = new Array('yacht', 'emoji/yacht.gif');
	list[list.length] = new Array('train', 'emoji/train.gif');
	list[list.length] = new Array('bullettrain', 'emoji/bullettrain.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;
}
