/******************************************************************************
  so-net blog用コメント絵文字機能追加スクリプト　Ver.1.2

  revision: 1.0 create
            1.1 for safari2.0.3 and secret images
            1.2 not change images in case of big size

  http://youmode.blog.so-net.ne.jp/

  画像入手先 http://pepper.oops.jp/
******************************************************************************/

imgList = new Array();

function setImgList() {
	imgList[imgList.length] = new Array("ふつう","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_00a.gif");
	imgList[imgList.length] = new Array("にこっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_01a.gif");
	imgList[imgList.length] = new Array("わはっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_02a.gif");
	imgList[imgList.length] = new Array("うーむ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_03a.gif");
	imgList[imgList.length] = new Array("ふむっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_04a.gif");
	imgList[imgList.length] = new Array("じーっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_05a.gif");
	imgList[imgList.length] = new Array("わーん","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_06a.gif");
	imgList[imgList.length] = new Array("べーっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_07a.gif");
	imgList[imgList.length] = new Array("わおっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_08a.gif");
	imgList[imgList.length] = new Array("むむっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_09a.gif");
	imgList[imgList.length] = new Array("さーっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_10a.gif");
	imgList[imgList.length] = new Array("らぶっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_11a.gif");
	imgList[imgList.length] = new Array("くんっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_12a.gif");
	imgList[imgList.length] = new Array("あわわ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_13a.gif");
	imgList[imgList.length] = new Array("ふんっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_14a.gif");
	imgList[imgList.length] = new Array("いいえ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_15a.gif");
	imgList[imgList.length] = new Array("きょと","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_16a.gif");
	imgList[imgList.length] = new Array("ぴーっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_17a.gif");
	imgList[imgList.length] = new Array("はぁっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_18a.gif");
	imgList[imgList.length] = new Array("ＺＺＺ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_19a.gif");

	imgList[imgList.length] = new Array("・・・","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_00.gif");
	imgList[imgList.length] = new Array("はぁと","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_01.gif");
	imgList[imgList.length] = new Array("あせっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_02.gif");
	imgList[imgList.length] = new Array("がーん","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_03.gif");
	imgList[imgList.length] = new Array("いかり","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_04.gif");
	imgList[imgList.length] = new Array("おんぷ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_05.gif");
	imgList[imgList.length] = new Array("はてな","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_06.gif");
	imgList[imgList.length] = new Array("えーっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_07.gif");
	imgList[imgList.length] = new Array("たらー","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_08.gif");
	imgList[imgList.length] = new Array("ぴかっ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_09.gif");
	imgList[imgList.length] = new Array("しゅん","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_10.gif");
	imgList[imgList.length] = new Array("はーと","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_11.gif");
	imgList[imgList.length] = new Array("どくろ","http://www008.upp.so-net.ne.jp/youmode/images/baloon/pp_12.gif");

	imgList[imgList.length] = new Array("くもり","http://www008.upp.so-net.ne.jp/youmode/images/pp/w/pp_cloudy.gif");
	imgList[imgList.length] = new Array("あめ１","http://www008.upp.so-net.ne.jp/youmode/images/pp/w/pp_flurries.gif");
	imgList[imgList.length] = new Array("ゆき１","http://www008.upp.so-net.ne.jp/youmode/images/pp/w/pp_ice.gif");
	imgList[imgList.length] = new Array("はれ１","http://www008.upp.so-net.ne.jp/youmode/images/pp/w/pp_ptcloudy.gif");
	imgList[imgList.length] = new Array("あめ２","http://www008.upp.so-net.ne.jp/youmode/images/pp/w/pp_rain.gif");
	imgList[imgList.length] = new Array("あめ３","http://www008.upp.so-net.ne.jp/youmode/images/pp/w/pp_showers.gif");
	imgList[imgList.length] = new Array("ゆき２","http://www008.upp.so-net.ne.jp/youmode/images/pp/w/pp_snow.gif");
	imgList[imgList.length] = new Array("はれ２","http://www008.upp.so-net.ne.jp/youmode/images/pp/w/pp_sunny.gif");

	// 40
	imgList[imgList.length] = new Array("にゃん","http://www008.upp.so-net.ne.jp/youmode/images/pp/pp_op_bcat_a.gif");
	imgList[imgList.length] = new Array("へろー","http://www008.upp.so-net.ne.jp/youmode/images/pp/pp_op_bcat_b.gif");
	imgList[imgList.length] = new Array("うぇる","http://www008.upp.so-net.ne.jp/youmode/images/pp/pp_op_bcat_c.gif");
	imgList[imgList.length] = new Array("にゃー","http://www008.upp.so-net.ne.jp/youmode/images/pp/pp_op_bcat_d.gif");
}

setImgList();

img = new Array();

for (i=0; i < imgList.length; i++) {
	img[i] = new Image();
	img[i].src = imgList[i][1];
}

/* コメントエリアに絵文字アイコンを挿入 */
function cmtEdit() {
	var limit = 40;
	//var imgText = "<dd>";
	var imgText = "";
	for (i=0; i < imgList.length; i++) {
		imgText += "<a href='javascript:;' onClick='addImageTag("+i+");'><img border='0' src='"+imgList[i][1]+"' name='img"+i+"' alt=\""+imgList[i][0]+"\" /></a>";
		//imgText += "<a href='javascript:;' onClick='addImageTag("+i+");'><img border='0' name='img"+i+"' alt=\""+imgList[i][0]+"\" /></a>";
		if (i==15 || i==32) imgText += "<br>";
		if (i==limit) break;
	}
	//imgText += "</dd>";
	obj = document.getElementById("comment-write").innerHTML;
	//document.getElementById("comment-write").innerHTML = obj.replace(/(<.*コメント：)/i,"<td><a class=\"site_title\" href=\"http://youmode.blog.so-net.ne.jp/2006-06-03\" target=\"_blank\"><img border=\"0\" src=\"http://www008.upp.so-net.ne.jp/youmode/images/click.gif\" alt=\"by youmode\" /></a></td><td>"+imgText+"</td>\r\n\t\t</tr><tr>\r\n\t\t\t\t$1");
	if (obj.match(/(<dt.*コメント：)/i)) {
		document.getElementById("comment-write").innerHTML = obj.replace(/(<dt.*コメント：)/i,"<dt><a class=\"site_title\" href=\"http://youmode.blog.so-net.ne.jp/2006-06-03\" target=\"_blank\"><img border=\"0\" src=\"http://www008.upp.so-net.ne.jp/youmode/images/click.gif\" alt=\"by youmode\" /></a></dt><dd>"+imgText+"</dd>\r\n\t\t\t\t$1");
	} else {
		document.getElementById("comment-write").innerHTML = obj.replace(/(<td.*コメント：)/i,"<td><a class=\"site_title\" href=\"http://youmode.blog.so-net.ne.jp/2006-06-03\" target=\"_blank\"><img border=\"0\" src=\"http://www008.upp.so-net.ne.jp/youmode/images/click.gif\" alt=\"by youmode\" /></a></td><td>"+imgText+"</td>\r\n\t\t\t\t\t\</tr>\r\n\t\t\t\t\t\t\t$1");
	}

	for (i=0; i < limit+1; i++) {
		setImage("img"+i, img[i].src);
	}
}

/* コメントを絵文字に変換 */
function cmtChange() {
	c_obj = document.getElementById("comments").innerHTML;
	for (i=0; i < imgList.length; i++) {
		rep = '\\['+imgList[i][0]+'\\]';
		re = new RegExp(rep, "g");
		document.getElementById("comments").innerHTML = c_obj.replace(re, "<img style='vertical-align:middle;float:none;margin:0 0' src='"+imgList[i][1]+"' />");
		c_obj = document.getElementById("comments").innerHTML;
	}
}

/* 絵文字をセット */
function setImage(name, src) {
	if (document.images) {
		//document.images[name].src = src;
	}
}

/* テキストエリアにタグを挿入 */
function addImageTag(no) {
	var f = document.forms[1].article_child__body;
	var tag = "["+imgList[no][0]+"]";
	if (document.selection) {
		f.focus();
		var sel = document.selection.createRange();
		sel.text = tag;
	} else if (f.selectionStart || f.selectionStart == '0') {
		var startPos = f.selectionStart;
		var endPos = f.selectionEnd;
		f.value = f.value.substring(0, startPos) + tag + f.value.substring(endPos);
	} else {
		f.value += tag;
	}
}

/* onload */
function onloadH(e) {
	var blogElements = document.getElementsByTagName("div");
	for (i = 0; i < blogElements.length; i++) {
		if (blogElements[i].id == "comment-write") {
			cmtEdit();
			//コメント量が多ければ変換しない
			var cid = "comments";
			c_obj = document.getElementById(cid).innerHTML;
			//alert(c_obj.length);
			if (c_obj.length > 7620) {
				rep = '(<H4.*/H4>)';
				re = new RegExp(rep, "i");
				document.getElementById(cid).innerHTML = c_obj.replace(re, "$1<input type=\"button\" value=\"絵文字変換\" onClick=\"cmtChange('comments')\">（※PCスペックが低いと時間がかかる場合があります。）");
			} else {
				cmtChange("comments");
			}
			break;
		}
	}
	return true;
}

window.onload = onloadH;

