var imxmlHttp
var minstat=false;
function send_msg_to_user(str,fromuserid,touserid,flag)
{

	imxmlHttp=GetXmlHttpObject();
	if (imxmlHttp==null)
  	{
  		alert ("Your browser does not support AJAX!");
  		return;
  	} 

    var getfulmsg =  document.getElementById("hiddenim").value;
	var rn=Math.floor(Math.random()*100000001)

	var seqid = document.getElementById("imseqid").value;
	seqid = (seqid*1) + 1;
	document.getElementById("imseqid").value = seqid;
	var oldms = document.getElementById("imms").value;
	var ms = Math.round(new Date().getTime() / 1000);
	document.getElementById("imms").value = ms;
	var cokmsgid = imreadCookie("immsgid");
	var url="/im/imsendmessage.php";
	url=url+"?fromuserid="+fromuserid;
	url=url+"&touserid="+touserid;
	url=url+"&msg="+encodeURI(str);
	url=url+"&flag="+flag+"&seqid="+seqid+"&ms="+ms+"&oldms="+oldms+"&cokmsgid="+cokmsgid;
    imcreateCookie("startimv",1,0);

	//alert(url);	
	
	var oldval = document.getElementById("im_window_sub").innerHTML;

	document.getElementById("im_window_sub").innerHTML= oldval + "<font color='green'><b>me:</b></font>" + str + "<br>";
	//alert(document.getElementById("im_window_sub").innerHTML);
	document.getElementById("im_window_sub").scrollTop = document.getElementById("im_window_sub").scrollHeight;
	
	imxmlHttp.onreadystatechange=stateChanged_send;
	imxmlHttp.open("POST",url,true);
	imxmlHttp.send(null);
} 

function receive_message_usr(fromuserid,flag)
{
	imxmlHttp=GetXmlHttpObject();
	if (imxmlHttp==null)
  	{
  		alert ("Your browser does not support AJAX!");
  		return;
  	} 
	

	if(document.getElementById("imuserid").value == "") return false;

	var rn=Math.floor(Math.random()*100000001)
	var seqid = document.getElementById("imseqid").value;
	var startimvl = imreadCookie("startimv");
	var cokmsgid = imreadCookie("immsgid");
	//seqid = (seqid*1) + 1;
	if (seqid == 1)
	{
		document.getElementById("imseqid").value = seqid;
	}



	var getfulmsg =  document.getElementById("hiddenim").value;
	
	var url="/im/pingmessage.php";
	url=url+"?fromuserid="+fromuserid;
	//url=url+"&touserid="+touserid;
	url=url+"&flag="+flag+"&getfulmsg="+getfulmsg+"&seqid="+seqid+"&cokmsgid="+cokmsgid+"&startimv="+startimvl;
    //alert(imreadCookie("immsgid"));
	imxmlHttp.onreadystatechange=stateChanged_rec;
	imxmlHttp.open("POST",url,true);
	imxmlHttp.send(null);
	
}

function stateChanged_send() 
{ 
	if (imxmlHttp.readyState==4)
	{ 	
		var oldval = document.getElementById("im_window_sub").innerHTML;
		//document.getElementById("im_window_sub").innerHTML= oldval + imxmlHttp.responseText;
		//alert(ldval + imxmlHttp.responseText);
		var msg = imxmlHttp.responseText;
		msg = msg.split(":im:");
		if (msg[1]=='offline')
		{
			document.getElementById("im_window_sub").innerHTML= oldval + "<br><font color='red'><b>The user is Offline</b></font><br>";
		}
		else if(msg[1] != "")
		{
			var msgid = imreadCookie("immsgid");
			//alert(imreadCookie("immsgid"));
			if (msgid == "" || msgid == null) 
			{
				imcreateCookie("immsgid",msg[1],0);
			}
			
			
		}	

		document.getElementById("im_window_sub").scrollTop = document.getElementById("im_window_sub").scrollHeight;
	}
}


function stateChanged_rec() 
{

	//alert(imxmlHttp.readyState);	
	if (imxmlHttp.readyState==4)
	{
		var msg = imxmlHttp.responseText;
		//alert(msg);	
		msg = msg.split(":im:");
		var imtouserid = msg[1];
		var imtousername = msg[2];
		var setflag =  msg[3];
		msg = msg[0];
		//alert(msg);
		if(msg && msg.indexOf("Too many connections")==-1)
		{	
			//alert(msg);
			var getfulmsg =  document.getElementById("hiddenim").value;
			//alert(oldval + msg);
			
			var oldval = document.getElementById("im_window_sub").innerHTML;
			/*if (getfulmsg == "true")
			{
				document.getElementById("im_window_sub").innerHTML=  msg;
				document.getElementById("hiddenim").value = "false";
			}
			else*/
			{
				document.getElementById("im_window_sub").innerHTML= oldval + msg;
			}

			var msgid = imreadCookie("immsgid");

			if (isNaN(msgid) || msgid == null || msgid == "" ) 
			{
				//alert(setflag);
				imcreateCookie("immsgid",setflag,0);
			}
			imcreateCookie("startimv",1,0);
			

			document.getElementById('im_window').style.visibility="visible";
			document.getElementById('im_window').style.position="absolute";
			document.getElementById('im_im1').style.display = "block";
			document.getElementById('im_im2').style.display = "block";
			document.getElementById('min_win').style.visibility="hidden";
			document.getElementById('min_win').style.position="absolute";
			document.getElementById("imtouserid").value = imtouserid;
			document.getElementById("imtousername").value = imtousername;
			//alert(imtouserid);
			//alert(imtousername);
	        document.getElementById("im_window_sub").scrollTop = document.getElementById("im_window_sub").scrollHeight;
			document.getElementById('im_title').innerHTML="<font color=\"#FFFFFF\">Chat with "+ imtousername +"</font>";
		}
	}
}

function GetXmlHttpObject()
{
	
	try
  	{
  		// Firefox, Opera 8.0+, Safari
  		imxmlHttp=new XMLHttpRequest();
  	}
	catch (e)
  	{
  		// Internet Explorer
  		try
    		{
    			imxmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    		}
  		catch (e)
    		{
    			imxmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    		}
  	}
	return imxmlHttp;
}


function getquerystring() {
    var form     = document.forms['f1'];
    var word = form.word.value;
    qstr = 'w=' + escape(word);  // NOTE: no '?' before querystring
    return qstr;
}

function updatepage(str){
    document.getElementById("im_window_sub").innerHTML = document.getElementById("im_window_sub").innerHTML + "<br>" + str;
}

function send_message()
{
	var userid = document.getElementById('imuserid').value;
	var newmsg = document.getElementById('im_type_message').value;
	var oldmsg = document.getElementById('im_window_sub').innerHTML;
	var touserid = document.getElementById('imtouserid').value;
	//newmsg = escape(newmsg);
	send_msg_to_user(newmsg,userid,touserid,'put');

	//document.getElementById('im_window_sub').innerHTML = oldmsg + "<b>me: </b>" +  newmsg + "<br>";
	document.getElementById('im_type_message').value= "";
	
}

function open_im(touserid,toname)
{
	document.getElementById('im_window').style.visibility="visible";
	document.getElementById('im_window').style.position="absolute";
	document.getElementById('im_im1').style.display = "block";
	document.getElementById('im_im2').style.display = "block";
	document.getElementById('min_win').style.visibility="hidden";
	document.getElementById('min_win').style.position="absolute";
	document.getElementById('imtouserid').value = touserid;
	document.getElementById('imtousername').value = toname;
	document.getElementById('im_title').innerHTML="<font color=\"#FFFFFF\">Chat with "+ toname +"</font>";
	document.getElementById('minim_title').innerHTML="<font color=\"#FFFFFF\">Chat with "+ toname +"</font>";
	imeraseCookie("immsgid");
}

function receive_message()
{
	var userid = document.getElementById('imuserid').value;
	var newmsg = document.getElementById('im_type_message').value;
	var oldmsg = document.getElementById('im_window_sub').innerHTML;
	var touserid = document.getElementById('imtouserid').value;
	//newmsg = escape(newmsg);
	receive_message_usr(userid,'get');
    
	//document.getElementById('im_window_sub').innerHTML = oldmsg + "<b>me: </b>" +  newmsg + "<br>";

	
}

function timingex( ){

		   /*if(document.getElementById('im_test')==null)
		   {
			   //addDiv('im_window');
		   }*/
		   if(document.all)
  				bodyHeight = document.body.offsetHeight;
  		   else
  				bodyHeight = window.innerHeight;
	
		   var bodyWidth = document.body.offsetWidth;
		   
		   document.getElementById('im_window').style.left = bodyWidth - (248+40);
		   document.getElementById('im_window').style.top = bodyHeight - (260);
		   document.getElementById('min_win').style.left = bodyWidth - (248+40);
		   document.getElementById('min_win').style.top = bodyHeight - 28;
		   
		   setInterval("receive_message()",5000);
}

function hide_div(opt)
{
	document.getElementById('im_window').style.visibility="hidden";
	document.getElementById('im_window').style.position="absolute";
	document.getElementById('min_win').style.visibility="hidden";
	document.getElementById('min_win').style.position="absolute";
	document.getElementById('im_im2').style.display="none";
	document.getElementById('im_im1').style.display="none";
	imeraseCookie("immsgid");
	document.getElementById("imseqid").value = 0;
	document.getElementById("im_window_sub").innerHTML = "";

}



function minize()
{
	if(minstat)
	{
		document.getElementById('min_win').style.visibility='hidden';
		document.getElementById('min_win').style.position='absolute';
		//document.getElementById('min_win').style.display='none';
		document.getElementById('im_window').style.visibility='visible';
		document.getElementById('im_window').style.position='absolute';
       	//document.getElementById('im_im2').style.display="none";
	    //document.getElementById('im_im1').style.display="none";

		minstat=false;
	}
	else
	{
		document.getElementById('min_win').style.visibility='visible';
		document.getElementById('min_win').style.position='absolute';
		//document.getElementById('min_win').style.display='block';
		document.getElementById('im_window').style.visibility='hidden';
		document.getElementById('im_window').style.position='absolute';
		//document.getElementById('im_im2').style.display="block";
		//document.getElementById('im_im1').style.display="block";


		minstat=true;
	}
}

function capture_event(keycode)
{
	if(keycode=='13')
	{	
		send_message()
	}
	
}

function imcreateCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function imreadCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function imeraseCookie(name) {
	imcreateCookie(name,"",-1);
}