(function() {

function reply(authorId, commentId, commentBox) {
	var author = MGJS.$(authorId).innerHTML;
	var insertStr = '<a href="#' + commentId + '">@' + author.replace(/\t|\n|\r\n/g, "") + ' </a> \n';

	appendReply(insertStr, commentBox);
}

function quote(authorId, commentId, commentBodyId, commentBox) {
	var author = MGJS.$(authorId).innerHTML;
	var comment = MGJS.$(commentBodyId).innerHTML;

	var insertStr = '<blockquote cite="#' + commentBodyId + '">';
	insertStr += '\n<strong><a href="#' + commentId + '">' + author.replace(/\t|\n|\r\n/g, "") + '</a> :</strong>';
	insertStr += comment.replace(/\t/g, "");
	insertStr += '</blockquote>\n';

	insertQuote(insertStr, commentBox);
}

function appendReply(insertStr, commentBox) {
	if(MGJS.$(commentBox) && MGJS.$(commentBox).type == 'textarea') {
		field = MGJS.$(commentBox);

	} else {
		alert("The comment box does not exist!");
		return false;
	}

	if (field.value.indexOf(insertStr) > -1) {
		alert("You've already appended this reply!");
		return false;
	}

	if (field.value.replace(/\s|\t|\n/g, "") == '') {
		field.value = insertStr;
	} else {
		field.value = field.value.replace(/[\n]*$/g, "") + '\n\n' + insertStr;
	}
	field.focus();
}

function insertQuote(insertStr, commentBox) {
	if(MGJS.$(commentBox) && MGJS.$(commentBox).type == 'textarea') {
		field = MGJS.$(commentBox);

	} else {
		alert("The comment box does not exist!");
		return false;
	}

	if(document.selection) {
		field.focus();
		sel = document.selection.createRange();
		sel.text = insertStr;
		field.focus();

	} else if (field.selectionStart || field.selectionStart == '0') {
		var startPos = field.selectionStart;
		var endPos = field.selectionEnd;
		var cursorPos = startPos;
		field.value = field.value.substring(0, startPos)
					+ insertStr
					+ field.value.substring(endPos, field.value.length);
		cursorPos += insertStr.length;
		field.focus();
		field.selectionStart = cursorPos;
		field.selectionEnd = cursorPos;

	} else {
		field.value += insertStr;
		field.focus();
	}
}

window['MGJS_CMT'] = {};
window['MGJS_CMT']['reply'] = reply;
window['MGJS_CMT']['quote'] = quote;

})();

$(document).ready(function() {   //开始
if($('input#author[value]').length>0){   //判断用户框是否有值
$("#author_info").css('display','none');   //将id为author_info的对象的display属性设为none，即隐藏
var change='<span  id="show_author_info" style="cursor: pointer; color:#2970A6;">更改 &raquo;</span>';  //定义change，style是定义CSS样式，让他有超链接的效果，color要根据你自己的来改，当然你也可以在CSS中定义#show_author_info来实现，这样是为了不用再去修改style.css而已！
var close='<span  id="hide_author_info" style="cursor: pointer;color: #2970A6;">关闭 &raquo;</span>';   //定义close
$('#welcome').append(change);   //在ID为welcome的对象里添加刚刚定义的change
$('#welcome').append(close);    // 添加close
$('#hide_author_info').css('display','none');   //隐藏close
$('#show_author_info').click(function() {   //鼠标点击change时发生的事件
$('#author_info').slideDown(300)   //用户输入框向下滑出
$('#show_author_info').css('display','none');   //隐藏change
$('#hide_author_info').css('display','inline');  //显示close
$('#hide_author_info').click(function() {  // 鼠标点击close时发生的事件
$('#author_info').slideUp(300)    //用户输入框向上滑
$('#hide_author_info').css('display','none');  //隐藏close
$('#show_author_info').css('display','inline'); })})}})  //显示change