﻿
    var WinLst=new Array();//子窗体列表
    
    var CurUserName;//当前用户名
    var CurUserNum;//当前用户帐号
    var CurUserHead;//当前用户头像
    var TalkWinList=new Array();//聊天窗口列表
    var timer_GetJoinInf=null;//获取加入好友消息计时器

        function AJAXRequest() {
	        var xmlObj = false;
	        var CBfunc,ObjSelf;
	        ObjSelf=this;
	        try { xmlObj=new XMLHttpRequest; }
	        catch(e) {
		        try { xmlObj=new ActiveXObject("MSXML2.XMLHTTP"); }
		        catch(e2) {
			        try { xmlObj=new ActiveXObject("Microsoft.XMLHTTP"); }
			        catch(e3) { xmlObj=false; }
		        }
	        }
	        if (!xmlObj) return false;
	        this.method="POST";
	        this.url;
	        this.async=true;
	        this.content="";
	        this.callback=function(cbobj) {return;}
	        this.send=function() {
		        if(!this.method||!this.url||!this.async) return false;
		        xmlObj.open (this.method, this.url, this.async);
		        if(this.method=="POST") xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		        xmlObj.onreadystatechange=function() {
			        if(xmlObj.readyState==4) {
				        if(xmlObj.status==200) {
					        ObjSelf.callback(xmlObj);
				        }
			        }
		        }
		        if(this.method=="POST") xmlObj.send(this.content);
		        else xmlObj.send(null);
	        }
        }

       function OnLine()
       {       
                var ajaxobj=new AJAXRequest;
                ajaxobj.async=true;
                ajaxobj.method="POST";
                ajaxobj.url="/q/friend/OnLinePage.aspx?t"+Math.random();
                //ajaxobj.content="uid="+uid;
                ajaxobj.callback=function(xmlobj) {
                     //document.write(xmlobj.responseText);
                     //document.title=xmlobj.responseText;
                }
                ajaxobj.send();
                
            
       }       
       OnLine();
       window.setInterval(OnLine,50000);//50秒，一定要比web.config里的reftime小
       
function GetLogUserSys()
{
  var callback=function(res){
  
   if(res!=null){
         var arr=new Array();
       if(res.value!=null){
              arr=res.value.split(',');       
               if(arr[0]!="0")
               {
                 
                 var brr=new Array();
                  brr=res.value.split(',');//arr[0]==几封消息 arr[1]===是什么消息 arr[2]==消息内容
                 
                    var MSG1 = new CLASS_MSN_MESSAGE("aa",250,200,"短消息提示：","您有新的消息,请注意查收",brr[1]); 
                     MSG1.rect(null,null,null,screen.height-50); 
                     MSG1.speed    = 10; 
                     MSG1.step    = 5;     
                     MSG1.show(brr[1]);     
               }
       }
   }
  };  
  var res=ajax.ajax.GetUserSys(callback);
}
window.setInterval(GetLogUserSys,20000);
var tmpnum=0;
var tmpnum2=0;
var tmpnum3=0;
var tmpnum4=0;
 var tmpWin="";
 var tmpWin2="";
  var tmpWin3="";
var IfRev=0;
function GetSysMessage()
{   
     
     var url="/q/Message/GetChatInfo.aspx?type=1001&t="+Math.random();
     
     var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
     xmlhttp.open("POST",url,false);
     xmlhttp.send("");
     var rev=xmlhttp.responseText;
     //alert(url + '\r\n' + rev);
    
    if(rev.length>5)
    {
         
         var t=new Array();
         t=rev.split("§");  
         
         if(t[1]=="1")
         {
           if(t.length>2)//新的消息来了 提示消息来了
           {
            //t[2];发送信息者
            //t[3]接收信息者 也就是登录用户
            //t[4] 发送者真实姓名
            //t[5]信息接受者名称

          
              var mydiv='U_'+t[3]+'divchat'+t[2];
              var obj=document.getElementById(mydiv);//'U_'+t[3]+'divchat'+t[2];
              //alert(obj);
             if (obj!=null)
             {  
                   
                    if(obj.style.display=='none')
                   {
                      
                      //alet("已经创建未打开");
                          tmpnum3++;                          
                          //alert(t[6]);                                       
                          if(tmpnum3<2)
                          {  
                             
                             var info="<div style='margin-top:20px;margin-left:25px;'>您的好友:<font color=red>"+t[4]+"</font>给你发来消息</div>";
                             var js="yes,"+t[2]+","+t[3]+","+t[4]+","+t[6];
                             var jj="no,"+t[2]+","+t[3]+","+t[4]+","+t[6];                                       
                             ymPrompt.win({message:info,title:'您有新的消息注意查收！',handler:testHd,btn:[['接收',js],['拒绝',jj]],width:220,height:120,fixPosition:true,winPos:'rb'})
                              
                          }      
                      
                    }
                    else
                    {
                      //alert("");
                           
                    }
             }
            else
            {                
                  tmpnum++;
                  tmpWin=mydiv; 
                                 
                  if(tmpnum<2)
                  { 
                    
                    tmpWin2=tmpWin ;               
                    var info="<div style='margin-top:20px;margin-left:25px;'>您的好友<font color=red>"+t[4]+"</font>给你发来消息</div>";
                    var js="yes,"+t[2]+","+t[3]+","+t[4]+",0";
                    var jj="no,"+t[2]+","+t[3]+","+t[4]+",0";
                           
                    ymPrompt.win({message:info,title:'您有新的消息注意查收！',handler:testHd,btn:[['接收',js],['拒绝',jj]],width:220,height:120,fixPosition:true,winPos:'rb'})
                  }
                  else
                  {
                    tmpnum2++;
                    if(tmpWin!=tmpWin2)
                    {
                       if(tmpnum2<2)
                       {
                           var info="<div style='margin-top:20px;margin-left:25px;'>您的好友<font color=red>"+t[4]+"</font>给你发来消息</div>";
                           var js="yes,"+t[2]+","+t[3]+","+t[4]+",0";
                           var jj="no,"+t[2]+","+t[3]+","+t[4]+",0";
                               
                           ymPrompt.win({message:info,title:'您有新的消息注意查收！',handler:testHd,btn:[['接收',js],['拒绝',jj]],width:220,height:120,fixPosition:true,winPos:'rb'})
                      }
                    }
                  }
                       
            }   
           
           }
         }
    }
}

function testHd(tp){

          var arr=tp.split(",");//0=flag 1=发送信息用户ID 2=接收信息用户ID 3= 信息接收者名称      
          if(arr[0]=='no')
          {           
            //alert("您拒绝了"); 
              
  
               var url="/q/Message/JJChat.aspx?ReceiveID="+arr[1]+"&SendID="+arr[2]+"&RevName="+escape(arr[3]);
              
               var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
               xmlhttp.open("POST",url,false);
               xmlhttp.send("");
               var rev=xmlhttp.responseText;

                
          }
          else
          {
            var url="/q/Message/SendMsg.aspx?ReceiveID="+arr[1]+"&SendID="+arr[2]+"&RevName="+escape(arr[3])+"&ID="+arr[4]+ "&t=" + Math.random();           
             var mydiv='U_'+arr[2]+'divchat'+arr[1];
             IfRev=1;
             //alert(url);
             showchat(url,mydiv,arr[3]);
          }
			
		}

window.setInterval(GetSysMessage,3000);
window.setTimeout(GetSysMessage,10000);//18000


function setChatCenter(obj)
{      
       if (typeof obj == "string") obj = document.getElementById(obj);      
        var doc=document.body;
        var height=doc.clientHeight;
        var width=doc.clientWidth;       
       obj.style.left=(width-obj.clientWidth)/2 + doc.scrollLeft;
       obj.style.top=(height-obj.clientHeight)/2+ doc.scrollTop;
       
}
String.prototype.px=function()
{
  if (this.indexOf('px')==-1)
  {
    alert('Error: 未指定大小!');
    return;
  }
  return parseInt(this.replace('px',''));	
}

function showchat(url,mydiv,frname)
 {  
      //url=url+ "&tt=" +Math.random();
      var obj=document.getElementById(mydiv);
      if (obj==null)
      {
        
         obj=document.createElement('DIV');      
         obj.id=mydiv;
         //obj.style.className='DIVchat';    
         obj.style.position='absolute'; 
         obj.style.width='592px'; 
         obj.style.height='435px'; 
         obj.style.zIndex=999999; 
         obj.style.overflow='hidden'; 
         //obj.style.padding-top='20px'; 
         //obj.style.background=''; 
         obj.style.cursor="Pointer";
          //obj.innerHTML='1111';
         obj.style.backgroun="#fff";

          
           //obj.innerHTML='<div style=\"padding-left:7px;\">'+tmp+'</div><iframe id="Ifr" frameborder=no width="100%" height="100%" src=\"'+url+'\""></iframe>';              
 
         document.body.insertBefore(obj,null);
         obj.attachEvent('onmouseover', function(){on(obj)});
         obj.attachEvent('onclick', function(){setindex(obj)});
        
         //alert(obj.style.position);
      }
      var tmp="";
        tmp="<table width=\"586\" height=\"27\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" background=\"/q/images/litian1.gif\">";
        tmp+="<tr><td width=\"483\">&nbsp;</td>";
       tmp+="<td width=\"103\" align=\"center\" valign=\"top\">";
       tmp+="<a href=\"javascript:parent.hidchat('"+mydiv+"');\">";
       tmp+="<img src=\"/q/images/litian2.gif\" width=\"63\" height=\"24\">";
       tmp+="</a>";
       tmp+="</td>";
       tmp+="</tr></table>";
          obj.innerHTML='<div style=\"padding-left:7px;\">'+tmp+'</div><div style=\"padding-left:0px;\"><iframe id="Ifr" frameborder=no width="100%" height="100%" src=\"'+url+'\""></iframe></div>';              
          obj.style.display='';
          setChatCenter(obj);
 }
 
 function setindex(obj)
 {
    var time=new Date().format("ddhhmmss");
    obj.style.zIndex=time;
 }
       
 function hidchat(mydiv)
  {
      var obj=document.getElementById(mydiv);
      if (obj!=null)
      {
        obj.style.display='none';
        var tmp=mydiv.replace("U_","");
        var arr=tmp.split("divchat");
        tmpnum3=0;
        IfRev=0;
            var url="/q/Message/JJChat.aspx?fg=1&ReceiveID="+arr[1]+"&SendID="+arr[0]+"&RevName=''";
              
               var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
               xmlhttp.open("POST",url,false);
               xmlhttp.send("");
               var rev=xmlhttp.responseText;
                //window.parent.location.reload();
      }
      
  }
       var lastobj=null;
        function on(o)
        {  
          lastobj=o.id;
          window.setTimeout(ondiv,200);
        }
        function ondiv()
        {
             if (document.readyState!="complete") return;
            var obj = document.getElementById(lastobj);
            if (!obj)return;            
            //obj.style['background']='#CC0099';
            moveobj(obj);
        }
        
  function moveobj(o)  
  {   
  if (typeof o == "string") o = document.getElementById(o);
    o.onmousedown = function(a)  
    {
        //this.style.cursor = "move";
        var d=document;  
        if(!a)a=window.event;        
    
        var x = a.clientX+d.body.scrollLeft-o.style.left.px();  
        var y = a.clientY+d.body.scrollTop-o.style.top.px();      
        
        d.ondragstart = "return false;"  
        d.onselectstart = "return false;"  
        d.onselect = "document.selection.empty();"

        if(o.setCapture)  
            o.setCapture();  
        else if(window.captureEvents)  
            window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);  

        d.onmousemove = function(a)  
        {
            if(!a)a=window.event;         
              o.style.top = a.clientY+document.body.scrollTop-y;                   
              o.style.left = a.clientX+document.body.scrollLeft-x;           
        }  

        d.onmouseup = function()  
        {  
            if(o.releaseCapture)  
                o.releaseCapture();  
            else if(window.captureEvents)  
                window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);  
            d.onmousemove = null; 
            d.onmouseup = null;  
            d.ondragstart = null;  
            d.onselectstart = null;  
            d.onselect = null;
            //o.style.cursor = "normal";  
        }
    }
}
 
 Date.prototype.format = function(format) //时间格式化
{
  var o = {
    "M+" : this.getMonth()+1, //month 有问题？
    "d+" : this.getDate(),    //day
    "h+" : this.getHours(),   //hour
    "m+" : this.getMinutes(), //minute
    "s+" : this.getSeconds(), //second
    "q+" : Math.floor((this.getMonth()+3)/3),  //quarter
    "S" : this.getMilliseconds() //millisecond
  }
  if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
    (this.getFullYear()+"").substr(4 - RegExp.$1.length));
  for(var k in o)if(new RegExp("("+ k +")").test(format))
    format = format.replace(RegExp.$1,
      RegExp.$1.length==1 ? o[k] : 
        ("00"+ o[k]).substr((""+ o[k]).length));
  return format;
}
