	var selectedData = {
		'user_id':'',
		'emoji_id':''
	};

	function closeQR() {
		getQRObject().style.display = 'none';
		clearTimeout(commentTimer);
	}

	function closeComment() {
		getCommentObject().style.display = 'none';
	}

	function getQRObject() {
		return document.getElementById('QR');
	}

	function getCommentObject() {
		return document.getElementById('COMMENT_END');
	}

	function getQR(e, emoji_id, name, category_name, user_id, datetime, sugee, yabai) {
		clearTimeout(commentTimer);
		selectedData['user_id'] = user_id;
		selectedData['emoji_id'] = emoji_id;

		var p = getMousePosition(e);
		var obj = getQRObject();
		var obj_img = document.getElementById('QR_IMG');
		obj_img.src='/qr/' + emoji_id;
		obj.style.display = 'block';

		if (p.x > 600) {
			p.x -= 500;
		}

		obj.style.left = (p.x + 50) + 'px';
		obj.style.top  = (p.y - 150) + 'px';

		document.getElementById('EMOJI_USER').innerHTML = (name) ? '<a href="/list_user/' + user_id + '/">' + name + '</a>' : '名無しさん';
		document.getElementById('EMOJI_CATEGORY').innerHTML = category_name;
		document.getElementById('EMOJI_DATETIME').innerHTML = datetime;
		document.getElementById('EMOJI_SUGEE').innerHTML = sugee;
		document.getElementById('EMOJI_YABAI').innerHTML = yabai;
		getCommentInner();
	}

	function getCommentInner() {
		Ninja_ajax.setURL("/ajax_comment/");
		Ninja_ajax.setRequest('emoji_id', selectedData['emoji_id']);
		Ninja_ajax.send();
	}

	function resultCommentInner(c) {
		var txt = '';
		var name = '';
		var html = '';
		for (var k in c.data) {
			name = (!c.data[k].user_id) ? '<span class="gr">名無し様</span>' : '<a href="/list_user/' + c.data[k].user_id + '/">' + c.data[k].name.replace(/</, '&lt;') + '</a>';
			txt = c.data[k].comment_txt.replace(/</, '&lt;');
			html = html + '<div class="emoji_comment">' + name + ' &gt; ' + txt + '&nbsp;&nbsp;<span class="gr">(' + c.data[k].t + ')</span></div>';
		}
		document.getElementById('COMMENT_INNER').style.marginTop = '30px';
		document.getElementById('COMMENT_INNER').innerHTML = html;
		commentTimer = 1;
		moveCommentInner();
	}

	var commentTimer = 0;

	function moveCommentInner() {
		var obj = document.getElementById('COMMENT_INNER');

		var h = getHeight(obj);

		var t   = obj.style.marginTop;
		t = (!t) ? 0 : parseFloat(t);
		t = t - 1;
		if (t < h * -1) {
			t = 30;
		}
		obj.style.marginTop = t + 'px';
		if (commentTimer) {
			commentTimer = setTimeout(moveCommentInner, 80);
		}
	}

	function getHeight(obj) {
		return obj.clientHeight||obj.offsetHeight;
	}

	function getComment() {
		var obj = getCommentObject();
		obj.style.display = 'block';

		obj.style.left = getQRObject().style.left;
		obj.style.top  = getQRObject().style.top;
	}

	function setYabai() {
		sendVote('yabai');
	}

	function setSugee() {
		sendVote('sugee');
	}

	function getMousePosition(e) { 
		var obj = {};
		if(window.event) { 
			obj.x = window.event.x + document.body.scrollLeft; 
			obj.y = window.event.y + document.body.scrollTop; 
		} else { 
			obj.x = e.pageX;
			obj.y = e.pageY;
		}
		return obj;
	}

	function getRClick() {
		var obj = document.getElementById('emoji_area');
		if (document.selection) {//IE,Opera,Sleipnir
			var rangeText = (document.selection.createRange()) ? document.selection.createRange() : insertText;
		} else if (window.getSelection()) {//NC,FireFox
			var sel = window.getSelection();
			var range = sel.getRangeAt(0);
			for (var i = range.startOffset; i < range.endOffset;i++) {
				var e = obj.childNodes[i];
				if (e.nodeName.match(/img/i)) {
					alert(e.src);
				}
			}
		}
	}

	function makeChangeText(frontTag,endTag,rangeText) {
		if (endTag) {
			return frontTag + rangeText + endTag;
		} else {
			return (rangeText) ? frontTag + rangeText : frontTag;
		}
	}
	document.getElementById('emoji_area').oncontextmenu  = function() {
		getRClick();
	}

	function resultFunc(c) {
		if (c.error) {
			alert(c.error);
			return;
		}
		getComment();
	}


	function resultComment(c) {
		if (c.error) {
			alert(c.error);
			return;
		}
		closeComment();
		document.getElementById('COMMENT_TXT').value = '';
		document.getElementById('vote_result').innerHTML = 'コメントしたよ！';
		setTimeout(deleteVoteResult, 1000);
	}

	function deleteVoteResult() {
		document.getElementById('vote_result').innerHTML = '';
	}

	function sendVote(method) {
		Ninja_ajax.setURL("/vote_" + method + "/");
		Ninja_ajax.setRequest('emoji_id', selectedData['emoji_id']);
		Ninja_ajax.send();
	}

	function sendComment() {
		var cm = document.getElementById('COMMENT_TXT').value;
		Ninja_ajax.setURL("/vote_comment/");
		Ninja_ajax.setRequest('emoji_id', selectedData['emoji_id']);
		Ninja_ajax.setRequest('comment', cm);
		Ninja_ajax.send();
	}

	function setEvent(obj, evname, func) {
		if (document.all) {
			obj.attachEvent('on' + evname, func);
		} else {
			obj.addEventListener(evname, func, false);
		}
	}

	function keyCheck(code) {
		if (code == 13) {
			sendComment();
		}
	}

	var dd = new YAHOO.util.DD("QR");
	var dd2 = new YAHOO.util.DD("COMMENT_END");