var xmlHttp;
var xmlHttp2;
var rindex=0;
var tindex=0;
var refcount=0;
var retrycount=0;

var mystate=0;
var refreshed=false;
var connected=true;
var sendingmessage=false;
var cutconnection=false;


function disableSend()
{ 
	document.getElementById('send').onclick=disableSend_f;
	document.getElementById('mybutton').onclick=disableSend_f;
}

function disableSend_f()
{ 
	return false;
}

function enableSend()
{ 
	document.getElementById('send').onclick=enableSend_f;
	document.getElementById('mybutton').onclick=enableSend_f;
	return false;
}

function enableSend_f()
{ 
	sendMessage(document.getElementById('my_message').value);
	return false;
}

function togglecollapse()
{ 
	if (document.getElementById('div1').style.height=="120px") {
		document.getElementById('div1').style.height="300px";
		document.getElementById('toggle').innerHTML="küçült";
	}
	
	else {
		document.getElementById('div1').style.height="120px";
		document.getElementById('toggle').innerHTML="büyüt";
	}
	
	return false;
}

function connection()
{ 
	if (connected) {
		document.getElementById('chat-status').src="/images/chat-offline.gif";
		document.getElementById('connection').innerHTML="bağlan";
		document.getElementById('chatbox_info').innerHTML="Canlı sohbet kapalı.";
		connected=false;
		cutconnection=true;
	}
	
	else {
		document.getElementById('chat-status').src="/images/chat-online.gif";
		document.getElementById('connection').innerHTML="kapat";
		document.getElementById('chatbox_info').innerHTML="Canlı sohbete hoş geldiniz.";
		cutconnection=false;
		refreshMessages();
		
	}
	
	return false;
}

function sendMessage(str)
{ 
if (!connected) {return false;}
if (cutconnection) {alert("Sohbete başlamak için bağlan'a tıklayın."); return false;}
if (sendingmessage) return false;

if (str=="") {
	return false;
}

if (document.getElementById('nickname').value=="") {
	alert ("Lütfen sohbet adınızı yazın.");
	return false;
}

disableSend();

document.getElementById('my_message').value="";

xmlHttp2=GetXmlHttpObject();

if (xmlHttp2==null)
  {
  alert ("Your browser does not support AJAX!");
  return false;
  } 
var url="/pages/chatbox/sendMessage.php";


nick=document.getElementById('nickname').value;


str=nick+"message"+str;
str=escape(str);

str="ser="+str;
xmlHttp2.open("POST",url,true);
xmlHttp2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-9");
xmlHttp2.onreadystatechange=stateChanged;
xmlHttp2.send(str);

return false;

}

function refreshMessages()
{
if (cutconnection) return;
refreshed=false;
str=document.getElementById('my_message').name;


xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  } 
var url="/pages/chatbox/getNewMessages.php";


str="id="+str;


xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-9");
xmlHttp.onreadystatechange=addMessages;
xmlHttp.send(str);

if (rindex<10) {
	rindex++;
}

refcount++;
mydelay=2000+(rindex*500)-(tindex*200);

setTimeout("rfloop()", mydelay);

}

function rfloop ( )
{
  
  if (refreshed) refreshMessages();
  else {
	rindex=1;
	tindex=10;
	
	
	xmlHttp.onreadystatechange = function() { };
	xmlHttp.abort();
	xmlHttp = null;
	
	if (++retrycount<10) {
		//alert(retrycount);
		refreshMessages();
	}
	else {
		document.getElementById('chat-status').src="/images/chat-offline.gif";
		document.getElementById('connection').innerHTML="bağlan";
		document.getElementById('chatbox_info').innerHTML="Canlı sohbet kapalı.";
		connected=false;
		
	}
	
  }
}


function addMessages() 
{ 

if (xmlHttp.readyState==4)
{
connected=true;
refreshed=true;



var txt = xmlHttp.responseText;
txt=unescape(txt);

myindex=txt.indexOf("::msg::");
lastmID= txt.substring(0,myindex);

txt=txt.slice(myindex+7);


myp = document.createElement("div");


myp.innerHTML=txt;

myp.setAttribute("style","margin:0px;padding:0px;font:11px arial;");

myp.style.cssText = "margin:0px;padding:0px;font:11px arial;";

document.getElementById('div1').appendChild(myp);

if(document.getElementById('my_message').name!=lastmID) {
	nDiv = document.getElementById('div1');
	nDiv.scrollTop = nDiv.scrollHeight;
	if (tindex<10) tindex++;
}
else {
	if (tindex>0) tindex--;
}

document.getElementById('my_message').name=lastmID;



}
}


function stateChanged() 
{


if (xmlHttp2.readyState==4)
{
sendingmessage=true;
enableSend();


var txt = xmlHttp2.responseText;

if (txt=="msg_too_long") {
	alert("Mesajınız çok uzun. Lütfen daha kısa bir mesaj yazın.");
	sendingmessage=false;
	return;
}

if (txt=="username_too_long") {
	alert("Sohbet adınız çok uzun. (En çok 15 harf.)");
	sendingmessage=false;
	return;
}

txt=unescape(txt);

myindex=txt.indexOf("::msg::");
lastmID= txt.substring(0,myindex);

txt=txt.slice(myindex+7);



myp = document.createElement("p");


myp.innerHTML=txt;

myp.setAttribute("style","margin:0px;padding:0px 4px;font:11px arial;");

myp.style.cssText = "margin:0px;padding:0px 4px;font:11px arial;";

document.getElementById('div1').appendChild(myp);

document.getElementById('my_message').name=lastmID;
$mesID=document.getElementById('my_message').name;


nDiv = document.getElementById('div1');
nDiv.scrollTop = nDiv.scrollHeight;

document.getElementById('my_message').focus();

rindex=0;

sendingmessage=false;

}

}

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