/**
*@function:ajax 请求处理
*@author:tiger
*@email:li284362085@163.com
*@copyright:ActiveNet Logics IT Co.,Ltd.
*@date:2009-07-15
**/

var curr_OperGroup="";
//ajax call-back 
function callback_getUserListToGroup(msg){
	var data = msg;
	refreshObj="";
	if(zonesToRefresh!=""){
		refreshObj=$("#"+zonesToRefresh);
	}
	refreshObj.empty();//删除所有节点;
	var username="";
	var session_id="";
	var userinformation="";
	var user_id="";var cu_id=0;
	var chat_user_id="";
	var htmlStr="<UL>";var num=0;
	var headpath=chatPath+"templates/images/user.png";
	var headstyle = "headimgsmall";
    $.each(data, function(i, n){
    	cu_id=n.chat_user_id;num++;
    	session_id=n.session_id;
    	username=(n.user_name==null)?L_CALLER+(cu_id):n.user_name;
    	user_id=n.user_id;chat_user_id=n.chat_user_id;
    	/********************设置个人信息到对象中*************************/
    	userinformation=getUserInfo(session_id);
    	if(typeof(userinformation)=='undefined' || userinformation==null){
    		userinformation=new userInfo();
    	}else{
	    	if(delUserInfoFormGroup(session_id,"latelycon")==true){//从最近联系人组中删除
	    		var uli=$("#list_"+"latelycon"+session_id);
	    		uli.remove();
	    		var unum=(uli.parent().find("LI").size()).toString();
	    		$("#latelycon_onlineCount").html(unum);//显示在线人数
	    		clearMessagesQueue(chat_user_id);
				if(MessagesQueue.length>0){
			  		var tempuserid=MessagesQueue[MessagesQueue.length-1];//取到下一个要闪动的用户
			    }
			    groupImgFlash("latelycon","");
				//轮到下一个在组左边闪动
				 if(typeof(tempuserid)!="undefined" && tempuserid!=null){
					 setGroupImgFlash(tempuserid,"latelycon");
				 }
    		}
    	}
    	userinformation.setChatUserId(chat_user_id);
    	userinformation.setUserId(user_id);
    	userinformation.setSessionId(session_id);
    	userinformation.setUserName(username);
    	setUserInfo(session_id,userinformation);
    	//userinformation.setUserRealName();
    	setResideGroupByUserId(session_id,curr_OperGroup);
    	/*************************************************************/
    	if(session_id==My_SessionId){
    		htmlStr+="<LI  style='color:blue' id='list_"+curr_OperGroup+session_id
    			+"' ondblclick='alert(&#39;"+L_CANNOT_HIMSEIF+"！&#39;);' onMouseOver='this.className=\"liover\"' onMouseOut='this.className=\"liout\"'><img id='headimg_" + curr_OperGroup + session_id
				+ "' class='" + headstyle + "' src='" + headpath+ "'>" + username + "</LI>";
    	}else{ 
    	 htmlStr+="<LI id='list_"+curr_OperGroup+session_id
    			+"' ondblclick='openChatWindow(\""
				+ session_id + "\");' onMouseOver='this.className=\"liover\"' onMouseOut='this.className=\"liout\"'><img id='headimg_" + curr_OperGroup + session_id
				+ "' class='" + headstyle + "' src='" + headpath+ "'>" + username + "</LI>";
    	}
    });
    htmlStr+="</UL>";
    refreshObj.html(htmlStr);
    $("#"+curr_OperGroup+"_onlineCount").html(num);//显示在线人数
    $("#"+curr_OperGroup+"_usersCount").hide();
    $("#"+curr_OperGroup+"_slash").hide();
    //在子页面按扭中显示在线人数
    var l_buttip=(L_TPIOCTIP)?L_TPIOCTIP.replace("[NUM]",num):"";
     $(document).find("#ctTitleBut").val(l_buttip);
    //$(window.frames["indexframe"].document).find("#ctTitleBut").val(l_buttip);
    
    //定时刷新列表
    window.setTimeout("getUserListToGroup('onlinefri','"+My_SessionId+"')",3000);
}

function getUserListToGroup(group_id,session_id){
	curr_OperGroup=group_id;
	var url=basePath+"friendslistAction.php";
	var params="reqAct=getonlineusers_bypage&session_id="+session_id;
	zonesToRefresh="cdiv_"+group_id;
	reqAjax(url,params,callback_getUserListToGroup);
}

//将用户设置到组中
function setUserToGroupList(session_id,username){
	var reval=setResideGroupByUserId(session_id,curr_OperGroup);//设置到组中
	if(reval==false){return ;}//如果组设置失败,则返回
	var htmlStr=""; var num=0;
	var headpath=chatPath+"templates/images/user.png";
	var headstyle = "headimgsmall";
	if(session_id==My_SessionId){
    	 htmlStr+="<LI style='color:blue' id='list_"+curr_OperGroup+session_id
    			+"' ondblclick='alert(&#39;"+L_CANNOT_HIMSEIF+"！&#39;);' onMouseOver='this.className=\"liover\"' onMouseOut='this.className=\"liout\"'><img id='headimg_" + curr_OperGroup + session_id
				+ "' class='" + headstyle + "' src='" + headpath+ "'>" + username + "</LI>";
    	}else{ 
    	 htmlStr+="<LI id='list_"+curr_OperGroup+session_id
    			+"' ondblclick='openChatWindow(\""
				+ session_id + "\");' onMouseOver='this.className=\"liover\"' onMouseOut='this.className=\"liout\"'><img id='headimg_" + curr_OperGroup + session_id
				+ "' class='" + headstyle + "' src='" + headpath+ "'>" + username + "</LI>";
    	}
    	var appendGroupObj=$("#cdiv_"+curr_OperGroup);
   		var ul=appendGroupObj.find("UL");
   		if(ul.size()==0){
   			ul=$("<UL></UL>");
   			appendGroupObj.empty();//删除所有节点;
   			appendGroupObj.append(ul);
   		}
   		ul.append(htmlStr);num=ul.find("LI").size();
		$("#"+curr_OperGroup+"_onlineCount").html(num);//显示在线人数
		$("#"+curr_OperGroup+"_usersCount").hide();
		$("#"+curr_OperGroup+"_slash").hide();
}

/********************检查是否有回调方法要调用，如果有则调用**********/
/***
**@author:tiger(李敬塔)
**@examples: 
**		callFunction="openChatWindow";//要调用的方法
**		callParam.push(menuUserId);//方法参数1
**		callParam.push(null);//方法参数2
**		callParam.push(basePath);//方法参数3
**      if(typeof(checkCallFunction)=="function"){
**		   checkCallFunction();//处理回调方法
**	   }
***/
var callFunction=null;//回调方法
var callParam=new Array();//回调方法的参数
function checkCallFunction(){
	checkAppendUserGroup();//查看是否有要增加的userli
	if(callFunction!=null){
		var str="";
		if(callParam.length>0){
			for(var i=0;i<callParam.length;i++){
				str+=(str!="")?",'"+callParam[i]+"'":"'"+callParam[i]+"'";
			}
		}
		eval(callFunction+"("+str+")");
	}
	callFunction=null;
	callParam.length=0;
}
/******************************************************************/

/***********检查userinfo信息是否存在，如果不存在则到后台取*************/
function callback_getUserInfoByChatUId(msg){//ajax call-back
	if(typeof(msg)!="object"){
		return;
	}
	
	var n=msg;
	var chat_user_id=n.chat_user_id;
    var cu_id=chat_user_id;
    var session_id=n.session_id;
    var username=(n.user_name==null)?L_CALLER+(cu_id):n.user_name;
    var user_id=n.user_id;
    
    userinformation=getUserInfo(session_id);	
	if(typeof(userinformation)=='undefined' || userinformation==null){
		userinformation=new userInfo();
	}
	userinformation.setChatUserId(chat_user_id);
    userinformation.setUserId(user_id);
    userinformation.setSessionId(session_id);
    userinformation.setUserName(username);
    setUserInfo(session_id,userinformation);
    
     setUserToGroupList(session_id,username);//把用户加到列表中
    if(typeof(checkCallFunction)=="function"){
		checkCallFunction();//处理回调方法
	}	
}
function getUserInfoByChatUId(chat_user_id){
	var url=basePath+"friendslistAction.php";
	var params="reqAct=getUserInfoByChatUId&chat_user_id="+chat_user_id;
	reqAjax(url,params,callback_getUserInfoByChatUId);
	return null;
}
/********************************************************************/

/**************************检查是否有新消息*******************************/
//回调方法
function callback_checkNewMessage(msg){
	if(typeof(msg)=="object" && msg.length>0){
	 var userId;
	 $.each(msg, function(i, n){
	 	userId=n.from_chat_user_id;
	 	mess=n.record_info;
	 	newmessageNotify(userId,mess);//加入新消息队列
	 });}
	//定时检查 
	window.setTimeout("checkNewMessage()",1000); 
}
function checkNewMessage(){
	var chat_user_id=My_ChatUserId;
	var url=basePath+"chatMessageAction.php";
	var params="reqAct=isNewMessage&to_user="+chat_user_id;
	reqAjax(url,params,callback_checkNewMessage);
}
/*********************************************************************/
/*****************************退出处理************************************/
function exitChat(){
		var url=basePath+"friendslistAction.php";
		var params="reqAct=exitChat&session_id="+My_SessionId;
		reqAjax(url,params);
}
/************************************************************************/