//<![CDATA[
JSoul.$(function(){
    JSoul("#commbox").initComment(JSoul("#comments"));
});
/***JSoul prototype extend Method [Info Form]***/
JSoul.fn.extend({
    /**
     * 初始化留言
     * @param {JSoul} box 留言容器
     * @return JSoul
     */
    initComment: function(box){
		var main = this;
		this.extend({
			//信息显示位置
			info: this.find("dfn").extend({
				setInfo: function(txt){
					this.innerHtml(txt);
				}
			}),
			sizeBox: this.find("span").extend({
				setSize: function(){
					var size = 200 - this.getSize();
					if(size > 0){
						this.innerHtml(size);
					}else{
						this.innerHtml("0");
					}
				},
				getSize: function(){
					return main.content.val().trim().length;
				}
			}),
            act: this.find(">act").bindEvent({
				onclick: function(e){
					if(main.sizeBox.getSize() < 5){
						main.info.setInfo("留言最少需要5个字符");
					}else if(main.sizeBox.getSize() > 200){
						main.info.setInfo("留言不能超过200个字符");
					}else{
						main.act.setDisabled(true);
						main.info.setInfo("正在提交留言，请稍候...");
						main.submitContent();
					}
				}
			}),
			content: this.find(">content").bindEvent({
				onkeyup: function(e){
					main.sizeBox.setSize();
				},
				onfocus: function(e){
					main.sizeBox.setSize();
				}
			}),
			submitContent: function(){
				JSoul.$xJson(this.attr("action"), function(json){
					if (json.isSucceed) {
						main.content.val("");
						box.insertComment(json.content);
					}
					main.act.setDisabled(false);
					main.info.setInfo(json.returnInfo);
				}, this.getQuery());
			}
		});
		box.extend({
			replyClick: function(e, item){
				main.content.val("回复" + item.rev + ":");
				main.content.run("focus");
			},
			insertComment: function(txt){
				var commt = JSoul.$b("div", {className:"comment"});
				commt.innerHTML = txt;
				this.insertFirst(commt);
				this.initCommentReplyLink();
			}
		}).initCommentReplyLink();
        return this;
    },
	initCommentReplyLink: function(){
		var main = this;
		this.extend({
			replys: this.find("@a,rel,reply").bindEvent({
				onclick: function(e){
					main.replyClick(e,this);
				}
			})
		});
		return this;
	}
});
//]]>