//----------------------------------------------------------------------------------
//
// コメントにカスタマイズ絵文字入力機能 at livedoor Blog
//
// ■このスクリプトについて
// 　stroll:blogさんでご紹介されているスクリプトをlivedoor Blog用に最適化したものです。
// 　勝手にひとまとめにさせて頂いたものですので権利など諸々はstrollさんに帰属します。
//
// スクリプトの配布に際し、快く承諾して頂いたstrollさんには心から感謝感謝です！
// stroll:blog - http://melrose.jugem.cc/
//
//----------------------------------------------------------------------------------


//--------画像設定スクリプトココから
function getCommentEmojiList() {
	var list = new Array();
	// 画像名、画像URLの設定
	list[list.length] = new Array('にこっ', 'http://blog.kazu59.jp/ico/face_c01.');
	list[list.length] = new Array('にぱっ', 'http://blog.kazu59.jp/ico/face_c02.');
	list[list.length] = new Array('にかっ', 'http://blog.kazu59.jp/ico/face_c03.');
	list[list.length] = new Array('ぎょ', 'http://blog.kazu59.jp/ico/face_c04.');
	list[list.length] = new Array('がーん', 'http://blog.kazu59.jp/ico/face_c05.');
	list[list.length] = new Array('あうっ', 'http://blog.kazu59.jp/ico/face_c06.');
	list[list.length] = new Array('きゅー', 'http://blog.kazu59.jp/ico/face_c07.');
	list[list.length] = new Array('しくしく', 'http://blog.kazu59.jp/ico/face_c08.');
	list[list.length] = new Array('はうー', 'http://blog.kazu59.jp/ico/face_c09.');
	list[list.length] = new Array('ぎょーん', 'http://blog.kazu59.jp/ico/face_c10.');
	list[list.length] = new Array('ぽわわ', 'http://blog.kazu59.jp/ico/face_c11.');
	list[list.length] = new Array('ぽっ', 'http://blog.kazu59.jp/ico/face_c12.');
	list[list.length] = new Array('てへっ', 'http://blog.kazu59.jp/ico/face_c13.');
	list[list.length] = new Array('しょぼん', 'http://blog.kazu59.jp/ico/face_c14.');
	list[list.length] = new Array('ぷん', 'http://blog.kazu59.jp/ico/face_c15.');
	list[list.length] = new Array('ぷんすか', 'http://blog.kazu59.jp/ico/face_c16.');
	list[list.length] = new Array('にひひ', 'http://blog.kazu59.jp/ico/face_c17.');
	list[list.length] = new Array('むむっ', 'http://blog.kazu59.jp/ico/face_c18.');
	list[list.length] = new Array('ニヒル', 'http://blog.kazu59.jp/ico/face_c19.');
	list[list.length] = new Array('女性', 'http://blog.kazu59.jp/ico/face_c20.');
	list[list.length] = new Array('パー', 'http://blog.kazu59.jp/ico/hand_11.');
	list[list.length] = new Array('グー', 'http://blog.kazu59.jp/ico/hand_13.');
	list[list.length] = new Array('チョキ', 'http://blog.kazu59.jp/ico/hand_15.');
	list[list.length] = new Array('オッケー', 'http://blog.kazu59.jp/ico/hand_09.');
	list[list.length] = new Array('パンチ', 'http://blog.kazu59.jp/ico/hand_12.');
	list[list.length] = new Array('love', 'http://blog.kazu59.jp/ico/mark_01.');
	list[list.length] = new Array('ハート', 'http://blog.kazu59.jp/ico/mark_05.');
	list[list.length] = new Array('ダイヤ', 'http://blog.kazu59.jp/ico/mark_06.');
	list[list.length] = new Array('スペード', 'http://blog.kazu59.jp/ico/mark_07.');
	list[list.length] = new Array('クラブ', 'http://blog.kazu59.jp/ico/mark_08.');
	list[list.length] = new Array('！', 'http://blog.kazu59.jp/ico/mark_09.');
	list[list.length] = new Array('初心者', 'http://blog.kazu59.jp/ico/mark_10.');
	list[list.length] = new Array('メモ', 'http://blog.kazu59.jp/ico/mark_11.');
	list[list.length] = new Array('汗2', 'http://blog.kazu59.jp/ico/mark_13.');
	list[list.length] = new Array('Zzz', 'http://blog.kazu59.jp/ico/mark_14.');
	list[list.length] = new Array('ダッシュ', 'http://blog.kazu59.jp/ico/mark_16.');
	list[list.length] = new Array('右', 'http://blog.kazu59.jp/ico/mark_32.');
	list[list.length] = new Array('上', 'http://blog.kazu59.jp/ico/mark_33.');
	list[list.length] = new Array('左', 'http://blog.kazu59.jp/ico/mark_34.');
	list[list.length] = new Array('下', 'http://blog.kazu59.jp/ico/mark_35.');
	list[list.length] = new Array('音符', 'http://blog.kazu59.jp/ico/mark_37.');
	list[list.length] = new Array('太陽', 'http://blog.kazu59.jp/ico/weather_01.');
	list[list.length] = new Array('雲', 'http://blog.kazu59.jp/ico/weather_02.');
	list[list.length] = new Array('曇り', 'http://blog.kazu59.jp/ico/weather_03.');
	list[list.length] = new Array('晴れのち曇り', 'http://blog.kazu59.jp/ico/weather_04.');
	list[list.length] = new Array('曇りのち雨', 'http://blog.kazu59.jp/ico/weather_06.');
	list[list.length] = new Array('雨', 'http://blog.kazu59.jp/ico/weather_07.');
	list[list.length] = new Array('雷', 'http://blog.kazu59.jp/ico/weather_09.');
	list[list.length] = new Array('雪', 'http://blog.kazu59.jp/ico/weather_10.');
	list[list.length] = new Array('月', 'http://blog.kazu59.jp/ico/weather_11.');
	list[list.length] = new Array('星', 'http://blog.kazu59.jp/ico/weather_12.');
	list[list.length] = new Array('ねこ', 'http://blog.kazu59.jp/ico/animal_01.');
	list[list.length] = new Array('いぬ', 'http://blog.kazu59.jp/ico/animal_02.');
	list[list.length] = new Array('にわとり', 'http://blog.kazu59.jp/ico/animal_04.');
	list[list.length] = new Array('ひよこ', 'http://blog.kazu59.jp/ico/animal_06.');
	list[list.length] = new Array('パンダ', 'http://blog.kazu59.jp/ico/animal_07.');
	list[list.length] = new Array('ねずみ', 'http://blog.kazu59.jp/ico/animal_08.');
	list[list.length] = new Array('きつね', 'http://blog.kazu59.jp/ico/animal_09.');
	list[list.length] = new Array('うし', 'http://blog.kazu59.jp/ico/animal_11.');
	list[list.length] = new Array('ぶた', 'http://blog.kazu59.jp/ico/animal_12.');
	list[list.length] = new Array('うさぎ', 'http://blog.kazu59.jp/ico/animal_13.');
	list[list.length] = new Array('家', 'http://blog.kazu59.jp/ico/build_01.');
	list[list.length] = new Array('病院', 'http://blog.kazu59.jp/ico/build_03.');
	list[list.length] = new Array('工場', 'http://blog.kazu59.jp/ico/build_05.');
	list[list.length] = new Array('ビル', 'http://blog.kazu59.jp/ico/build_06.');
	list[list.length] = new Array('郵便局', 'http://blog.kazu59.jp/ico/build_07.');
	list[list.length] = new Array('車', 'http://blog.kazu59.jp/ico/vehicle_01.');
	list[list.length] = new Array('バス', 'http://blog.kazu59.jp/ico/vehicle_05.');
	list[list.length] = new Array('電車', 'http://blog.kazu59.jp/ico/vehicle_06.');
	list[list.length] = new Array('新幹線', 'http://blog.kazu59.jp/ico/vehicle_07.');
	list[list.length] = new Array('バイク', 'http://blog.kazu59.jp/ico/vehicle_08.');
	list[list.length] = new Array('花', 'http://blog.kazu59.jp/ico/flour_02.');
	list[list.length] = new Array('チューリップ', 'http://blog.kazu59.jp/ico/flour_04.');
	list[list.length] = new Array('四葉', 'http://blog.kazu59.jp/ico/flour_08.');
	list[list.length] = new Array('ビール', 'http://blog.kazu59.jp/ico/drink_01.');
	list[list.length] = new Array('お酒', 'http://blog.kazu59.jp/ico/drink_03.');
	list[list.length] = new Array('お茶', 'http://blog.kazu59.jp/ico/drink_04.');
	list[list.length] = new Array('コーヒー', 'http://blog.kazu59.jp/ico/drink_05.');
	list[list.length] = new Array('ジュース', 'http://blog.kazu59.jp/ico/drink_07.');
	list[list.length] = new Array('ワイン', 'http://blog.kazu59.jp/ico/drink_08.');
	list[list.length] = new Array('カクテル', 'http://blog.kazu59.jp/ico/drink_09.');
	list[list.length] = new Array('おにぎり', 'http://blog.kazu59.jp/ico/food_02.');
	list[list.length] = new Array('ハンバーガー', 'http://blog.kazu59.jp/ico/food_03.');
	list[list.length] = new Array('肉', 'http://blog.kazu59.jp/ico/food_06.');
	list[list.length] = new Array('りんご', 'http://blog.kazu59.jp/ico/food_09.');
	list[list.length] = new Array('プリン', 'http://blog.kazu59.jp/ico/food_23.');
	list[list.length] = new Array('ケーキ', 'http://blog.kazu59.jp/ico/food_26.');
	list[list.length] = new Array('パン', 'http://blog.kazu59.jp/ico/food_29.');
	list[list.length] = new Array('カレー', 'http://blog.kazu59.jp/ico/food_30.');
	list[list.length] = new Array('ラーメン', 'http://blog.kazu59.jp/ico/food_33.');
	list[list.length] = new Array('にくきゅう', 'http://blog.kazu59.jp/ico/item_36.');
	list[list.length] = new Array('(・・・)', 'http://blog.kazu59.jp/ico/pp_00.');
	list[list.length] = new Array('(・_・ )', 'http://blog.kazu59.jp/ico/pp_00a.');
	list[list.length] = new Array('(ハート)', 'http://blog.kazu59.jp/ico/pp_01.');
	list[list.length] = new Array('(・v・ )', 'http://blog.kazu59.jp/ico/pp_01a.');
	list[list.length] = new Array('(汗)', 'http://blog.kazu59.jp/ico/pp_02.');
	list[list.length] = new Array('(・u・ )', 'http://blog.kazu59.jp/ico/pp_02a.');
	list[list.length] = new Array('(´・・`)', 'http://blog.kazu59.jp/ico/pp_03a.');
	list[list.length] = new Array('(怒)', 'http://blog.kazu59.jp/ico/pp_04.');
	list[list.length] = new Array('(-_- )', 'http://blog.kazu59.jp/ico/pp_04a.');
	list[list.length] = new Array('(♪)', 'http://blog.kazu59.jp/ico/pp_05.');
	list[list.length] = new Array('(=_= )', 'http://blog.kazu59.jp/ico/pp_05a.');
	list[list.length] = new Array('(？)', 'http://blog.kazu59.jp/ico/pp_06.');
	list[list.length] = new Array('(TдT )', 'http://blog.kazu59.jp/ico/pp_06a.');
	list[list.length] = new Array('！２', 'http://blog.kazu59.jp/ico/pp_07.');
	list[list.length] = new Array('(-∀- )', 'http://blog.kazu59.jp/ico/pp_07a.');
	list[list.length] = new Array('(・o・ )', 'http://blog.kazu59.jp/ico/pp_08a.');
	list[list.length] = new Array('(ヒラメキ)', 'http://blog.kazu59.jp/ico/pp_09.');
	list[list.length] = new Array('(｀-´)', 'http://blog.kazu59.jp/ico/pp_09a.');
	list[list.length] = new Array('(失恋)', 'http://blog.kazu59.jp/ico/pp_10.');
	list[list.length] = new Array('(´д｀)', 'http://blog.kazu59.jp/ico/pp_10a.');
	list[list.length] = new Array('(LOVE)', 'http://blog.kazu59.jp/ico/pp_11.');
	list[list.length] = new Array('(*´Д`*)', 'http://blog.kazu59.jp/ico/pp_11a.');
	list[list.length] = new Array('(ドクロ)', 'http://blog.kazu59.jp/ico/pp_12.');
	list[list.length] = new Array('(´-｀)', 'http://blog.kazu59.jp/ico/pp_12a.');
	list[list.length] = new Array('(ﾟ-ﾟ)', 'http://blog.kazu59.jp/ico/pp_13a.');
	list[list.length] = new Array('(ﾟ～ﾟ)', 'http://blog.kazu59.jp/ico/pp_14a.');
	list[list.length] = new Array('(-_-)', 'http://blog.kazu59.jp/ico/pp_15a.');
	list[list.length] = new Array('(・д・)', 'http://blog.kazu59.jp/ico/pp_16a.');
	list[list.length] = new Array('(´ε｀)', 'http://blog.kazu59.jp/ico/pp_17a.');
	list[list.length] = new Array('(´｀)', 'http://blog.kazu59.jp/ico/pp_18a.');
	list[list.length] = new Array('(´-｀)Zzz', 'http://blog.kazu59.jp/ico/pp_19a.');
	list[list.length] = new Array('黄猫', 'http://blog.kazu59.jp/ico/pp_m_bcat.');
	list[list.length] = new Array('茶猫', 'http://blog.kazu59.jp/ico/pp_m_bear.');
	list[list.length] = new Array('黄猫', 'http://blog.kazu59.jp/ico/pp_m_cat.');
	list[list.length] = new Array('黄生物', 'http://blog.kazu59.jp/ico/pp_m_chick.');
	list[list.length] = new Array('ヤギ', 'http://blog.kazu59.jp/ico/pp_m_cow.');
	list[list.length] = new Array('犬', 'http://blog.kazu59.jp/ico/pp_m_dog.');
	list[list.length] = new Array('犬2', 'http://blog.kazu59.jp/ico/pp_m_dog_a.');
	list[list.length] = new Array('蛙', 'http://blog.kazu59.jp/ico/pp_m_frog.');
	list[list.length] = new Array('白生物', 'http://blog.kazu59.jp/ico/pp_m_goma.');
	list[list.length] = new Array('ハムスター', 'http://blog.kazu59.jp/ico/pp_m_hamu.');
	list[list.length] = new Array('亀', 'http://blog.kazu59.jp/ico/pp_m_kame.');
	list[list.length] = new Array('コアラ', 'http://blog.kazu59.jp/ico/pp_m_koala.');
	list[list.length] = new Array('白小生物', 'http://blog.kazu59.jp/ico/pp_m_koke.');
	list[list.length] = new Array('ライオン', 'http://blog.kazu59.jp/ico/pp_m_lion.');
	list[list.length] = new Array('サル', 'http://blog.kazu59.jp/ico/pp_m_monkey.');
	list[list.length] = new Array('ネズミ', 'http://blog.kazu59.jp/ico/pp_m_mouse.');
	list[list.length] = new Array('白小生物2', 'http://blog.kazu59.jp/ico/pp_m_pen.');
	list[list.length] = new Array('豚', 'http://blog.kazu59.jp/ico/pp_m_pig.');
	list[list.length] = new Array('ウサギ', 'http://blog.kazu59.jp/ico/pp_m_rabit.');
	list[list.length] = new Array('羊', 'http://blog.kazu59.jp/ico/pp_m_sheep.');
	list[list.length] = new Array('リス', 'http://blog.kazu59.jp/ico/pp_m_squirrel.');
	list[list.length] = new Array('！３', 'http://blog.kazu59.jp/ico/buru084.');
	list[list.length] = new Array('？', 'http://blog.kazu59.jp/ico/buru085.');
	list[list.length] = new Array('♪', 'http://blog.kazu59.jp/ico/buru086.');
	list[list.length] = new Array('ハート2', 'http://blog.kazu59.jp/ico/buru087.');
	list[list.length] = new Array('汗', 'http://blog.kazu59.jp/ico/buru088.');
	list[list.length] = new Array('☆', 'http://blog.kazu59.jp/ico/buru089.');
	list[list.length] = new Array('怒', 'http://blog.kazu59.jp/ico/buru090.');
	list[list.length] = new Array('ー', 'http://blog.kazu59.jp/ico/buru091.');
	list[list.length] = new Array('～', 'http://blog.kazu59.jp/ico/buru081.');
	list[list.length] = new Array('～～', 'http://blog.kazu59.jp/ico/buru181.');
	list[list.length] = new Array('・・・', 'http://blog.kazu59.jp/ico/buru092.');
	list[list.length] = new Array('メール', 'http://blog.kazu59.jp/ico/buru096.');
	list[list.length] = new Array('→', 'http://blog.kazu59.jp/ico/buru202.');
	list[list.length] = new Array('←', 'http://blog.kazu59.jp/ico/buru203.');
	list[list.length] = new Array('↑', 'http://blog.kazu59.jp/ico/buru204.');
	list[list.length] = new Array('↓', 'http://blog.kazu59.jp/ico/buru205.');
	list[list.length] = new Array('黒ハート', 'http://blog.kazu59.jp/ico/buru215.');
	list[list.length] = new Array('黒！', 'http://blog.kazu59.jp/ico/buru216.');
	list[list.length] = new Array('黒？', 'http://blog.kazu59.jp/ico/buru217.');
	list[list.length] = new Array('（怒）', 'http://blog.kazu59.jp/ico/angry.');
	list[list.length] = new Array('（怒2）', 'http://blog.kazu59.jp/ico/evil.');
	list[list.length] = new Array('（困惑）', 'http://blog.kazu59.jp/ico/confused.');
	list[list.length] = new Array('（クール）', 'http://blog.kazu59.jp/ico/cool.');
	list[list.length] = new Array('（泣）', 'http://blog.kazu59.jp/ico/cry.');
	list[list.length] = new Array('（驚）', 'http://blog.kazu59.jp/ico/dizzy.');
	list[list.length] = new Array('（驚2）', 'http://blog.kazu59.jp/ico/eek.');
	list[list.length] = new Array('（笑）', 'http://blog.kazu59.jp/ico/laugh.');
	list[list.length] = new Array('（・_・）', 'http://blog.kazu59.jp/ico/normal.');
	list[list.length] = new Array('（？）', 'http://blog.kazu59.jp/ico/question.');
	list[list.length] = new Array('（赤面）', 'http://blog.kazu59.jp/ico/redface.');
	list[list.length] = new Array('（＠_＠）', 'http://blog.kazu59.jp/ico/rolleyes.');
	list[list.length] = new Array('（悲）', 'http://blog.kazu59.jp/ico/sad.');
	list[list.length] = new Array('（・v・）', 'http://blog.kazu59.jp/ico/smile.');
	list[list.length] = new Array('（驚3）', 'http://blog.kazu59.jp/ico/surprised.');
	list[list.length] = new Array('（ウィンク）', 'http://blog.kazu59.jp/ico/wink.');
	list[list.length] = new Array('-ハート2-', 'http://blog.kazu59.jp/ico/m020.');
	list[list.length] = new Array('-ハート3-', 'http://blog.kazu59.jp/ico/m021.');
	list[list.length] = new Array('-ハート4-', 'http://blog.kazu59.jp/ico/m022.');
	list[list.length] = new Array('-ハート5-', 'http://blog.kazu59.jp/ico/m023.');
	list[list.length] = new Array('-ハート6-', 'http://blog.kazu59.jp/ico/m024.');
	list[list.length] = new Array('-ハート7-', 'http://blog.kazu59.jp/ico/m025.');
	list[list.length] = new Array('-失恋-', 'http://blog.kazu59.jp/ico/m031.');
	list[list.length] = new Array('-キラリ-', 'http://blog.kazu59.jp/ico/m033.');
	list[list.length] = new Array('-キラリ2-', 'http://blog.kazu59.jp/ico/m034.');
	list[list.length] = new Array('-パソコン-', 'http://blog.kazu59.jp/ico/m045.');
	list[list.length] = new Array('-メール-', 'http://blog.kazu59.jp/ico/m046.');
	list[list.length] = new Array('-黒電話-', 'http://blog.kazu59.jp/ico/m047.');
	list[list.length] = new Array('-携帯電話-', 'http://blog.kazu59.jp/ico/m048.');
	return list;
}

function getCustmizeEmojiAttribute() {
	// 画像タグに含める属性値（alt属性以外）
	var att = 'border="0" style="vertical-align:middle;"';
	
	// ***************** 設定ここまで *****************
	att = (att != '') ? (' ' + att) : '';
	return att;
}
//--------画像設定スクリプトココまで

//--------画像リスト出力スクリプトココから
function writeCustmizeEmojiTagList() {
	// コメントを入力するテキストエリアを指定
	var textarea = 'document.comform.c_mes';

	// ***************** 設定ここまで *****************
	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] + 'png"' + 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() {
	// （１）コメント全体のタグの id 属性
	var commentAreaIdName = '';
	// （２）コメント全体のタグ名
	var commentAreaTag = 'div';
	// （３）各コメントの class 属性
	var commentBodyClassName = 'comment_body';
	
	// ***************** 設定ここまで *****************
	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] + 'gif"' + att + ' alt="' + list[i][0] + '" />');
	}
	return s;
}
//--------画像変換スクリプトココまで
