var xmlhttpsendmessage, xmlhttponlineuser, xmlhttpreadmessage;
var xmlhttplogout;
var saveresponseText, saveresponselogoutText;
function doGetCaretPosition(ctrl){
	var CaretPos = 0;
	// IE Support
	if (document.selection){
		ctrl.focus();
		var Sel = document.selection.createRange();
		Sel.moveStart('character', -ctrl.value.length);
		CaretPos = Sel.text.length;
	}
	// Firefox support
	else if (ctrl.selectionStart || ctrl.selectionStart == '0')
		CaretPos = ctrl.selectionStart;
	return (CaretPos);
}
function setCaretPosition(ctrl, pos){
	if(ctrl.setSelectionRange){
		ctrl.focus();
		ctrl.setSelectionRange(pos,pos);
	}
	else if (ctrl.createTextRange){
		var range = ctrl.createTextRange();
		range.collapse(true);
		range.moveEnd('character', pos);
		range.moveStart('character', pos);
		range.select();
	}
}
function enterlock() {
  return !(window.event && window.event.keyCode == 13);
}
function enteraccess(usertext) {
  if (window.event && window.event.keyCode == 13) {
    sendmessage(usertext);
    return false; }
  else
    return true;
}
function sendmessage(str) {
  xmlhttpsendmessage=GetXmlHttpSendMessageObject();
  if (xmlhttpsendmessage==null) {
     alert ("Browser does not support HTTP Request");
     return;
  }
  var url="saveusermessage.php";
  url=url+"?usermessage="+encodeURIComponent(str);
  str='';
  url=url+"&sid="+Math.random();
  xmlhttpsendmessage.onreadystatechange=statesaveChanged;
  xmlhttpsendmessage.open("GET",url,true);
  xmlhttpsendmessage.send(null);
}
function readmessage() {
  xmlhttpreadmessage=GetXmlHttpReadMessageObject();
  if (xmlhttpreadmessage==null) {
     alert ("Browser does not support HTTP Request");
     return;
  }
  var url="readusermessage.php";
  xmlhttpreadmessage.onreadystatechange=statereadChanged;
  xmlhttpreadmessage.open("GET",url,true);
  xmlhttpreadmessage.send(null);
}
function onlineuser() {
  xmlhttponlineuser=GetXmlHttpOnlineUserObject();
  if (xmlhttponlineuser==null) {
     alert ("Browser does not support HTTP Request");
     return;
  }
  var url1="readonlineuser.php";
  xmlhttponlineuser.onreadystatechange=onlineuserChanged;
  xmlhttponlineuser.open("GET",url1,true);
  xmlhttponlineuser.send(null);
}
function logout() {
  xmlhttplogout=GetXmlHttpLogoutObject();
  if (xmlhttplogout==null) {
     alert ("Browser does not support HTTP Request");
     return;
  }
  var url="chatlogout.php";
  xmlhttplogout.onreadystatechange=statelogoutChanged;
  xmlhttplogout.open("GET",url,true);
  xmlhttplogout.send(null);
  //window.location="http://s112.com.ua";
  location.replace('../index.php');
}
function statesaveChanged() {
  if (xmlhttpsendmessage.readyState==4 || xmlhttpsendmessage.readyState=="complete") {
    if (saveresponseText!=xmlhttpsendmessage.responseText) {
        //document.getElementById("txtHint").innerHTML=document.getElementById("txtHint").innerHTML+xmlhttpsendmessage.responseText;
        //document.getElementById("txtHint").doScroll('scrollbarPageDown');
        document.writeform.usermessage.value = '';
        saveresponseText = xmlhttpsendmessage.responseText;
    }
  }
}
function statereadChanged() {
var systemtext, systemvalue;
var resultsHTML = new Array();
  if (xmlhttpreadmessage.readyState==4 || xmlhttpreadmessage.readyState=="complete") {
     if (xmlhttpreadmessage.responseText!='') {
       if (saveresponseText!=xmlhttpreadmessage.responseText) {
           systemtext=xmlhttpreadmessage.responseText;
           systemvalue='';
		   systemvalue=systemtext.substr(0,7);
           if (systemvalue=='system:') {
               onlineuser();
               systemvalue='';
		       systemvalue=systemtext.substr(8,systemtext.length);
               document.getElementById("txtHint").innerHTML=document.getElementById("txtHint").innerHTML+systemvalue;
           } else {
               onlyuservalue='';
               onlyuservalue=systemtext.substr(0,1);
               if (onlyuservalue=='%') {
                 systemvalue='';
		         systemvalue=systemtext.substr(1,systemtext.length);
                 document.getElementById("onlyusertext").innerHTML=document.getElementById("onlyusertext").innerHTML+systemvalue;
                 document.getElementById("onlyusertext").doScroll('scrollbarPageDown');
               } else {
                 systemvalue='';
		         systemvalue=systemtext.substr(0,systemtext.length);
                 document.getElementById("txtHint").innerHTML=document.getElementById("txtHint").innerHTML+systemvalue;
               }
           }
           document.getElementById("txtHint").doScroll('scrollbarPageDown');
           saveresponseText = xmlhttpreadmessage.responseText;
       }
     }
  }
}
function onlineuserChanged() {
  if (xmlhttponlineuser.readyState==4 || xmlhttponlineuser.readyState=="complete") {
     if (xmlhttponlineuser.responseText!='') {
     document.getElementById("onlineuser").innerHTML=xmlhttponlineuser.responseText;
     }
  }
}
function statelogoutChanged() {
  if (xmlhttplogout.readyState==4 || xmlhttplogout.readyState=="complete") {
    if (saveresponselogoutText!=xmlhttplogout.responseText) {
        document.getElementById("txtHint").innerHTML=document.getElementById("txtHint").innerHTML+xmlhttplogout.responseText;
        document.getElementById("txtHint").doScroll('scrollbarPageDown');
        document.writeform.usermessage.value = '';
        saveresponselogoutText = xmlhttplogout.responseText;
    }
  }
}
function showonlineuser(onlinestr) {
  document.getElementById("onlineuser").innerHTML=onlinestr;
}
function cleartxtHint() {
  document.getElementById("txtHint").innerHTML='';
}
function clearonlyusertext() {
  document.getElementById("onlyusertext").innerHTML='';
}
function nicktext(nickstr) {
  document.getElementById("usermessage").focus();
  document.getElementById("usermessage").value=document.getElementById("usermessage").value+nickstr+": ";
  setCaretPosition(document.getElementById("usermessage"),document.getElementById("usermessage").value.length);
}
function smiletext(smilestr) {
  document.getElementById("usermessage").focus();
  document.getElementById("usermessage").value=document.getElementById("usermessage").value+smilestr;
  setCaretPosition(document.getElementById("usermessage"),document.getElementById("usermessage").value.length);
}
function onlyuser(onlyuserstr) {
  document.getElementById("usermessage").focus();
  document.getElementById("usermessage").value=document.getElementById("usermessage").value+onlyuserstr;
  setCaretPosition(document.getElementById("usermessage"),document.getElementById("usermessage").value.length);
}
function GetXmlHttpSendMessageObject() {
var xmlhttpsendmessage=null;
try {
 // Firefox, Opera 8.0+, Safari
 xmlhttpsendmessage=new XMLHttpRequest();
 }
 catch (e) {
 //Internet Explorer
 try {
  xmlhttpsendmessage=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e) {
  xmlhttpsendmessage=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlhttpsendmessage;
}
function GetXmlHttpOnlineUserObject() {
var xmlhttponlineuser=null;
try {
 // Firefox, Opera 8.0+, Safari
 xmlhttponlineuser=new XMLHttpRequest();
 }
 catch (e) {
 //Internet Explorer
 try {
  xmlhttponlineuser=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e) {
  xmlhttponlineuser=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlhttponlineuser;
}
function GetXmlHttpReadMessageObject() {
var xmlhttpreadmessage=null;
try {
 // Firefox, Opera 8.0+, Safari
 xmlhttpreadmessage=new XMLHttpRequest();
 }
 catch (e) {
 //Internet Explorer
 try {
  xmlhttpreadmessage=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e) {
  xmlhttpreadmessage=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlhttpreadmessage;
}
function GetXmlHttpLogoutObject() {
var xmlhttplogout=null;
try {
 // Firefox, Opera 8.0+, Safari
 xmlhttplogout=new XMLHttpRequest();
 }
 catch (e) {
 //Internet Explorer
 try {
  xmlhttplogout=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e) {
  xmlhttplogout=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlhttplogout;
}