var isIE6=navigator.userAgent.toLowerCase().search(/msie *6.0/)!=-1;
if(handle_url==null)
{
	var handle_url="/blog/iChat/getnote.php";
}
if(chat_root==null)
{
	var chat_root="iChat/";
}
function messenger()
{
	//handle_url 消息获取处理页面
	//ajax Ajax实例
	var ajax=new Ajax();
	//xre xmlhttprequest 对象是列
	var xre=ajax.createXMLHttp();
	//释放对象
	ajax=null;
	//m_maxW 消息提示框的最大宽度;m_maxH 消息提示框的最大宽度
	var m_maxW,m_maxH;
	//intv_out 提示框渐出执行ID;intv_in 提示框渐进执行ID；intv_pos提示框定位执行ID
	var intv_out,intv_in,intv_pos;
	//m_x 消息框临时容器在x坐标上的宽度;m_y 消息框临时容器在y坐标上的高度;
	var m_x,m_y;
	//td 消息框临时容器	
	var td;
	//m_step 消息框渐入渐出是每次位移
	var m_step=10;
	//tO 消息框渐出时间间隔;tI 消息框渐进时间间隔;tP 消息框重复定位时间间隔
	var tO=50,tI=50,tP=200;
	//intving 消息框调用过程锁，是否正处于渐入或渐出过程
	var intving=false;
	this.intving=intving;
	this.get_msg=get_msg;
	this.hide_cp=hide_cp;
	function get_msg()
	{
		xre.open("POST",handle_url,true);
		xre.setRequestHeader("Content-type","application/x-www-form-urlencoded");
		msg=encodeURI("uri="+window.location.href+"&chat_root="+chat_root);
		xre.onreadystatechange=function(){
			if(xre.readyState==4&&xre.status==200)
			{
				//document.ondblclick=function(){alert(xre.responseText);};
				var re_msg=xre.responseText;
				if(re_msg=="-1")
				{
					if(document.getElementById('mesengerWrapDiv')==null)
					{
						return false;
					}
					else
					{
						//聊天框已经打开,消息通知条已经存在则自动隐藏消息通知条
						//数据无法记录聊天框是否已经打开,加大获取最新消息的间隔可以减小聊天时获取未读消息的并发冲突
						hide_cp();
					}
				}
				make_notice(re_msg);
			}			
		}
		xre.send(msg);
	}	
	function make_notice(mtext)
	{
	 	td=document.getElementById("mesengerWrapDiv");
	 	if(null!=td)return false;
	  td=document.createElement("DIV");
		td.id="mesengerWrapDiv";
		td.innerHTML=mtext;
		td.style.position=isIE6? "absolute" : "fixed";
		td.style.overflow="hidden";
		td.style.right=0;
		document.body.appendChild(td);
		m_maxW=td.offsetWidth;
		m_maxH=td.offsetHeight;
		td.style.display="none";
		intv_pos=setInterval(pos_cp,tP);
		show_cp();
	}
	function pos_cp()
	{
		if(null==td)return false;
		if(isIE6)
		{
			var adH=document.documentElement.scrollTop;				
			var adW=document.documentElement.scrollLeft;	
			td.style.left=document.documentElement.clientWidth+adW-td.offsetWidth;				
		}
		else
		{
			var adH=0;
		}
		td.style.top=document.documentElement.clientHeight-m_maxH+adH+"px";		
	}
	function show_cp()
	{
		if(intving)return false;		
		td.style.top=document.documentElement.clientHeight-m_maxH+"px";
		td.style.right=0;
		td.style.width=0;
		td.style.display="block";
		m_x=0;
		intving=true;
		intv_in=setInterval(function(){slide_cp(1)},tO);
	}
	function hide_cp()
	{
		if(intving)return false;
		td.style.top=document.documentElement.clientHeight-m_maxH+"px";	
		m_x=m_maxW;
		intving=true;
		intv_out=setInterval(function(){slide_cp(0)},tI);
	}	
	function slide_cp(i_o)
	{window.status=m_x+'|'+i_o+'|'+intv_in;
		if(isIE6)
		{ 
			clearInterval(intv_pos);
			var adH=document.documentElement.scrollTop;		
			if(i_o==0)
			{
				td.style.left=document.documentElement.clientWidth+document.documentElement.scrollLeft-td.offsetWidth;	
			}				
		}
		else
		{
			var adW=0;
			var adH=0;
		}
		if(i_o==1)
		{
			m_x+=m_step;
			m_x=m_x>m_maxW? m_maxW : m_x;
		}
		else if(i_o==0)
		{
			m_x-=m_step;
			m_x=m_x<0? 0 : m_x;
		}
		td.style.width=m_x+'px';
		td.style.top=document.documentElement.clientHeight-m_maxH+adH+"px";
		if(m_x>=m_maxW||m_x==0)
		{
			if(i_o==0)
			{
				clearInterval(intv_out);
				document.body.removeChild(td);
				td=null;
			}
			if(i_o==1)
			{
				clearInterval(intv_in);
				intv_pos=setInterval(pos_cp,tP);
			}
			intving=false;
			return false;
		}
	}
}
//创建ajax类
function Ajax()
{
	function createXMLHttp()
	{
		if(typeof(XMLHttpRequest)!="undefined")
		{
			try
			{
				return new XMLHttpRequest();
			}
			catch(e)
			{		
			}
		}
		else
		{
			if(window.ActiveXObject)
			{
				var allMS_Versions=new Array("MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp");
				for(var i=0;i<allMS_Versions.length;i++)
				{
					try
					{
						var oXMLHttp=new window.ActiveXObject(allMS_Versions[i]);
						return oXMLHttp;
					}
					catch(e)
					{
					}
				}
			}
		}
		alert("XMLHttp object creating failed!");
	}
	this.createXMLHttp=createXMLHttp;
}
 var d2dMG=new messenger();
 setInterval(d2dMG.get_msg,5000);
