 /***************************动漫书评相关Alex/2008-10-07********************************/
var userId_g;
var value_g;
var seriesId_g;
var threadId_g;
function myEscape(content){
    content=content.replace("<", "&lt;");
    content=content.replace(">", "&gt;");
    return content;
}
function seriesThreadShowQuery() {
    this.querySeriesThread = function() {
        var map = this.parseCondition();
        if (map.containsKey("seriesId")) {
            map.put("seriesId", "");
        }
        if (map.containsKey("user")) {
            map.put("user", "");
        }
        var params = map.toUrlString();
        this.querySeriesThreadByParams(params);
    };
    this.querySeriesThreadByParams = function(params) {
        this.query(this.queryUrl, params);
    };
    this.query = function(url, params) {
        var addressUrl = new URLUtils(url, params);
        var longParamUrl = addressUrl.getLongParamUrl();
        $("#seriesThread_content").
        html("<p><center>"+
        "<img src='http://static.zongheng.com/www/images/loading_img.gif' border='0' />"+
        "数据载入中...</center></p>");
        $.getJSON(longParamUrl,
            function(jsonObj) {
            var handleThread = new HandleThreadHtml();
            var handlePage = new HandlePageHtml();
            var content = "";
            var elements = jsonObj.elements.elements;
            var length = elements.length;
            for (var i = 0; i < length; i++) {
                content += handleThread.getContentHtml(elements[i]);
                //管理员与编辑显示的
                /*
                content += "<div class=fcontr2  >";//like By lijiachuan010 On 2008-11-04
                content += handleThread.getBottomHtml(elements[i]);
                content += "</div>";

                content += "<div class=fcontr1 >";
                content += handleThread.getControlHtml(elements[i]); //like [删除]  [锁贴] [取消精华] [取消置顶]   <<回复>>
                content += "</div>";
				*/
            }
            content += "<div class=\"spline dlinex\"></div>";
            $("#pageSeriesThread").html(handlePage.getPageHtml(jsonObj.elements));//翻页
            $("#seriesThread_content").html(content);//评论列表
            $("#totalCount").html(jsonObj.totalCount);//本书评论总数
            doElements($("#seriesThread_content"));
            $("#query_condition_seriesThread").html(JSON.stringify(jsonObj.params));//查询条件
        });
    };
    /*******************对保存查询条件的块解析***************/
    this.parseCondition = function() {
        var condition = $("#query_condition_seriesThread").html();
        var map = new Map();
        if ((null == condition) || ('' == condition))
            return map;
        JSON.parse(condition, function (key, value) {
            if (key != '' && (typeof key == 'string') && key != 'p') {
                map.put(key, value);
            }
        });
        return map;
    }
    /*********************分页*************************/
    this.paginate = function(pageNum) {
    if (isNaN(parseInt(pageNum))) {
            alert("请输入数字格式的页码！");
            return;
        }
        var map = this.parseCondition();
        map.put("pageNum", pageNum);
        this.querySeriesThreadByParams(map.toUrlString());
    }
}
/***************拼要显示的html串************************/
    /***************编辑帖子********************/
    /*
    function doEditThread(){
      var pageNum = $("#pagerInput:input").val();
      if(!checkThread("#edit_title","#edit_body")) return;
      var titleHtml=$("#edit_title").val();
      var bodyHtml=$("#edit_body").val();
      $.post("/seriesThreadAttributeServlet",
      {Action:"post", attributeType:5, seriesId:seriesId_g,threadId:threadId_g, value:1,title:titleHtml,body:bodyHtml},
	   function (data) {
		 if (data.result==2) {
		     alert("修改成功!");
         }
	  }, "json");
	  setTimeout(function(){closeinfo('editSeriesThread');},1000);
	  seriesThreadShowQuery.paginate(pageNum);
   }*/
   function setAttributes(attributeType,seriesId,threadId,value) {
     //编辑
     /*
	 if(attributeType==5&&value==1) {
	  seriesId_g=seriesId;
	  threadId_g=threadId;
	  showinfo('editSeriesThread',null);
	  return ;
	 }
	 */

	/**0【删除】,1【锁贴】,2【加精】,3【置顶】, 4【禁言】,5【编辑】*/
	var pageNum = $("#pagerInput:input").val();
	$.post("/seriesThreadAttributeServlet",
		  {Action:"post", attributeType:attributeType, seriesId:seriesId,threadId:threadId, value:value},
		  function (data) {
			if (data.result==0) {//操作成功
			  	alert(data.desc);
	            seriesThreadShowQuery.paginate(pageNum);
	        }else{
	        	alert(data.desc);
	        }
	  }, "json");
   }
   //禁言
   /*
   function doForbids(){
      var pageNum = $("#pagerInput:input").val();
      var reasonHtml=$("#forbids_reason").val();
      var daysHtml=$("#forbids_days").val();
      var regs = /^\d+$/;
      if (isNaN(parseInt(daysHtml))||!regs.test(daysHtml)) {
            alert("请输入数字格式的禁言天数！");
            return;
       }
      if(daysHtml>365*500){
         alert("没必要输入这么多天,永久禁言请输入0！");
           return;
      }
      $.post("/seriesThreadForbidsServlet",
      {Action:"post", method:value_g,userId: userId_g,reason:reasonHtml,days:daysHtml},
	   function (data) {
		 if (data) {
		   if(data.result==1){
		     alert("禁言成功!");
		    }else if(data.result==-1){
		     alert("This guy 已经被禁言了!");
            }else if(data.result==2){
             alert("删除禁言成功!");
            }
         }
	  }, "json");
	  setTimeout(function(){closeinfo('editFbsSpk');},1000);
	  seriesThreadShowQuery.paginate(pageNum);
   }
   function forbids(userId,value){
     userId_g=userId;
     value_g=value;
     if(value==1) {showinfo('editFbsSpk',null);}//禁言
     if(value==0) {doForbids()}//取消禁言
  }
  */
/**********************************获取页面html的方法********************************/
function HandleThreadHtml() {
   //显示时过滤开头的回车
   /*
   this.replaceByReg=function(element){
   	 var element=element;
   	 if(element.length<120)
       element = element.replace(/^(<br\/>){2,}/g," ");
     return element;
    }*/
    //回车出现的次数
    this.countEnter=function(element){
    var element = element;
	var find = "<br\/>";
	var reg = new RegExp(find,"g")
	var c = element.match(reg);
	return c?c.length:0
    }
    //控制显示几行--取到哪个字符的位置
    this.showLn=function(n,element,getLast){
    var element=element;
    var getLast=getLast;
    var aim = "<br\/>";
    var v=element.indexOf(aim,0);//第一个回车的位置
    if(v>0){
      for(var i=0;i<n-1;i++){
          v=element.indexOf(aim,v+aim.length);
      }
    }else{
      v=165;
    }
    if(v>1&&!getLast){element=element.substring(0, v);}
    if(v>1&&getLast) {element=element.substring(0, v+aim.length);}
    return element;
    }
    /*根据回车个数截取字串
    this.getSubCnt=function(n){
    var subCnt=58+58+52;
    if(n=1) subCnt=58+52;
    if(n>=2) subCnt=52;
    return subCnt;
    }
    */
    /*********1:评论本身的html***********/
    this.getContentHtml = function(element) {
    	var bodyContent=element.threadBody;
    	var subBodyContent=bodyContent.substr(0, 168);//取大约3行的数据
    	var subBodyContent=this.showLn(3,subBodyContent,false);

    	var enters=this.countEnter(subBodyContent);//判断有几个回车
    	//var subCnt=this.getSubCnt(enters);
    	//var subBodyContent=subBodyContent.substr(0, subCnt);
        var html = "<div class=\"spline dlinex\"></div>";
        html += "<div class=\"info\">";
        if(element.nickName){
        	html += "<div class=\"photo\"><a href=" + element.userUrl + "><img src=" + element.userSrc + " width=50 height=50/></a></div>";
        }else{
        	html += "<div class=\"photo\"><img src='http://static.zongheng.com/userimage/default/image_64_64.gif' width=50 height=50/></div>";
        }
        html += "<div class=\"fl f66\">";
        html +=this.getOtherHtml(element);
        //html += "<h3 class=\"fn fblue\">　by　　　<a href=" + element.userUrl + " class=\"ufred\">" + element.nickName + "</a> on " + element.createDateOfString + "</h3>";
        html += "<p id='Descfull" + element.threadNum + "' style='display: none'>" + (myEscape(element.threadBody) + '<a href="#" onclick="javascript:showfulldesc(' + element.threadNum + ');return false;" title="部分内容" class="ufblue">[隐藏内容]</a>') + "</p>";
        html += "<p id='Desc" + element.threadNum + "'>";
        if(enters==0){
          html +=((subBodyContent.length >= 165) ? (myEscape(subBodyContent) + '<a href="#" onclick="javascript:showfulldesc(' + element.threadNum + ');return false;" title="全部内容" class="ufblue">[全部内容]</a>') : myEscape(bodyContent) ) + "</p>";
        }else if(enters==1){
          html +=((subBodyContent.length > 110) ? (myEscape(subBodyContent) + '<a href="#" onclick="javascript:showfulldesc(' + element.threadNum + ');return false;" title="全部内容" class="ufblue">[全部内容]</a>') : myEscape(bodyContent) ) + "</p>";
        }else{
         html +=((subBodyContent.length > 0) ? (myEscape(subBodyContent) + '<a href="#" onclick="javascript:showfulldesc(' + element.threadNum + ');return false;" title="全部内容" class="ufblue">[全部内容]</a>') : myEscape(bodyContent) ) + "</p>";
        }
        //like By lijiachuan010 On 2008-11-04
        html += "<div style=\"float:left\" >";
        html += this.getBottomHtml(element);
        html += "</div>";

        html += "<div style=\"float:right\" >";
        html += this.getControlHtml(element); //like [删除]  [锁贴] [取消精华] [取消置顶]   <<回复>>
        html += "</div>";
        html += "</div></div>";
        return html;
    }
    /**0【删除】,1【锁贴】,2【加精】,3【置顶】, 4【禁言】,5【编辑】等的html**/
    this.getBottomHtml=function(element){
    	var postCnt = parseInt(element.postCnt);
    	var bottomHtml= "";
    	if(element.nickName){
    		bottomHtml += "<span class=\"fn fblue\">作者： <a href=" + element.userUrl + " class=\"ufred\">" +element.nickName + "</a> ";
    	}else{
    		bottomHtml += "<span class=\"fn fblue\">作者： <a href='#' onclick=\"void(0)\" class=\"ufred\">" + ipReplace(element.userName) + "</a> ";
    	}
    	bottomHtml += "日期： " + element.createDateOfString + " ";
    	 if(!isNaN(postCnt) && postCnt>0)
    	 	bottomHtml += "回复数: <a href='/seriesPost/"+element.seriesId+"/"+element.threadId+"/1.html#fbhf'  class=\"ufred\"><strong>"+element.postCnt+"</strong></a>";
    	 else
    	 	bottomHtml += "回复数: 0";
    	bottomHtml += "</span>";
    	return bottomHtml;
    }
    this.getControlHtml=function(element){
        var userId=element.userId;
        //var userName = element.userName;
        var threadPerfect = element.threadPerfect;
        var threadId = element.threadId;
        var seriesId = element.seriesId;
        var threadTop = element.threadTop;
        var threadClose=element.threadClose;
        //var isForbidsSpeak=element.forbidsSpeakFlag;
        var perfectHtml = "";
        var topHtml = "";
        var deleteHtml = "";
		var closeHtml = "";
		var forbidsHtml="";
		var editHtml="";
		var nullHtml = "";
		var postHtml = "";
		/****【禁言】****/
		/*
		if(isForbidsSpeak){
		 forbidsHtml+="<a class=\"fblue\" href=\"javascript:forbids("+userId+",0);\">[取消禁言]</a>&nbsp;&nbsp;";
		}else{
		 forbidsHtml+="<a class=\"fblue\" href=\"javascript:forbids("+userId+",1);\">[禁言]</a>&nbsp;&nbsp;";
		}*/
		/****【删除】****/
		if (threadPerfect==1||threadTop==1) {
		 deleteHtml += "<a class=\"fblue\" href=\"javascript:if(confirm('Hi:这条评论已[加精]或[置顶];确定要删除吗?')) {setAttributes(0,"+seriesId+","+threadId+",1);}\">[删除]</a>";
		}else{
         deleteHtml += "<a class=\"fblue\" href=\"javascript:if(confirm('确定要删除评论吗?')) {setAttributes(0,"+seriesId+","+threadId+",1);}\">[删除]</a>";
		}
		/****【锁贴】****/
        if (threadClose==1) {
            closeHtml += "<a  class=\"fblue\" href=\"javascript:setAttributes(1,"+seriesId+","+threadId+",0);\">[取消锁贴]</a>";
        } else if(threadClose==0){
            closeHtml += "<a  class=fblue href=\"javascript:setAttributes(1,"+seriesId+","+threadId+",1);\">[锁贴]</a>";
        }
         /****【加精】****/
         if (threadPerfect==1) {
            perfectHtml += "<a class=\"fred\" href=\"javascript:setAttributes(2,"+seriesId+","+threadId+",0);\">[取消精华]</a>";
         } else if(threadPerfect==0){
            perfectHtml += "<a class=fred href=\"javascript:setAttributes(2,"+seriesId+","+threadId+",1);\">[设为精华]</a>";
         }
         /****【置顶】****/
         if (threadTop==1) {
            topHtml += "<a  class=\"fred\" href=\"javascript:setAttributes(3,"+seriesId+","+threadId+",0);\">[取消置顶]</a>";
         } else if(threadTop==0){
            topHtml += "<a  class='fred' href=\"javascript:setAttributes(3,"+seriesId+","+threadId+",1);\">[置顶]</a>";
         }
         /****【编辑】****/
         /*
         editHtml += "<a  class='fred' href=\"javascript:setAttributes(5,"+seriesId+","+threadId+",1);\">[编辑]</a>&nbsp;&nbsp;";
         */
         /****【回复t】****/
         if(threadClose==0){
          postHtml += "<span class=fred> <a class=fgreen1 href=/seriesPost/"+seriesId+"/"+threadId+"/1.html#fbhf> &lt;&lt;回复&gt;&gt;</a></span>";
         }
        /**管理员/编辑**/
        if(isAdmin()){
           return deleteHtml+closeHtml+perfectHtml+topHtml+postHtml;
        }
        /**书的作者**/
        if(isAuthor()){
           return perfectHtml+topHtml+postHtml;
        }
        /**建贴人**/
        if(user!=null){
         if(user.userId==userId){
          //return deleteHtml+editHtml;
          return postHtml;
         }
        }
        /**普通用户**/
        return postHtml;
    }
    /**3:0显示帖子是否被置顶 加精等的html**/
    this.getOtherHtml=function(element){
        var threadPerfect = element.threadPerfect;
        var threadTop = element.threadTop;
        var threadClose=element.threadClose;
        var prefixHtml="<div class='fred'>";
        var suffixHtml="</div>";
        var perfectHtml = "";
        var topHtml = "";
		var closeHtml = "";
		//序号和标题
		var topicHtml = "<span class=\"fn fblue\">" +element.threadNum+ "楼  <a class=\"fn fblue\" href=/seriesPost/"+element.seriesId+"/"+element.threadId+"/1.html#fbhf> <strong>"+myEscape(element.threadTopic) + "</strong></a></span>";
		/****【锁贴】****/
        if (threadClose==1) {
            closeHtml += "[锁定]";
        }
         /****【加精】****/
         if (threadPerfect==1) {
            perfectHtml += "[精华]";
         }
         /****【置顶】****/
         if (threadTop==1) {
            topHtml += "[置顶]";
         }
        return prefixHtml+closeHtml+perfectHtml+topHtml+topicHtml+suffixHtml;
    }
}
/******显示全部*****/
function showfulldesc(threadNum) {
    var hidehtml = document.getElementById("Desc" + threadNum).innerHTML;
    document.getElementById("Desc" + threadNum).innerHTML = document.getElementById("Descfull" + threadNum).innerHTML;
    document.getElementById("Descfull" + threadNum).innerHTML = hidehtml;
}
function handelPageOnclick(pageNum) {
    seriesThreadShowQuery.paginate(pageNum);
}
function ipReplace(ip){
	var returnIp = ip;
	var ipArr = ip.split('.');
	if(ipArr.length == 4){
		ipArr[3] = "*";
		returnIp = ipArr.join(".");
	}
	return returnIp;
}