//<![CDATA[
	

	var message_cache = new Array();
	var playlog_cache = new Array();

	var nCurrentComment = 0;
	var sMessage;
	
	function createXmlHttp()
	{
		if (typeof XMLHttpRequest == "undefined" && window.ActiveXObject) {
			var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
			"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
			"Microsoft.XMLHTTP"];
			for (var i=0; i < arrSignatures.length; i++) {
				try {
					var http = new ActiveXObject(arrSignatures[i]);
					return http;
				} catch (oError) {
				//ignore
				}
			}
			throw new Error("MSXML is not found.");
		}
		else
		{
			var http = new XMLHttpRequest();
			return http;
		}
	}
	
	function elemid(elem_id)
	{
		return document.getElementById(elem_id);
	}


	function updateAjax(url, elem_id, cache, ind)
	{
		var elem = elemid(elem_id);
		if (cache != null && cache[ind])
		{
			elem.innerHTML = cache[ind];
			return;
		}
		var http = createXmlHttp();
		http.onreadystatechange = function()
		{
			if (http.readyState != 4) {
					return;
			}
			elem.innerHTML = http.responseText;
			if (cache != null) cache[ind] = http.responseText;
			document.body.style.cursor = '';
		}
		http.open("get", url, true);
		if (elem.innerHTML== '') { elem.innerHTML = "<center> ... now loading ...</center>"; }
		document.body.style.cursor = 'progress';
		http.send(null);
	}

	function deleteScore(cmtNumber)
	{
		return confirm("本当に削除しますか。");
	}


	function restoreLink(cmtNumber) {
		var elemLink = elemid('cmt' + cmtNumber + '_link');
		elemLink.innerHTML = "<a href='javascript:void();' onclick='editComment(" + cmtNumber+ ")' style='cursor:pointer;'>修正</a>";		
	}
	function cancelComment(cmtNumber) {
		var elem = elemid('cmt' + cmtNumber);
		var elemEdit = elemid('cmt' + cmtNumber + '_edit');
		elemEdit.innerHTML = '';
		elemEdit.style.display = 'none';
		elem.style.display = 'block';
		nCurrentComment = 0;
		
		restoreLink(cmtNumber);
	}
	function saveComment(cmtNumber)
	{
		var elem = elemid('cmt' + cmtNumber);
		var elemEdit = elemid('cmt' + cmtNumber + '_edit');
		var elemInner = elemid('cmt');
		var http = createXmlHttp();
		if (sMessage == elemInner.value) {
			cancelComment(nCurrentComment);
			return;
		}
		http.onreadystatechange = function()
		{
			if (http.readyState != 4) return;
			elem.innerHTML = http.responseText;
			document.body.style.cursor = '';
		}
		url = "_score.php?num=" + cmtNumber + "&comment=" + encodeURIComponent(elemInner.value);
		http.open("get", url, true);
		document.body.style.cursor = 'progress';
		elem.innerHTML = "Writing!"; 
		elem.style.display = 'block';
		elemEdit.style.display = 'none';		
		http.send(null);
		nCurrentComment = 0;
		
		restoreLink(cmtNumber);
	}

	
	function editComment(cmtNumber) {
		var elem = elemid('cmt' + cmtNumber);
		var elemEdit = elemid('cmt' + cmtNumber + '_edit');
		var elemLink = elemid('cmt' + cmtNumber + '_link');
		if (nCurrentComment == cmtNumber) return true;
		if (nCurrentComment != 0) cancelComment(nCurrentComment);
		nCurrentComment = cmtNumber;
		sMessage = elem.innerHTML.substr(2);
		elemEdit.innerHTML = '<input maxlength=50 size=80 type="text" id="cmt" name="cmt" value="' + sMessage + '">';
		elemEdit.style.display = 'block';
		elemLink.innerHTML = ' <a href="javascript:void();" onclick="saveComment(' + cmtNumber + ');return false;">修正</a> <a href="#" onClick="cancelComment(' + cmtNumber + ');return false;">キャンセル</a> <a href="_score.php?remove=' + cmtNumber + '" onClick="return deleteScore(' + cmtNumber +');">削除</a>';
		elemLink.style.display = 'block';
		elem.style.display = 'none';
		document.board.cmt.select();
		document.board.cmt.focus();
	}
	
	
	function showMessage(elem_id, p) {
		var elem = elemid(elem_id);
		elem.style.display = 'block';
		updateAjax("./_message.php?p=" + p, elem_id, message_cache, p);
	}

	function showComment(elem_id, p) {
		var elem = elemid(elem_id);
		elem.style.display = 'block';
		updateAjax("./_message.php?&t=playlog&p=" + p, elem_id, playlog_cache, p);
	}

	function addMessage(elem_id)
	{
		var elem = elemid(elem_id);
		message_cache = new Array();
		var http = createXmlHttp();
		http.onreadystatechange = function()
		{
			document.msgboard.comment.value = '';
			if (http.readyState != 4) return;
			elem.innerHTML = http.responseText;
			message_cache[0] = http.responseText;
			document.body.style.cursor = '';
		}
		
		if(!document.msgboard.comment.value) {
			document.msgboard.comment.focus();
			return false;
		}
		url = "_message.php?comment=" + encodeURIComponent(document.msgboard.comment.value);
		http.open("get", url, true);
		document.body.style.cursor = 'progress';
		http.send(null);
	}


	function removeMessage(elem_id, num, p)
	{
		var elem = elemid(elem_id);
		message_cache = null;
		
		var http = createXmlHttp();
		http.onreadystatechange = function()
		{
			if (http.readyState != 4) return;
			elem.innerHTML = http.responseText;
			cache[p] = http.responseText;
			document.body.style.cursor = '';
		}
		
		url = "_message.php?remove=" + num + "&p=" + p;
		http.open("get", url, true);
		document.body.style.cursor = 'progress';
		http.send(null);
	}
	
	function profile(id) {
		win=open("_profile.php?v=" + id, "_p", "width=600,height=350,menubar=no,location=no,scrollbars=yes,status=no");
		win.opener.name="rb_parent";
	}	

	function similarBMS(bmsNumber, filter)
	{
		$.get("./_similarbms.php", {n:bmsNumber, f:filter},
			function(data) {
				$("#bmsInfo").hide();
				$("#similarBMS").html(data).fadeIn();
			}
		);
	}	
	
 //]]>
