var XMLHttp = {
    _objPool: [],
    _getInstance: function (){
        for (var i = 0; i < this._objPool.length; i ++){
            if (this._objPool[i].readyState == 0 || this._objPool[i].readyState == 4){
                return this._objPool[i];
            }
        }
        // IE5中不支持push方法
        this._objPool[this._objPool.length] = this._createObj();
        return this._objPool[this._objPool.length - 1];
    },
    _createObj: function (){
        if (window.XMLHttpRequest){
            var objXMLHttp = new XMLHttpRequest();
            if (objXMLHttp.overrideMimeType) {//设置MiME类别
                objXMLHttp.overrideMimeType("text/xml");
            }
        }else{
            var MSXML = ['Msxml2.XMLHTTP.7.0','MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP','Microsoft.XMLHTTP'];
            for(var n = 0; n < MSXML.length; n++){
                try{
                    var objXMLHttp = new ActiveXObject(MSXML[n]);
                    break;
                }catch(e){
                }
            }
        }
        // mozilla某些版本没有readyState属性
        if (objXMLHttp.readyState == null){
            objXMLHttp.readyState = 0;
            objXMLHttp.addEventListener("load", function (){
                objXMLHttp.readyState = 4;
                if (typeof objXMLHttp.onreadystatechange == "function"){
                    objXMLHttp.onreadystatechange();
                }
            },  false);
        }

        return objXMLHttp;
    },
    // 发送请求(方法[post,get], 地址, 数据, 回调函数)
    //synchronous 同步，默认为false，即默认为异步
    sendReq: function (method, url, data, callback,NoCache,synchronous){
        var objXMLHttp = this._getInstance();
        if(!synchronous){asynchronous=true;}else{asynchronous=false;}
        with(objXMLHttp){
            try
            {
                if(NoCache==true){
                    // 加随机数防止缓存
                    if (url.indexOf("?") > 0)
                    {
                        url += "&randnum=" + Math.random();
                    }
                    else
                    {
                        url += "?randnum=" + Math.random();
                    }
                }
                open(method, url, asynchronous);
                // 设定请求编码方式
                //setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
                send(data);
                onreadystatechange = function ()
                {
                    if (objXMLHttp.readyState == 4 && (objXMLHttp.status == 200 || objXMLHttp.status == 304))
                    {
                        callback(objXMLHttp);
                    }
                }
            }
            catch(e)
            {
                //alert(e);
            }
        }
    }
};




////////////////////////////////////////ticker//////////////////////////////////
/**
 * COMMON DHTML FUNCTIONS
 * These are handy functions I use all the time.
 *
 * By Seth Banks (webmaster at subimage dot com)
 * http://www.subimage.com/
 *
 * Up to date code can be found at http://www.subimage.com/dhtml/
 *
 * This code is free for you to use anywhere, just keep this comment block.
 */

/**
 * X-browser event handler attachment and detachment
 * TH: Switched first true to false per http://www.onlinetools.org/articles/unobtrusivejavascript/chapter4.html
 *
 * @argument obj - the object to attach event to
 * @argument evType - name of the event - DONT ADD "on", pass only "mouseover", etc
 * @argument fn - function to call
 */
function addEvent(obj, evType, fn){
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, false);
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}
function removeEvent(obj, evType, fn, useCapture){
	if (obj.removeEventListener){
		obj.removeEventListener(evType, fn, useCapture);
		return true;
	} else if (obj.detachEvent){
		var r = obj.detachEvent("on"+evType, fn);
		return r;
	} else {
		//alert("Handler could not be removed");
	}
}


/*
 * Cookie的操作
 * 在ie和moz中可运行
 */
function Cookie(tran){
  this.tran=tran;
  this.setValue=function(name,value,ms,path,domain,secure){
    var str=new String();
    var nextTime=new Date();
	nextTime.setTime(nextTime.getTime()+ms);
    var val=this.tran==true?escape(value):value;
    str=name+"="+val;
    if(ms){
      str+=";expires="+nextTime.toGMTString();}
    if(path){
      str+=";path="+path;}
    if(domain){
      str+=";domain="+domain;}
    if(secure){
      str+=";secure";}
    document.cookie=str;
  };
  this.getValue=function(name){
    var rs=new RegExp("(^|)"+name+"=([^;]*)(;|$)","gi").exec(document.cookie),tmp;
    if(tmp=rs){
      return this.tran==true?unescape(tmp[2]):(tmp[2]);}
    return null;
  }
}
var cookie = new Cookie();
var title = document.title;
var imWindowId = new Array();
var chatWindowId = new Array();
var lostFocus = false;
var titleMsg = false;
var isTitleEmpty = false;
var curPageNum = -1;
var iIntervalID ;
var iShowTickerTimerID ;
var iPhotoFlashID;
var iTitleFlashID ;
var expireTime = 60;
var expireShowTickerTime = 1000*5;
var intervalSentMsg = 1000*30;
var offlineTime = 5*60*1000;
var maxTickerNum = 6;
var currMsgs = new Array();
function setPageNum(){
	var curTime=new Date();
	curPageNum =  parseInt(curTime.getTime());
	cookie.setValue("p1_active_page",curPageNum,0,"/");
}

function isTopPage(){
	var p1_active_page = cookie.getValue("p1_active_page");
	if(curPageNum == p1_active_page)
	{
		return true;
	}else if(p1_active_page == null ||typeof(p1_active_page) == undefined || p1_active_page=="" || isNaN(p1_active_page))
	{
		setPageNum();
		return true;
	}	
	lostFocus = true;
	return false;
}

function initTicker(){
	/*if(!islogin)
	{
		return;
	}*/
	clearInterval(iIntervalID);
	setPhotoFlashInterval();
	//clearTitleFlashInterval();
	setPageNum();
	var msg = new Array(); 
	msg = getTickerMsgFromCookie();
	if(msg.length>=maxTickerNum)
	{
			param = "action=setstatus&status=1";
	}else
	{
			param = "action=getmsg&status=1&msgnum="+(maxTickerNum-msg.length);
	}
	XMLHttp.sendReq('GET', "/ticker/index.php?"+param, "" , tickerCallback,true);
	//var read  = new MyAJAX("GET", "/ticker/index.php", param, "text",tickerCallback);
	iIntervalID = setInterval("sentMsg()",intervalSentMsg);
	P1_Spawn_Im.rubyHeader();
}

function clearTicker(){
	cookie.setValue("p1_active_page","",0,"/");
}
function clearTickerMsgCookie(){
	cookie.setValue("tickermsg","",0,"/");
}

function closeCurPageTicker()
{
	if(isTopPage)
	{
		clearTicker();
	}
}
function getTickerMsgFromCookie()
{
	var c_tickermsg = cookie.getValue("tickermsg");
	var tickermsg = "";
	var array_tickermsgs = new Array();
	var array_tickermsg_str = new Array();
	if(c_tickermsg)
	{
		tickermsg = c_tickermsg.toString();
	}else
	{
		return array_tickermsgs;
	}
	array_tickermsg_str = tickermsg.split("&");
	var curTime=new Date();
	var curtimestamp = Math.ceil(parseInt(curTime.getTime())/1000);
	for(var i=0;i<array_tickermsg_str.length;i++){
		var array_tickermsg_substr = array_tickermsg_str[i].split(" ");
		if(curtimestamp-parseInt(array_tickermsg_substr[5])<expireTime)
		{
			array_tickermsgs[i]['f_uid'] = array_tickermsg_substr[0];
			array_tickermsgs[i]['f_uimg'] = unescape(array_tickermsg_substr[1]);
			array_tickermsgs[i]['f_uname'] = unescape(array_tickermsg_substr[2]);
			array_tickermsgs[i]['f_usex'] = unescape(array_tickermsg_substr[3]);
			array_tickermsgs[i]['ticker_type'] = array_tickermsg_substr[4];
			array_tickermsgs[i]['link'] = unescape(array_tickermsg_substr[5]);
			array_tickermsgs[i]['timestamp'] = array_tickermsg_substr[6];
		}
	}
	return array_tickermsgs;
}
function sentMsg(){
	/*if(!islogin)
	{
		return;
	}*/
	if(!isTopPage())
	{
		return false;
	}
	var curTime=new Date();
	var curtimestamp =  parseInt(curTime.getTime());
	var p1_active_page = parseInt(cookie.getValue("p1_active_page"));
	var msg = new Array(); 
	msg = getTickerMsgFromCookie();
	var param = "";
	if(msg.length>=maxTickerNum)
	{
		if(curtimestamp-p1_active_page>offlineTime)
		{
			param = "action=setstatus&status=2";
		}else
		{
			param = "action=setstatus&status=1";
		}	
	}else
	{
		if(curtimestamp-p1_active_page>offlineTime)
		{
			param = "action=getmsg&status=2&msgnum="+(maxTickerNum-msg.length);
		}else
		{
			param = "action=getmsg&status=1&msgnum="+(maxTickerNum-msg.length);
		}
	}
	//var read  = new MyAJAX("GET", "/ticker/index.php", param, "text",tickerCallback);
	XMLHttp.sendReq('GET', "/ticker/index.php?"+param, "" , tickerCallback,true);
}

function tickerCallback(data)
{
	eval("var d ="+data.responseText);
	var u = d.user;
	var g = d.group;
	d = buildTickerMsg(d.msg);
	/*
	var old_d = new Array();
	old_d = getTickerMsgFromCookie();
	if(old_d.length>0)
	{
		d = old_d.concat(d);
	}*/
	if(d&&d.length>0)
	{
		currMsgs = d;
		clearTimeout(iShowTickerTimerID);
		expireShowTickerTime = Math.floor(intervalSentMsg/d.length);

		showTicker(u,g);
	}else{
		//if(P1_Spawn_Im.userlist.toString() != u.toString()){
			P1_Spawn_Im.userlist = u;
			P1_Spawn_Im.showOnlineUser(P1_Spawn_Im.userlist);
			P1_Spawn_Im.grouplist = g
			P1_Spawn_Im.showGroupList(P1_Spawn_Im.grouplist);
		//}
	}
}
function buildTickerMsg(msg)
{
	if(!msg||msg.length == 0) return;
	var curTime=new Date();
	var curtimestamp = Math.ceil(parseInt(curTime.getTime())/1000);
	var tickermsg = "";
	for(var i=0;i<msg.length;i++){
		msg[i]["timestamp"] = curtimestamp;
	}
	return msg;

}

function resetTickerMsgCookie(msg)
{
	if(!msg||msg.length == 0) 
	{
		clearTickerMsgCookie();
		return;
	}
	var tickermsg = "";
	for(var i=0;i<msg.length;i++){
		tickermsg += msg[i]['f_uid']+' '+escape(msg[i]['f_uimg'])+' '+escape(msg[i]['f_uname'])+' '+msg[i]['f_usex']+' '+msg[i]['ticker_type']+' '+escape(msg[i]['link'])+' '+msg[i]['timestamp'];
		if(i<msg.length-1)
		{
			tickermsg +="&";
		}
	}	
	cookie.setValue("tickermsg" , tickermsg , 60*1000 , "/");
}

function popupChatWindow(groupid){
        var windowWidth, windowHeight, windowLeft, windowTop;
        var strUrl = "/group/chatroom_act.php?group_id="+groupid;
        if(typeof window.screenX == "number" && typeof window.innerWidth == "number"){
                //windowWidth = window.innerWidth * .68;
                //windowHeight = window.innerHeight * .68;
                windowLeft = window.screenX + window.innerWidth * .25;
                windowTop = window.screenY + window.innerHeight * .2;
        }else if(typeof window.screenTop == "number" && typeof document.documentElement.offsetHeight == "number"){
                //windowWidth = document.documentElement.offsetWidth * .68;
                //windowHeight = document.documentElement.offsetHeight * .68;
                windowLeft = window.screenLeft + document.documentElement.offsetWidth * .25;
                windowTop = window.screenTop - 50 + + document.documentElement.offsetHeight * .2;
        }else{  
                //windowWidth = 500;
                //windowHeight = 250;
                windowLeft = 60;
                windowTop = 40;
        }       
        windowWidth= 520;
        windowHeight = 540;
        if (chatWindowId[groupid] == null || chatWindowId[groupid].closed){
                chatWindowId[groupid] = window.open(strUrl, groupid, "top=" + windowTop + ",left=" + windowLeft + ",width=" + windowWidth + ",height=" + windowHeight + ",menubar=no,toolbar=no,location=yes,resizable=no,scrollbars=no,status=no");
                chatWindowId[groupid].focus();
        }else{  
                chatWindowId[groupid].focus();
        }       
}       

function popupIMWindow(toid){
	var windowWidth, windowHeight, windowLeft, windowTop;
	var strUrl = "/im/im_msg.php?ttag=ticker&user="+toid;
	if(typeof window.screenX == "number" && typeof window.innerWidth == "number"){
		//windowWidth = window.innerWidth * .68;
		//windowHeight = window.innerHeight * .68;
		windowLeft = window.screenX + window.innerWidth * .25;
		windowTop = window.screenY + window.innerHeight * .2;
	}else if(typeof window.screenTop == "number" && typeof document.documentElement.offsetHeight == "number"){
		//windowWidth = document.documentElement.offsetWidth * .68;
		//windowHeight = document.documentElement.offsetHeight * .68;
		windowLeft = window.screenLeft + document.documentElement.offsetWidth * .25;
		windowTop = window.screenTop - 50 + + document.documentElement.offsetHeight * .2;
	}else{
		//windowWidth = 500;
		//windowHeight = 250;
		windowLeft = 60;
		windowTop = 40;
	}
	windowWidth= 520;
	windowHeight = 540;
	if (imWindowId[toid] == null || imWindowId[toid].closed){
		imWindowId[toid] = window.open(strUrl, toid, "top=" + windowTop + ",left=" + windowLeft + ",width=" + windowWidth + ",height=" + windowHeight + ",menubar=no,toolbar=no,location=yes,resizable=no,scrollbars=no,status=no");
		imWindowId[toid].focus();
	}else{
		imWindowId[toid].focus();
	}
}
function setTitleFlashInterval()
{
	clearInterval(iTitleFlashID);
	iTitleFlashID = setInterval("titleFlash()", 500);
}
function clearTitleFlashInterval()
{
	titleMsg = false;
	clearInterval(iTitleFlashID);
	iTitleFlashID="";
	document.title = title;
}
function setPhotoFlashInterval()
{
	clearInterval(iPhotoFlashID);
	iPhotoFlashID = setInterval("photoFlash()", 500);
}
function clearPhotoFlashInterval()
{
	clearInterval(iPhotoFlashID);
	iPhotoFlashID="";
}
function titleFlash(){
	if(titleMsg){
		if(isTitleEmpty){
			document.title = "【New Message】"+title;
			isTitleEmpty = false;
		}
		else{
			document.title = "【　　　　　 】"+title;
			isTitleEmpty = true;
		}
	}
}
function photoFlash(){
	try{
		var userPhoto = document.getElementById("p1_user_photo");
		if(userPhoto != null){
			if(userPhoto.style.visibility == "hidden"){
				userPhoto.style.visibility = "visible";
			}else{
				userPhoto.style.visibility = "hidden";
			}
		}
	}catch(e){}
}
function clearTickerHtml(fid_a,type_a)
{
	var ticker = document.getElementById("newsticker");
	var tickerList = document.getElementById("ticker_msg_list");
	ticker.style.display = "none";
	ticker.className ="newsticker0327 newsticker0327_none";
	hideTickerMsgList();
	ticker.innerHTML="";
	tickerList.innerHTML="";
	titleMsg = false;
	document.title = title;
	var param = "action=clearmsg&fid_a="+fid_a+"&type_a="+type_a;
	clearTimeout(iShowTickerTimerID);
	//var read  = new MyAJAX("GET", "/ticker/index.php", param, "text",tickerCallback);
	XMLHttp.sendReq('GET', "/ticker/?"+param, "" , tickerCallback,true);

}
function showTickerMsgList()
{
	var tickerList = document.getElementById("ticker_msg_list");
	if(tickerList.innerHTML!=''&& currMsgs.length > 1){
		var ticker = document.getElementById("newsticker");
		//ticker.style.display = "none";
		tickerList.style.display = "block";
	}
}
function hideTickerMsgList()
{
	var tickerList = document.getElementById("ticker_msg_list");
	tickerList.style.display = "none";
	var ticker = document.getElementById("newsticker");
	ticker.style.display = "block";
}
function showTicker(u,g)
{
	var ticker = document.getElementById("newsticker");
	var tickerlist = document.getElementById("ticker_msg_list");
	if(!currMsgs||currMsgs.length == 0)
	{
		//clearTimeout(iShowTickerTimerID);
		clearTitleFlashInterval();
		clearPhotoFlashInterval();
		ticker.innerHTML="";
		return;
	}
	var msg = new Array();
	msg = currMsgs.shift();
	var msglist = "";

	var photo = "";
	var sex = "male";
	var msg_type = "";
	var msg_width = '';
	var fid_a='';
	var type_a='';
	if(msg["ticker_type"]==3){
		photo = "<img src=/img/ticker/ticker_online_group.gif id='p1_user_photo'/>";
	}else{
		if(msg["f_uimg"]&&msg["f_uimg"]!="")
		{
			photo = "<img src=\"/user/image/" + msg["f_uid"] + "/thumb/" + msg["f_uimg"] + "\" height=30 width=24 id='p1_user_photo' />";
		}else
		{
			photo = "<img src=\"/images/gfx/avatar40x50.jpg\" height=30 width=24 id='p1_user_photo'>";
		}
	}
	if(msg["f_usex"]==1)
	{
		sex = "female";
	}

	if(msg["ticker_type"]==1)
	{
		msg_type = "sent you a message.";
		msg_width = "215";
	}else if(msg["ticker_type"]==2)
	{
		msg_type = "signed in.";
		msg_width = "150";
	}else if(msg["ticker_type"]==3)
	{
		msg_type = "group has a message.";
		msg_width = "215";
	}

	if(msg["ticker_type"]==1)
	{
		ticker.innerHTML = "<marquee direction='up' behavior='slide' loop='1' height='32' style='float:right;' width='"+msg_width+"'><a href=# onclick=clearTickerHtml("+msg["f_uid"]+","+msg["ticker_type"]+");popupIMWindow("+msg["f_uid"]+");return false;>"+ photo +"<div class=\""+ sex +" ticker_l\">"+msg["f_uname"]+"</div><div class=\"ticker_r\">"+msg_type+"</div></a></marquee>";
		msglist = '<ul class="first"><li onmouseover="this.className=\'select\'" onmouseout="this.className=\'\'" onclick=clearTickerHtml('+msg["f_uid"]+','+msg["ticker_type"]+');popupIMWindow('+msg["f_uid"]+');return false;><a href="#" >'+ photo +'</a> <span><a href="#" class="'+ sex +' ">'+msg["f_uname"]+'</a> '+msg_type+'</span></li></ul>';
		fid_a = msg["f_uid"]+",";
		type_a = msg["ticker_type"]+",";
		try{
			var imWindow = document.frames ? top.document.frames["im_frame_content"] : document.getElementById("im_frame_content").contentWindow;
			if(imWindow)
			{
				var f_img = imWindow.document.getElementById("p1m"+msg["f_uid"]);
				f_img.style.display = "block";
			}
		}catch(e){}
	}else if(msg["ticker_type"]==2)
	{
		ticker.innerHTML = "<marquee direction='up' behavior='slide' loop='1' height='32' style='float:right;' width='"+msg_width+"'><a href=# onclick=clearTickerHtml();popupIMWindow("+msg["f_uid"]+");return false;>"+ photo +"<div class=\""+ sex +" ticker_l\">"+msg["f_uname"]+"</div><div class=\"ticker_r\">"+msg_type+"</div></a></marquee>";

		msglist = '<ul class="first"><li onmouseover="this.className=\'select\'" onmouseout="this.className=\'\'" onclick=clearTickerHtml();popupIMWindow('+msg["f_uid"]+');return false;><a href="#" >'+ photo +'</a> <span><a href="#" class="'+ sex +' ">'+msg["f_uname"]+'</a> '+msg_type+'</span></li></ul>';
	}else if(msg["ticker_type"]==3)
	{
		ticker.innerHTML = "<marquee direction='up' behavior='slide' loop='1' height='32' style='float:right;' width='"+msg_width+"'><a href=# onclick=clearTickerHtml("+msg["f_uid"]+","+msg["ticker_type"]+");popupChatWindow("+msg["f_uid"]+");return false;>"+ photo +  "<div class=\"ticker_g\">"+msg["f_uname"]+"</div></a></marquee>";
		msglist = '<ul class="first"><li onmouseover="this.className=\'select\'" onmouseout="this.className=\'\'" onclick=clearTickerHtml('+msg["f_uid"]+','+msg["ticker_type"]+');popupChatWindow('+msg["f_uid"]+');return false;><a href="#" >'+ photo +'</a> <span>'+msg["f_uname"]+'</span></li></ul>';
		fid_a = msg["f_uid"]+",";
		type_a = msg["ticker_type"]+",";
	}
	if(msg["ticker_type"]==1){
		titleMsg = true;
	}else{
		titleMsg = false;
	}
	ticker.style.display = "block";

	if(currMsgs.length>0){
		var a=buildTickerMsgListHtml(currMsgs);
		msglist = msglist+a;
		fid_a = fid_a+buildTickerFidStr(currMsgs);
		type_a = type_a+buildTickerTypeStr(currMsgs);
		msglist = msglist+'<div class="clearall"><p><a href="#" onclick=clearTickerHtml("'+fid_a+'","'+type_a+'");>Clear All</a></p></div>';
		tickerlist.innerHTML = msglist;
		ticker.className ="newsticker0327";
	}else{
		//tickerlist.innerHTML="";
		ticker.className ="newsticker0327 newsticker0327_none";
	}
	if(msg["ticker_type"]!=2){
		currMsgs = currMsgs.concat(msg);
	}
	resetTickerMsgCookie(currMsgs);
	iShowTickerTimerID = setTimeout("showTicker()",expireShowTickerTime);
	//if(P1_Spawn_Im.userlist.toString() != u.toString()){
		P1_Spawn_Im.userlist = u;
		P1_Spawn_Im.showOnlineUser(P1_Spawn_Im.userlist);
		P1_Spawn_Im.grouplist = g
		P1_Spawn_Im.showGroupList(P1_Spawn_Im.grouplist);
	//}
}
function buildTickerFidStr(msgs){
	if(!msgs||msgs.length == 0) 
	{
		return "";
	}
	var fid_a = "";
	for(var i=0;i<msgs.length;i++){
		if(msgs[i]["ticker_type"]==1)
		{
			fid_a = fid_a+msgs[i]["f_uid"]+",";
		}else if(msgs[i]["ticker_type"]==3)
		{
			fid_a = fid_a+msgs[i]["f_uid"]+",";
		}	
	}
	return fid_a;
}
function buildTickerTypeStr(msgs){
	if(!msgs||msgs.length == 0) return "";
	var type_a = "";
	for(var i=0;i<msgs.length;i++){
		if(msgs[i]["ticker_type"]==1)
		{
			type_a = type_a+msgs[i]["ticker_type"]+",";
		}else if(msgs[i]["ticker_type"]==3)
		{
			type_a = type_a+msgs[i]["ticker_type"]+",";
		}	
	}
	return type_a;
}
function buildTickerMsgListHtml(msgs){
	if(!msgs||msgs.length == 0) 
	{
		return "";
	}
	var tickermsglist = "";
	var photo = "";
	var sex = "male";
	var msg_type = "";
	for(var i=0;i<msgs.length;i++){
		if(msgs[i]["ticker_type"]==3){
			photo = "<img src=/img/ticker/ticker_online_group.gif id='p1_user_photo'/>";
		}else{
			if(msgs[i]["f_uimg"]&&msgs[i]["f_uimg"]!="")
			{
				photo = "<img src=\"/user/image/" + msgs[i]["f_uid"] + "/thumb/" + msgs[i]["f_uimg"] + "\" height=30 width=24 id='p1_user_photo' />";
			}else
			{
				photo = "<img src=\"/images/gfx/avatar40x50.jpg\" height=30 width=24 id='p1_user_photo'>";
			}
		}
		if(msgs[i]["f_usex"]==1)
		{
			sex = "female";
		}else{
			sex = "male";
		}

		if(msgs[i]["ticker_type"]==1)
		{
			msg_type = "sent you a message.";
		}else if(msgs[i]["ticker_type"]==2)
		{
			msg_type = "signed in.";
		}else if(msgs[i]["ticker_type"]==3)
		{
			msg_type = "group has a message.";
		}

		if(msgs[i]["ticker_type"]==1)
		{
			tickermsglist = tickermsglist+'<ul class="other"><li onmouseover="this.className=\'select\'" onmouseout="this.className=\'\'" onclick=clearTickerHtml('+msgs[i]["f_uid"]+','+msgs[i]["ticker_type"]+');popupIMWindow('+msgs[i]["f_uid"]+');return false;><a href="#" >'+ photo +'</a> <span><a href="#" class="'+ sex +' ">'+msgs[i]["f_uname"]+'</a> '+msg_type+'</span></li></ul>';		
		}else if(msgs[i]["ticker_type"]==2)
		{
			tickermsglist = tickermsglist+'<ul class="other"><li onmouseover="this.className=\'select\'" onmouseout="this.className=\'\'"   onclick=clearTickerHtml();popupIMWindow('+msgs[i]["f_uid"]+');return false;><a href="#" >'+ photo +'</a> <span><a href="#" class="'+ sex +' ">'+msgs[i]["f_uname"]+'</a> '+msg_type+'</span></li></ul>';
		}else if(msgs[i]["ticker_type"]==3)
		{
			tickermsglist = tickermsglist+'<ul class="other"><li onmouseover="this.className=\'select\'" onmouseout="this.className=\'\'"   onclick=clearTickerHtml('+msgs[i]["f_uid"]+','+msgs[i]["ticker_type"]+');popupChatWindow('+msgs[i]["f_uid"]+');return false;><a href="#" >'+ photo +'</a> <span>'+msgs[i]["f_uname"]+'</span></li></ul>';
		}
	}
	return tickermsglist;
}
function setTickerMsgCookie(msg)
{
	var curTime=new Date();
	var curtimestamp = Math.ceil(parseInt(curTime.getTime())/1000);
	if(!msg||msg.length == 0) return;
	var c_tickermsg = cookie.getValue("tickermsg");
	var old_tickermsg = "";
	if(c_tickermsg)
	{
		old_tickermsg = c_tickermsg.toString();
	}
	var tickermsg = "";
	for(var i=0;i<msg.length;i++){
		tickermsg += msg[i]['f_uid']+' '+escape(msg[i]['f_uimg'])+' '+escape(msg[i]['f_uname'])+' '+msg[i]['f_usex']+' '+msg[i]['ticker_type']+' '+escape(msg[i]['link'])+' '+curtimestamp;
		if(i<msg.length-1)
		{
			tickermsg +="&";
		}
	}
	cookie.setValue("tickermsg" , tickermsg+"&"+old_tickermsg , 60 , "/");
}

function ticker_set(group_id, btn)
{
	var msg = "";
	var action = 0;
	if (btn.innerHTML == "block")
	{
		action = 1;
		msg = "unblock";
	}
	else
	{
		action = 0;
		msg = "block";
	}
	XMLHttp.sendReq('GET', "/group/ticker_set.php?action="+action+"&group_id="+group_id+"&t="+Math.random(), "" , "",true);
	btn.innerHTML=msg;
}

function showTab(i)
{
	if (i == 0)
	{
		document.getElementById("user_list").style.display="block";
		document.getElementById("user_tab").className="over";
		document.getElementById("group_list").style.display="none";
		document.getElementById("group_tab").className="";
	}
	else
	{
		document.getElementById("user_list").style.display="none";
		document.getElementById("user_tab").className="";
		document.getElementById("group_list").style.display="block";
		document.getElementById("group_tab").className="over";
	}
}

var P1_Spawn_Im = {
	lineucnt:false,
	cntlimit:9,
	userlist:[],
	grouplist:[],

	showGroupList:function(){
		var g = this.grouplist;
		var html = '<ul>';
		var g_cnt = g.length;
		var count = g_cnt;
		for(var i=0;i<g_cnt;i++)
		{
			if (g[i].chat_type == "1")
			{
				count--;
				continue;
			}
			html += '<li onmouseover="this.className=\'over\';document.getElementById(\'btn'+g[i].id+'\').style.display=\'block\'" onmouseout="this.className=\'\';document.getElementById(\'btn'+g[i].id+'\').style.display=\'none\'"><span class="tg_name"><a href="/group/index.php?group_id='+g[i].id+'" class="grou_ico"><img src="/img/ticker/im_group_color.gif"/></a><a href="#" onclick="popupChatWindow('+g[i].id+');return false;">'+g[i].name+'</a><label>('+g[i].num+')</label></span><a href="#" onclick="ticker_set('+g[i].id;
			html += ',this);return false;" class="button" id="btn'+g[i].id+'" style="display:none;">';
			if (g[i].tset)
				html += "unblock";
			else
				html += "block";
			html += '</a></li>';
		}
		html += '</ul>';
		document.getElementById("group_list").innerHTML = html;
		if(count <= this.cntlimit){
			document.getElementById("group_list").className = "ticker_online_group";
		}else{
			document.getElementById("group_list").className = "ticker_online_group_h";
		}
		if (count == 0)
			document.getElementById("group_tab").style.display="none";
	},
	
	showOnlineUser:function(){
		var u = this.userlist;
		var u_cnt = u.length;
		var u_cnthtml = '';
		u_cnt = u_cnt != undefined ? u_cnt : 0;
		var html = '';
		var maildis = '';
		if(u_cnt > 0){
			document.getElementById("_userEmpty").style.display = "none";
			document.getElementById("_userHas").style.display = "";
			this.lineucnt = true;
		}else{
			document.getElementById("_userEmpty").style.display = "";
			document.getElementById("_userHas").style.display = "none";
			this.lineucnt = false;
		}
		if(u_cnt == 0){
			document.getElementById("people_number").innerHTML = "<label>"+u_cnt+"</label>";
		}else{
			var u_cnt_str = u_cnt.toString().split("");
			for(var j=0;j<u_cnt_str.length;j++)
			{
				u_cnthtml += "<label>"+u_cnt_str[j]+"</label>"
			}
			document.getElementById("people_number").innerHTML = u_cnthtml;
		}
		
		for(var i=0;i<u_cnt;i++){
			u[i].sex = u[i].sex == 1 ? "female" : "male";
			u[i].head_path_thumb=u[i].head_path_thumb!=undefined?u[i].head_path_thumb:"/img/mypage_act/avatar24x30.jpg";
			maildis = u[i].new_msg_num > 0 ? "" : "none";
			html += '<li class="" onmouseover="this.className=\'changebg\'" onmouseout="this.className=\'\'"><a href="/'+u[i].username+'"><img src="'+u[i].head_path_thumb+'" width="24" height="30" border="0" ></a><a href="#" class="'+u[i].sex+' online_right" onclick="clearTickerHtml('+u[i].userid+');popupIMWindow('+u[i].userid+');"><span>'+u[i].username+'</span><img src="/img/ticker/plm.gif" class="info_img" border="0" style="display:'+maildis+'" id="p2m'+u[i].userid+'"></a></li>';
		}
		document.getElementById("userlist").innerHTML = html;
		if(u_cnt <= this.cntlimit){
			document.getElementById("select_list").className = "select_list";
		}else{
			document.getElementById("select_list").className = "select_list_h";
		}
	},
	
	HeadshowUser:function(){
		if(this.lineucnt){
			document.getElementById("ticker_friend_select").style.display = "block";
			document.getElementById("select_list").style.display = "block";
			document.getElementById("ticker_friend_select_no").style.display = "none";
		}else{
			document.getElementById("ticker_friend_select").style.display = "block";
			document.getElementById("select_list").style.display = "none";
			document.getElementById("ticker_friend_select_no").style.display = "block";
		}
		document.getElementById("onlinemember").className = "over";
	},
	
	HeadhideUser:function(){
		document.getElementById("onlinemember").className = "";
		document.getElementById("ticker_friend_select").style.display = "none";
		document.getElementById("select_list").style.display = "none";
		document.getElementById("ticker_friend_select_no").style.display = "none";
	},

	rubyHeader:function(){
		var user_login = cookie.getValue("user_login");
		var html = [
			'<div class="ticker_con">',
				'<div class="ticker_friend" id="ticker_friend">',
					'<div class="ticker_friend_l">',
						'<img src="/img/ticker/ticker_friend_img_online.gif" width="20" height="17" border="0" style="display:none;" id="_userHas">',
						'<img src="/img/ticker/ticker_friend_img_default.gif" width="20" height="17" border="0" id="_userEmpty">Chat',
					'</div>',
					'<div class="ticker_friend_r">',
						'<a href="#"  id="onlinemember" onclick="P1_Spawn_Im.HeadshowUser();return false;"><span class="people_number_con">',
							'<span class="people_number" id="people_number">0</span></span>',
						'</a>',
					'</div>',
				' </div>',
				'<div class="ticker_msg_list" id="ticker_msg_list" style="display:none;" onmouseover="showTickerMsgList()" onmouseout="hideTickerMsgList()">',	
				'</div>',
				'<div class="ticker_friend_select" id="ticker_friend_select" style="display:none;">',
					'<div class="ticker_tab">',
						'<ul>',
							'<li id="user_tab" onclick="showTab(0);" class="over">Friends</li>',
							'<li id="group_tab" onclick="showTab(1);">Groups</li>',
						'</ul>',
					'</div>',
					'<div class="clear"></div>',
					'<div class="ticker_online_member" id="user_list">',
						'<div class="select_list" id="select_list">',
							'<ul id="userlist"></ul>',
						'</div>',
						'<div class="select_none" id="ticker_friend_select_no" style="display:none;">',
							'您现在没有好友在线，<br />',
							'<a href="/browse/">看看其他在线会员</a> <img src="/img/ticker/ticker_icon.gif">',
						'</div>',
						'<div class="select_notonline"><a href="/incoming/message.php">查看离线好友</a></div>',
					'</div>',
					'<div class="ticker_online_group" id="group_list" style="display:none;">',
						'<ul>',
						'</ul>',
					'</div>',
				'</div>',
				'<div id="newsticker" class="newsticker0327 newsticker0327_none"  onmouseover="showTickerMsgList()"></div>',
			'</div>',
		].join("");
		document.getElementById("header_broadcast").innerHTML = html;
		
		if(document.getElementById("ticker_friend") != undefined) {
			myaddEvt(document.getElementById("ticker_friend"),"mouseenter", function(){
				P1_Spawn_Im.HeadshowUser();
			});
			myaddEvt(document.getElementById("ticker_friend"),"mouseleave", function(){
				P1_Spawn_Im.HeadhideUser();
			});
			myaddEvt(document.getElementById("ticker_friend_select"),"mouseenter", function(){
				P1_Spawn_Im.HeadshowUser();
			});
			myaddEvt(document.getElementById("ticker_friend_select"),"mouseleave", function(){
				P1_Spawn_Im.HeadhideUser();
			});
		}
	}
};

function myaddEvt(_elem, _evtName, _fn, _useCapture)
{
   if(!_elem) return '';
   if (typeof _elem.addEventListener != 'undefined')
   {
	  if (_evtName === 'mouseenter')
		 { _elem.addEventListener('mouseover', mouseEnter(_fn), _useCapture); }
	  else if (_evtName === 'mouseleave')
		 { _elem.addEventListener('mouseout', mouseEnter(_fn), _useCapture); }
	  else
		 { _elem.addEventListener(_evtName, _fn, _useCapture); }
   }
   else if (typeof _elem.attachEvent != 'undefined')
   {
	  _elem.attachEvent('on' + _evtName, _fn);
   }
   else
   {
	  _elem['on' + _evtName] = _fn;
   }
}

function mouseEnter(_fn)
{
   return function(_evt)
   {
	  var relTarget = _evt.relatedTarget;
	  if (this === relTarget || isAChildOf(this, relTarget))
		 { return; }

	  _fn.call(this, _evt);
   }
}

function isAChildOf(_parent, _child)
{
   if (_parent === _child) { return false; }
	  while (_child && _child !== _parent)
   { _child = _child.parentNode; }

   return _child === _parent;
}

addEvent(window, "focus", initTicker);
addEvent(window, "blur", setTitleFlashInterval);
//addEvent(window, "load", initTicker);
addEvent(window, "unload", closeCurPageTicker);
