var FollowNote={presets:{mainNoteID:0,noteType:0,mainNoteUserID:0,isLogin:false,url:"/follownote.v",blackUrl:"/blacklist.v",noteTitle:"noteTitle",noteBody:"followNote",textarea:"noteAddText",emotion:"noteAddEmo",submitEle:"noteAddSubmit",noteError:"noteAdderror",onAdd:$empty},initialize:function(A){this.options={};this.setOptions(this.presets,A||{});this.title=$(this.options.noteTitle);this.body=$(this.options.noteBody);this.textarea=$(this.options.textarea);this.emo=$(this.options.emotion);this.sub=$(this.options.submitEle);this.error=$(this.options.noteError);this.prompt=new Prompt();this.build()},build:function(){if(this.sub||this.options.isLogin){this.sub.addEvent("click",function(){this.add()}.bind(this));this.setEmotion()}return this},valid:function(A){if($(A).get("value").length<1||$(A).get("value").length>500){return false}return true},getEditCont:function(C,B){var A="do=get&follownoteid="+B;new AjaxReq({url:this.options.url,method:"post",data:A,onRequest:function(){C.getElement("textarea").set("value","正在加载数据...")},onSuccess:function(D){if(D&&D.code==200){C.getElement("textarea").set("value",D.msg.noteBody||"")}else{C.getElement(".noteError").setStyle("display","inline").set("html",D.msg.toString()||"操作失败，请重试")}}.bind(this),onError:function(){C.getElement(".noteError").setStyle("display","inline").set("html","操作失败，请重试")}}).send()},setEditEle:function(B,C,A){if(A){new Element("div").addClass("contList-edit").set("html",'<textarea style="width:500px" rows="8" cols="80"></textarea><p><input type="button" onclick="FollowNote.edit('+C+')" value="发表" /><input type="button" onclick=FollowNote.fn('+C+',"cancelEdit") value="取消" /><span class="noteError">回应内容应大于0小于500个字符!</span></p>').inject(B.getElement("dd"))}else{B.getElement(".contList-edit").dispose()}},fn:function(C,B){var A=$("FollowNote_"+C);if(!A){return }switch(B){case"edit":A.getElements(".contList-fn,.contList-con").setStyle("display","none");this.setEditEle(A,C,1);this.getEditCont(A,C);break;case"cancelEdit":A.getElements(".contList-fn,.contList-con").setStyle("display","block");this.setEditEle(A,C,0);break;case"del":A.getElement(".confirm").setStyle("display","block");break;case"cancelDel":A.getElement(".confirm").setStyle("display","none")}},add:function(){var A=this.valid(this.textarea);if(!A){this.error.setStyle("display","inline");return false}else{this.error.setStyle("display","none");if(this.$events.add!=null){this.fireEvent("onAdd",[this.addBlock,this])}else{this.addBlock()}}},addBlock:function(){var A="do=isblock&follownoteid=000&mainnoteid="+this.options.mainNoteID+"&mainnoteuserid="+this.options.mainNoteUserID;new AjaxReq({url:this.options.url,method:"post",data:A,onSuccess:function(B){if(B&&B.code==200){if(B.msg.isBlock==true){this.error.setStyle("display","inline").set("html",B.msg.oName+"已将你加入黑名单，不接受你的回应")}else{this.addData()}}else{this.error.setStyle("display","inline").set("html",B.msg.toString())}}.bind(this),onError:function(){this.error.setStyle("display","inline").set("html","操作失败")}.bind(this)}).send()},addData:function(){var A="do=add&follownoteid=000&mainnoteid="+this.options.mainNoteID+"&notetype="+this.options.noteType+"&notebody="+this.textarea.value.cnEncode();new AjaxReq({url:this.options.url,method:"post",data:A,onSuccess:function(B){if(B&&B.code==200){this.body.appendHTML(B.msg.noteBody);this.textarea.set("value","");this.setCount(1)}else{this.error.setStyle("display","inline").set("html",B.msg.toString())}}.bind(this),onError:function(){this.error.setStyle("display","inline").set("html","操作失败")}.bind(this)}).send()},edit:function(E){var C=$("FollowNote_"+E);var B=C.getElement("textarea");var D=this.valid(B);if(!D){C.getElement(".noteError").setStyle("display","inline");return false}else{C.getElement(".noteError").setStyle("display","none");var A="do=update&follownoteid="+E+"&notebody="+B.value.cnEncode();new AjaxReq({url:this.options.url,method:"post",data:A,onRequest:function(){C.getElement(".contList-edit").set("html",'<span class="loading">正在提交，请稍候.....</span>')}.bind(this),onSuccess:function(F){if(F&&F.code==200){C.getElement(".contList-con").set("html",F.msg.noteBody);C.getElement(".date").set("html",F.msg.dateAction);this.fn(E,"cancelEdit")}else{C.getElement(".noteError").setStyle("display","inline").set("html",F.msg.toString()||"操作失败，请重试")}}.bind(this),onError:function(){C.getElement(".noteError").setStyle("display","inline").set("html","操作失败，请重试")}}).send()}},del:function(C){var B=$("FollowNote_"+C);var A="do=delete&follownoteid="+C;new AjaxReq({url:this.options.url,method:"post",data:A,onRequest:function(){B.getElement(".contList-con").set("html",'<span class="loading">正在删除，请稍候.....</span>')}.bind(this),onSuccess:function(D){if(D&&D.code==200){B.dispose();this.setCount(0)}else{B.getElement(".contList-con").set("html",'<span class="loading">删除失败，请重试</span>')}}.bind(this),onError:function(){B.getElement(".contList-con").set("html",'<span class="loading">删除失败，请重试</span>')}}).send()},isBlock:function(C,B){var A=null;if(C!=null&&B!=null){A="do=follownoteblock&blockUserID="+C+"&blockUserNickName="+B;new AjaxReq({url:this.options.blackUrl,method:"post",data:A,onSuccess:function(D){if(D&&D.code==200){if(D.msg.isBlock){this.prompt.confirm(["删除黑名单",B+"已在您的黑名单中，是否解除？"],{onReturn:function(E){if(E){this.block("remove",C)}}.bind(this)})}else{if(!D.msg.isFriend){this.prompt.confirm(["加入黑名单","真的要将"+B+"踢到黑名单里吗？"],{onReturn:function(E){if(E){this.block("add",C)}}.bind(this)})}else{this.prompt.confirm(["加入黑名单",'<p style="width:200px; padding:5px; margin:0 auto; border:1px solid #999"><input type="checkbox" name="cbIsfriend" id="cbIsfriend" />同时将此人从我的好友中删除</p><p style="margin-top:15px; font-weight:bold">真的要将'+B+"踢到黑名单里吗？<p>"],{onReturn:function(E){if(E){this.block("add",C)}}.bind(this)})}}}else{this.prompt.confirm("操作失败，请重试")}}.bind(this),onError:function(){this.prompt.confirm("操作失败，请重试")}.bind(this)}).send()}},block:function(D,E){var C=$("cbIsfriend");var B="false";if(C){if(C.checked){B="true"}}var A=null;if(D!=null&&E!=null){A="do="+D+"&userid="+E+"&isdelfriend="+B;new AjaxReq({url:this.options.blackUrl,method:"post",data:A,onRequest:function(){Mbox.openLite('<p class="Doing">正在操作，请稍候...</p>',180,30)},onSuccess:function(G){if(G.code==200&&G.msg){var F=(D=="add")?"添加":"解除";Mbox.openLite('<p class="Doing">'+F+"黑名单成功</p>",180,30);setTimeout(function(){Mbox.close()},1000)}else{Mbox.openLite('<p class="Doing">操作失败，请重试</p>',180,30);setTimeout(function(){Mbox.close()},1000)}}.bind(this),onError:function(){Mbox.openLite('<p class="Doing">操作失败，请重试</p>',180,30);setTimeout(function(){Mbox.close()},1000)}}).send()}},setCount:function(A){var B=this.body.getElements(".contList").length||0;if(B==1&&A){this.title.set("html",'现有<span id="follownotecount">1</span>份回应')}else{if($type(A)=="number"){B=this.title.getElement("#follownotecount").get("text").toInt();this.title.set("html",'现有<span id="follownotecount">'+(A?B+1:B-1)+"</span>份回应")}}},setEmotion:function(){$(this.options.emotion).getElements("p").addEvents({mouseover:function(){$(this).get("tween",{property:"fontSize",duration:120}).cancel().start("18px")},mouseout:function(){$(this).get("tween",{property:"fontSize",duration:100}).cancel().start("13px")},click:function(A){this.textarea.set("value",this.textarea.get("value")+$(A.target).get("text"))}.bind(this)});return this},extend:function(A){return $extend(this,A)}};FollowNote.extend(new Events).extend(new Options);