现在的位置: 首页 > 综合 > 正文

qq js

2013年02月09日 ⁄ 综合 ⁄ 共 41236字 ⁄ 字号 评论关闭

function getParameter(name)
{
var paramStr=location.search;
if(paramStr.length==0)return null;
if(paramStr.charAt(0)!='?')return null;
paramStr=unescape(paramStr);
paramStr=paramStr.substring(1);
if(paramStr.length==0)return null;
var params=paramStr.split('&');
for(var i=0;i<params.length;i++)
{
var parts=params[i].split('=',2);
if(parts[0]==name)
{
if(parts.length<2||typeof(parts[1])=="undefined"||parts[1]=="undefined"||parts[1]=="null")return "";
return parts[1];
}
}
return null;
}

function getcookie(name)
{
 var arg=name+"=";
 var alen=arg.length,clen=document.cookie.length,i=0;
 while(i<clen){
  var j=i+alen;
  if(document.cookie.substring(i,j)==arg) return _getCookieVal(j);
  i=document.cookie.indexOf(" ",i)+1;
  if(i==0)break;
 }
 return null;

 function _getCookieVal(offset){
  var endstr;
  try{endstr=document.cookie.indexOf(";",offset);
   if(endstr==-1)endstr=document.cookie.length;
   return unescape(document.cookie.substring(offset,endstr));
  }catch(e){
   return ""
  }
  finally{}
 }
}
/*
function getcookie(name)
{
        var my_cookie = document.cookie;
        var start = my_cookie.indexOf(name + '=');
        if (start == -1) return '';
       
        start += name.length + 1; //1 stands of '='
       
        var end = my_cookie.indexOf(";" ,start);
        if (end == -1) end = my_cookie.length;
        return my_cookie.substr(start, end - start);
}
*/
function setcookie(name,value,open)
{
        var nextyear = new Date();
        var cookie= name + '=' + value;
       
        if (open)
        {
                nextyear.setFullYear(nextyear.getFullYear() + 1);
        }
        else
        {
                nextyear.setFullYear(1970);
        }
        cookie += '; expires=' + nextyear.toGMTString();
        cookie += '; path=/';
        cookie += '; domain=wizard.webdev.com';       
        document.cookie=cookie;
}
function checkEmail(str)
{
 
   //如果为空,则通过校验
 
      if(str == "")
        return true;
  
      if (str.charAt(0) == "." || str.charAt(0) == "@" || str.indexOf('@', 0) == -1
   || str.indexOf('.', 0) == -1 || str.lastIndexOf("@") == str.length-1 || str.lastIndexOf(".") == str.length-1)
        return false;
  
      else
        return true;

}
function IsDigit(digitnum)
{
        if (digitnum == undefined)
        {
                return false;
        }      
        if (typeof digitnum != "string")
        {
                return false;
        }               
                       
        var re=/[^0-9]/;
        var ret = digitnum.match(re);
        if (ret == null)
        {
                return true;
        }
        else
        {
                return false;
        }
}

function MyParseInt(digitnum)
{
       
        if (IsDigit(digitnum))
        {
                if (digitnum == "")
                {
                        return 0;
                }
                else
                {
                        return parseInt(digitnum);
                }
        }
        else
        {
                return 0;
        }
}

function ChkEn(w)
{
   if(/^(/d|-|_|[a-z]|[A-Z])+$/.test(w))
      return w;
   else
      return "";
}

String.prototype.trim = function()
{
    return this.replace(/(^[/s]*)|([/s]*$)/g, "");
}

function f_trim(inputString) {
        if (typeof inputString != 'string') { return inputString; }
        var retValue = inputString;
        var ch = retValue.substring(0, 1);
        while (ch == ' ' || ch == '/r' || ch == '/n') {
        retValue = retValue.substring(1, retValue.length);
        ch = retValue.substring(0, 1);
        }
        ch = retValue.substring(retValue.length-1, retValue.length);
        while (ch == ' ' || ch == '/r' || ch == '/n') {
        retValue = retValue.substring(0, retValue.length-1);
        ch = retValue.substring(retValue.length-1, retValue.length);
        }
        return retValue;
}
String.prototype.realLength = function()
{return this.replace(/[/u4E00-/u9FA5]|[/uFE30-/uFFA0]/gi,"**").length;}

function String.prototype.HtmlTextDecode()
{
        var tmpstr = this;  
        var re= /"/g;    
        tmpstr = tmpstr.replace(re,"/"");    
        re =/<br//>/g;
        tmpstr = tmpstr.replace(re,"/n");    
        re = /</g;
        tmpstr = tmpstr.replace(re,"<");    
        re = />/g;
        tmpstr = tmpstr.replace(re,">");    
        re = /&/g;
        tmpstr = tmpstr.replace(re,"&");      
        return tmpstr;
}

function String.prototype.HtmlTextEncode()
{
        var tmpstr = this;
        var re = /&/g;
        tmpstr = tmpstr.replace(re,"&");         
        re= /"/g;            
        tmpstr = tmpstr.replace(re,""");    
        re =///n/g;
        tmpstr = tmpstr.replace(re,"<br>");    
        re = /</g;
        tmpstr = tmpstr.replace(re,"<");    
        re = />/g;
        tmpstr = tmpstr.replace(re,">");           
        return tmpstr;
}

function String.prototype.TransDoubleQuto()
{
        /*
        var tmpstr = this;  
        var re= /"/g;            
        tmpstr = tmpstr.replace(re,""");
        return tmpstr;
        */
}

function String.prototype.TransSingleQuto()
{
        /*
        var tmpstr = this;  
        var re= /'/g;            
        tmpstr = tmpstr.replace(re,""");
        return tmpstr;
        */
}

function ResultItem(result, resultstr)
{
        this.result = result;
        this.resultstr = resultstr;
}

function XmlDocCheck(xDoc)
{
        if (xDoc)
        {
                var nodes = xDoc.selectNodes("/data");
                var result = nodes[0].selectSingleNode("result").text;
                if (result == 0)
                {                     
                        return 0;
                }
                else
                {
                        var resultstr = nodes[0].selectSingleNode("resultstr").text;                       
                        return new ResultItem(result, resultstr);
                }
        }
        return "xDoc invalid";
}
function checkIsChinese(str)
{
    if (str == "") return false;
 var pattern = /^([/u4E00-/u9FA5]|[/uFE30-/uFFA0])*$/gi;
    if (pattern.test(str))
        return true;
    else
        return false;
}
function reallen( str )
{
 var len = 0;
 for(i=0;i<str.length;i++)
 { 
  if(checkIsChinese(str.charAt(i))) len+=2;
  else len+=1;
 }
 return len;
}
function cutstring(str,len)
{
 var rl=0;
       
        for(i=0;i<str.length;i++)
 {
  if(str.charCodeAt(i)>255)
  {
   rl+=2;
  } 
  else
  {
   rl++;
  }
  if(rl>len)return str.substr(0,i);  
 }
 return str;
}

function checklen(obj,len)
{
 if(reallen(obj.value)>len)obj.value=cutstring(obj.value,len);
 
}
function keyup(num,obj,show)
{
  var infos = document.getElementById(show);
  var input = document.getElementById(obj);

  curlen = reallen(obj.value);
  last = num-curlen;
  if(curlen<=num)
  {infos.innerText="目前您输入的文字长度为"+curlen+"个字符,您还可以输入"+last+"个字符";}
  else
  {infos.innerText="目前您输入的文字长度为"+curlen+"个字符,已经超过"+Math.abs(last)+"个字符,请减少"+Math.abs(last)+"个字符";}
}

function IntTo2Str(tmpint) //两位字符串
{
        var tmpstr="";
        if (tmpint < 10)
        {
                tmpstr = "0" + tmpint;
        }
        else
        {
                tmpstr = tmpint;
        }
        return tmpstr;
}

function Date.prototype.TologTimeStr()
{
        var tmpstr = IntTo2Str(this.getMonth() + 1) + "." + IntTo2Str(this.getDate()) + " " + IntTo2Str(this.getHours()) + ":" +
                IntTo2Str(this.getMinutes()); // + ":" + IntTo2Str(this.getSeconds());
        return tmpstr;
}
function setCookie (name, value) {
  document.cookie = name + "=" + value + "; path=/;expires=Thursday,01-Jan-2099 00:00:00 GMT; domain=qq.com";
}

function getCookie(name) {

  var search;

  search = name + "=";
  offset = document.cookie.indexOf(search);
  if (offset != -1) {
    offset += search.length ;
    end = document.cookie.indexOf(";", offset) ;
    if (end == -1)
      end = document.cookie.length;
    return unescape(document.cookie.substring(offset, end));
  }
  else
    return "";
}

//copy from qzone portaljs,which used to show user qzone link..
function openUserSpace(uin){
        var openUrl = "http://"+uin+".qzone.qq.com/";
        if (parseInt(uin)==10){
                alert("该用户使用了隐身草道具,真实身份已被隐藏");
                return;
        }
  if (getCookie("clientver") == "")
     window.open(openUrl, "space", "width=925,height=655");
  else
     window.top.location=openUrl;
}

 

var r_single_node = /selectSingleNode match="([^"]+)"/
var r_single_node_content = /<%selectSingleNode[^>]*%>((.|/n)+)<%_selectSingleNode%>/

var r_repeat_match_1 = /repeat_1 match="([^"]+)"/
var r_repeat_content_1 = /<%repeat_1[^>]*%>((.|/n)+)<%_repeat_1%>/

var r_index = /<%=index%>/g
var r_text = /<%=text%>/g
var r_attribute_global = /<%=@(/w+)(_/d)*%>/g
var r_attribute = /<%=@(/w+)%>/

//escape '
String.prototype.escapejs1 = function()
{
    var _str=this.replace(/&#(/d+);/g,function($1,$2){if($2<=30)return "?";else return "&#"+$2;});
    return _str.replace(//'/g, "///'").replace(/'/g, "///'").replace(/
/g, "<br>").replace(/
/g, "<br>").replace(//r/g, "<br>").replace(//n/g, "<br>");
}

//escape "
String.prototype.escapejs2 = function()
{
    return this.replace(//"/g, "///"").replace(/"/g, "///"").replace(/
/g, "<br>").replace(/
/g, "<br>").replace(//r/g, "<br>").replace(//n/g, "<br>");
}
//escape ' "
String.prototype.escapejs3 = function()
{
    return this.replace(//'/g, "///'").replace(//"/g, "///"").replace(/'/g, "///'").replace(/"/g, "///"").replace(/
/g, "<br>").replace(/
/g, "<br>").replace(//r/g, "<br>").replace(//n/g, "<br>");
}

function fillDIVN(divId,xDocId,fillnum,begin){
 if (!xDocId) xDocId = divId;
 var div = document.getElementById(divId);
 if (!div) {alert("指定的模版容器不"+divId+"存在");return;}
 var xDoc= g_XDoc[xDocId];
 
 
 var templetHTML;  
 if (div.oldHTML)
 {
  templetHTML = div.oldHTML;
 }
 else
 {
  templetHTML = div.oldHTML = div.innerHTML;
 }
 
 templetHTML = templetHTML.replace(//[%/g,"<%").replace(/%/]/g,"%>").replace(//{%/g,"<%").replace(/%/}/g,"%>").replace(//<!--%/g,"<%").replace(/%-->/g,"%>")
 div.innerHTML = doFill(templetHTML,xDoc,0,fillnum,begin);  
 div.style.display = ""
}

function fillDIV(divId,xDocId){
 if (!xDocId) xDocId = divId;
 var div = document.getElementById(divId);
 if (!div) {alert("指定的模版容器不"+divId+"存在");return;}
 var xDoc= g_XDoc[xDocId];
 
 
 var templetHTML;  
 if (div.oldHTML)
 {
  templetHTML = div.oldHTML;
 }
 else
 {
  templetHTML = div.oldHTML = div.innerHTML;
 }
 
 templetHTML = templetHTML.replace(//[%/g,"<%").replace(/%/]/g,"%>").replace(//{%/g,"<%").replace(/%/}/g,"%>").replace(//<!--%/g,"<%").replace(/%-->/g,"%>")
 div.innerHTML = doFill(templetHTML,xDoc,0);  
 div.style.display = ""
}

function FillTempStr(divObj, xDoc, templateStr, fillnum, begin)
{
 var tmpStr  = templateStr.replace(//[%/g,"<%").replace(/%/]/g,"%>").replace(//{%/g,"<%").replace(/%/}/g,"%>").replace(//<!--%/g,"<%").replace(/%-->/g,"%>");
 divObj.innerHTML = doFill(tmpStr, xDoc, 0, fillnum, begin);
 divObj.style.display = "";
}

function FillTempStrWithReturn(xDoc, templateStr, fillnum, begin)
{
 var tmpStr  = templateStr.replace(//[%/g,"<%").replace(/%/]/g,"%>").replace(//{%/g,"<%").replace(/%/}/g,"%>").replace(//<!--%/g,"<%").replace(/%-->/g,"%>");
 return doFill(tmpStr, xDoc, 0, fillnum, begin);
}

function doFill(templetHTML,xDoc,xLevel, fillnum, beginnum){
 
 var stRegPrefix = "<%repeat_"+xLevel+"//s*match=/"([^/"]+)/"[^%]*%>";
 var stRegContent = "<%repeat_"+xLevel+"[^>]*%>((.|//n)+)<%_repeat_"+xLevel+"%>";

 var r_repeat_match = new RegExp(stRegPrefix);
 var r_repeat_match_global = new RegExp(stRegPrefix,"g");
 var r_repeat_content = new RegExp(stRegContent);
 var r_repeat_match_next_level = new RegExp("<%repeat_"+(xLevel+1)+" match=/"([^/"]+)/"");

 if (templetHTML.match(r_repeat_match)==null){
  alert("没有找到xml节点<%repeat_"+(xLevel)+"%>");
  return;
 }

 var arPrefix = templetHTML.match(r_repeat_match_global);
 var startPosition = 0;
 
 for (var i=0;i<arPrefix.length;i++){
  var st = arPrefix[i];
  
  var nodePath = st.replace(/^.*match=/"|/".*$/g,""); //获得xml节点路径
  
  if (st.indexOf("callback")>0)
   var fnCallBack = eval(st.replace(/^.*callback=/"|/".*$/g,"")); //获得回调函数
  if (st.indexOf("precallback") > 0)
      var preCallBack =eval(st.replace(/^.*callbackpre=/"|/".*$/g,"")); //获得前置回调函数  
  startPosition = templetHTML.indexOf(st);
  var endPosition = templetHTML.indexOf("<%_repeat_"+xLevel+"%>",startPosition);
  var replaceContent = templetHTML.substring(startPosition,endPosition+13)
  startPosition += st.length;
  var repeatContent = templetHTML.substring(startPosition,endPosition); //获得内容模板
  
  var nodes = xDoc.selectNodes(nodePath); //获得xml节点
  var arContent = [];
  var attributes = repeatContent.match(r_attribute_global);
  var escapeFun=0;
  if (attributes == null) attributes = [];
  
  
  var realbegin = 0;
  if (beginnum != undefined)
  {
          realbegin = (parseInt(beginnum) > nodes.length)?0:parseInt(beginnum);
  }
  
         var realnum = nodes.length;
         if (fillnum != undefined)
         {
                 if (parseInt(fillnum) > 0)
                 {
                         realnum = (parseInt(fillnum) < (nodes.length - realbegin))?parseInt(fillnum):(nodes.length - realbegin);
                 }                
         }
         
  
  for (var j=realbegin;j<realbegin+realnum;j++){
   var node = nodes[j];  
   if (node == undefined)
   {
    continue;
   }
   var content = repeatContent;
   if (repeatContent.match(r_repeat_match_next_level)!=null) //处理子节点
    content = doFill(repeatContent,node,xLevel+1)
   var s = content.replace(r_index,(j+1)).replace(r_text,node.text);
   if (preCallBack) //预处理
    preCallBack(s, node);
    
   for (var k=0;k<attributes.length;k++){
                escapeFun=attributes[k].replace(//W/g,"").replace(/.*_(/d)/g,"$1").match(//d/);
    var attrTag = attributes[k].replace(//W/g,"").replace(/_/d$/,"");
    var attrValue = nodes[j].getAttribute(attrTag);
    if (attrValue==null && nodes[j].selectSingleNode(attrTag)!=null)
     attrValue = nodes[j].selectSingleNode(attrTag).text;
    if (attrValue==null) attrValue = "";
    if(escapeFun)
    {
        if(escapeFun>0)
        {
            if(attrValue)
            {
                attrValue=eval('attrValue.escapejs'+escapeFun+'()');
            }
        }
    }
    s = s.replace(attributes[k],attrValue);
   }
   
   arContent[j] = s;
   if (fnCallBack) fnCallBack(node,arContent,j); //后处理
  }
  templetHTML = templetHTML.replace(replaceContent,arContent.join(""));
  
 }  
 return templetHTML;
}

 

//通过XMLHTTP回调的请求
function fillxmlhttprequest(fillid, geturl,succeedcallback,xmlpath)
{
 var xmlhttp = CreateXmlHttpObj(); 
 xmlhttp.onreadystatechange = function()
 {
  if (xmlhttp.readyState == 4)
  {
   if (xmlhttp.status == 200)
   {        
    g_XDoc[fillid] = xmlhttp.responseXML;   
    var nodes = g_XDoc[fillid].selectNodes(xmlpath==undefined ? "/data/item":xmlpath);    
    if (nodes.length > 0)
    {
     fillDIV(fillid);
    }
    else
    {       
     eval("document.all." + fillid + ".style.display='none'"); 
    }
    var callback = eval(succeedcallback);
    if (callback) callback();
   }    
  }
 }  
 xmlhttp.open("GET", geturl, true); 
 xmlhttp.setRequestHeader("If-Modified-Since","0");
 xmlhttp.setRequestHeader("Content-Type","text/html")
 xmlhttp.send(); 
 return;
}

function AsyncHttpRequest(method, url,callobj,poststr, flag)
{
 var xmlhttp = CreateXmlHttpObj(); 
 xmlhttp.onreadystatechange = function()
 {
  if (xmlhttp.readyState != 4)  //加载过程中的处理, 一般情况是用一个加载中来处理
  {
   if (callobj.processcallback != undefined)
   {
    callobj.processcallback(xmlhttp, flag);
   }   
  }
  else if (xmlhttp.readyState == 4) //加载完之后的处理
  { 
          if (xmlhttp.status == "200")  
          {
           if (callobj.completeCallback != undefined) 
           {          
            callobj.completeCallback(xmlhttp, flag);
           }
   }
   else
   {
           if(callobj.errorCallback !=undefined)
           {
               callobj.errorCallback(xmlhttp);
           }
   }
  }
 }  
 var sPoststr = "";
 if (method == "GET")
 { 
  sPoststr = "";
 }
 else
 { 
  sPoststr = poststr;
 }
 xmlhttp.open(method, url, true); 
 xmlhttp.setRequestHeader("If-Modified-Since","0");
 xmlhttp.setRequestHeader("Content-Type","text/html"); 
 xmlhttp.send(sPoststr); 
 return;
}

function SyncHttpRequest(method, url, poststr)
{
 var xmlhttp = CreateXmlHttpObj();  
 var sPoststr = "";
 if (method == "GET")
 { 
  sPoststr = "";
 }
 else
 { 
  sPoststr = poststr;
 } 
 xmlhttp.open(method, url, false); 
 xmlhttp.setRequestHeader("If-Modified-Since","0");
 xmlhttp.setRequestHeader("Content-Type","text/html") 
 xmlhttp.send(sPoststr);  
 return xmlhttp;
}

/*
function AsyncHttpPostRequest(posturl, poststr, callobj, flag)
{
 var xmlhttp = CreateXmlHttpObj(); 
 xmlhttp.onreadystatechange = function()
 {
  if (xmlhttp.readyState != 4)  //加载过程中的处理, 一般情况是用一个加载中来处理
  {
   if (callobj.processcallback != undefined)
   {
    callobj.processcallback(xmlhttp, flag);
   }   
  }
  else if (xmlhttp.readyState == 4) //加载完之后的处理
  {   
   if (callobj.completeCallback != undefined) 
   {
    callobj.completeCallback(xmlhttp, flag);
   }
  }
 }  
 xmlhttp.open("POST", geturl, true); 
 xmlhttp.setRequestHeader("If-Modified-Since","0");
 xmlhttp.setRequestHeader("Content-Type","text/html")
 xmlhttp.send(poststr); 
 return;
}
*/

function CreateXmlHttpObj()
{
 var xmlhttp=false;
 try
 {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 }
 catch (e)
 {
  try
  {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch (E)
  {
   xmlhttp = false;
  }
 }
 //for firefox
 if (!xmlhttp && typeofXMLHttpRequest!='undefined')
 {
   xmlhttp = new XMLHttpRequest();
 }
 return xmlhttp;
}

//通过XMLHTTP回调的请求
function fillgetxmlrequest(fillid, geturl,succeedcallback,groupid,typevalue)
{
 var xmlhttp = CreateXmlHttpObj(); 
 xmlhttp.onreadystatechange = function()
 {
  if (xmlhttp.readyState == 4)
  {
    try{xmlhttp.status}catch(e){return;}
   if (xmlhttp.status == 200)
   {        
    
    g_XDoc[fillid] = xmlhttp.responseXML;  
    var result = g_XDoc[fillid].selectSingleNode("/data/result");
    if (result.text == 0)
    {
     var nodes = g_XDoc[fillid].selectNodes("/data/item");    
     if (nodes.length > 0)
     {
      fillDIV(fillid);
      document.all[fillid].style.display="";
     }
     else
     {       
      eval("document.all." + fillid + ".style.display='none'"); 
     }
     var callback = eval(succeedcallback);
     if (callback) callback();
    }
      else
            {
     var resultstr =g_XDoc[fillid].selectSingleNode("/data/resultstr"); 
     
     window.location.href = "/error.htm?msgid="+resultstr.text+"&groupid="+groupid+"&type="+typevalue;
     return ;
    }
   } 
   else
             {
                        window.location.href = "/error.htm";
               } 
  }
 }  
 xmlhttp.open("GET", geturl, true); 
 xmlhttp.setRequestHeader("If-Modified-Since","0");
 xmlhttp.setRequestHeader("Content-Type","text/html")
 xmlhttp.send(); 
 return;
}

//定义操作类型
 window.onerror = function()
 {
  return true;
 }
var LOADWEBLOGLIST = 0;
var ADDWEBLOG = 1;
var DELWEBLOG = 2;
var MODWEBLOG = 3;
var LOADWEBLOG = 4;
var LOADWEBLOGNUM =5;
var LOADCOMMENTLIST=6;
var LOADCOMMENTNUM=7;
var ADDCOMMENT=8;
var DELCOMMENT=9;
var MODIFYCOMMENT=10;

var WEBLOGSETTOP=11;
var WEBLOGCANCELTOP=12;
var WEBLOGCMCLOSE=13;
var WEBLOGCMOPEN=14;
var BATCHDELWEBLOG=15;
var BATCHMODARTICLECLASS=16;

var WEBLOGNUMOFPAGE=20; //每页论坛列表个数
var COMMENTNUMOFPAGE=10;//每页评论列表个数

var WEBLOGCOMTYPE=0;
var PHOTOCOMTYPE=1;

var OTHERERROR=-1;
var WEBLOGSRVPRERROR=-2;
var USERNOTLOGIN=-3;
var USERNOTPRIVILEGES=-4;
var QQVIPGROUPEXPIRE=-5;

 

var MAXCONTENTLEN=10240;

//weblogclass 操作
var LOADWEBLOGCLASS=1;
var DELWEBLOGCLASS=2;
var MODWEBLOGCLASS=3;
var ADDWEBLOGCLASS=4;
var LOADWEBLOGCLASSINDEX=5;

var MAXCLASSNAMELEN=16;

function JWebLogData()
{

        /***********************/
        this.DivVec = new Object();
        this.xDocVec = new Object();
}

function JWebLog(groupid, classid, showuserinfo, docobj, groupuserobj, logclassobj)
{
        this.groupid = groupid;
        this.classid = classid; //文章所在的文件夹

        this.invokeid = "webloglist";
        //webloglist查询条件
        this.sclassid = 0; //系统类型      

        this.begintime = 0; //开始时间
        this.endtime = 0; //结束时间
        this.weblogpage = 1; //当前查询页码
        this.weblogtotalpage = 0; //总页数
        this.totalnum = 0;
        this.beginnum=0;

        var tmpobj = docobj.getElementById("webloglist");
        if (tmpobj)
        {
                this.templatestr = tmpobj.innerHTML;
        }
        else
        {
                tmpobj = docobj.getElementById("weblogsingle");
                this.templatestr = tmpobj.innerHTML;
        }       
        this.groupuser = groupuserobj;     
        this.logclassobj = logclassobj;

        //附加信息
        this.topList = new Object();
        this.picList = new Object();
        this.annexList = new Object();

        this.showuserinfo = showuserinfo;
        this.xDoc = undefined;
        this.docobj = docobj;
        this.currpage = 1;
}

function JWebLog.prototype.SetCurPage(curpage)
{
        this.currpage = curpage;
}

function JWebLog.prototype.GetWebLogList(page)
{
  this.LoadWeblogList((page -1)*WEBLOGNUMOFPAGE, WEBLOGNUMOFPAGE);
  this.currpage = page;
  this.LoadWebLogNum();
}

function JWebLog.prototype.SetPara(classid, begintime, endtime)
{
        this.classid = classid;
        this.begintime = begintime;
        this.endtime = endtime;
}

function JWebLog.prototype.LoadWeblogList(beginnum, num)
{
        var geturl = "/cgi-bin/getwebloglist?groupid=" + this.groupid + "&classid=" + this.classid
                + "&beginnum=" + beginnum + "&num=" + num + "&begintime=" + this.begintime +"&endtime=" + this.endtime;      
        this.beginnum = beginnum;                    
        AsyncHttpRequest("GET", geturl, this, "", LOADWEBLOGLIST);
}

function JWebLog.prototype.AddWebLog(formobj)
{
}

function JWebLog.prototype.SetTop(logid)
{
        var geturl = "/cgi-bin/weblogsettop?groupid=" + this.groupid + "&logid=" + logid;
        AsyncHttpRequest("GET", geturl, this, "", WEBLOGSETTOP);        
}

function JWebLog.prototype.CancelTop(logid)
{       
        var geturl = "/cgi-bin/weblogcanceltop?groupid=" + this.groupid + "&logid=" + logid;
        AsyncHttpRequest("GET", geturl, this, "", WEBLOGCANCELTOP);        
}

function JWebLog.prototype.WebLogCmClose(logid)
{
        var geturl = "/cgi-bin/weblogcmclose?groupid=" + this.groupid+ "&logid="+ logid ;
        AsyncHttpRequest("GET", geturl, this, "", WEBLOGCMCLOSE);
}

function JWebLog.prototype.WebLogCmOpen(logid)
{
        var geturl = "/cgi-bin/weblogcmopen?groupid=" + this.groupid+ "&logid="+ logid ;
        AsyncHttpRequest("GET", geturl, this, "", WEBLOGCMOPEN);
}

 

function JWebLog.prototype.DelWebLog(logid)
{
        if (!window.confirm("你是否要真的删除这篇文章, 删除后将无法恢复"))
        {
                return;
        }

        var geturl = "/cgi-bin/delweblog?groupid=" + this.groupid+ "&logid="+ logid ;
        AsyncHttpRequest("GET", geturl, this, "", DELWEBLOG);
}

function JWebLog.prototype.BatchDelWebLog(logidlist)
{
        if (!window.confirm("你是否要真的批删这些文章, 删除后将无法恢复"))
        {
                return;
        }
        var geturl = "/cgi-bin/batchdelweblog?groupid=" + this.groupid+ "&logidlist="+ logidlist ;
        AsyncHttpRequest("GET", geturl, this, "", BATCHDELWEBLOG);
}

function JWebLog.prototype.BatchModArticleClassId(logidlist, classid)
{      
        var geturl = "/cgi-bin/batchmodarticleclass?groupid=" + this.groupid+ "&logidlist="+ logidlist
   +  "&logclassid=" + classid;
        AsyncHttpRequest("GET", geturl, this, "", BATCHMODARTICLECLASS);
}

function JWebLog.prototype.ModifyWebLog(formobj)
{
}

//过程中的处理
function JWebLog.prototype.processcallback(xmlhttp, flag)
{
        var divObj;
        if (flag == LOADWEBLOGLIST)
        {
                divObj = this.docobj.getElementById("webloglist");
                divObj.innerHTML = "<table width=100%><tr align='center'><td><img src='http://imgcache.qq.com/group/images/group101.gif'></td></tr></table>";
        }
        else if (flag == LOADWEBLOGNUM)
        {
                divObj = this.docobj.getElementById("weblogpagenum");
                divObj.innerHTML = "正在加载文章个数......";
        }
        else if (flag == LOADWEBLOG)
        {
                divObj = this.docobj.getElementById("weblogsingle");
                divObj.innerHTML = "<table width=100%><tr align='center'><td><img src='http://imgcache.qq.com/group/images/group101.gif'></td></tr></table>";
        }      
}

//后处理
function JWebLog.prototype.completeCallback(xmlhttp, flag)
{
        if (flag == LOADWEBLOGLIST) //加载列表
        {
                //需要替换列表
                this.xDoc = xmlhttp.responseXML;
                var divObj = this.docobj.getElementById("webloglist");
                var ret = XmlDocCheck(this.xDoc);

                if (ret != 0)
                {                       
                        //divObj.innerHTML = ret.resultstr;
      /*if (ret.result == -3 || ret.result == -4)
      {
       window.location.href = "/error.htm?msgid=2&groupid=" +  this.groupid;
      }
      else
      {
       window.location.href = "/error.htm?msgid=6&groupid=" +  this.groupid;
      }*/
                        this.showuserinfo.GetUserInfo(this.invokeid);
                        return;
                }               
                var nodes = this.xDoc.selectNodes("/data/item");
                if (nodes.length == 0 && this.beginnum == 0 )
                {
      var tmpstr= "";
      if (this.classid == 0)
      {
                         tmpstr = "<p align='center'>本群论坛暂时还没有贴子</p>";
      }
      else
      {
       tmpstr = "<p align='center'>本群论坛版面暂时还没有贴子</p>";
      }
      divObj.innerHTML = tmpstr;
                        this.showuserinfo.GetUserInfo(this.invokeid);
                        return;
                }

                FillTempStr(divObj, this.xDoc, this.templatestr);
    
    var tmpobj;
    //导航条
    if (this.logclassobj != undefined)
    {
     var tmpclassname = this.logclassobj.GetClassName(this.classid);
     tmpobj = this.docobj.getElementById("logclassname");
     if (tmpobj)
     {
      if (tmpclassname != "")
      tmpobj.innerHTML = " > " + tmpclassname;
     }
    }

                var i=0;
                var tmpHtml = divObj.innerHTML;

                var tmpNewList = new Array();
                var tmpNowDate = new Date();
                var tmpNowSec = tmpNowDate.valueOf()/1000;
                //alert(tmpNowSec);
                for ( i=0; i < nodes.length; i++)
                {
                        var faceid = nodes[i].selectSingleNode("faceid").text;
                        var uin = nodes[i].selectSingleNode("uin").text;
                        var logid = nodes[i].selectSingleNode("logid").text;
                        var logstype = MyParseInt(nodes[i].selectSingleNode("logstype").text);
      var title = nodes[i].selectSingleNode("title").text;
      var classid = nodes[i].selectSingleNode("classid").text;                     

                        if (this.groupuser != undefined)
                        {
                                var uininfo = this.groupuser.GetUserInfo(uin);
                                if (uininfo)
                                {
                                        faceid = uininfo.faceid;
                                }
                        }

                        this.showuserinfo.SetUserInfoEvent(uin, faceid);

                        var flag = nodes[i].selectSingleNode("flag").text;
                        var pfFlag = nodes[i].selectSingleNode("pfflag").text;
                        if (flag == 1)
                        {
                                this.topList[logid] = 1;
                        }

                        var fflag = pfFlag & 0x02; //第二位
                        var pflag = pfFlag & 0x01; //第一位
                        if (fflag == 0x02)
                        {
                                this.annexList[logid] = 1;
                        }
                        if (pflag == 0x01)
                        {
                                this.picList[logid] = 1;
                        }

                        //时间格式替换下
                        var posttime = nodes[i].selectSingleNode("posttime").text;                           
                        if (tmpNowSec - parseInt(posttime) < 3*86400) //最新文章
                        {
                                tmpNewList.push(logid);
                        }                       

                        var tmpDate = new Date(parseInt(posttime)*1000);

                        var timestr = tmpDate.TologTimeStr();
                        var tmp = "sposttime" + logid;
                        tmpobj = this.docobj.getElementById(tmp);                    
                        if (tmpobj)
                        {                               
                                tmpobj.innerText = timestr;                               
                        }

                        //系统论坛类型
                        this.SetLogsTypeImg(logstype, logid);
                }
                this.showuserinfo.GetUserInfo(this.invokeid);
    
    //显示群的类型
    if (this.classid == 0)
    {
      var classname = "";       
      if (this.logclassobj != undefined)
      {
       if (this.logclassobj.classNameList != undefined)
       {
        var tmpclassid ;
        for (tmpclassid in  this.logclassobj.classNameList)
        {         
         var classhreflist = this.docobj.getElementsByName(tmpclassid+"href");
         
         for (var i=0; i < classhreflist.length ;i++)
         {
          classhreflist[i].innerHTML = "[" + this.logclassobj.classNameList[tmpclassid] + "]";
         }
        }
       }
      }
    }

                //设置最新文章标志
                for (var j=0; j < tmpNewList.length; j++)
                {
                        var tmpObj = this.docobj.getElementById("weblognew" + tmpNewList[j]);
                        if (tmpObj)
                        {
                                tmpObj.style.display = "block";
                        }
                }

                //设置置顶标志
                var tmpLoop;
                for (tmpLoop in this.topList)
                {
                        var tmpObj = this.docobj.getElementById("weblogtop" + tmpLoop);
                        if (tmpObj)
                        {
                                tmpObj.style.display = "block";
                        }
                        tmpObj = this.docobj.getElementById("logtitle" + tmpLoop); //粗体显示
                        if (tmpObj)
                        {
                                tmpObj.className = "graynl b01"; //
                        }
                }

                //设置附件标志
                for (tmpLoop in this.annexList)
                {
                        var tmpObj = this.docobj.getElementById("Annex" + tmpLoop);
                        if (tmpObj)
                        {
                                tmpObj.style.display = "block";
                        }
                }
                //设置图片标志
                for (tmpLoop in this.picList)
                {
                        var tmpObj = this.docobj.getElementById("Pic" + tmpLoop);
                        if (tmpObj)
                        {
                                tmpObj.style.display = "block";
                        }
                }

                //显示删除链接
                var opuin = getcookie("uin");
                var realuin =  parseInt(opuin.substr(1), 10);
                var tmpstr = "weblogdel" + realuin;
                var tmpList = this.docobj.getElementsByName(tmpstr);
                for (var i=0; i < tmpList.length; i++)
                {
                        tmpList[i].style.display = "block";
                }

                //显示批删连接
                if (this.groupuser != undefined)
                {
                        if (this.groupuser.IsAdmin(realuin))
                        {                              
                                var tmpobjs = this.docobj.getElementsByName("batchdel");
                                for (var j=0; j < tmpobjs.length; j++)
                                {
                                        tmpobjs[j].style.display = "";
                                }
                        }
                }
    
                if (window.ResizeIframe)
                {
                        ResizeIframe();
                }
        }
        else if (flag == LOADWEBLOGNUM) //获取WEBLOG数目
        {
                var xDoc = xmlhttp.responseXML;
                var ret = XmlDocCheck(xDoc);
                if (ret != 0)
                {
                        this.docobj.getElementById("weblogpagenum").innerHTML = "";
                        return;
                }               

                var nodes = xDoc.selectNodes("/data");
                var result = nodes[0].selectSingleNode("result");
                var resultstr = nodes[0].selectSingleNode("resultstr");
                if (result.text == 0)
                {
                        this.totalNum = parseInt(resultstr.text);
                        var pageobj = this.docobj.getElementById("weblogpagenum");

                        if (pageobj)
                        {
                                pageobj.innerHTML = WritePageNum(this.totalNum, this.currpage, WEBLOGNUMOFPAGE, "GoWebLogPage");                              
                                pageobj.style.display = '';
                        }
                }
                else
                {
                        var failstr = resultstr.text;
                        alert(failstr);
                }
        }
        else if (flag == LOADWEBLOG)
        {
                this.xDoc = xmlhttp.responseXML;
                var divObj = this.docobj.getElementById("weblogsingle");
                if (XmlDocCheck(this.xDoc) != 0)
                {
                        divObj.innerHTML = "加载文章失败";
                        this.showuserinfo.GetUserInfo(this.invokeid);
                        return;
                }

                FillTempStr(divObj, this.xDoc, this.templatestr);         
                var nodes = this.xDoc.selectNodes("/data/item");
                var posttime = nodes[0].selectSingleNode("posttime").text; 
    var logcontent = nodes[0].selectSingleNode("content").text; 
    var vflag = nodes[0].selectSingleNode("vflag").text;
    var re;
    
    if (vflag == 1) //旧版的帖子显示图片连接
    {
     re = /<img onload="resizeimg(this)(.*)br>/gmi;    
     logcontent = logcontent.replace(re, function($1){var tmpre=/&#(/d+);/gim;
       var str = $1.replace(tmpre, function($1, $2){return String.fromCharCode($2);}); 
       return str;});     
    }
    

    re = /
 |
/g;
    var logcontent = logcontent.replace(re, "<br>");
    re = / /g;
    logcontent = logcontent.replace(re, " ");
    re =/&nbsp;/g;
    logcontent = logcontent.replace(re, " ");
    
    
    
    
    this.docobj.all.webcontent.innerHTML = logcontent;
    
                var tmpDate = new Date(parseInt(posttime)*1000);    
                this.docobj.all.posttimeid.innerText = tmpDate.TologTimeStr();

                var classid = nodes[0].selectSingleNode("classid").text;     
                if (this.logclassobj != undefined)
                {     
      //alert(this.logclassobj.GetClassName(classid));   
      var classname = this.logclassobj.GetClassName(classid);
      if (classname == "")
      {
       this.docobj.all.logclassex.style.display = "none";
      }

      this.docobj.all.logclassname.innerHTML = classname;
                }

                //修改删除按钮显示属性
                var opuin = getcookie("uin");
                var realuin = parseInt(opuin.substr(1), 10);

                var logid = nodes[0].selectSingleNode("logid").text;
                var loguin = nodes[0].selectSingleNode("uin").text;
                var faceid = nodes[0].selectSingleNode("faceid").text;
                var posttime = nodes[0].selectSingleNode("posttime").text;
                var logstype = MyParseInt(nodes[0].selectSingleNode("logstype").text);
                //设置文章系统类型图标
                this.SetLogsTypeImg(logstype, logid);

    //采用用户最新的faceid
       if (this.groupuser != undefined)
                {
                        var uininfo = this.groupuser.GetUserInfo(loguin);      
                        if (uininfo)
                        {
                               faceid = uininfo.faceid;
                        }
                }    
                this.showuserinfo.SetUserInfoEvent(loguin, faceid);
                this.showuserinfo.GetUserInfo(this.invokeid);

 

                var cmcloseflag = nodes[0].selectSingleNode("cmcloseflag").text;
                tmpobj =  this.docobj.getElementById("publishcomment");
                if (cmcloseflag == 1)
                {   
                        tmpobj.oldHTML =  tmpobj.innerHTML;   
                        tmpobj.innerHTML = "<p align='center'>此文章评论被关闭, 不允许评论了<p>";           
                }        

                if (this.groupuser != undefined)
                {                      
                        if (this.groupuser.IsAdmin(realuin)) //是管理员
                        {
                                //删除修改按钮打开                              
                                tmpobj = this.docobj.getElementById("weblogdel");
                                tmpobj.style.display = "";
        
                                if (realuin == parseInt(loguin)) //管理员也必须是作者才能够修改文章
                                {                               
                                        tmpobj = this.docobj.getElementById("weblogmod");
                                        tmpobj.style.display = "";
                                }
        
        /*
                                //评论回复开闭
                                if (cmcloseflag == 1)
                                {
                                        tmpobj = this.docobj.getElementById("opencomment");
                                        if (tmpobj)
                                        {
                                                tmpobj.style.display = "";
                                        }
                                }
                                else
                                {
                                        tmpobj = this.docobj.getElementById("closecomment");
                                        if (tmpobj)
                                        {
                                                tmpobj.style.display = "";
                                        }
                                }
        */

                                //置顶显示
                                if (nodes[0].selectSingleNode("flag").text == 1) //置顶
                                {
                                        this.OnTopFlag();
                                }
                                else //已置顶
                                {
                                        this.NotOnTopFlag(); 
                                }
                        }
                        else
                        {
                                if (this.groupuser.IsInGroup(realuin))
                                {
                                        if (realuin ==  parseInt(loguin))
                                        {                                     
                                                tmpobj = this.docobj.getElementById("weblogdel");
                                                tmpobj.style.display = "";
            
                                                tmpobj = this.docobj.getElementById("weblogmod");
                                                tmpobj.style.display = "";       
            
            /*
                                                //评论回复开闭
                                                if (cmcloseflag == 1)
                                                {
                                                        tmpobj = this.docobj.getElementById("opencomment");
                                                        if (tmpobj)
                                                        {
                                                                tmpobj.style.display = "";
                                                        }
                                                }
                                                else
                                                {
                                                        tmpobj = this.docobj.getElementById("closecomment");
                                                        if (tmpobj)
                                                        {
                                                                tmpobj.style.display = "";
                                                        }
                                                }   
            */
                                        }
                                }
                        }                                           
                }
                //window.location.href = "#weblogsingle";
                //修改iframe的高度
                ResizeIframe();
        }
        else if (flag == DELWEBLOG)
        {
                var xDoc = xmlhttp.responseXML;
                var nodes = xDoc.selectNodes("/data");                       
                var result = nodes[0].selectSingleNode("result");        
                if (result.text == 0)
                {
                        alert("删除文章成功");            
                        //this.LoadWeblogList(0, WEBLOGNUMOFPAGE);
                        //this.LoadWebLogNum();
                        window.location.href = "/webloglist.html?groupid=" + this.groupid;
                }
                else if (result.text == USERNOTLOGIN) //没有登录
                {
                        window.open("/cgi-bin/comm_login?p=self&url=reload", '', 'width=400,height=200');
                }    
                else
                {
                        var resultstr = nodes[0].selectSingleNode("resultstr");                                      
                        var failstr = "删除文章失败" + resultstr.text;
                        alert(failstr);
                }            
        }
        else if (flag == WEBLOGSETTOP)
        {
                var xDoc = xmlhttp.responseXML;
                var resultItem = XmlDocCheck(xDoc);
                if (resultItem != 0)
                {
                        if (resultItem.result == 2)
                        {
                                alert("置顶帖子数已满");
                        }
                        else
                        {
                                alert("置顶失败" + resultItem.result);
                        }                        
                        return;
                }
                alert("置顶成功");
                this.OnTopFlag();
        }
        else if (flag == WEBLOGCANCELTOP)
        {
                var xDoc = xmlhttp.responseXML;
                if (XmlDocCheck(xDoc) != 0)
                {
                        alert("取消置顶失败");
                        return;
                }
                alert("取消置顶成功");
                this.NotOnTopFlag();
        }
        else if (flag == WEBLOGCMOPEN)
        {
                var xDoc = xmlhttp.responseXML;
                if (XmlDocCheck(xDoc) != 0)
                {
                        alert("开通评论失败");
                        return;
                }
                this.OpenCommentFlag();
        }
        else if (flag == WEBLOGCMCLOSE)
        {
                var xDoc = xmlhttp.responseXML;
                if (XmlDocCheck(xDoc) != 0)
                {
                        alert("关闭评论失败");
                        return;
                }
                this.CloseCommentFlag();
        }
        else if (flag == BATCHDELWEBLOG)
        {
                var xDoc = xmlhttp.responseXML;
                if (XmlDocCheck(xDoc) != 0)
                {
                        alert("批删失败");
                        return;
                }              
                window.location.href = "/webloglist.html?groupid=" + this.groupid + "&classid=" + this.classid;
        }
  else if (flag == BATCHMODARTICLECLASS)
  {
                var xDoc = xmlhttp.responseXML;
                if (XmlDocCheck(xDoc) != 0)
                {
                        alert("批转失败");
                        return;
                }              
    var sUrl = "/webloglist.html?groupid=" + this.groupid + "&classid=" + this.classid;   
                window.location.href = sUrl;
  }
}

function JWebLog.prototype.SetLogsTypeImg(logstype, logid)
{
        var tmpobj = this.docobj.getElementById("losgtype" + logid);
        if (tmpobj)
        {
     

抱歉!评论已关闭.