qq js

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 οnlοad="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)
        {
                var imgstr = "";
                var typename = "";
                if (SysLogType[logstype] == undefined)
                {
                        tmpobj.style.display = "none";
                        //imgstr = SysLogType[0].typeimg;
                        //typename = SysLogType[0].typename;
                }
                else
                {
                        tmpobj.src = SysLogType[logstype].typeimg;
                        tmpobj.title = SysLogType[logstype].typename;
                        tmpobj.style.display = "";
                }                                   
        }                       
}

function JWebLog.prototype.CloseCommentFlag()
{
        var tmpobj =  this.docobj.getElementById("publishcomment");
        if (tmpobj)
        {
                tmpobj.oldHTML =  tmpobj.innerHTML;   
                tmpobj.innerHTML = "<p align='center'>此文章评论被关闭, 不允许评论了<p>";                       
        }

        tmpobj = this.docobj.getElementById("closecomment");
        if (tmpobj)
        {
                tmpobj.style.display = "none";                       
        }
        tmpobj = this.docobj.getElementById("opencomment");
        if (tmpobj)
        {
                tmpobj.style.display = "";
        }
}

function JWebLog.prototype.OpenCommentFlag()
{
        var tmpobj =  this.docobj.getElementById("publishcomment");
        if (tmpobj)
        {
                if (tmpobj.oldHTML != undefined)
                        tmpobj.innerHTML = tmpobj.oldHTML;
        }
        var tmpobj = this.docobj.getElementById("closecomment");
        if (tmpobj)
        {
                tmpobj.style.display = "";                       
        }
        tmpobj = this.docobj.getElementById("opencomment");
        if (tmpobj)
        {
                tmpobj.style.display = "none";
        }
}

function JWebLog.prototype.OnTopFlag()
{
        tmpobj = this.docobj.getElementById("weblogtop");
        if (tmpobj)
        {
                tmpobj.style.display = "none";                       
        }
        tmpobj = this.docobj.getElementById("weblogcanceltop");
        if (tmpobj)
        {
                tmpobj.style.display = "";
        }

}
function JWebLog.prototype.NotOnTopFlag()
{
        tmpobj = this.docobj.getElementById("weblogtop");
        if (tmpobj)
        {
                tmpobj.style.display = "";                       
        }
        tmpobj = this.docobj.getElementById("weblogcanceltop");
        if (tmpobj)
        {
                tmpobj.style.display = "none";
        }             
}

function JWebLog.prototype.LoadWebLogNum()
{
        var geturl = "/cgi-bin/getweblognum?groupid="+ this.groupid + "&classid=" + this.classid
                + "&begintime=" + this.begintime + "&endtime="+ this.endtime;
        AsyncHttpRequest("GET", geturl, this, "", LOADWEBLOGNUM);
}

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


//以下是评论操作
function JComment(groupid, logid, docobj, showuserinfo, groupuser)
{
        this.LOADCOMMENTLIST = 100;
        this.ADDCOMMENT = 101;
        this.DELCOMMENT = 102;
        this.MODCOMMENT = 103;

        this.groupid = groupid;
        this.showuserinfo = showuserinfo;
        this.logid = logid;

        this.docobj = docobj;
        var divobj = docobj.getElementById("commentlist");
        if (divobj)
                this.templatestr  = divobj.innerHTML
                this.xDoc = undefined;
        this.invokeid = "commentlist";

        this.totalnum = 0;
        this.currpage = 1;
        this.formobj = undefined;
        this.comtype = WEBLOGCOMTYPE;
  this.groupuser = groupuser;
  this.enterid = 0;
}

function JComment.prototype.SetComType(comtype)
{
        this.comtype = comtype;
}

function JComment.prototype.LoadCommentList(beginnum, num)
{
        var geturl = "/cgi-bin/getcommentconlist?groupid=" + this.groupid +"&commentid=" +
                this.logid + "&beginnum=" + beginnum + "&num=" + num + "&comtype=" + this.comtype;

        AsyncHttpRequest("GET", geturl, this, "", LOADCOMMENTLIST);          
}

function JComment.prototype.LoadCommentNum()
{
        var geturl = "/cgi-bin/getcommentconum?groupid="+ this.groupid + "&commentid=" + this.logid  
                + "&comtype=" + this.comtype;                
        AsyncHttpRequest("GET", geturl, this, "", LOADCOMMENTNUM);          
}

function JComment.prototype.AddComment(formobj)
{       
  var sContent = formobj.content.value;
  
  sContent = sContent.trim();
        if (sContent == "")
        {
                alert("请输入评论内容");
                return;
        }  
  

        if (sContent.realLength() >= MAXCONTENTLEN)
        {
                alert("对不起, 你输入的评论过长, 最多能够输入 10240个字符(5120个汉字)");
                return;
        }
        if ((formobj.verifycode)&&(formobj.verifycode.value == ""))
        {
        alert("请输入验证码");
        return;
        }
        this.formobj = formobj;
        var postStr = "groupid=" + this.groupid +"&commentid=" + this.logid + "&content=" + encodeURI(encodeURIComponent(sContent)) + "&comtype=" + this.comtype ;
         if(formobj.verifycode)
            postStr += "&verifycode=" + formobj.verifycode.value;
        //alert(postStr);
        AsyncHttpRequest("POST", "/cgi-bin/addcommentcon", this, postStr, ADDCOMMENT); 
  this.enterid = 1;
        this.docobj.all.verifyimgcom.src = "http://ptlogin2.qq.com/getimage?aid=3000801&" + Math.random();   
}

function JComment.prototype.SetCurrPage(currpage)
{
        this.currpage = currpage;
}

//过程中的处理
function JComment.prototype.processcallback(xmlhttp, flag)
{
        if (flag == LOADCOMMENTLIST)
        {
                divObj = this.docobj.getElementById("commentlist");
                divObj.innerHTML = "<table width=100%><tr align='center'><td><img src='http://imgcache.qq.com/group/images/group101.gif'></td></tr></table>";
        }
}

//后处理
function JComment.prototype.completeCallback(xmlhttp, flag)
{
        if (flag == LOADCOMMENTLIST)
        {
                var divObj = this.docobj.getElementById("commentlist");
                this.xDoc = xmlhttp.responseXML;
                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 i=0;
                var tmpHtml = divObj.innerHTML;
                for (i=0; i < nodes.length; i++)
                {
                        var faceid = nodes[i].selectSingleNode("faceid").text;
                        var uin = nodes[i].selectSingleNode("uin").text;
                        var comconid = nodes[i].selectSingleNode("cmconid").text;
      var comcon = nodes[i].selectSingleNode("cmcontent").text;
      var vflag = nodes[i].selectSingleNode("vflag").text;
      
       //采用用户最新的faceid
         if (this.groupuser != undefined)
                  {
                         var uininfo = this.groupuser.GetUserInfo(uin);
                         if (uininfo != undefined)
                         {
                                faceid = uininfo.faceid;
                         }
                  }
      
                        this.showuserinfo.SetUserInfoEvent(uin, faceid);                            


                        //时间格式替换下
                        var posttime = nodes[i].selectSingleNode("cmposttime").text;
                        var tmpDate = new Date(parseInt(posttime)*1000);
                        var timestr = tmpDate.TologTimeStr();
                        var tmp = "posttime" + comconid;
                        //alert(tmp + "  " + timestr);                      
                        //tmpHtml = tmpHtml.replace(re, timestr);    
      var tmpobj = this.docobj.getElementById(tmp);
      if (tmpobj)
       tmpobj.innerHTML = timestr;
      
      //将评论格式返回
      var re;
      
      if (vflag == 1) //老帖子的图片显示
      {
      ret = /<img οnlοad="resizeimg(this)(.*)br>/gmi;    
      comcon = comcon.replace(re, function($1){var tmpre=/&#(/d+);/gim;  var str = $1.replace(tmpre, function($1, $2){return String.fromCharCode($2);});  return str;});  
      }
      
      re = /
 |
/g;
      comcon = comcon.replace(re, "<br>");
      re = / /g;
      comcon = comcon.replace(re, " ");
      re =/&nbsp;/g;
           comcon = comcon.replace(re, " ");
      tmp = comconid + "content";
      tmpobj = this.docobj.getElementById(tmp);
      if (tmpobj)
       tmpobj.innerHTML = comcon;
                }
                //divObj.innerHTML = tmpHtml;               
                //设置头像显示
                this.showuserinfo.GetUserInfo(this.invokeid);

                var opuin = getcookie("uin");
    var realuin = parseInt(opuin.substr(1), 10);
    if (this.groupuser.IsAdmin(realuin))  //管理员
    {
     var tmpobj = this.docobj.getElementsByName("delcommenthref");
     for (i=0; i < tmpobj.length; i++)
     {
      tmpobj[i].style.display = "";
     }
    }
    else
    {
                 var tmpstr = "commentdel" + realuin;
                 var tmplist = this.docobj.getElementsByName(tmpstr);
                 for (i=0; i < tmplist.length; i++)
                 {
                        tmplist[i].style.display = "";
                 }
    }
    if (this.enterid == 1)
    {
     window.location.href = "#commentlist"
    }

                ResizeIframe();
        }
        else if(flag == LOADCOMMENTNUM)
        {
                var xDoc = xmlhttp.responseXML;
                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("commentnum");
                        if (pageobj)
                        {
                                pageobj.innerHTML = WritePageNum(this.totalNum, this.currpage, COMMENTNUMOFPAGE, "GoCommentPage");
                                pageobj.style.display = '';
                        }
                }
                else
                {
                        var failstr = resultstr.text;
                        alert(failstr);
                }
        }
        else if (flag == ADDCOMMENT)
        {
                //alert("lsjlajf");
                var xDoc = xmlhttp.responseXML;   
                var nodes = xDoc.selectNodes("/data");   
                var result = nodes[0].selectSingleNode("result");
                if (result.text == 0)
                {
                        //alert("增加评论成功");
                        this.formobj.reset();
                        this.LoadCommentList(0, COMMENTNUMOFPAGE);
                        this.LoadCommentNum();
                }
                else if (result.text == -3 || result.text == -4)
                {
                        //window.open("/cgi-bin/comm_login?p=self&url=reload", '', 'width=400,height=200');
      window.location.href = "/error.htm?msgid=2&groupid=" + this.groupid;
                }
                else
                {
                        //var failtext = res
                        var resultstr = nodes[0].selectSingleNode("resultstr");
                        alert("增加评论失败"  + resultstr.text);     
                        //this.formobj.verifycode.value = "";
                }
        }
        else if (flag == DELCOMMENT)
        {
                var xDoc = xmlhttp.responseXML;   
                var nodes = xDoc.selectNodes("/data");   
                var result = nodes[0].selectSingleNode("result");  
                if (result.text == 0)
                {
                        alert("删除评论成功");
                        this.LoadCommentList((this.currpage - 1)*COMMENTNUMOFPAGE, COMMENTNUMOFPAGE);
                        this.LoadCommentNum();    
                }
                else if (result.text == USERNOTLOGIN)
                {
                        window.open("/cgi-bin/comm_login?p=self&url=reload", '', 'width=400,height=200');
                }
                else
                {
                        alert("删除评论失败");   
                }
        }
}


function JComment.prototype.DelComment(logid, comconid)
{
        if (!window.confirm("你是否真的要删除这个评论?删除后你将无法恢复"))
        {               
                return;
        }
        var geturl = "/cgi-bin/delcomment?groupid=" + this.groupid + "&logid=" + logid + "&cmtconid=" + comconid + "&comtype=" + this.comtype;
        AsyncHttpRequest("GET", geturl, this, "", DELCOMMENT);
  this.enterid = 1;
}

function JComment.prototype.ModifyComment(formobj)
{
}


//论坛分类(目录)
function JWebLogClass(docobj, groupid)
{
        this.docobj = docobj;
        this.divObj = docobj.getElementById("logclass")
        if (this.divObj)
             this.templatestr = this.divObj.innerHTML;
        this.xDoc = undefined;
        this.groupid = groupid;
        //this.classNameList = new Object();
}

function JWebLogClass.prototype.GetClassName(classid)
{
 
        var str = "";
        if (this.classNameList != undefined)
        {
                str =  this.classNameList[classid];
                if (str == undefined)
                {
                        str = "";
                }
        }
        else
        {
                str = "";
        }
        return str;
}

//过程中的处理
function JWebLogClass.prototype.processcallback(xmlhttp, flag)
{
        if (flag == LOADWEBLOGCLASS)
        {
                //this.divObj.innerHTML = "正在加载文章分类中...";               
        }
}

function JWebLogClass.prototype.SetNullLogclass()
{
  var stRegContent = /<%repeat_0[^>]*%>((.|/n)*)<%_repeat_0%>/;  
  var tmpstr = this.templatestr.replace(stRegContent, "");
  this.divObj.innerHTML = tmpstr;
}

//后处理
function JWebLogClass.prototype.completeCallback(xmlhttp, flag)
{       
        if (flag == LOADWEBLOGCLASS )
        {       
                var ret = XmlDocCheck(xmlhttp.responseXML);    
                if (ret == 0)
                {
                        this.classNameList = new Object();
                        this.xDoc = xmlhttp.responseXML;
                        FillTempStr(this.divObj, this.xDoc, this.templatestr);          
                        if (window.ResizeIframe != undefined)
                        {
                                ResizeIframe();
                        }
                        var nodes = this.xDoc.selectNodes("/data/item");
                        for (var i=0; i < nodes.length; i++)
                        {
                                var classid = nodes[i].selectSingleNode("classid").text;
                                var classname = nodes[i].selectSingleNode("classname").text;
                                this.classNameList[classid] = classname;
                        }
                }    
    else
    {
      this.SetNullLogclass();
    }
        } 
        else if (flag == DELWEBLOGCLASS)
        {
                var ret = XmlDocCheck(xmlhttp.responseXML);               
                if (ret != 0)
                {
                        if(ret.result == 3 || ret.result == 4)
      {
       window.location.href = "/error.htm?msgid=3&groupid=" + this.groupid;
      }
      else
      {
       alert("删除文章目录失败 " + ret.resultstr);
      }
                        return;
                }               
                this.LoadData();//重新加载   
                if (parent)
                {
                        if (parent.g_weblogclass)
                        {
                                parent.g_weblogclass.LoadData();
                        }
                }
        }
        else if (flag == MODWEBLOGCLASS)
        {
                var ret = XmlDocCheck(xmlhttp.responseXML);               
                if (ret != 0)
                {
                        alert("修改文章目录失败 " + ret.resultstr);
                        return;
                }               
                this.LoadData();//重新加载
                if (parent)
                {
                        if (parent.g_weblogclass)
                        {
                                parent.g_weblogclass.LoadData();
                        }
                }
        }
        else if (flag == ADDWEBLOGCLASS)
        {
                var ret = XmlDocCheck(xmlhttp.responseXML);               
                if (ret != 0)
                {
                        alert("增加文章目录失败, " + ret.resultstr);
                        return;
                }               
                this.LoadData();//重新加载
    
                if (parent)
                {
                        if (parent.g_weblogclass)
                        {
                                parent.g_weblogclass.LoadData();
                        }
                }
        }
        else
        {
                alert("错误的操作" + flag);
        }
        return;
}

function JWebLogClass.prototype.LoadData(flag)
{  
        var geturl = "/cgi-bin/showlogclass?groupid=" + this.groupid; 
  if (flag == undefined)
  {
   flag = LOADWEBLOGCLASS;
  }   
        AsyncHttpRequest("GET", geturl, this, "", flag);
}

function JWebLogClass.prototype.SynLoadData()
{
        var geturl = "/cgi-bin/showlogclass?groupid=" + this.groupid;
        var xmlhttp = SyncHttpRequest("GET", geturl, this, "");
        var ret = XmlDocCheck(xmlhttp.responseXML);
        if (ret == 0)
        {
                this.classNameList = new Object();
                this.xDoc = xmlhttp.responseXML;       
                var nodes = this.xDoc.selectNodes("/data/item");
                for (var i=0; i < nodes.length; i++)
                {
                        var classid = nodes[i].selectSingleNode("classid").text;
                        var classname = nodes[i].selectSingleNode("classname").text;
                        this.classNameList[classid] = classname;
                }
        }
        return;
}

function JWebLogClass.prototype.DelLogClass(classid)
{
        if (!window.confirm("删除文章类型会把这个文章类型的所有文章删除!!!你确实要删除这个文章目录么?"))
        {
                return;
        }

        var geturl = "/cgi-bin/dellogclass?groupid=" + this.groupid + "&classid=" + classid;
        AsyncHttpRequest("GET", geturl, this, "", DELWEBLOGCLASS);
}

function JWebLogClass.prototype.AddLogClass(classname)
{
  if (!this.CheckClassName(classname))
  {
   return;
  }
        var geturl = "/cgi-bin/addlogclass?groupid=" + this.groupid + "&classname=" + encodeURI(encodeURIComponent(classname));
        AsyncHttpRequest("GET", geturl, this, "", ADDWEBLOGCLASS);
}

function JWebLogClass.prototype.CheckClassName(classname)
{
    if (classname == "")
        {
                alert("请输入文章目录名");
                return false;
        }      
  var re=/[%&<>/[/]/{/}/(/)/s:"]/;
  if (classname.match(re) != null)
  {
   alert("请不要输入%&<>()[]{}/":空格等字符");
   return false;
  }
  
        var tmplen = classname.realLength();
        if (tmplen > MAXCLASSNAMELEN)
        {               
                if (!window.confirm("文章目录名长度"+ tmplen +"超过了最大长度" + MAXCLASSNAMELEN + "系统将自动截断名字!"))
                {
                        return false;
                }
        }
 return true;
}

function JWebLogClass.prototype.ModLogClass(classid, classname)
{   
  if (!this.CheckClassName(classname))
  {
   return;
  }
        var geturl = "/cgi-bin/modifylogclass?groupid=" + this.groupid + "&classname=" + encodeURI(encodeURIComponent(classname)) + "&classid=" + classid;
        AsyncHttpRequest("GET", geturl, this, "",  MODWEBLOGCLASS);
}

var MIN_GROUP_ID=100100;
var SUPERFLAG = 0x10;
var BIGPAGENUM=10; //分页的大页
var errormsg=new Array();
errormsg[0]="很抱歉,请您选择一个群浏览";
errormsg[1]="很抱歉,请您稍候再浏览";
errormsg[2]="很抱歉,您不是群内成员或者您还没有登录.<br>本页面只有群内成员可以访问";
errormsg[3]="对不起, 你没有权限进行此操作";
errormsg[4]="很抱歉,请您稍候再浏览";
errormsg[5]="很抱歉,此群已经被禁止,无法浏览";
errormsg[6]="您好,近期群空间进行系统维护,建议您稍后再试,谢谢!";
errormsg[8]="很抱歉,此群已经被删除";
errormsg[9]="很抱歉,您查看的群没有此成员";
errormsg[10]="很抱歉,此人还没有群名片";
errormsg[11]="很抱歉,本群还未开通群邮件服务";
errormsg[12]="很抱歉,你不是本论坛的作者";
errormsg[13]="很抱歉,请输入正确的qq号查询";
errormsg[14]="请输入正确的时间范围";
errormsg[15]="很抱歉,本群尚未开通群邮件服务"
var uinstr = "<table border=/"0/" cellspacing=/"0/" cellpadding=/"0/" title=/"<%=@uin%>/"  style=/"cursor:hand/" id='  <%=@uin%>tableuin' onClick=/"javascript:openUserSpace('<%=@uin%>');/"><tr><td><IMG  id=/"<%=@uin%>img/" height=/"16/" src=/"http://im-img.qq.com/group/images/newface/0-2.gif/" width=/"16/" border=/"0/" ></td><td style=/"padding-left:5px;/"><%=@nickname%></TD><td><IMG border=0 id=/"<%=@uin%>qzoneflag/" style=/"display:none/" height=/"11/" src=/"http://imgcache.qq.com/group/images/group09.gif/" width=/"12/"></td></tr></table>";


//系统论坛类型
function SysLogItem(typeid, typename, typeflag,  typeimg)
{
        this.typeid = typeid;
        this.typename = typename;
        this.typeflag = typeflag;
        this.typeimg = typeimg;
}

var WMVLOGTYPE=1;
var RMLOGTYPE=2;
var FLASHLOGTYPE=3
var PICLOGTYPE=4
var ANNEXLOGTYPE=5;

var TEXTLOGTYPE=127; //文本类型

var SysLogType = new Object();
SysLogType[WMVLOGTYPE] = new SysLogItem(WMVLOGTYPE, "wmv", "[MP]", "http://imgcache.qq.com/group/images/group165.gif");
SysLogType[RMLOGTYPE] = new SysLogItem(RMLOGTYPE, "rm", "[RM]", "http://imgcache.qq.com/group/images/group164.gif");
SysLogType[FLASHLOGTYPE] = new SysLogItem(FLASHLOGTYPE, "flash", "[FLASH]", "http://imgcache.qq.com/group/images/group102.gif");
SysLogType[PICLOGTYPE]   = new SysLogItem(PICLOGTYPE,   "图片", "[IMG]", "http://imgcache.qq.com/group/images/group45.gif");
SysLogType[ANNEXLOGTYPE] = new SysLogItem(ANNEXLOGTYPE, "附件", "[ANNEX=", "http://imgcache.qq.com/group/images/group156.gif");
//SysLogType[TEXTLOGTYPE]  = new SysLogItem(TEXTLOGTYPE,  "文本", "");


function CheckGroupId(groupid)
{       
        if (groupid < MIN_GROUP_ID)
                return false;
        //这里可以直接下载群的信息       
        return true;               
}

function GroupBaseInfo(groupid)
{
        this.groupid = groupid;
        this.realuin = undefined;
        this.groupuser = undefined;
        this.groupinfo = undefined;
}

function GroupBaseInfo.prototype.GetLoginUin()
{  
        var opuin = getcookie("uin");
 if(opuin != undefined)
 {
         this.realuin  =  parseInt(opuin.substr(1), 10);
 }
 else
 {
  this.realuin = 0;
 }
        return this.realuin;
}

function GroupBaseInfo.prototype.GetGroupUser()
{
        if (this.groupuser == undefined)
        {  
                if (parent)
                {
                        if (parent.g_groupUser != undefined)
                        {
                                this.groupuser = parent.g_groupUser;
                        }                   
                }
    
                if (this.groupuser == undefined)
                {
                        this.groupuser = new GroupUser(this.groupid);       
                        this.groupuser.LoadData();
                }
        } 
        return this.groupuser;
}

function GroupBaseInfo.prototype.GetGroupInfo()
{
        this.groupinfo = undefined;
        {
                //获取群的信息      
                if (parent)
                {
                        if (parent.GetGroupInfo != undefined)
                        {
                                this.groupinfo = parent.GetGroupInfo();
                        }        
                } 
                if (this.groupinfo == undefined)
                {
                        var xmlhttp = SyncHttpRequest("GET", "/cgi-bin/groupbaseinfo?groupid=" + this.groupid, "");
                        var ret = XmlDocCheck(xmlhttp.responseXML);
                        if (ret == 0)
                        {
                                this.groupinfo = xmlhttp.responseXML;
                        }
                        else
                        {
                                this.result = ret.result;
                        }
                }
        }
        return this.groupinfo;
}

function GroupBaseInfo.prototype.IsOpenView()
{
  var nodes = this.groupinfo.selectNodes("/data/item");
  var isOpen = nodes[0].selectSingleNode("isopen").text;
  var isInGroup = this.groupuser.IsInGroup(this.realuin);
  if (isOpen == 0 && isInGroup == false)
  {
   return false;
  }
  return true;
}


function IsSuperGroup(flag)
{
        if ( (flag & SUPERFLAG) == 0x10)
        {
                return true;
        }
        return false;
}

function gokeydown(obj, gopage, totalPage)
{
        if (event.keyCode == 13)
        {
                var str = gopage + "("+ obj.value +"," + totalPage +")";
                eval(str);
        } 
}

function WritePageNum(totalnum, curpage, numofpage, gopage,unit)
{
 var tmp="篇";
 if(unit!=undefined)
             tmp=unit;
        var pageStr = "";
        if (totalnum == 0)
        {
                return pageStr;
        }
        var totalPage = parseInt((parseInt(totalnum) - 1)/parseInt(numofpage)) + 1;

        var totalBigPage = parseInt((totalPage - 1)/BIGPAGENUM) + 1;

        var curBigPage = parseInt((parseInt(curpage) -1)/BIGPAGENUM) + 1;

        var curBeginPage = (curBigPage-1)*BIGPAGENUM + 1;
        var curEndPage = curBeginPage + BIGPAGENUM - 1;

        //alert("curpage"+ curpage + "totalbigpage"+ totalBigPage +"curBigPage" + curBigPage + "curBeginPage" + curBeginPage + "curEndPage" + curEndPage);
        curEndPage = (curEndPage > parseInt(totalPage))?parseInt(totalPage):curEndPage;


        pageStr = pageStr +  "<table border='0' cellspacing='0' cellpadding='0'><tr><td style='padding-left:16px;'>共" + totalnum + tmp +"</td><td style='padding-left:16px;'>";// + curpage + "/" + totalPage + "页";

        //是否跳到上一大页
        if (curBigPage > 1)
        {
                pageStr = pageStr + "<img title='上" + BIGPAGENUM + "页' src='http://imgcache.qq.com/group/images/group39.gif' width='7' height='12' align='absmiddle' οnclick='"
                        + gopage + "("+ (curBeginPage - 1) + ")' style='cursor:hand' />";
        }

        //中间部分
        for (var i=curBeginPage; i <= curEndPage; i++)
        {
                if (curpage == i)
                {
                        pageStr = pageStr + "<span class=/"red01/">" + i + "</span>";
                        if (i !=curEndPage)
                        {
                                pageStr += "<span class=/"partition/"></span>";
                        }
                }
                else
                {
                        pageStr = pageStr + "<a href='javascript:{" + gopage + "("+ i +");}'>"+ i + "</a>";
                        if (i !=curEndPage)
                        {
                                pageStr += "<span class=/"partition/"></span>";
                        }
                }
        }

        //是否跳到下一大页
        if (curBigPage < totalBigPage)
        {
                pageStr = pageStr + "<img title='下" + BIGPAGENUM + "页' src='http://imgcache.qq.com/group/images/group40.gif' width='7' height='12' align='absmiddle' οnclick='"
                        + gopage + "("+ (curEndPage + 1) + ")' style='cursor:hand'/>";
        }
        pageStr +=  "</td><td style='padding-left:16px;'>转到<input name=/"pagenum/" type=/"text/" class=/"border05/" value='"+ curpage +"'       οnkeydοwn=/"gokeydown(this, '"+ gopage +"', "+ totalPage + ")/">/"+ totalPage +
                "页</td><td style='padding-left:8px;'><a href='javascript:{" + gopage + "(document.getElementById(/"pagenum/").value,"+ totalPage +");}'><img src='http://imgcache.qq.com/group/images/group53.gif' width='25' height='18' border='0'></a></td></tr></table>";    
        return pageStr;
}

function UserStr(uin, nickname, groupid)
{   
        if (groupid != undefined)
        {
                tmpgroupid = groupid;
        }    
  var tmpuinstr = uinstr;
     
  var tmpuin="<%=@uin%>";
        var tmpnickname="<%=@nickname%>";
        var tmpgroupid = "dataform.groupid.value";
  var re;
        if (uin != undefined)
        {
                re = new RegExp(tmpuin, "gim");
    tmpuinstr = tmpuinstr.replace(re, "" + uin);
        }

        if (nickname != undefined)
        {
    re = new RegExp(tmpnickname, "gim");   
                tmpuinstr = tmpuinstr.replace(re, ""+nickname);
        }
        return tmpuinstr;
}

//用户头像

function ShowUserInfo(onlineobj, docobj, groupid)
{
        this.online = new JMulOnline(onlineobj);
        this.getqzone = new JQzone(docobj, groupid);
        this.docobj = docobj;
}

function ShowUserInfo.prototype.SetUserInfoEvent(uin, faceid)
{      
        if (uin != 0)
        {
                this.online.SetOnlineEvent(uin, faceid);
                this.getqzone.SetGetQzoneEvent(uin);
        }
}

function ShowUserInfo.prototype.GetUserInfo(invokeid)
{
        var tmpobj = this.docobj.getElementById("0tableuin");
        if (tmpobj)
        {
                tmpobj.style.display = "none";
        }
        tmpobj = this.docobj.getElementById("tableuin");
        if (tmpobj)
        {
                tmpobj.style.display = "none";
        }
        this.online.GetOnlineStatus(this.docobj, invokeid);
        this.getqzone.GetQzoneStamp(invokeid);
}

function ShowUserInfo.prototype.PutInvoke(invokeid)
{
        this.online.PutInvoke(invokeid);
        this.getqzone.PutInvoke(invokeid);
}

var online = new Array();
var faceollist = new Array();
var facenollist = new Array();
var uinlist="";
var userlist = new Array();

//获取在线状态
function GetOnlineStatus(uinlist)
{
 
 var geturl = "http://219.133.49.157/getonline?" + uinlist;
 document.all.onlinescript.src = geturl;
 document.all.onlinescript.onreadystatechange = OnlineCallBack;
 
 return;
}

function OnlineCallBack()

 
 if (document.all.onlinescript.readyState == "loaded")
 {
  
  SetOnlineImg();
 }
}
//设置在线头像
function SetOnlineImg()

 
 for (var i=0; i <  userlist.length; i++)
 { 
  
  //var tmpObj  = document.getElementById(userlist[i]+"img"); 
  var tmpObj  = document.getElementsByName(userlist[i]+"img");
  for(var j=0;j<tmpObj.length;j++)
  {
   if (online[i] == 1)
   {  
           
    tmpObj[j].src = faceollist[i];    
   }
   else
   {
    tmpObj[j].src = facenollist[i];
   }
  }
 } 
 userlist.length = 0;
 faceollist.length = 0;
 facenollist.length = 0;  
}

var online = new Array();

function OnlineItem(uin, faceid)
{
 this.MAXUPDATEINTERVAL = 300; //5分钟更新一次
 this.uin = uin;
 this.faceid = faceid;
 this.status = 2;  //2表示未初始化
 this.updatetime = 0;
}

function InvokeItem(invokeid)
{
 this.invokeid = invokeid;
 this.status = 0; //0:初始化状态 1:已经发送了getonline请求
}


function JMulOnline(onlineobj)
{
 this.GetArray = new Array(); 
 this.curGetIndex = 1;
 this.MaxGetNum = 60;
 this.onlineobj = onlineobj;
 
 this.curonline = new  JOnline(onlineobj, this);
}

function JMulOnline.prototype.GetOnlineStatus(docobj, invokeid)
{  
 this.curGetIndex = this.MaxGetNum;
 //alert(this.curGetIndex);
 this.curonline.GetOnlineStatus(docobj, invokeid);
 this.docobj = docobj;
}

function JMulOnline.prototype.PutUin(uin, face)
{
 var i=0;
 for (i=0; i < this.GetArray.length; i++)
 {
  if (this.GetArray[i].uin == uin)
  {
   break;
  }
 }
 if (i >= this.GetArray.length)
 {
  this.GetArray.push(new OnlineItem(uin, face));  
 }
}

function JMulOnline.prototype.CallBack()

 if (this.curGetIndex  < this.GetArray.length)
 {
  var iLeft = this.GetArray.length - this.curGetIndex;
  var iNum = (iLeft > this.MaxGetNum)?this.MaxGetNum:iLeft;
    
  this.curonline = new  JOnline(this.onlineobj, this);
  for (var i=this.curGetIndex; i < this.curGetIndex + iNum; i++)
  {     
   this.curonline.SetOnlineEvent(this.GetArray[i].uin, this.GetArray[i].faceid);
  }
  this.curGetIndex = this.curGetIndex + iNum;
  this.curonline.GetOnlineStatus(this.docobj);
 }
}

function JMulOnline.prototype.SetOnlineEvent(uin, face)

 //this.curonline.SetOnlineEvent(uin, face);
 if (this.GetArray.length < this.MaxGetNum)
 {
  this.curonline.SetOnlineEvent(uin, face); 
  this.PutUin(uin, face);
 }
 else
 {
  this.PutUin(uin, face);
 }  
}

function JMulOnline.prototype.PutInvoke(invokeid)
{
 this.curonline.PutInvoke(invokeid);
}


function JOnline(onlineobj, mulonline)
{
 this.onlineuin = new Object();
 this.getonlineArray = new Array();
 this.onlineobj = onlineobj;
 
 
 this.invokelist = new Object(); 
 this.invokelength = 0;
 this.retinvoke = 0;
 this.mulonline = mulonline; 
 this.loadstatus = 0;
}

function JOnline.prototype.SetOnlineEvent(uin, faceid)

 if (this.onlineuin[uin] == undefined)
 {
  this.onlineuin[uin] = new OnlineItem(uin, faceid);
 }
}

function JOnline.prototype.PutInvoke(invokeid)
{
 if (this.invokelist[invokeid] == undefined)
 {
  this.invokelist[invokeid] = new InvokeItem(invokeid);
  this.invokelength ++;
 }
}

function JOnline.prototype.CheckInvokeStatus()
{
 var invokeid = "";
 var retval = 0;
 //var i=0;
 for (invokeid in this.invokelist)
 {
  retval += this.invokelist[invokeid].status;
  
 }
 if (retval == this.invokelength)
 {
  return true;
 }
 else
 {
  return false;
 }
}

 

//获取用户的状态
function JOnline.prototype.GetOnlineStatus(docobj, invokeid)
{
 if (this.invokelist[invokeid] != undefined)
 {
  if (this.invokelist[invokeid].status == 0)
  {
   this.invokelist[invokeid].status = 1; 
   this.retinvoke ++;  
  }
 }
 //alert(this.retinvoke + "   " + this.invokelength);
 if (this.retinvoke < this.invokelength) //请求还没有全部发送完毕
 {
  return;
 }
 
 var uin = 0;
 var i=0;
 var onlinestr = "";
 var tmpDate = new Date();
 for (uin in this.onlineuin)
 {
  if (this.onlineuin[uin].status == 2 ||
   (tmpDate.getMilliseconds()/1000) - this.updatetime > this.MAXUPDATEINTERVAL) // 未初始化的以及超时的重新拉一次状态
  {
   this.getonlineArray[i] = uin;
   onlinestr += uin + ":";
   i++;
  }  
 } 
 
 if (i==0) //直接设置
 {  

  this.SetOnlineImg(docobj);
  return;
 }
 

  
 var geturl = "http://219.133.49.157/getonline?" + onlinestr; 
 this.onlineobj.src = geturl;  
 
 var tmpObj = this;
 var status = 0;
 this.onlineobj.onreadystatechange = function()
 {
  //alert(tmpObj.onlineobj.readyState);
  if (tmpObj.onlineobj.readyState == "loaded" || tmpObj.onlineobj.readyState== "complete")
  {     
   if (online.length == 0)
   {
    return;
   }
   //保存状态
   for (var j=0; j < tmpObj.getonlineArray.length; j++)
   {           
    tmpObj.onlineuin[tmpObj.getonlineArray[j]].status = online[j];    
   }         
   tmpObj.SetOnlineImg(docobj);
  } 
 }
 return;
}

//真正设置状态
function JOnline.prototype.SetOnlineImg(docobj)

 var idList;
 var idStr = "";
 var j=0;
 var uin=0; 
 
 for (uin in this.onlineuin)
 {    
  idStr = uin +  "img";  
  idList = docobj.getElementsByName(idStr);
  if (this.onlineuin[uin].status == 0) //不在线
  {   
   for (j=0; j < idList.length; j++)
   {
    idList[j].src = "http://im-img.qq.com/group/images/newface/"+ parseInt(this.onlineuin[uin].faceid/3) + "-3.gif";
   }
  }
  else //在线
  {  
   for (j=0; j < idList.length; j++)
   {
    idList[j].src = "http://im-img.qq.com/group/images/newface/"+ parseInt(this.onlineuin[uin].faceid/3) + "-2.gif";
   }
  }    
 }
               idStr = "0img";  
  idList = docobj.getElementsByName(idStr);
    
  for (j=0; j < idList.length; j++)
  {
   idList[j].style.display = "none";
  
  }
  
  if (this.mulonline != undefined)
   {
    //设置页面显示 
    online = new Array(); //重置online
    this.mulonline.CallBack();  //回调
   }
}

function GetUserQzoneItem(uin)
{
        this.uin = uin;      
}

function GetUserQzoneItem.prototype.AddObj(obj)
{
        this.objlist.push(obj);
}

function UserQzoneItem(uin, timestamp, qzoneflag)
{       
        this.uin = uin;
        this.timestamp = timestamp;
  this.qzoneflag = qzoneflag;
        var tmpdate = new Date();
        this.updatetime = tmpdate.valueOf()/1000;
}


function JQzone(docobj, groupid)

        this.MAXUPTIME = 3600;
        this.MINSTAMPTIME = 86400;
        this.groupid = groupid;
 this.UserItemList = new Object();
 this.getItemList = new Object(); 
 this.invokelist = new Object(); 
 this.invokelength = 0;
 this.retinvoke =0;
 this.docobj = docobj;
 
 this.systemtime = 0;
}

function JQzone.prototype.SetGetQzoneEvent(uin)

        if (this.getItemList[uin] == undefined)
        {
                this.getItemList[uin] = new GetUserQzoneItem(uin);
        }       
}

function JQzone.prototype.PutInvoke(invokeid)
{
 if (this.invokelist[invokeid] == undefined)
 {
  this.invokelist[invokeid] = new InvokeItem(invokeid);
  this.invokelength ++;
 }
}


//获取用户的状态
function JQzone.prototype.GetQzoneStamp(invokeid)
{   
        if (this.invokelist[invokeid] != undefined)
 {
         if (this.invokelist[invokeid].status == 0)
         {
          this.invokelist[invokeid].status = 1; 
          this.retinvoke ++;  
         }
 }
 //alert(this.retinvoke + "   " + this.invokelength);
 if (this.retinvoke < this.invokelength) //请求还没有全部发送完毕
 {
  return;
 }
 
        var uin;
        var uinstr="";
        var nowdate = new Date();
        var nowtime = nowdate.valueOf()/1000;
        for (uin in this.getItemList)
        {
                if (this.UserItemList[uin] != undefined)
                {
                        if (nowtime - this.UserItemList[uin].updatetime < this.MAXUPTIME)
                        {
                                continue;
                        }
                }
                uinstr += uin + ":";
        }     
              
// var geturl = "/cgi-bin/getuserqzone?groupid="+ this.groupid +"&uinlist=" + uinstr;  
// AsyncHttpRequest("GET", geturl, this, "");    
 return;
}

function JQzone.prototype.processcallback(xmlhttp, flag)
{
}

function JQzone.prototype.completeCallback(xmlhttp, flag)
{          
        var ret = XmlDocCheck(xmlhttp.responseXML);        
        if (ret != 0)
        {
                this.getItemList = new Object();
                return;
        }                       
        this.xDoc = xmlhttp.responseXML;
        this.SetQzoneImg();
        this.getItemList = new Object();
        return;
}

//真正设置状态
function JQzone.prototype.SetQzoneImg()

 var idStr = "";
 var idList=undefined;
 var j=0; 
 var tmpdate = new Date();
 var nowtime = tmpdate.valueOf()/1000;
        var nodes = this.xDoc.selectNodes("/data");
        this.systemtime = parseInt(nodes[0].selectSingleNode("systemtime").text);
       
 nodes = this.xDoc.selectNodes("/data/item"); 
 for (var i=0; i < nodes.length; i++) //更新
 { 
         var stamp = parseInt(nodes[i].selectSingleNode("timestamp").text);
         var uin = parseInt(nodes[i].selectSingleNode("uin").text);  
   var qzoneflag = parseInt(nodes[i].selectSingleNode("qzoneflag").text);  
         if (this.UserItemList[uin] == undefined)
         {
                 this.UserItemList[uin] = new UserQzoneItem(uin, stamp, qzoneflag);
         }     
         else
         {
                 this.uin = uin;
                    this.timestamp = stamp;               
                    this.updatetime = nowtime;
     this.qzoneflag = qzoneflag;
         }
 }
 
 //更新页面
 var tmpuin;
 for (tmpuin in this.getItemList)
 {        
         if (this.UserItemList[tmpuin] != undefined)
         { 
                 if ((this.systemtime - this.UserItemList[tmpuin].timestamp)  < this.MINSTAMPTIME)
                 {
                         var tmpobj = this.docobj.getElementsByName(tmpuin + "qzoneflag");
                         for (var j=0; j < tmpobj.length; j++)
                         {
                                 tmpobj[j].src = "http://imgcache.qq.com/group/images/group163.gif";
                                 tmpobj[j].style.display = "";
                         }
                 }
                 else
     {
       if (this.UserItemList[tmpuin].qzoneflag > 0)
                   {
                           var tmpobj = this.docobj.getElementsByName(tmpuin + "qzoneflag");
                           for (var j=0; j < tmpobj.length; j++)
                           {                         
                                   tmpobj[j].style.display = "";
                           }
                   }
     }
         }
 }  
 return;
}

var resultmem=undefined;
function UserItem(uin, faceid, flag, nickname, gender)
{
        this.uin = uin;
        this.faceid = faceid;
        this.flag = flag;
        this.nickname = nickname;
        this.gender = gender;
       
 
}

function GroupUser(groupid)
{
        this.userDoc = undefined;
        this.groupid = groupid;     
        this.userItemList = new Object(); 
        this.result = 0;
        this.isgpmem=0;
  this.uinnum = 0;
}


function GroupUser.prototype.LoadData()
{
        var geturl="/cgi-bin/groupuserlist?groupid=" + this.groupid;  
        var xmlhttp = SyncHttpRequest("GET", geturl, this);
        if (xmlhttp.status == 200)
        {      
               this.userDoc = xmlhttp.responseXML;
              
               if (XmlDocCheck(this.userDoc) != 0)
        {
          this.userDoc = undefined;
         
          this.result=XmlDocCheck(xmlhttp.responseXML).resultstr;
       
      return;
        }
        var nodemem = this.userDoc.selectNodes("/data");
               this.isgpmem = nodemem[0].selectSingleNode("ismem").text;
        var nodes = this.userDoc.selectNodes("/data/item");
        for (var i=0; i < nodes.length; i++)    
        {
             var uin = MyParseInt(nodes[i].selectSingleNode("uin").text);
             var faceid = MyParseInt(nodes[i].selectSingleNode("faceid").text)
             var flag = MyParseInt(nodes[i].selectSingleNode("flag").text)
             var nickname = nodes[i].selectSingleNode("nickname").text;
             var gender = MyParseInt(nodes[i].selectSingleNode("gender").text);
             this.userItemList[uin] = new UserItem(uin, faceid, flag, nickname, gender);
        }
     this.uinnum = nodes.length;
        }
}

function GroupUser.prototype.GetUserData()
{
     
        if (this.userDoc == undefined)
        {
                this.LoadData();
        }
        return this.userDoc;
}

function GroupUser.prototype.GetUserInfo(uin)
{
        return this.userItemList[uin];
}

function GroupUser.prototype.IsAdmin(uin)
{
        if (this.userDoc == undefined)
        {
                return false;
        }
       
        if (this.userItemList[uin] == undefined)
        {
                return false;
        }
        var flag = this.userItemList[uin].flag;
        if ((flag & 0x1) == 0x1 || (flag & 0x2) == 0x2 || (flag & 0x04) == 0x04)
        {
                return true;
        }
        else
        {
                return false;
        }                                           
        return false;
}

function GroupUser.prototype.IsCreator(uin)
{
        if (this.userDoc == undefined)
        {
                return false;
        }
       
        if (this.userItemList[uin] == undefined)
        {
                return false;
        }
        var flag = this.userItemList[uin].flag;
        if ((flag & 0x1) == 0x1)
        {
                return true;
        }
        else
        {
                return false;
        }                                           
        return false;
}

function GroupUser.prototype.IsInGroup(uin)
{
        if (this.userDoc == undefined)
        {
                return false;
        }     
        
        if (this.userItemList[uin] == undefined)
        {
                return false;
        }
        return true;
}

function GroupUser.prototype.GetAdminList()
{
        var uin;
        var adminlist = new Array();
        for (uin in this.userItemList)
        {
                var flag = this.userItemList[uin].flag;
                if ((flag & 0x1) == 0x1 || (flag & 0x2) == 0x2 || (flag & 0x4) == 0x4)
                {
                        adminlist.push(this.userItemList[uin]);
                }
        }
        return adminlist;
}

function GroupUser.prototype.GetCreator()
{
        var uin;
      
        for (uin in this.userItemList)
        {
         
                var flag = this.userItemList[uin].flag;
                if ((flag & 0x1) == 0x1)
                {
                    return this.userItemList[uin].uin;
                }
        }
        return "";
}

<!--
/**
 * Print login form
 *
 * @param   string   bgimg    登录框顶部背景图片.
 * @param   string   url      登录成功之后的返回地址
 */

function qq_login_form_new(){
 var argv = qq_login_form_new.arguments;
 var bgimg = 'vip';

 var url = "http://user.qbar.qq.com/login/index.html";//'https://account.qq.com/cgi-bin/ptlogin?pageStyle=1';
 if ( argv[0] ) {
  bgimg = argv[0];
 }

 if ( bgimg.substring(1, 7) != "http://" ) {
  bgimg = 'http://imgcache.qq.com/ad/login/' + bgimg + '.gif';
 }
 if ( argv[1] ) {
  url += "&url=" + escape(argv[1]);
 }

 var html = '<link rel="stylesheet" rev="stylesheet" href="http://imgcache.qq.com/ad/login/css.css" type="text/css" media="all" />';
 html += '<div id="login_div" style="display:none">';
 html += '  <dl>';
 html += '    <dt style="background-image: url(' + bgimg + ');">';
 html += '      <h4>请您登录</h4>';
 html += '      <a href="javascript:qq_login_status(/'hide/');"><span class="none">关闭</span></a></dt>';
 html += '    <dd>';
 html += '      <iframe name="login_div_iframe" id="login_div_iframe" width="290"  height="250" allowtransparency="true" scrolling="No" border="0" frameborder="0" align="center"  src="' + url + '"></iframe>';
 html += '    </dd>';
 html += '  </dl>';
 html += '</div>';
 try {
  var e = document["body"];
  if ( typeof(e[0]) != "undefined" ) {
                        alert("undefined");
  }

  e.innerHTML += html;
                document["body"].innerHTML = e.innerHTML;
  qq_login_status("show");
 }
 catch ( x ) {
  window.alert( x.message );
 }
}

function qq_login_form2(){
    var argv = qq_login_form.arguments;
    var bgimg = 'vip';
    var url = "http://user.qbar.qq.com/login/index.html";//'https://account.qq.com/cgi-bin/ptlogin?pageStyle=1';
    if ( argv[0] ) {
        bgimg = argv[0];
    }
    if ( bgimg.substring(1, 7) != "http://" ) {
        bgimg = 'http://imgcache.qq.com/ad/login/' + bgimg + '.gif';
    }
    if ( argv[1] ) {
        url += "&url=" + escape(argv[1]);
    }
    else
     {
  url += "&url=" + escape(window.location.href);
      }///< if
    try {
         
        var h = ((document.getElementById("login_div_header")  == undefined) ? parent.document.getElementById("login_div_header") : document.getElementById("login_div_header"));
     if ( typeof(h) != "undefined" ) {
            h.style.backgroundImage = 'url(' + bgimg + ')';
        }
        var f = ((document.getElementById("login_div_iframe")== undefined) ? parent.document.getElementById("login_div_iframe") : document.getElementById("login_div_iframe"));
    if ( typeof(f) != "undefined" ) {
            f.src = url;
        }

        qq_login_status("show");
    }
    catch ( x ) {
        //window.alert( x.message );
    }
}

function qq_login_form(){
 var f=((document.getElementById("login_div_iframe")==undefined) ? parent.document.getElementById("login_div_iframe") : document.getElementById("login_div_iframe"));
 f.src="http://group.qq.com/login/index.html";
 var e=((document.getElementById("login_div")==undefined) ? parent.document.getElementById("login_div") : document.getElementById("login_div"));
 e.style.display="";
 e.style.top="145px";
 e.style.left="50%";
 e.style.marginLeft="-235px";
}


/**
 * Show or hide the login form
 *
 * @param   string   status   显示(status=show)  关闭(status=hide)
 */
function qq_login_status(){
    var argv = qq_login_status.arguments;
    var status = '';
    if ( argv[0] ) {
        status = argv[0];
    }

    try {
        var e = ((document.getElementById("login_div") == undefined) ? parent.document.getElementById("login_div") : document.getElementById("login_div"));
        switch ( status ) {
            case "show":
                e.style.display = '';
                break;

            case "hide":
                e.style.display = 'none';
                break;

            default:
                if ( e.style.display == 'none' ) {
                    e.style.display = '';
                } else {
                    e.style.display = 'none';
                }///< if
                break;
        }///< switch
    }
    catch ( x ) {
        //window.alert( x.message );
    }
}
//-->

function SpecificTable(tableid, insname, Style_Quondam, Style_MouseOver, Style_Stick)
{
        this.tableid = tableid;
        this.mouseoverstyle = Style_MouseOver;
        this.mouseoutstyle = Style_Quondam;
        this.clickstyle = Style_Stick;
        this.tableobj = document.getElementById(this.tableid);     
        this.insname = insname;
       
        for (var i=0; i < this.tableobj.rows.length; i++)
        {
                this.tableobj.rows[i].onmouseover = this.insname + ".MouseOver(this)";
                this.tableobj.rows[i].onmouseout = this.insname + ".MouseOut(this)";
                this.tableobj.rows[i].onclick = this.insname + ".Click(this)";
        }                             
}

function SpecificTable.prototype.MouseOver(obj)
{       
        obj.className = this.mouseoverstyle;
}

function SpecificTable.prototype.MouseOut(obj)
{
        if (this.clickTr != obj)
        {
                obj.className = this.mouseoutstyle;
        }
}

function SpecificTable.prototype.Click(obj)
{
        var tmpobj = this.clickTr;
        this.clickTr = obj;    
        if (tmpobj != undefined && tmpobj != obj)
        {
                //
                tmpobj.className = this.mouseoutstyle;              
                //alert(tmpobj.outerHTML);
        }
}

var hexcase = 1;
var b64pad = "";
var chrsz = 8;
var mode = 32;

function preprocess(form)
{
  var str = "";
  str += form.verifycode.value;
  str = str.toUpperCase();
  form.p.value = md5(md5_3(form.p.value)+str);
  return true;
}

function md5_3(s)
{
  var tmp = new Array;
  tmp = core_md5(str2binl(s), s.length * chrsz);
  tmp = core_md5(tmp, 16 * chrsz);
  tmp = core_md5(tmp, 16 * chrsz);
  return binl2hex(tmp);
}

function md5(s)
{
  return hex_md5(s);
}
function hex_md5(s)
{
  return binl2hex(core_md5(str2binl(s), s.length * chrsz));
}

function b64_md5(s)
{
  return binl2b64(core_md5(str2binl(s), s.length * chrsz));
}

function str_md5(s)
{
  return binl2str(core_md5(str2binl(s), s.length * chrsz));
}

function hex_hmac_md5(key, data)
{
  return binl2hex(core_hmac_md5(key, data));
}

function b64_hmac_md5(key, data)
{
  return binl2b64(core_hmac_md5(key, data));
}

function str_hmac_md5(key, data)
{
  return binl2str(core_hmac_md5(key, data));
}

function md5_vm_test()
{
  return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
}

function core_md5(x, len)
{
  x[len >> 5] |= 0x80 << ((len) % 32);
  x[(((len + 64) >>> 9) << 4) + 14] = len;

  var a = 1732584193;
  var b =  - 271733879;
  var c =  - 1732584194;
  var d = 271733878;

  for (var i = 0; i < x.length; i += 16)
  {
    var olda = a;
    var oldb = b;
    var oldc = c;
    var oldd = d;

    a = md5_ff(a, b, c, d, x[i + 0], 7,  - 680876936);
    d = md5_ff(d, a, b, c, x[i + 1], 12,  - 389564586);
    c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819);
    b = md5_ff(b, c, d, a, x[i + 3], 22,  - 1044525330);
    a = md5_ff(a, b, c, d, x[i + 4], 7,  - 176418897);
    d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);
    c = md5_ff(c, d, a, b, x[i + 6], 17,  - 1473231341);
    b = md5_ff(b, c, d, a, x[i + 7], 22,  - 45705983);
    a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416);
    d = md5_ff(d, a, b, c, x[i + 9], 12,  - 1958414417);
    c = md5_ff(c, d, a, b, x[i + 10], 17,  - 42063);
    b = md5_ff(b, c, d, a, x[i + 11], 22,  - 1990404162);
    a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682);
    d = md5_ff(d, a, b, c, x[i + 13], 12,  - 40341101);
    c = md5_ff(c, d, a, b, x[i + 14], 17,  - 1502002290);
    b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329);

    a = md5_gg(a, b, c, d, x[i + 1], 5,  - 165796510);
    d = md5_gg(d, a, b, c, x[i + 6], 9,  - 1069501632);
    c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713);
    b = md5_gg(b, c, d, a, x[i + 0], 20,  - 373897302);
    a = md5_gg(a, b, c, d, x[i + 5], 5,  - 701558691);
    d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083);
    c = md5_gg(c, d, a, b, x[i + 15], 14,  - 660478335);
    b = md5_gg(b, c, d, a, x[i + 4], 20,  - 405537848);
    a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438);
    d = md5_gg(d, a, b, c, x[i + 14], 9,  - 1019803690);
    c = md5_gg(c, d, a, b, x[i + 3], 14,  - 187363961);
    b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501);
    a = md5_gg(a, b, c, d, x[i + 13], 5,  - 1444681467);
    d = md5_gg(d, a, b, c, x[i + 2], 9,  - 51403784);
    c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473);
    b = md5_gg(b, c, d, a, x[i + 12], 20,  - 1926607734);

    a = md5_hh(a, b, c, d, x[i + 5], 4,  - 378558);
    d = md5_hh(d, a, b, c, x[i + 8], 11,  - 2022574463);
    c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562);
    b = md5_hh(b, c, d, a, x[i + 14], 23,  - 35309556);
    a = md5_hh(a, b, c, d, x[i + 1], 4,  - 1530992060);
    d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353);
    c = md5_hh(c, d, a, b, x[i + 7], 16,  - 155497632);
    b = md5_hh(b, c, d, a, x[i + 10], 23,  - 1094730640);
    a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174);
    d = md5_hh(d, a, b, c, x[i + 0], 11,  - 358537222);
    c = md5_hh(c, d, a, b, x[i + 3], 16,  - 722521979);
    b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189);
    a = md5_hh(a, b, c, d, x[i + 9], 4,  - 640364487);
    d = md5_hh(d, a, b, c, x[i + 12], 11,  - 421815835);
    c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520);
    b = md5_hh(b, c, d, a, x[i + 2], 23,  - 995338651);

    a = md5_ii(a, b, c, d, x[i + 0], 6,  - 198630844);
    d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415);
    c = md5_ii(c, d, a, b, x[i + 14], 15,  - 1416354905);
    b = md5_ii(b, c, d, a, x[i + 5], 21,  - 57434055);
    a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571);
    d = md5_ii(d, a, b, c, x[i + 3], 10,  - 1894986606);
    c = md5_ii(c, d, a, b, x[i + 10], 15,  - 1051523);
    b = md5_ii(b, c, d, a, x[i + 1], 21,  - 2054922799);
    a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359);
    d = md5_ii(d, a, b, c, x[i + 15], 10,  - 30611744);
    c = md5_ii(c, d, a, b, x[i + 6], 15,  - 1560198380);
    b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649);
    a = md5_ii(a, b, c, d, x[i + 4], 6,  - 145523070);
    d = md5_ii(d, a, b, c, x[i + 11], 10,  - 1120210379);
    c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259);
    b = md5_ii(b, c, d, a, x[i + 9], 21,  - 343485551);

    a = safe_add(a, olda);
    b = safe_add(b, oldb);
    c = safe_add(c, oldc);
    d = safe_add(d, oldd);
  }
  if (mode == 16)
  {
    return Array(b, c);
  }
  else
  {
    return Array(a, b, c, d);
  }
}

function md5_cmn(q, a, b, x, s, t)
{
  return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b);
}

function md5_ff(a, b, c, d, x, s, t)
{
  return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}

function md5_gg(a, b, c, d, x, s, t)
{
  return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}

function md5_hh(a, b, c, d, x, s, t)
{
  return md5_cmn(b ^ c ^ d, a, b, x, s, t);
}

function md5_ii(a, b, c, d, x, s, t)
{
  return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
}

function core_hmac_md5(key, data)
{
  var bkey = str2binl(key);
  if (bkey.length > 16)
    bkey = core_md5(bkey, key.length * chrsz);

  var ipad = Array(16), opad = Array(16);
  for (var i = 0; i < 16; i++)
  {
    ipad[i] = bkey[i] ^ 0x36363636;
    opad[i] = bkey[i] ^ 0x5C5C5C5C;
  }

  var hash = core_md5(ipad.concat(str2binl(data)), 512+data.length * chrsz);
  return core_md5(opad.concat(hash), 512+128);
}

function safe_add(x, y)
{
  var lsw = (x & 0xFFFF) + (y & 0xFFFF);
  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
  return (msw << 16) | (lsw & 0xFFFF);
}

function bit_rol(num, cnt)
{
  return (num << cnt) | (num  >>> (32-cnt));
}

function str2binl(str)
{
  var bin = Array();
  var mask = (1 << chrsz) - 1;
  for (var i = 0; i < str.length * chrsz; i += chrsz)
    bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (i % 32);
  return bin;
}

function binl2str(bin)
{
  var str = "";
  var mask = (1 << chrsz) - 1;
  for (var i = 0; i < bin.length * 32; i += chrsz)
    str += String.fromCharCode((bin[i >> 5] >>> (i % 32)) & mask);
  return str;
}


function binl2hex(binarray)
{
  var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
  var str = "";

  for (var i = 0; i < binarray.length * 4; i++)
  {
    str += hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8+4)) & 0xF) +
      hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8)) & 0xF);
  }
  return str;
}

function binl2b64(binarray)
{
  var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  var str = "";
  for (var i = 0; i < binarray.length * 4; i += 3)
  {
    var triplet = (((binarray[i >> 2] >> 8 * (i % 4)) & 0xFF) << 16) | ((
      (binarray[i + 1 >> 2] >> 8 * ((i + 1) % 4)) & 0xFF) << 8) | ((binarray[i
      + 2 >> 2] >> 8 * ((i + 2) % 4)) & 0xFF);
    for (var j = 0; j < 4; j++)
    {
      if (i * 8+j * 6 > binarray.length * 32)
        str += b64pad;
      else
        str += tab.charAt((triplet >> 6 * (3-j)) & 0x3F);
    }
  }
  return str;
}

function join_group(){
 document.all.groupmain.src="/cgi-bin/group_join?groupid="+iGroupId ;
// var sURL = "http://group.qq.com/group_index.shtml?funcid=14&groupid="+iGroupId;
// window.top.location = sURL;
}
function GetGroupInfo(groupid){
 if (g_GroupInfoDoc==undefined){
  var xmlhttp = SyncHttpRequest("GET", "/cgi-bin/groupbaseinfo?groupid=" + iGroupId, "");
  if (XmlDocCheck(xmlhttp.responseXML)==0){                   
   g_GroupInfoDoc=xmlhttp.responseXML;
  }else{
   location.href="/error.htm?msgid="+XmlDocCheck(xmlhttp.responseXML).resultstr+"&groupid="+groupid;
  }
 }
 return g_GroupInfoDoc;
}
function GetLogClassXDoc(){
 if (g_weblogclass == undefined){return undefined}
 return g_weblogclass.xDoc;
}
function GroupMgr(groupid){window.open("/found01.shtml")}
function ViewBrief(groupid, docobj){ 
 if (docobj == undefined){
  docobj=document;
 }
 if (g_GroupInfoDoc != undefined){       
  //拉群简介信息
  var divObj = docobj.getElementById("briefshow");
  if (divObj.oldHTML == undefined){
   divObj.oldHTML =  divObj.innerHTML;
  }
  var templateStr = divObj.oldHTML;
  FillTempStr(divObj, g_GroupInfoDoc, templateStr);
  var nodes=g_GroupInfoDoc.selectNodes("/data/item"),uin=nodes[0].selectSingleNode("uin").text,faceid=0;

  var userItem=g_groupUser.GetUserInfo(MyParseInt(uin));
  if (userItem != undefined){faceid = userItem.faceid}
  showuserinfo.SetUserInfoEvent(uin, faceid);
  var adminList = g_groupUser.GetAdminList();

  {// if((isopen==1)||(ismem==1))
   var adminstr = "<table border=/"0/" cellpadding=/"0/" cellspacing=/"0/"><tr><td>管理员:</td>";
   var realnum = (adminList.length < MAXADMINUM)?adminList.length:MAXADMINUM;
   for (var i=0; i < realnum; i++){            
    adminstr += "<td style=/"padding-right:5px;/">" + UserStr(adminList[i].uin,adminList[i].nickname) + "</td>";
    showuserinfo.SetUserInfoEvent(adminList[i].uin, adminList[i].faceid);
   }
  }
  var tmpHtml=divObj.innerHTML;
  tmpHtml=tmpHtml.replace("adminliststr", adminstr);
  divObj.innerHTML=tmpHtml;
 }
 showuserinfo.GetUserInfo("brief");
 document.all.briefshow.style.display="";
}
function groupcreatorface(){GetOnlineStatus(uinlist)}
function Group_create(){document.all.groupmain.src = "/cgi-bin/group_create"}
function Group_convert(groupid){document.all.groupmain.src = "/cgi-bin/group_convert?groupid="+groupid;}
function Group_useropt(groupid){document.all.groupmain.src = "/cgi-bin/group_user?groupid="+groupid}
function Group_cancle(groupid){document.all.groupmain.src = "/cgi-bin/group_cancle?groupid="+groupid}

/*****拉群相册以及硬盘信息************/
function GetPf(){this.xDoc=undefined}
function GetPf.prototype.completeCallback(xmlhttp, flag){
 this.xDoc = xmlhttp.responseXML;
 if (XmlDocCheck(this.xDoc) != 0){
  document.getElementById("photorow").style.display = "none";
     document.getElementById("diskrow").style.display = "none";
  return;
 } 
 var divObj=document.getElementById("groupmessage"),tmphtml=divObj.innerHTML;
 var nodes=this.xDoc.selectNodes("/data/item"),photototal,disktotal;
 //var photototal = nodes[0].selectSingleNode("photototal").text;
 var photoused = parseInt(nodes[0].selectSingleNode("photoused").text);
 var diskused = parseInt(nodes[0].selectSingleNode("diskused").text);
 //var disktotal = parseInt(nodes[0].selectSingleNode("disktotal").text);
 //var diskpervalue = parseInt(nodes[0].selectSingleNode("percentdisk").text);
 //var photopervalue = nodes[0].selectSingleNode("percentphoto").text;
 if (superstatus == "高级群"){
  photototal =100;
  disktotal=256;
 }
 else if(superstatus == "超级群"){
  photototal = 100;
  disktotal = 1024;
 }
 else{
  photototal =10;
  disktotal=16;
 }
 var photopervalue = parseInt(photoused*100)/parseInt(photototal);
 var diskpervalue = parseInt(diskused*100)/parseInt(disktotal);
 rephoto = //$photospace/$/g;
 redisk = //$diskspace/$/g;
 if(parseInt(photoused)>parseInt(photototal)){   
  tmphtml = tmphtml.replace(rephoto, "<font color=#ff0000>"+parseInt(photoused) + "</font>/" + parseInt(photototal))
 }else{
  tmphtml=tmphtml.replace(rephoto, parseInt(photoused) + "/" + parseInt(photototal));
 }
 if(parseInt(diskused)>parseInt(disktotal)){
  tmphtml = tmphtml.replace(redisk, "<font color=#ff0000>"+parseInt(diskused) + "</font>/" + parseInt(disktotal));
 }else{
  tmphtml = tmphtml.replace(redisk,parseInt(diskused) + "/" + parseInt(disktotal));
 }
 photoper=//$percentphoto/$/g;
 diskper=//$percentdisk/$/g;
 tmphtml = tmphtml.replace(photoper,parseInt(photopervalue));
 tmphtml = tmphtml.replace(diskper,parseInt(diskpervalue));

 var tmpre,photoleave =photototal-photoused;
 if (photoleave >= 0){
  tmpre = //$photoused/$/g;
  tmphtml = tmphtml.replace(tmpre, photoused);
  tmpre = //$photoleave/$/g;
  tmphtml = tmphtml.replace(tmpre, photoleave);
 }
 
 var diskleave = disktotal - diskused;
 if (diskleave >= 0){
  tmpre = //$diskused/$/g;
  tmphtml = tmphtml.replace(tmpre, diskused);
  tmpre = //$diskleave/$/g;
  tmphtml = tmphtml.replace(tmpre, diskleave);
 }
 divObj.innerHTML = tmphtml;
 if (photoleave<0)document.getElementById("photorow").title = "相册空间已经没有剩余空间了"; 
 if (diskleave<0)document.getElementById("diskrow").title = "硬盘空间已经没有剩余空间了"; 
 if (photopervalue>=90)document.all.photobackimg.background = "http://imgcache.qq.com/group/images/group138.gif";
 if (diskpervalue>=90)document.all.diskbackimg.background = "http://imgcache.qq.com/group/images/group138.gif";

    //未登录
 if (g_userInfoDoc == undefined){
  document.getElementById("photorow").style.display = "none";
  document.getElementById("diskrow").style.display = "none";
 }else{
  document.getElementById("photorow").style.display = "";
  document.getElementById("diskrow").style.display = "";
 }
}
function GetPf.prototype.LoadData(){
 AsyncHttpRequest("GET", "/cgi-bin/getpf?groupid=" + iGroupId, this, "");
}
function ViewGpMsg(groupid, docobj){
 if (docobj == undefined){
  docobj = document;
 }
 if (g_GroupInfoDoc != undefined){
  var divObj = docobj.getElementById("groupmessage");
  if (divObj.oldHTML == undefined){
   divObj.oldHTML =  divObj.innerHTML;
  }
  var templateStr = divObj.oldHTML;
  FillTempStr(divObj, g_GroupInfoDoc, templateStr);
  var nodes = g_GroupInfoDoc.selectNodes("/data/item");
  superstatus = nodes[0].selectSingleNode("gpstatus").text;
  isopen = nodes[0].selectSingleNode("isopen").text;
  ismem = nodes[0].selectSingleNode("ismem").text;            
  var openstr=(isopen == 0)?"非公开":"公开",tmphtml = divObj.innerHTML,re= /gpopenstatus/g;

  tmphtml = tmphtml.replace(re, openstr);

//=============超级群===============
  if (superstatus == "超级群")
  {
   //window.attachEvent("onload",function(){docobj.getElementById("trGroupAcount").innerHTML="none";})
   docobj.getElementById("trGroupAcount").innerHTML = "<strong>群续费</strong>";
   docobj.getElementById("trGroupAcount").attachEvent("onclick",function(){window.location = "/cgi-bin/account_charge_showpage?groupid="+dataform.groupid.value;})
   docobj.getElementById("superexpire").style.display = "";
   var flg=parseInt(nodes[0].selectSingleNode("flag").text);
   if (flg&0x4000000){
    document.getElementById("paymoreimg").style.display="";
   }
  }
//=============超级群===============

  if (superstatus == "高级群"){        
   var iscloseexpire = nodes[0].selectSingleNode("iscloseexpire").text;
   var expiredate = nodes[0].selectSingleNode("superexpiredate").text;
   resuper = //$superexpiredatebycolor/$/g;
   if(iscloseexpire==1){
    tmphtml = tmphtml.replace(resuper, "<font color=#ff0000>"+expiredate+"</font>");
   }else{
    tmphtml = tmphtml.replace(resuper, expiredate);
   }
  }
  divObj.innerHTML = tmphtml;
  if (superstatus == "高级群"){
   docobj.getElementById("superexpire").style.display = "";
  }
  if (g_groupUser){
   if (g_groupUser.GetUserInfo(realuin) == undefined){
    docobj.getElementById("joingroupimg").style.display = "";
   }
   if (g_groupUser.IsAdmin(realuin)){
    docobj.getElementById("groupadminflag").style.display = "";
   }
   if (superstatus == "普通群"){
    if (g_groupUser.IsInGroup(realuin)){
     docobj.getElementById("upgradeimg").style.display = "";
    }
   }
  }else{
   docobj.getElementById("joingroupimg").style.display = "";
  }
 }
}
function GroupManage(groupid){document.all.groupmain.src = "/cgi-bin/basemanage?groupid="+groupid}
function ShowCard(groupid){document.all.groupmain.src = "/cgi-bin/groupuserall?groupid="+groupid}
function ShowChat(groupid){document.all.groupmain.src = "/cgi-bin/gschat_record?groupid="+groupid+"&rnd="+Math.random()}
function ViewClassWeblog(groupid, classid){document.all.groupmain.src = "/webloglist.html?groupid="+groupid+"&classid="+classid}
function VidwPhoto(groupid){document.all.groupmain.src ="photo.html?page=1&groupid="+dataform.groupid.value}
function ViewAlbum(groupid){document.all.groupmain.src ="album.html?groupid="+groupid}
function ViewAccount(groupid){document.all.groupmain.src ="/cgi-bin/account_charge_showpage?groupid="+groupid}
function ViewAccount_Mini(groupid){top.location ="/account_charge_mini.shtml?groupid="+groupid}
function ViewMailAlias(groupid){document.all.groupmain.src = "/cgi-bin/mail_portal?groupid="+groupid}
function ViewChatHistory(groupid){document.all.groupmain.src = "/cgi-bin/gschat_record?groupid=" + groupid}
function keyproc(){if (event.keyCode == 13){checkinput()}}
function checkinput(){
 if(document.form1.u.value == ""){
  window.alert("您还没有输入QQ号!");
  return false;
 }
 if(document.form1.p.value == ""){
  window.alert("您还没有输入密码!");
  return false;
 }
 preprocess(form1);
 document.form1.submit();
 return true
}
function checkLogin(n){
 if (n == 0 && document.form1.verifycode.value == "附加码"){
  document.form1.verifycode.value="";
  document.form1.verifycode.style.cssText = "color:#000"
 }
 if (n == 1 && document.form1.verifycode.value == ""){
  document.form1.verifycode.value = "附加码";
  document.form1.verifycode.style.cssText = "color:#aaa"
 }
}
function mycard(){top.document.all.groupmain.src = "/mycard.shtml?groupid=$groupid$"}
function GetUserInfo(){
 var geturl="/cgi-bin/user_login",xmlhttp = SyncHttpRequest("GET", geturl, "");
 if (XmlDocCheck(xmlhttp.responseXML) == 0){
  g_userInfoDoc = xmlhttp.responseXML;
 }else{
  _userInfoDoc = undefined;
 }
}
function CheckUserLogin(){ 
 GetUserInfo();
 if (g_userInfoDoc != undefined){               
  document.all.login.style.display = "";
  document.all.visit.style.display = "none";
  FillUserInfo();
  document.all.logoutflag.style.display = "";
  var nodes = g_userInfoDoc.selectNodes("/data/item");
  var faceid = nodes[0].selectSingleNode("faceid").text;
  var uin = nodes[0].selectSingleNode("uin").text; 
  var groupnum = nodes[0].selectSingleNode("groupnum").text; 
  if(groupnum==0){
   document.all.joingroups.style.display='none';
  }else{
   document.all.joingroups.style.display='';
  }
  showuserinfo.SetUserInfoEvent(uin, faceid);
 }else{
  document.all.visit.style.display = "";
  document.all.login.style.display = "none";
  document.all.logoutflag.style.display = "none";
 }
 showuserinfo.GetUserInfo("userlogin");
}
function FillUserInfo(){
 if (g_userInfoDoc != undefined){
  var divObj = document.getElementById("login");
  var templateStr = divObj.innerHTML;
  FillTempStr(divObj, g_userInfoDoc, templateStr);
 } 
}
function show(obj){
 var  p=document.getElementById(obj);
 if(p.style.visibility=="hidden"){p.style.visibility="visible";}
 else{p.style.visibility="hidden";}
}
var tmpqbflag=0;
function qbonmouseover(){                           
 document.all.qbout.style.display='';       
 document.all.qb.style.display='';
 var heightvalue = 400;      
 var tmpobj = document.getElementById("qb");
 var tmpheight = parseInt(tmpobj.scrollHeight);   
 heightvalue = (tmpheight > heightvalue)?heightvalue:tmpheight;
 document.all.qbout.style.height = heightvalue+6;
 document.all.qb.style.height = heightvalue+4;      
 tmpqbflag = 1;
}
function unreplace(str){
 return str.replace(/&#(/d+);/g,function($1,$2){
  return String.fromCharCode($2)
 });
}
function RefreshVerifyCode(){
 clearTimeout(timeoutid);
 timeoutid = setTimeout("RefreshVerifyCode()", 240000);
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值