﻿// JScript 文件
var all_js_version = "1.30";
var all_wburl = "/WebService/DataService.asmx/";
var all_virpath = "/";
var cookieName = "dnt";

window.isIE = function() {
  if (navigator.appName == "Microsoft Internet Explorer") {
      return true;
  }
  else {
      return false;
  }
}

document.getFrame = function(id) {
    var frame;
    if (document.frames) {
        frame = document.frames[id];
    }
    else {
        frame = document.getElementById(id).contentWindow;
    }
    
    
    return frame;
}

function mouseoverListener(eventObj)
{
    eventObj.className = 'postManageBtn';
    eventObj.nextSibling.style.display="block";
}

function favorStateChange(parentObjId,forumid)
{
    var strhtml = "";
    if(!Bbs.favorIsExists(forumid,0))
    {
        strhtml = "<a href=\"javascript:\" class=\"addfav\" title=\"收藏本吧\" onclick=\"Bbs.favorArticle('" + forumid + "',0);favorStateChange('" + parentObjId +"'," + forumid + ");\">&nbsp;</a>";
    }
    else
    {
        strhtml = "<a href=\"javascript:\" class=\"removefav\" title=\"取消收藏本吧\" style=\"display:;\" onclick=\"Bbs.delfavorArticle('" + forumid + "',0);favorStateChange('" + parentObjId +"'," + forumid + ");\">&nbsp;</a>";
    }
    $(parentObjId).innerHTML = strhtml;
}

function ShowStars(n, t) {

	var s = '';
	/*
	for(var i=3; i>0; i--) {
		level = parseInt(n / Math.pow(t, i-1));
		n = n % Math.pow(t, i-1);
		for(var j=0; j<level; j++) {
			s += '<img src="/images/star_level'+i+'.gif" />';
		}
	}
	*/
	s += '<img src="/images/Level_'+n+'.gif" />';
	document.write(s);
}
/**
 * 論壇常用方法 
 *  
 */
var Bbs = {
    "init": ""
    /**
     * 返回查詢值
     */
    ,"retQueryValue":function(strKey)
    {
        var searchString = location.search;
        var strValue="";
        if(searchString.indexOf(strKey) != -1)
        {
            strValue= searchString.substring(searchString.indexOf(strKey));
            strValue = strValue.substring(strKey.length+1,(strValue.indexOf("&") != -1 ? strValue.indexOf("&") : strValue.length));
        }  
        return unescape(strValue);
    }
    /**
     * 分頁跳轉
     */
    ,"gotopage":function(topicid, pageindex) {
        /*
        var e;
        if (typeof(event)=="undefined") {
            var func = (Bbs.gotopage.caller);
            e = func.arguments[0];
        }
        else {
            e = event;
        }
        
        var ieKey=e.keyCode;
        if (ieKey!=13){
          return;
        }

        if (pageid=="") {
            alert("請輸入頁碼.");
            return false;
        }
        */
        window.location.href = topicid + (pageindex > 1 ? "," + pageindex.toString() : "") + ".shtml";
    }
    ,"noCallback":function() {

    }
    /**
     * 列表頁面底部搜索
     */
    ,"doSearch":function() {
        var keyword = document.getElementById("so_keyword").value;
        var nickname = document.getElementById("so_nickname").value;
        var range = document.getElementById("so_range").value;
        var title = document.getElementById("so_title").checked;
        if (nickname=="輸入暱稱") {
            nickname = "";
        }
        if (keyword=="輸入關鍵字") {
            keyword = "";
        }
        var query = "";
        if (title) {
            query = "title:";
        }
        if(keyword!=""){
            query=query+keyword+" ";
        }
        if(range!=""){
            query = query+range+" " ;
        }
        if (nickname != "") {
            query = query + "nickname:"+nickname;
        }
        document.forms["so"].q.value = query;

        return true;
    }
    /**
     * 發貼前需要判斷用戶是否登錄
     */
    ,"checkLogined":function() {
        // TODO 在此需要做版面是否支持匿名發主貼判斷
        if (BoardConfig.isAllowGuestPostThread()) {
            //支持匿名發貼
            return true;
        }
        
        if(!BbsCookie.isLogined()) {
            this.showLoginDialog();
            return false;
        }
        else {
            return true;
        }
    }
    /**
     * 回復前需要判斷用戶是否登錄
     */
    ,"checkLogin":function() {
        // TODO 在此需要做版面是否支持匿名發回貼判斷
        if (BoardConfig.isAllowGuestPostReply()) {
            //支持匿名發回帖
            return true;
        }
        
        if(!BbsCookie.isLogined()) {
            this.showLoginDialog();
            return false;
        }
        else {
            return true;
        }
    }
    ,"loginCallback":null
    /**
     *  顯示登錄窗口
     *
     *  callback 回調函數: function:自定義函數  true:重新執行調用「父函數」(調用本函數的函數)
     */
    ,"showLoginDialog":function(callback) {
        if (typeof(callback) == "boolean" && callback){
            // true:
            var func = Bbs.showLoginDialog.caller;
            var args = func.arguments;
            var size = args.length;

            for (var i=0; i<args.length; i++) {
                if (typeof(args[i]) == "undefined") {
                    size;
                }
            }

            //alert(args[0]+","+args[1]+","+args[2]+","+args[3]+","+args[4]+",");
            if (size == 0) {
                this.loginCallback = function() {func();}
            }
            else if (size == 1) {
                this.loginCallback = function() {func(args[0]);}
            }
            else if (size == 2) {
                this.loginCallback = function() {func(args[0], args[1]);}
            }
            else if (size == 3) {
                this.loginCallback = function() {func(args[0], args[1], args[2]);}
            }
            else if (size == 4) {
                this.loginCallback = function() {func(args[0], args[1], args[2], args[3]);}
            }
            else {
                alert("目前還不支持"+size+"個參數的方法");
                this.loginCallback = null;
            }
        }
        else {
            //function:
            this.loginCallback = callback;
        }
        Dialog.show('登錄', all_virpath + 'inc/loginDialog.inc.html', true, true);
        
    }
    /**
     *  顯示帖子丟失處理窗口
     */
    ,"showLostDialog":function() {
        Bbs.loadDwr();  //預先記載Dwr
        Dialog.show('帖子丟失處理', all_virpath + 'inc/lostDialog.inc.html', true, true);
    }
    /**
     * 發表文章
     */
    ,"postArticle":function(boardid) {
        if (!BbsCookie.isLogined() && !BoardConfig.isAllowGuestPostThread()) { //未登錄
            this.showLoginDialog(true);  //顯示登錄框，登錄成功後自動回調
        }
        else {
            window.location.href = all_virpath + "bbs/post.aspx?boardid="+boardid;
        }
    }
    /**
     * 更改支持數
     */
    ,"agreeArticle":function(eventObj,topicid,pid)
    {
        if (!BbsCookie.isLogined()) { //未登錄
            this.showLoginDialog(true);  //顯示登錄框，登錄成功後自動回調
        }
        else
        {
            var params = "topicid=" + topicid + "&postid=" + pid.toString();
            new Ajax.Request(all_wburl+"WB_TrackAgree",{method: 'post',parameters:params,
            onComplete:function(data)
            {
                if(data != null && typeof data == 'object')
                {
                    eventObj.getElementsByTagName("em")[0].innerText = Number(eventObj.getElementsByTagName("em")[0].innerText) + 1;
                    //location.reload();
                }
            },
            onError:function(data)
            {
                alert(data.statusText);
            }
            });
        }
    }
    /**
     * 更改反對數
     */
    ,"opposeArticle":function(eventObj,topicid,pid)
    {
        if (!BbsCookie.isLogined()) { //未登錄
            this.showLoginDialog(true);  //顯示登錄框，登錄成功後自動回調
        }
        else
        {
            //new Ajax.Request("WebService/DataService.asmx/WB_VoteInfo",{method: 'post',parameters:pars,
            var params = "topicid=" + topicid + "&postid=" + pid.toString();
            new Ajax.Request(all_wburl+"WB_TrackOppose",{method: 'post',parameters:params,
            onComplete:function(data)
            {
                if(data != null && typeof data == 'object')
                {
                    eventObj.getElementsByTagName("em")[0].innerText = Number(eventObj.getElementsByTagName("em")[0].innerText) + 1;
                    //location.reload();
                }
            },
            onError:function(data)
            {
                alert(data.statusText);
            }
            });
        }
    }
    /**
      * 獲取支持反對數{json data}
     */
     ,"getPostJsonAgreeAppose":function(topicid,pid)
     {
        var params = "topicid=" + topicid + "&postid=" + pid.toString();
        new Ajax.Request(all_wburl+"WB_GetPostAO_JsonData",{method: 'post',parameters:params,onComplete:function(data)
        {
            if(data != null && typeof data == 'object')
            {
                eval("var strData = " + data.responseXML.text);
                $("agree"+pid.toString()).innerText = strData.Agree;
                $("oppose"+pid.toString()).innerText = strData.Oppose;
            }
        }
        });
     }
    /**
     * 發表問答
     */
    ,"postAsk":function(boardid) {
        if (!BbsCookie.isLogined()) { //未登錄
            this.showLoginDialog(true);  //顯示登錄框，登錄成功後自動回調
        }
        else {
            window.location.href = all_virpath + "bbs/post.aspx?boardid="+boardid+"&icon=90";
        }
    }
    
    /**
     * 編輯文章
     * @param boardid 版面ID
     * @param ismainpost 是否主貼
     * @param articleid 帖子ID
     *editpost.aspx?topicid=5&postid=16
     */
    ,"editArticle":function(topicid, ismainpost, postid) {
        if (!ismainpost){
            return this.editReply(topicid, postid);
        }
        if (!BbsCookie.isLogined()) { //未登錄
            this.showLoginDialog(true);  //顯示登錄框，登錄成功後自動回調
        }
        else {
            new Ajax.Request(all_wburl+"WB_isLimitThread",{method:"post",parameters:"topicid="+topicid+"&postid="+postid,onComplete:function(data){
                if(data != null && typeof data == 'object')
                {
                    var o = eval("([" + data.responseXML.getElementsByTagName("string")[0].firstChild.data +"])");
                    if (!o[0].returncontent){
                        alert("您無權編輯創始人的帖子.");
                        if ($jq.cookie("AicMember2") != null && $jq.cookie("AicMember2") != "")
                        {
                            $jq("ul[class*='memberlinks']").html("<li>" + (function(a){var o=a.indexOf("CN=")+3;e=a.indexOf(";",o);if(e==-1){e=a.indexOf("&",o);if(e==-1)e=a.length;}return a.substring(o,e);})($jq.cookie("AicMember2")) + "，您好！ <a href=\"/member/logout.aspx?ReturnURL=" + URLEncode(document.URL) + "\" title=\"會員登出\">登出</a></li>");
                        }
                        $jq("a[href*='logout']").click(function(){
                                                                    var date = new Date();
                                                                    date.setTime(date.getTime()+(-1*24*60*60*1000));
                                                                    document.cookie = 'AicJava=TOKEN=&Signature=; path=/; expires='+date.toGMTString()+'; domain=.cnyes.com;';
                                                                    document.cookie = 'AicMember2=CN=&DATE=&TOKEN=; path=/; expires='+date.toGMTString()+'; domain=.cnyes.com;';
                                                                 }
                        );
                    }
                    else{
                        window.location.href = all_virpath + "editpost.aspx?topicid="+topicid+"&postid="+postid+"&ismainpost=1";
                    }
                }
                else
                {
                    alert('發生錯誤！');
                }
            }
            });
        }
    }
    /**
     * 編輯回復
     * @param boardid 版面ID
     * @param articleid 帖子ID
     */
    ,"editReply":function(topicid, postid) {
        if (!BbsCookie.isLogined()) { //未登錄
            this.showLoginDialog(true);  //顯示登錄框，登錄成功後自動回調
        }
        else {
            //BbsAdmin.showDialog('編輯回復', all_virpath + 'dialog/reply_post.aspx?boardid='+boardid+"&articleid="+articleid);
            //Dialog.setWidth(600);

            window.location.href = all_virpath + "editpost.aspx?topicid="+topicid+"&postid="+postid;//+"&ismainpost=1";
        }        
    }
    /**
      * 回復
      */
    ,"jump_reply":function(){
		//window.location.hash="#reply";
  	    document.getElementById("msgEditer").focus();
  	    document.documentElement.scrollTop = document.documentElement.scrollHeight;
	}
    /**
      * 回復
      * @param threadtitle 回復標題
      */
	,"jump_reply":function(threadtitle,articleid){
		//window.location.hash="#reply";
  	    document.getElementById("txtTitle").value = threadtitle;
  	    document.getElementById("quoteArticleId").value = articleid;
  	    replyframe = window.frames("Editor").window.frames["HtmlEditor"];
        replyframe.focus();
        replyframe.document.body.innerHTML = "";
  	    document.documentElement.scrollTop = document.documentElement.scrollHeight;
  	    document.documentElement.scrollTop = document.documentElement.scrollTop - screen.height / 5;
    }
    /**
      * 回復
      * @param threadtitle 回復標題
      */
	,"jump_reply":function(threadtitle,articleid,intQuote){
		//window.location.hash="#reply";
  	    document.getElementById("txtTitle").value = threadtitle;
  	    document.getElementById("quoteArticleId").value = articleid;
  	    document.getElementById("quote").value = intQuote;
  	    replyframe = window.frames("Editor").window.frames["HtmlEditor"];
        replyframe.focus();
        replyframe.document.body.innerHTML = "";
  	    document.documentElement.scrollTop = document.documentElement.scrollHeight;
  	    document.documentElement.scrollTop = document.documentElement.scrollTop - screen.height / 5;
    }
    /**
     * 發表評論
     */
    ,"reply":function(boardid, threadid, floor, nickname) {
        if (!Bbs.checkLogined()) {
            //該版面需要登錄才能回復
            Bbs.showLoginDialog(true);
            return;
        }
        if ($("div_reply").style.display == "none") {
            alert("當前帖子不允許發表評論.");

            new Ajax.Request(all_virpath + "bbs/checkreply.aspx",{method:"get"});
            return;
        }
        var content = "【回復";
        if (floor>0) {
          content += floor+"樓";
        }
        content += " "+ nickname +" 】:\n";
        $("frmpost_toolbar").style.display = "block";
        $("frmpost_upload").style.display = "block";

        var upload = document.getFrame("frmupload");
        if (typeof(upload) == "object") {
            upload.setUploadBoardid(global_boardid);
        }
        

        
        document.forms["frmpost"].content.focus();
        document.forms["frmpost"].content.value = content;
        document.documentElement.scrollTop=600000;
    }
    /**
     * 引用回復
     */
    ,"quoteReply":function(replybodyid,articleid,username,layer){
        replyframe = window.frames("Editor").window.frames["HtmlEditor"];
        replyframe.focus();
        if(layer>0)
        {
            replyframe.document.body.innerHTML = "[quote=引用 "+layer+" 樓 "+username+" 的回覆:]<br>"+document.getElementById(replybodyid).innerText.subByte(400)+"<br>[/quote]";
        }
        else
        {
            replyframe.document.body.innerHTML = "[quote=引用樓主 "+username+" 的帖子:]<br>"+document.getElementById(replybodyid).innerText.subByte(400)+"<br>[/quote]";
        }
        if($("hidPostid"))
        {
            $("hidPostid").value = articleid;
        }
        //window.location.href="#txtTitle";
    }
    /**
     *  更新點周查看數
     */
    ,"track_topic":function(topicid)
    {
        var pars = "topicid=" + topicid;
        new Ajax.Request(all_wburl + "WB_TrackTopic",{method: 'post',parameters:pars});        
    }
    /**
     * 註銷
     */
    ,"logout":function() {
        alert('logout');
        var url = all_virpath + "bbs/user/logout.aspx?url=null";

        new Ajax.Request(url, {method: 'get',requestHeaders:["If-Modified-Since","0"], onComplete:function(obj){
            try{
                
                var url_remote = all_virpath + "bbs/user/logout_remote.aspx?url=null";
                new Ajax.Request(url_remote, {method: 'get',requestHeaders:["If-Modified-Since","0"],onComplete:function(obj){
                	try{
		                	Userinfo.reloadUserinfo();//清空用戶信息
		                	BbsBoardAdmin.delCookie();	
		                	webPopoLogout(); 
		                }
		               catch (e){}
		               BbsUtil.reloadPage();
									}});
								//退出泡泡
               // BbsBoardAdmin.delCookie();  //切換到正常模式
            }
            catch (e){}
						
            
        }});

				
        
        //window.location.href = all_virpath + "bbs/user/logout.aspx?url="+escape(document.location.href);
    }
    ,"checkDwr":function() {
        //TODO 未實現
        if (typeof(Dwr) == "undefined") {
            
        }
    }
    /**
     * 加載論壇所需的Dwr腳本
     */
    ,"loadDwr":function() {
//        if (1==1) {
//            return;
//        }
//        if (typeof(Dwr) == "undefined") {
//            this.loadJs('http://bbs.163.com/bbs/dwrinterfaceDwr.js');
//            this.loadJs('http://bbs.163.com/bbs/dwrengine.js');
//            this.loadJs('http://bbs.163.com/bbs/dwrutil.js');
//        }
    }
    ,"loadJs":function(filename) {
        var script = document.createElement("script");
        script.src = filename;

        //為什麼要使用insertAdjacentElement？,因為appendChild在JS文件已經存在瀏覽器緩存時就會出現IE崩潰的情況(Bbs.editArticle方法就會出現,postArticle則正常)
        if (document.frames) {
            document.body.insertAdjacentElement("BeforeBegin",script);
        }
        else {
            document.body.appendChild(script);  //
        }
    }
    /**
    * 加載CSS
    */
    ,"loadCss":function(filename) {
        var head = document.getElementsByTagName('HEAD').item(0);
        var style = document.createElement('link');
        style.href = filename;
        style.rel = 'stylesheet';
        style.type = 'text/css';
        head.appendChild(style);
    }
    /**
     * 顯示紙條信息
     */
    ,"showMessage":function(pageid) {
        if (typeof(pageid)=="undefined") {
            pageid = 1;
        }
        BbsAdmin.showDialog('我的紙條', all_virpath + 'dialog/msg_list.aspx?pageid='+pageid);
        Dialog.setWidth(600);

        if (pageid==1) {
            //清除用戶信息緩存，並重新加載
            Userinfo.reloadUserinfo();
        }
    }
    /**
     * 顯示已發送紙條信息
     */
    ,"showSentMessage":function(pageid) {
        if (typeof(pageid)=="undefined") {
            pageid = 1;
        }
        BbsAdmin.showDialog('已發送紙條', all_virpath + 'dialog/msg_sent_list.aspx?pageid='+pageid);
        Dialog.setWidth(600);
    }
    /**
     * 顯示我的黑名單列表
     */
    ,"showMyBlackList":function(pageid) {
        if (typeof(pageid)=="undefined") {
            pageid = 1;
        }
        BbsAdmin.showDialog('黑名單', all_virpath + 'dialog/my_blacklist.aspx?pageid='+pageid);
        Dialog.setWidth(600);
    }
    /**
     * 添加黑名單
     */
    ,"addMyBlackList":function(userid) {
        if (typeof(userid)=="undefined") {
            userid = "";
        }
        BbsAdmin.showDialog('添加黑名單', all_virpath + 'dialog/my_blacklist_add.aspx?userid='+userid);
        Dialog.setWidth(600);
    }    
    /**
     * 顯示紙條信息
     */
    ,"sendMessage":function(userid) {
        if (typeof(userid)=="undefined") {
            userid = "";
        }
        BbsAdmin.showDialog('發送紙條', all_virpath + 'dialog/msg_write.aspx?userid='+userid);
        Dialog.setWidth(600);
    }
	/**
    *發送系統紙條
    */
    ,"sendSysMessage":function(userid){
    	if (typeof(userid)=="undefined") {
            userid = "";
        }
        BbsAdmin.showDialog('發送系統紙條', all_virpath + 'dialog/msg_sys_write.aspx?userid='+userid);
        Dialog.setWidth(600);
    }
    /**
     * 刪除紙條
     */
    ,"delMessage":function(pageid, msgid) {
        Dwr.delMessage(msgid, function(data) {
            //刪除功能，重新加載紙條頁面
            Bbs.showMessage(pageid);
        });
    }
    /**
     * 刪除已發送紙條
     */
    ,"delSentMessage":function(pageid, msgid) {
        Dwr.delSentMessage(msgid, function(data) {
            //刪除功能，重新加載紙條頁面
            Bbs.showSentMessage(pageid);
        });
    }
    /**
     * 刪除黑名單
     */
    ,"delBlackList":function(pageid, msgid) {
        Dwr.delBlackList(msgid, function(data) {
            Bbs.showMyBlackList(pageid)
        });
    }
    /**
     * 獲取當前頻道
     */ 
    ,"getChannel":function() {
        var host = window.location.host;
        var channel = host.replace(/(.*?)([a-z0-9]+)\.163\.com/gi,"$2");

        if ("bbs" == channel) {
            // bbs.163.com
            channel =  "ntes";
        }
        else if ("money" == channel) {
            channel = "stock";
        }
        else if ("tech" == channel) {
            if ("club.tech.163.com" == host) {
                channel = "mobile";
            }
            else if ("digibbs.tech.163.com" == host) {
                channel = "digi";
            }
            
        }
        return channel;
    }
    /**
     * 登錄通行證
     * 
     * @username
     * @password
     * @url
     *
     */
    ,"loginPassport":function(username, password, myCallback) {
        if (username == "") {
            return "還沒有輸入帳號.";
        }
        if (password == "") {
            return "還沒有輸入密碼.";
        }
        new Ajax.Request(all_wburl+"WB_loginPassport",{method:"post",parameters:"username="+username+"&password="+password,onComplete:function(data) {
//            eval("var retObj=" + data.responseXML.text);
//            alert(retObj.recordset);
            var o = eval("([" + data.responseXML.getElementsByTagName("string")[0].firstChild.data +"])");
            //alert(o[0].recordset);
            //登錄成功，關閉登錄框
            Dialog.close();
            var callback;
            if (myCallback == null || typeof(myCallback) == "undefined"){
                callback = Bbs.loginCallback;
            }
            else {
                callback = myCallback; 
            }

            if (callback != null && (typeof(callback) == "function" || typeof(callback) == "object"))
            {
                callback();
                Userinfo.loadUserinfo();//更新登錄狀態
            }
        }
        });
    }
	
    /**
     * 獲得某個回帖的內容
     * @param {Object} boardid
     * @param {Object} articleid
     */
    ,"getReplyBody":function(boardid, articleid) {
      var content = "";
      DWREngine.setAsync(false);
      Dwr.getReplyBody(boardid, articleid, function(data) {
          //content = (dwr.util.toDescriptiveString(data, 1));
          content = data;
      });
      DWREngine.setAsync(true);
      return content;
    }
    /**
     * 顯示發貼類型菜單
     */
    ,"showPostMenu":function(index) {
        var obj = $("post_menu_"+index);
        if (obj == null) {
            alert("菜單不存在.");
            return;
        }
          obj.style.display = (obj.style.display=="block")?"none":"block";
    }
    /**
   * 顯示或隱藏我的收藏
   */
  ,"showMyFavorite":function(divname) {
        if(!BbsCookie.isLogined()) {
            this.showLoginDialog(BbsUtil.reloadPage);
            return;
        }
        else{
        	var divobj = $(divname);
        	divobj.style.display = "block";
        	this.loadMyFavorite(divname);
        }
  }
  /**
   * 檢測是否已經收藏帖子或吧
   */
   ,"favorIsExists":function(themeid,favtype)
   {
    if(!BbsCookie.isLogined())
    {
        return false;
    }
    else
    {
        var returnValue = false;
        var params = "userid=" + BbsCookie.getPassport() + "&themeid="+themeid.toString() + "&colType=" + favtype.toString();
        var ajaxdata = Ajax.getTransport();
        ajaxdata.open("get", all_wburl + "WB_CheckFavoriteIsIN?" + params, false); //同步調用
        ajaxdata.send(null);
        if(ajaxdata != null && typeof ajaxdata == 'object')
        {
            eval("var strData = " + ajaxdata.responseXML.text); 
            if(Number(strData.returncontent) > 0)
            {
                returnValue = true;
            }
        }
        /*
        new Ajax.Request(all_wburl + "WB_CheckFavoriteIsIN",{method: 'post',parameters:params,onComplete:function(data)
            {
                if(data != null && typeof data == 'object')
                {
                    eval("var strData = " + data.responseXML.text); 
                    if(Number(strData.returncontent) > 0)
                    {
                        returnValue = true;
                        //alert(returnValue);
                    }
                }
            }
        });
        */
        return returnValue;
    }
   }
  /**
   * 收藏帖子
   */
  ,"favorArticle":function(themeid,favtype)
  {
    if(!BbsCookie.isLogined())
    {
        this.showLoginDialog(true);
    }
    else
    {
        var params = "userid=" + BbsCookie.getPassport() + "&themeid="+themeid.toString() + "&colType=" + favtype.toString();
        new Ajax.Request(all_wburl + "WB_AddMyFavorite",{method: 'post',parameters:params});
        if(favtype == 0)
            alert('收藏吧成功！');
        else
            alert('收藏帖子成功！');
    }
  }
  /**
   * 刪出收藏的帖子或吧
   */
  ,"delfavorArticle":function(themeid,favtype)
  {
    if(!BbsCookie.isLogined())
    {
        this.showLoginDialog(true);
    }
    else
    {
        var params = "userid=" + BbsCookie.getPassport() + "&themeid="+themeid.toString() + "&colType=" + favtype.toString();
        new Ajax.Request(all_wburl + "WB_DeleteMyFavorite",{method: 'post',parameters:params});
        alert('取消操作成功！');
    }
  }
  /**
   * 加載我的收藏
   */
  ,"loadMyFavorite":function(divname) {
        var url = all_virpath + "bbs/my_favorite.inc.aspx";
        new Ajax.Request(url,{onComplete:function(data){
            var content = (data.responseText);
            if (data.status==200) {
                $(divname).innerHTML = content;
            }
            else {
                alert("請求出錯.");
            }
        }});
  }
  /**
  *設置某一用戶的在線狀態
  **/
  ,"showOnlineStatus":function(onlinestatus){
  	var obj = document.getElementById("onlinestatus");
  	
  	if (obj != null){
  		/*Dwr.getOnlineStatus(userid,function(data){
  				if (data){
  					$(showdivid).innerHTML = "在線";	
  				}
  				else{
  					$(showdivid).innerHTML = "離線";		
  				}
  			});*/
  			if (onlinestatus == "1"){
  				obj.innerHTML = "在線";
  			}
  			else{
  				obj.innerHTML = "離線";	
  			}
  	 }
  
  }
  
   /**
  *獲取某一用戶的在線狀態
  **/
  ,"getOnlineStatus":function(username){
  		var url = all_virpath + "dialog/userinfo.aspx?reload=true&username=" + username ; 
			new Ajax.Request(url, {method: 'get',requestHeaders:["If-Modified-Since","0"], onComplete:function(data){
					eval(obj.responseText);	} 
					});
  
  }

}

/**
* Author: 阿海
**/

var Drag={
        "obj":null,
	"init":function(a, aRoot){
      a.onmousedown=Drag.start;
      a.root = aRoot;
      if(isNaN(parseInt(a.root.style.left)))a.root.style.left="0px";
      if(isNaN(parseInt(a.root.style.top)))a.root.style.top="0px";
      a.root.onDragStart=new Function();
      a.root.onDragEnd=new Function();
      a.root.onDrag=new Function();
		},
	"start":function(a){	
			var b=Drag.obj=this;
			a=Drag.fixE(a);
			var c=parseInt(b.root.style.top);
			var d=parseInt(b.root.style.left);
			b.root.onDragStart(d,c,a.clientX,a.clientY);
			b.lastMouseX=a.clientX;
			b.lastMouseY=a.clientY;
			document.onmousemove=Drag.drag;
			document.onmouseup=Drag.end;
			return false;
		},	
	"drag":function(a){
			a=Drag.fixE(a);
			var b=Drag.obj;
			var c=a.clientY;
			var d=a.clientX;
			var e=parseInt(b.root.style.top);
			var f=parseInt(b.root.style.left);
			var h,g;
			h=f+d-b.lastMouseX;
			g=e+c-b.lastMouseY;
			b.root.style.left=h+"px";
			b.root.style.top=g+"px";			
			b.lastMouseX=d;
			b.lastMouseY=c;
			b.root.onDrag(h,g,a.clientX,a.clientY);
			return false;
		},
	"end":function(){			
			document.onmousemove=null;
			document.onmouseup=null;
			Drag.obj.root.onDragEnd(parseInt(Drag.obj.root.style.left),parseInt(Drag.obj.root.style.top));
			Drag.obj=null;
		},
	"fixE":function(a){
			if(typeof a=="undefined")a=window.event;
			if(typeof a.layerX=="undefined")a.layerX=a.offsetX;
			if(typeof a.layerY=="undefined")a.layerY=a.offsetY;
			return a;
		}
};

Object.printAll = function(obj) {
    var msg = "";
    var i = 0;
    for (dd in obj) {
        msg += dd + "  ";
        if ((i+1)%5==0) {
          msg += "\n";
        }
        i++;
    }
    alert(msg);
}

var Dialog = {
    "init":""
    ,"dialogBox":null
    ,"defWidth":400
    ,"width":0


    /**
     * 顯示窗口
     * @param title 窗口標題
     * @param url   窗口內容頁面的URL
     * @param loadCss  是否加載CSS
     * @param loadJs  是否加載JS
     **/
    ,"show":function(title, url, loadCss, loadJs) {
        if (this.dialogBox == null) {
            //窗口不存在，自動創建
            this.create();
        }
        
        this.setWidth(this.defWidth);   //默認寬度

        

        this.dialogBox.style.display = "block";    //顯示窗口
        
        this.setTitle(title); //設置標題
        
        this.loading = setTimeout("Dialog.setLoading()", 200);  //200毫秒內數據沒有加載就會顯示「數據加載中...」
        
        Drag.init(document.getElementById("draghead"), this.dialogBox);

        this.dialogBox.onDragEnd=function(x,y){
          Dialog.dialogBox.ox=x-Dialog.getRange().left;
          Dialog.dialogBox.oy=y-Dialog.getRange().top;
        }
        this.center();   //當瀏覽器不是在第一屏的位置顯示窗口會看不見，所以要讓它自動在當前屏幕的中間顯示
        this.loadContent(url, loadCss, loadJs);  //加載窗口內容
    }
    ,"setWidth":function(width) {
        if (width != this.width) {
            this.width = width;
            this.dialogBox.style.width = width+"px";
            this.center();
            
        }
        
    }
    ,"loading":null
    ,"setLoading":function() {
        this.setContent("數據加載中...");
    }
    ,"clearLoading":function() {
        if (this.loading != null) {
            clearTimeout(this.loading);
            this.loading = null;
        }
    }

    /**
     *  加載窗口內容
     */
    ,"loadContent":function(url, loadCss, loadJs) {   
        var time = "?"+(new Date().getTime());
        //使用GET方式會有緩存問題，所以要使用POST
        new Ajax.Request(url, {
            method: 'get',
            requestHeaders:["Cache-Control","no-cache"],//requestHeaders:["If-Modified-Since","0"],
            onComplete:function(obj)
            {
                Dialog.clearLoading()
                //this.setContent("數據加載中...");//須將內容清空，否則有時會發生IE崩潰的情況(目前發現修改文章時會發生)
                $("dialogBox_content").innerHTML=(obj.responseText);
                if (loadCss){
                    Dialog.loadCss(url+".css");
                }
                if (loadJs) {
                    Dialog.loadJs(url+".js");
                }
            }
        });

    }
    /**
     * 設置窗口內容（提示信息）.
     */
    ,"setContent":function(content) {
        document.getElementById("dialogBox_content").innerHTML = "<div class='dialogBox_Content'>"+content+"</div>";    
    }

    /**
    * 關閉窗口
    **/
    ,"close":function() {

        if (this.dialogBox != null) {
            this.dialogBox.style.display = "none";
        }
    }
    /**
    * 設置窗口的標題
    * @html  窗口的標題，支持HTML
    */
    ,"setTitle":function(html) {
        document.getElementById("dialogBox_title").innerHTML = html;
    }
    

    /**
    * 創建窗口
    */
    ,"create":function() {
        this.loadCss(all_virpath + "css/dialog.css");
        var dialogBox = document.createElement("DIV");
        dialogBox.id = "dialogBox";
        dialogBox.className = "dialogBoxBg";
        var html = '<div class="dialogBox" style="cursor:pointer"><div id="draghead" class="title"><h2 id="dialogBox_title"></h2><span><a id="dialog_close_btn" href="javascript:Dialog.close()" target="_self"><img src="/images/login01_div.gif" style="cursor:pointer" height="18" width="49" border="0" alt="關閉窗口" /></a></span></div><div class="content" id="dialogBox_content"></div></div>';
        dialogBox.innerHTML = html;
        document.body.appendChild(dialogBox); 
        this.dialogBox = document.getElementById("dialogBox");
        
        this.center();  //設置窗口位置

        window.onscroll=Dialog.onBodyScroll;
    }
    
    /**
    * 加載CSS
    */
    ,"loadCss":function(filename) {
        var head = document.getElementsByTagName('HEAD').item(0);
        var style = document.createElement('link');
        style.href = filename;
        style.rel = 'stylesheet';
        style.type = 'text/css';
        head.appendChild(style);
    }
    /**
     * 加載JS
     * @param filename 腳本URL
     */
    ,"loadJs":function(filename) {
        var script = document.getElementById("js1");   //應該將filename MD5編碼後作為ID使用
        if (script == null) {
            script = document.createElement("script");
        }
        script.id = "js1";
        script.src = filename;
        
        //為什麼要使用insertAdjacentElement？,因為appendChild在JS文件已經存在瀏覽器緩存時就會出現IE崩潰的情況(Bbs.editArticle方法就會出現,postArticle則正常)
        if (document.frames) {
            //document.body.insertAdjacentElement("BeforeBegin",script);
            document.body.parentNode.insertBefore(script,this); 
        }
        else {
            document.body.appendChild(script);  //
        }
    }
    ,"onBodyScroll":function(){
        var range=Dialog.getRange();
        var top = (range.top+Dialog.dialogBox.oy);
        var left = (range.left+Dialog.dialogBox.ox);
        if (top < 5) { top  = 5; }
        if (left< 5) { left = 5; }
        
        Dialog.dialogBox.style.top=top +"px";
        Dialog.dialogBox.style.left=left +"px";

        //document.title = "scroll:"+top;
    }

    /**
     *  設置窗口居中顯示
     */
    ,"center":function() {
        var range=Dialog.getRange();

        var left = (range.width-this.width)/2;
        var top  = (range.height-400)/2;

        this.dialogBox.ox= left;
        this.dialogBox.oy= top;

        if (range.left > left) { left = range.left+left;}
        if (range.top  > top ) { top  = range.top +top;}

        this.dialogBox.style.left = left + "px";
        this.dialogBox.style.top = top + "px";

        //document.title = "center:"+top;
    }
    /**
     * 移動窗口位置
     * @left 
     * @top 
     */
    ,"move":function(left, top) {
        this.dialogBox.ox= left;
        this.dialogBox.oy= top;

        this.dialogBox.style.left = left + "px";
        this.dialogBox.style.top = top + "px";
    }


    ,"getRange":function() {
        var top     = document.documentElement.scrollTop;
        var left    = document.documentElement.scrollLeft;
        var height  = document.documentElement.clientHeight;
        var width   = document.documentElement.clientWidth;

        if (top==0 && left==0 && height==0 && width==0) {
            top     = document.body.scrollTop;
            left    = document.body.scrollLeft;
            height  = document.body.clientHeight;
            width   = document.body.clientWidth;
        }
        return  {top:top  ,left:left ,height:height ,width:width } ;
    }

}

/**
 * Cookie 管理
 * Henry.
 */
var BbsCookie = {
    "init":""
    ,"getValue":function(name) {
    }
    ,"getCookieValue":function (offset) {
        var endstr = document.cookie.indexOf (";", offset);
        if (endstr == -1) {
          endstr = document.cookie.length;
        }
        return unescape(document.cookie.substring(offset, endstr));
    }
    /**
     * 獲取Cookie
     */
    ,"getCookie":function (name) {
        var arg = name + "=";
        var alen = arg.length;
        var clen = document.cookie.length;
        var i = 0;
        while (i < clen) {
          var j = i + alen;
          if (document.cookie.substring(i, j) == arg) {
            return this.getCookieValue (j);
          }
          i = document.cookie.indexOf(" ", i) + 1;
          if (i == 0) {
            break;
          }
        }
        return null;
    }
    ,"getExpires":function(time) {
        var expdate = new Date();
        expdate.setTime(expdate.getTime() + time);
        return expdate;
    }
    /**
     * 刪除Cookie
     */
    ,"deleteCookie":function (cname) {
        this.setCookie(cname,"", 0);
    }
    /**
     * 設置Cookie
     */
    ,"setCookie":function (name, value, expires) {
        var value = name + "=" + escape(value) + "; domain=chinayes.com";
        if (expires>0) {
          value += " expires=" + this.getExpires(expires).toGMTString() ;
        }
        
        document.cookie = value;
    }
    
    /**
     * 獲取通行證帳號
     */
    ,"getPassport":function() {
        var passport = this.getCookie(cookieName);   //NETEASE_SSN
        if (passport == null) {
            return "";
        }
        else {
            return passport.substring(passport.indexOf("userid=")+7,passport.indexOf("&"));
        }
    }
    /**
     * 獲取通行證用戶名
     */
     ,"getPassportName":function(){
        var passport = this.getCookie(cookieName);
        if (passport == null) {
            return "";
        }
        else
        {
            var chString = passport.substring(passport.indexOf("NET_SSN=")+8);
            return chString.substring(0,chString.indexOf("&"));
        }
     }
    /**
     * 判斷是否已經登錄.
     */
    ,"isLogined":function() {
        var NTES_SESS   = BbsCookie.getCookie(cookieName);
        var isLoinged = (NTES_SESS != null && NTES_SESS != "");
        return isLoinged;
    }
    
}




var BbsAdmin = {
    "init":""
    ,"showDialog":function(title, url) {
        //Bbs.loadDwr();  //預先記載Dwr
        if (!BbsCookie.isLogined()) { //未登錄
            Bbs.showLoginDialog(true);  //顯示登錄框，登錄成功後自動回調
        }
        else {
            Dialog.show(title, url, false, false);
        }
    }
    /**
     * 查看IP
     * @param boardid 版面ID
     * @param articleid 帖子ID
     */
    ,"showIP":function(boardid, articleid,userid) {
        if(userid=="-0000"){
          this.showDialog('查看IP', all_virpath + 'dialog/showip.aspx?boardid='+boardid+'&articleid='+articleid);
        }else{
          this.showDialog('查看用戶', all_virpath + 'dialog/addBlackUser.aspx?boardid='+boardid+'&articleid='+articleid+'&userid='+userid);
        }
        
    }
    /**
     * 帖子置頂
     * @param boardid 版面ID
     * @param threadid 主貼ID
     */
    ,"topThread":function(boardid, threadid,elitestate) {
        this.showDialog('置頂帖子', all_virpath + 'dialog/topthread.aspx?boardid='+boardid+'&topicid='+threadid+'&elitestate='+elitestate);
    }
    /**i
     * 推薦帖子
     * @param boardid 版面ID
     * @param threadid 主貼ID
     */
    ,"pushThread":function(boardid, threadid) {
        this.showDialog('推薦帖子', all_virpath + 'dialog/pushthread.aspx?boardid='+boardid+'&threadid='+threadid);
    }
    /**
     * 帖子加精華
     * @param boardid 版面ID
     * @param threadid 主貼ID
     */
    ,"eliteThread":function(boardid, threadid,elitestate) {
        this.showDialog(elitestate > 0 ? '設為精華文章':'取消精華文章', all_virpath + 'dialog/elitethread.aspx?boardid='+boardid+'&topicid='+threadid+'&elitestate='+elitestate);
    }

    /**
     * 插入導讀
     * @param boardid 版面ID
     * @param threadid 主貼ID
     */
    ,"insertGuide":function(boardid, threadid) {
        this.showDialog('插入導讀', all_virpath + 'dialog/insertguide.aspx?boardid='+boardid+'&threadid='+threadid);
        Dialog.setWidth(550);
    }

    /**
     * 插入導讀
     * @param boardid 版面ID
     * @param threadid 主貼ID
     */
    ,"blockadeThread":function(boardid, threadid) {
        this.showDialog('限制編輯帖子', all_virpath + 'dialog/limitthread.aspx?boardid='+boardid+'&threadid='+threadid);
    }
    
    /**
     * 帖子加鎖
     * @param boardid 版面ID
     * @param threadid 主貼ID
     */
    ,"lockThread":function(boardid, threadid,elitestate) {
        this.showDialog(elitestate > 0 ? '設為帖子加鎖' : '取消帖子加鎖', all_virpath + 'dialog/lockthread.aspx?boardid='+boardid+'&topicid='+threadid+'&elitestate='+elitestate);
    }
    /**
     * 垃圾帖子
     * @param boardid 版面ID
     * @param threadid 主貼ID
     */
    ,"rubbishThread":function(boardid, threadid) {
        this.showDialog('垃圾帖子', all_virpath + 'dialog/rubbishthread.aspx?boardid='+boardid+'&threadid='+threadid);
    }
    /**
     * 送鮮花
     * @param boardid 版面ID
     * @param articleid 帖子ID
     */
    ,"sayGood":function(boardid, articleid) {
        Dwr.sayGood(boardid, articleid, function(data) {
            var msg = data;//(dwr.util.toDescriptiveString(data, 1));
            //操作成功
            if (msg.indexOf("錯誤:") == -1) {            
              var obj = document.getElementById("text"+articleid+"_goodnum");
              obj.innerHTML = parseInt(obj.innerHTML)+1;
            }
        });
    }
    /**
     * 扔雞蛋
     * @param boardid 版面ID
     * @param articleid 帖子ID
     */
    ,"sayBad":function(boardid, articleid) {
        Dwr.sayBad(boardid, articleid, function(data) {
            var msg = data;//(dwr.util.toDescriptiveString(data, 1));
            if (msg.indexOf("錯誤:") == -1) {            
              //操作成功
              var obj = document.getElementById("text"+articleid+"_badnum");
              obj.innerHTML = parseInt(obj.innerHTML)+1;
            }
        });
    }

    /**
     * 刪除帖子
     * @param boardid 版面ID
     * @param articleid 帖子ID
     */
    ,"delPost":function(boardid, articleid) {
        this.showDialog('刪除帖子', all_virpath + 'dialog/delpost.aspx?boardid='+boardid+'&topicid='+articleid);
    }

    /**
     * 加黑
     * @param boardid 版面ID
     * @param articleid 帖子ID
     */
    ,"addBlackList":function(boardid, username) {
        this.showDialog('加黑名單', all_virpath + 'dialog/addblacklist.aspx?boardid='+boardid+'&username='+username);
    }
    
    /**
     * 投訴帖子
     * @param boardid 版面ID
     * @param articleid 帖子ID
     */
    ,"chargePost":function(boardid, articleid, floor) {
        this.showDialog('投訴帖子', all_virpath + 'dialog/chargepost.aspx?boardid='+boardid+'&topicid='+articleid + "&floor=" +floor+"&pageurl="+escape(location.href));
    }
    /**
     * 複製主貼
     * @param boardid 版面ID
     * @param threadid 主貼ID
     */
    ,"copyThread":function(boardid, threadid) {
        this.showDialog('複製主貼', all_virpath + 'dialog/copythread.aspx?boardid='+boardid+'&threadid='+threadid);
        Dialog.setWidth(550);
    }
    /**
     * 設置優點帖
     * @param boardid 版面ID
     * @param articleid 帖子ID
     */
    ,"setAdminCommentTypes":function(boardid, articleid, types) {
        this.showDialog('設置優點帖', all_virpath + 'dialog/setAdminCommentTypes.aspx?boardid='+boardid+'&articleid='+articleid+"&types="+types);
    }
    /**
     * 設為最佳答案 
     * @param boardid 版面ID
     * @param articleid 帖子ID
     */
    ,"setAskGoodAnswer":function(boardid, articleid) {
        if (!BbsCookie.isLogined()) {
            Bbs.showLoginDialog(true);
            return;
        }

        if (!confirm("設置後不能再修改，是否確認設為最佳答案?")) {
            return;
        }

        Dwr.setAskGoodAnswer(boardid, articleid, function(data) {
            alert(data);
            document.location.replace(document.location.href+"?a1");
        });
    }
    /**
     * 設為推薦答案 
     * @param boardid 版面ID
     * @param articleid 帖子ID
     */
    ,"setAskPushAnswer":function(boardid, articleid) {
        if (!BbsCookie.isLogined()) {
            Bbs.showLoginDialog(true);
            return;
        }

        if (!confirm("設置後不能再修改，是否確認設為推薦答案?")) {
            return;
        }

        Dwr.setAskPushAnswer(boardid, articleid, function(data) {
            alert(data);
            document.location.replace(document.location.href);
        });
    }
}

var BbsAdminButton = {
    "init":""
    ,"articleid":0
     /**
     * 顯示管理按鈕
     */
    ,"show":function(articleid) {
        this.articleid = articleid;
        //document.title ="articleid:"+articleid;
        var obj = $("admin_"+articleid);
        obj.style.display = "block";
        obj.onmouseout  = BbsAdminButton.closeOut;
        obj.onmouseover = BbsAdminButton.closeOver;
    }
    ,"curShow":null
    ,"closeOut":function() {
        this.curShow = setTimeout("BbsAdminButton.close()", 100);
    }
    ,"closeOver":function() {
        clearTimeout(this.curShow);
    }

    /**
     * 關閉管理按鈕
     */
    ,"close":function() {
        var obj = $("admin_"+this.articleid);
        obj.style.display = "none";      
    }
}


/**
 * Thread.sleep(ms)
 * （盡量不要在sleep前執行代碼，除非確認沒有問題）
 * 該方法在指定的時間內回調當前的函數，所以在調用sleep之前的代碼會被多次執行
 * 調用sleep的函數參數格式不能超過3個
 * sleep不能嵌套使用
 */
var Thread = {
    "init":""
    ,"sleeping":false
    ,"ok":function () {
        document.title = "sleep:ok";
        this.sleeping = true;
        var length = (this.arguments.length);
        if (length == 0) {
          Thread.func();
        }
        else if (length == 1) {
          Thread.func(this.arguments[0]);
        }
        else if (length == 2) {
          Thread.func(this.arguments[0], this.arguments[1]);
        }
        else if (length == 3) {
          Thread.func(this.arguments[0], this.arguments[1], this.arguments[2]);
        }
        else {
          alert("使用sleep不能超過3個參數");
        }

        Thread.func = null;

    }
    ,"func":null
    ,"arguments":null
    ,"sleep":function(ms) {
        document.title = "sleep:"+ms;
        if (this.sleeping) {
            this.sleeping = false;
            return false;
        }
        else {
            this.sleeping = true;
        }

        this.func = this.sleep.caller;
        this.arguments = this.func.arguments;
        
        setTimeout("Thread.ok()", ms);
        return true;
    }
}

var BbsUtil = {
    "init":""
    ,"checkUploadImg":function(filepath){
    		if (filepath == null || filepath == ""){
  	  	 	alert("請先選擇文件");
  	  		return false;
  	  	}
  	  	else if (!this.isImg(filepath)){
  	  	 	alert("上傳的圖片的格式只能是gif、jpg/jpeg或者png");
  	  		return false;
  	  	}
  	  	return true;
    }
    ,"isImg":function(imgsrc){
    		var rex = /\.(gif|jpg|png|jpeg)$/i
  			if (rex.test(imgsrc)){
  			return true;
  			}
  			else
  			{
  				return false;
  			}	
    }
    /**
     * 顯示登錄按鈕還是顯示退出
     */
    ,"showLoginButton":function() {
        var html = "";
        if (BbsCookie.isLogined()) {
            html += ('<span style="line-height:24px">');
            html += (' <a href="javascript:BbsBoardAdmin.checkMaster()" target="_self" id="boardadmin">管理模式</a>');
			      html += ' <a href=all_virpath + "bbs/list.aspx?boardid='+global_boardid+'&plugin=y&username='+BbsCookie.getPassport()+'" title="我在當前版面發表的帖子">我的帖子</a> ';
            var messageCount = Userinfo.getMessageCount();
            if (messageCount>0) {
                var m_top   = 18;
                var m_left  = -30;
                if (!window.isIE()) {
                    m_top = 0;
                    m_left = 90;
                }
                html += ('<div style="position:absolute"><div style="height:20px;width:120px;position:relative;left:'+m_left+'px;top:'+m_top+'px;background-color:#FFFFE1;border:1px solid #858585;color:#333333;font-size:13px;padding:1px;text-align:center;"><a href="javascript:Bbs.showMessage()" target="_self">您有<strong>'+messageCount+'</strong>條新紙條</a></div></div>');
            }
            html += (' <a href="javascript:Bbs.showMessage()" target="_self">查看紙條</a>');
            //('+messageCount+')
            
            
            html += (' <a href="javascript:Bbs.logout()" target="_self">退出</a></span>');
        }
        else {
            html += ('<a href="javascript:Bbs.showLoginDialog(BbsUtil.reload)" target="_self"><img src=all_virpath + "bbs/img07/btbg02.gif" width="87" height="22" alt="登錄論壇" /></a>');
        }
        var obj = document.getElementById("myLoginButton");

        obj.innerHTML = html;

        
		
        //管理模式按鈕
        try{
            BbsBoardAdmin.load();
        }
        catch (e){}
        
    }
    /**
     * 看貼頁面顯示登錄信息
     */
    ,"showLoginInfo":function() {
        var obj = document.getElementById("myLoginInfo");
        /**/
    }
    
    
    
    /**
     * 複製文本到剪貼簿
     */
    ,"copyText":function(text) {
      try {
          clipboardData.setData('Text', text);  //window.clipboardData剪貼版數據
      }
      catch(e) {
          alert("「複製到剪貼簿功能」還不兼容您使用的瀏覽器.");
      }
    }
    ,"format":function(obj) {
        var body = "\n"+obj.value;
        body = body.replace(/ |　/ig,"");
        body = body.replace(/\r\n/ig,"\n");
        body = body.replace(/\n\n/ig,"\n");
        body = body.replace(/\n\n/ig,"\n");
        body = body.replace(/\n\n/ig,"\n");
        body = body.replace(/\n\n/ig,"\n");
        body = body.replace(/\n/ig,"\n\n　　");
        body = body.replace("\n\n","");
        obj.value=body;
    }
    /**
     * 重新加載驗證碼.
     */
    ,"reloadCode":function() {
       document.getElementById("imgcheckcode").src = all_virpath + "bbs/checkcode.aspx?"+(new Date().getTime()); 
    }
    ,"loadCheckcode":function(id) {
        var form = document.forms["frmpost"];
        var checkcode = form.checkcode;
        if (typeof(checkcode) == "object") {
            if (checkcode.value == "") {
                this.reloadCheckcode();
            }
        }
    }
    ,"reloadCheckcode":function(id) {
        if (typeof(id) == "undefined") {
            id = "imgcheckcode";
        }
        document.getElementById(id).src = all_virpath + "bbs/checkcode.aspx?"+(new Date().getTime()); 
    }
    ,"checkReplyPost":function() {
        var form = document.forms["frmpost"];
        if (typeof(isyiba) != "undefined" && isyiba == "yiba" && typeof(filename) != "undefined" && filename == "list"){
		        if (form.title.value == "") {
		            alert("帖子標題不能為空哦.");
		            form.title.focus();
		            return false;
		        }
		    }
        if (form.content.value == "") {
            alert("內容不能為空哦.");
            form.content.focus();
            return false;
        }
        if (1==1) {
            //判斷用戶是否需要輸入驗證碼？
            var checkcode = form.checkcode;
            if (typeof(checkcode) == "object") {
                if (checkcode.value == "") {
                    alert("驗證碼還沒有輸入.");
                    checkcode.focus();
                    return false;
                }
                if (checkcode.value.length != 4) {
                    alert("驗證碼的位數不對哦.");
                    checkcode.focus();
                    return false;
                }
            }
            else {
              var verifyMessage = "";
              if (BbsCookie.isLogined()) {
                  verifyMessage = this.isWantVerify();
              }
              else {
                  verifyMessage = "您是匿名發帖，需要輸入驗證碼.";
              }
              if (verifyMessage != "") {

                  var html ="";
                  
                  if (typeof(isyiba) == "undefined"){
                   	html = '<div>驗證碼:<a href="javascript:BbsUtil.reloadCode();" target="_self"><img id="imgcheckcode" src=all_virpath + "bbs/checkcode.aspx" alt="單擊圖片更換驗證碼all_virpath + "></a>:<input type="text" size="6" name="checkcode" value="" class="input007" maxlength="4all_virpath + ">,您發表回復需要輸入驗證碼。<br/>(<font color="#ff0000">'+verifyMessage+'</font>)</div>';
									}
									else{
										if (isyiba == "yiba"){
											html = '<span class="item">驗 證 碼：</span><a href="javascript:BbsUtil.reloadCode();"><img id="imgcheckcode" src=all_virpath + "bbs/checkcode.aspx" alt="單擊圖片更換驗證碼" width="60" height="20" /></a> <input style="width:70px" type="text" name="checkcode" id="textfield" onkeydown="if(event.keyCode==13){if(BbsUtil.checkReplyPost() != false && Editor.insertImgorMedia() != false){document.frmpost.submit();}}all_virpath + "><a href="javascript:BbsUtil.reloadCode();"><span class="cGray">&nbsp;點擊更換驗證碼&nbsp;</span></a><span class="cDRed">' + verifyMessage + '</span>';	
										}
										else{
											html = '<div>驗證碼:<a href="javascript:BbsUtil.reloadCode();" target="_self"><img id="imgcheckcode" src=all_virpath + "bbs/checkcode.aspx" alt="單擊圖片更換驗證碼all_virpath + "></a>:<input type="text" size="6" name="checkcode" value="" class="input007" maxlength="4all_virpath + ">,您發表回復需要輸入驗證碼。<br/>(<font color="#ff0000">'+verifyMessage+'</font>)</div>';	
										}
									}
                  new Insertion.Before('frmpost_upload', html);

                  form.checkcode.focus();
                  return false;
              }
            }
        }
        Dwr.hasForfendKeyword(global_boardid,global_threadid,"",form.content.value,function(data){
            if(data== true){
                BbsAdmin.showDialog('嚴禁詞', all_virpath + 'dialog/hasforfend.aspx?boardid='+global_boardid+'&threadid='+global_threadid);
                document.getElementById('dialog_close_btn').style.display="none";
            }else{
              Dwr.hasSubtleKeyword(global_boardid,global_threadid,"",form.content.value,function(data){
                  if(data==true){
                      BbsAdmin.showDialog('敏感詞', all_virpath + 'dialog/hassubtle.aspx?boardid='+global_boardid+'&threadid='+global_threadid);
                  }
                  else{
                    form.submit();
					document.getElementById("btnSubmit").style.visibility ="hidden";
                  }
              });
            }
        });
        
        return false;
    }
    /**
     * 檢查表單的一組選項是否已經有一個被選中
     *
     * @param options 選項對像
     */
    ,"isChecked":function(options) {
        if (typeof(options.length) == "undefined") {
            return options.checked;
        }
        for (var i=0; i<options.length; i++) {
            if (options[i].checked) {
                return true;
            }
        }
        return false;
    }
    /**
     * 獲取單選框的值,沒有選中返回null
     * 
     * @param frmname 表單名稱
     * @param name  字段名稱
     */
    ,"getRadioValue":function(frmname, name) {
        var form = document.forms[frmname];
        var eles = form[name];
        var value = null;
        if (typeof(eles) != "undefined") {

        for (var i=0; i<eles.length;i++) {
            if (eles[i].checked){
                value = eles[i].value;
            }
        }
        }
        return value;
    }
    /**
     * 獲取下拉框的值,默認返回null
     * 
     * @param frmname 表單名稱
     * @param name  字段名稱
     */
    ,"getSelectValue":function(frmname, name) {
        var form = document.forms[frmname];
        var ele = form[name];
        var value = null;
        if (typeof(ele) != "undefined") {
				
       	value = ele.value;
        }
        return value;
    }
     /**
     * 獲取單選框的值,沒有選中返回0
     * 
     * @param frmname 表單名稱
     * @param name  字段名稱
     */
    ,"getCheckboxValue":function(frmname, name) {
        var form = document.forms[frmname];
        var ele = form[name];
        var value = 0;
        if (typeof(ele) != "undefined") {
					if (ele.checked){
						value = 1	;	
					}
        }
        return value;
    }
    /**
     * 獲取多個文本框的值.
     *
     * @param frmname 表單名稱
     * @param name  字段名稱
     * @return array
     */
    ,"getValues":function(frmname, name) {
        var form = document.forms[frmname];
        var eles = form[name];
        var values = new Array();
        var index = -1;
        for (var i=0; i<eles.length;i++) {
            
            if (eles[i].type=="checkbox" || eles[i].type=="radio") {
                if (eles[i].checked) {
                    index++;
                    values[index] = eles[i].value;
                }
            }
            else {
                index++;
                values[index] = eles[i].value;
            }
        }
        return values;
    }
    /**
     * 將當前頁加入收藏夾.
     */
    ,"addFavorite":function() {
        window.external.addFavorite(document.location.href, document.title);
    }
    /**
     *初始化文本框默認值事件
     */
    ,"inputFocus":function(obj) {
        //var obj = document.getElementById(id);
        if (obj.title == "") {
            obj.title = obj.value;
            obj.onfocus = function() {
              if (this.value==this.title) {
                  this.value = "";
              }
            }
            obj.onblur = function() {
                if (this.value=="") {
                  this.value = this.title;
              }
            }
        }
        obj.value = "";        
    }
    /**
     * 獲取版面名稱
     */ 
    ,"getBoardName":function(boardid) {
        DWREngine.setAsync(false);
        var boardName = null;

        Dwr.getBoardName(boardid, function(data){
            /*
            if (data != null && typeof data == 'object') {
                alert(dwr.util.toDescriptiveString(data, 2));
            }
            else {
              var content = (dwr.util.toDescriptiveString(data, 1));
              boardName = content;
            }
            */
            boardName = data;
        });
        DWREngine.setAsync(true);
        return boardName;
    }
    ,"getBytes":function(str) {
        if (str == null) {
            return 0;
        }
        var bytes = 0;
        for(i=0;i<str.length;i++){
            var c = str.charCodeAt(i);
            if((c>=0 && c<=255)||(c>=0xff61 && c<=0xff9f)){
                bytes += 1;
            }else{
                bytes += 2;
            }
        }
        return bytes;
    }
    /**
     * 刷新當前頁面
     */
    ,"reload":function () {
        window.location.reload();
    }
    /**
     * 重新訪問當前頁面，而不刷新頁面裡調用的其他文件
     */
    ,"reloadPage":function() {
        location.href = location.href;
    }
    ,"noreload":function(res_id) {
        var obj = document.getElementById(res_id);
        obj.style.display = "none";
    }
  /**
   * 圖片縮放
   */
  ,"imageZoom":function(articleid) {
        var obj = $("content_"+articleid);
        var imgs = obj.getElementsByTagName("IMG");
        for (var i=0;i<imgs.length;i++) {
            if (imgs[i].width > 600) {
                imgs[i].width = 600;
            }
            
        }
    }


      /**
   * 圖片縮放
   */
  ,"imgZoom":function(obj) {
        if (obj.width > 600) {
            obj.width = 600;
        }
        var pNode = obj.parentNode;
        if(pNode.tagName.toLowerCase() != "a" ){
          var aTagObj = document.createElement("a");
          aTagObj.href = obj.src;
          aTagObj.target = "_blank";
          pNode.insertBefore(aTagObj,obj);
          aTagObj.appendChild(obj);

          //var oldObj = obj.cloneNode(false);
          //obj.applyElment(aTagObj,"outside");
          //obj.replaceNode(aTagObj);
          //alert(aTagObj.href);
        }
    }
   /**
   *去掉字符串的前後空格
   */
   ,"trim":function(str) {
	  	return    str.replace(/(^\s*)|(\s*$)/g,    "");
	}

	,"showDiv":function(eventId,divobj,showdivname){
		if (eventId == "undefined")
		{
			return;
		}
		if (divobj ==  null || divobj == "undefined")
		{
			return;
		}
		if ($(showdivname) == null || $(showdivname) == "undefined")
		{
			return ;
		}
		clearTimeout(eventId);
		divobj.onmouseout=function(){
			eventId=setTimeout("BbsUtil.hideDiv('" + showdivname + "')",100);
		}
		$(showdivname).style.display="block";
		$(showdivname).onmouseover=function(){
			clearTimeout(eventId);
			$(showdivname).style.display="block";
		}
		$(showdivname).onmouseout=function(){
			BbsUtil.hideDiv(showdivname);
		}
	}
	,"hideDiv":function(hidedivname){
		if ($(hidedivname) == null || $(hidedivname) == "undefined")
		{
			return;
		}
		$(hidedivname).style.display = "none";
	}
	,"subStringByByte":function(srcText,maxByte){
		var tempText = "";
		var count = 0;
		for (i=0;i<srcText.length;i++)
		{
			if (srcText.charCodeAt(i)>255){
				count += 2;
			} 
			else{
				count++;
			}
			if(count > maxByte){ 
				return tempText;
			}
			tempText += srcText.charAt(i);
		}
		return srcText;

	}
	,"checkTextNum":function(srcObj,maxByte,showObj){
		if (srcObj != null && showObj != null )
		{
			var bytes = this.getBytes(srcObj.value);
			var num = ((maxByte-bytes)/2);
			if (num < 0) {
			  srcObj.value = this.subStringByByte(srcObj.value,maxByte);
			  num = 0;
			}
			showObj.innerHTML = num;
		}
	}
	,"copyTitle":function(title){
		var txt= window.document.location.href;
		txt += '\r\n' + title;
		try {
			clipboardData.setData('Text', txt);
			alert("您已成功複製本貼標題和鏈接地址，歡迎您推薦給您的朋友！");
		}
		catch(e) {
			alert("「複製到剪貼簿功能」還不兼容您使用的瀏覽器.");
		}
	}
	
	,"copyToClipBoard":function(clipname,title){
		var clipBoardContent='';
		clipBoardContent += window.document.location.href;
		if (title != null || title != ""){
			clipBoardContent += '\r\n' + title;;
		}
		this.copy_clip(clipBoardContent);
		$(clipname).innerHTML="複製成功請推薦給您的好友";
	}
   ,"copy_clip":function(text2copy){
		if (window.clipboardData)
		{
			window.clipboardData.setData("Text",text2copy);
		}
		else
		{
			var flashcopier = 'flashcopier';
			if(!document.getElementById(flashcopier))
			{
				var divholder = document.createElement('div');
				divholder.id = flashcopier;
				document.body.appendChild(divholder);
			}
			document.getElementById(flashcopier).innerHTML = '';
			var divinfo = '<embed src="http://swf.news.163.com/2008/clipBoard.swf?data='+text2copy+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
			document.getElementById(flashcopier).innerHTML = divinfo;
		}
		return true;
	}
}

var Userinfo = {
    "init":""
    ,"userinfo":null

    ,"getUrl":function() {
        //添加username為了解決多個用戶登錄緩存文件會共享的問題
        var url = all_virpath + "member/logout.aspx";    //all_virpath + "dialog/userinfo.aspx?username="+BbsCookie.getPassport();  
        return url;
    }
    /**
     * 加載用戶信息
     */
    ,"loadUserinfo":function() {
        if (this.userinfo == null) {
            var username = BbsCookie.getPassport();
            if (BbsCookie.isLogined() && username!="" && username!=null)
            {
                //handle
            }
            else {
                BbsUtil.showLoginInfo();
            }
        }
    }
    /**
     * 重新加載用戶信息（會自動清除客戶端緩存）
     */ 
    ,"reloadUserinfo":function() {
        this.userinfo = null;
        var url = this.getUrl();
        
        new Ajax.Request(url, {method: 'get',requestHeaders:["If-Modified-Since","0"], onComplete:function(obj){
            Userinfo.loadUserinfo();
        }});
    }

    /**
     * 刪除用戶信息
     */
    ,"removeUserinfo":function() {
        this.userinfo = null;
        var url = this.getUrl();
        new Ajax.Request(url, {method: 'get',requestHeaders:["If-Modified-Since","0"], onComplete:function(obj){}});
    }

    ,"getUserinfo":function() {
        if (this.userinfo == null) {
            return {};
        }
        else {
            return this.userinfo;
        }
    }
    ,"setUserinfo":function(userinfo1) {
        this.userinfo = userinfo1;
    }
    ,"updateNickname":function(userid,nickname) {
        Dwr.updateNickname(userid,nickname);
    }

    /**
     * 獲取暱稱
     */
    ,"getNickname":function() {
        var nickname = this.getUserinfo().nickname;
        if (nickname == null || nickname=="") {
            nickname = BbsCookie.getPassport();
        }
        return nickname;
    }
    ,"getMessageCount":function() {
        var messageCount =  this.getUserinfo().messageCount;
        if (messageCount == null || messageCount == "") {
            return "0";
        }
        else {
            return messageCount;
        }
    }
}

var MyXml = {
  "init":""
  ,"getValue":function(node, name) {
      return node.getElementsByTagName(name)[0].firstChild.data;
  }
}


var BbsBoard = {
  "init":""
  /**
   * 添加搜藏版面
   */
  ,"addMyFavorite":function(boardid) {
      if (!BbsCookie.isLogined()) { //未登錄
          Bbs.showLoginDialog(true);  //顯示登錄框，登錄成功後自動回調
          return;
      }

      Dwr.addMyFavorite(boardid, function(data) {
          
          var obj = $("myCollection");
          if (obj != null) {
              BbsLeft.loadMyFavorite();
              obj.style.display = "block";
          }
          
          alert(data);
      });
  }
  
  ,"addMyFavorite_Yiba":function(boardid) {
      if (!BbsCookie.isLogined()) { //未登錄
          Bbs.showLoginDialog(true);  //顯示登錄框，登錄成功後自動回調
          return;
      }

      Dwr.addMyFavorite_Yiba(boardid, function(data) {
          
          var obj = $("myCollection");
          if (obj != null) {
              BbsLeft.loadMyFavorite();
              obj.style.display = "block";
          }
          
          alert(data);
      });
  }

  /**
   * 刪除搜藏版面
   */
  ,"deleteMyFavorite":function(boardid) {
      if (!BbsCookie.isLogined()) { //未登錄
          Bbs.showLoginDialog(true);  //顯示登錄框，登錄成功後自動回調
          return;
      }


      if (!confirm("是否確認刪除該版面？")) {
          return;
      }

      Dwr.deleteMyFavorite(boardid, function(data) {
          var obj = $("myCollection_"+boardid); //隱藏

          if (obj != null) {
              obj.style.display = "none";
          }
      });
  }
  
  /**
   * 刪除搜藏版面
   */
  ,"deleteMyFavorite_Yiba":function(boardid) {
      if (!BbsCookie.isLogined()) { //未登錄
          Bbs.showLoginDialog(true);  //顯示登錄框，登錄成功後自動回調
          return;
      }


      if (!confirm("是否確認刪除該版面？")) {
          return;
      }

      Dwr.deleteMyFavorite_Yiba(boardid, function(data) {
          var obj = $("myCollection_"+boardid); //隱藏

          if (obj != null) {
              obj.style.display = "none";
          }
      });
  }
}



var BbsXml = {
  "init":""
  ,"load":function(url, params, responseFunction ) {
      var options = {method: "get", parameters: params, onComplete: responseFunction};
      new Ajax.Request(url, options);
  }
  ,"getNodeValue":function(node, name) {
      return node.getElementsByTagName(name)[0].firstChild.data;
  }
}

var YibaLogin = {
    /**
     * 登錄窗口初始化操作
     */
    "init":function() {
    }
    ,"getForm":function(frameName) {
        return document.forms[frameName];
    }
    /**
     * 登錄窗口提交驗證
     */
    ,"dopost":function(frameName) {
        var form = this.getForm(frameName);
        if (form.username.value == "") {
            alert("請輸入您的用戶名.");
            form.username.focus();
            return false;
        }
        if (form.password.value == "") {
            alert("請輸入密碼.");
            form.password.focus();
            return false;
        }
        Userinfo.removeUserinfo();//清空用戶信息
        var url = form.url.value;
        Bbs.loginPassport(form.username.value, form.password.value, Bbs.loginCallback);
        return false;
    }
    /**
     *登錄條驗證
     */
    ,"dopost_return":function(frameName) {
        var form = this.getForm(frameName);
        if (form.username.value == "") {
            alert("請輸入您的用戶名");
            form.username.focus();
            return false;
        }
        if (form.password.value == "") {
            alert("請輸入您的密碼");
            form.password.focus();
            return false;
        }
        Userinfo.removeUserinfo();


        var url = form.url.value;

        Bbs.loginPassport(form.username.value, form.password.value, Bbs.loginCallback);
        return true;
    }
}