var req=null;
var lastTime = 0;
var line = 0;
var lastID = 0;

var countMessages = 5;

var READY_STATE_UNINITIALIZED = 0;
var READY_STATE_LOADING = 1;
var READY_STATE_LOADED = 2;
var READY_STATE_INTERACTIVE = 3;
var READY_STATE_COMPLETE = 4;


function loadXMLDoc(url, post, processReqChange)
{
	if (window.XMLHttpRequest)
	{
		req = new XMLHttpRequest();
        }
        else if (window.ActiveXObject)
        {
        	req = new ActiveXObject("Microsoft.XMLHTTP");
        }
	

	if (req)
	{
        	req.onreadystatechange = processReqChange;
        	req.open("POST", url, true);
        	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        	req.send(post);
                
                
        }
}

function processReqChangeAdd()
{
	var ready = req.readyState;
	var data = null;

	if(ready == READY_STATE_COMPLETE)
	{
		data = req.responseText;
		refresh_chat();
	}
    else
    {
		data = "loading...["+ready+"]";
	}
	
}

function processReqChangeRefresh()
{
	var ready = req.readyState;
	var data = null;
	

	if(ready == READY_STATE_COMPLETE)
	{
		data = req.responseText;
 		page_refresh(data);
	}
	else
	{
		data = "loading...["+ready+"]";
	}
	
}

function MoveToTop()
{
  var i;
  for(i = 0; i < countMessages - 1; i++)
  {
    var mT = document.getElementById("m_" + i);
    var mB = document.getElementById("m_" + (i + 1));
    mT.innerHTML = mB.innerHTML;
  }
}

function page_adding(id, text)
{
	if(line == countMessages)
	{
		MoveToTop();
		line = countMessages - 1;
	}
	
	var m = document.getElementById("m_" + line);
	m.innerHTML = "<div id='message_" + id + "'>" + text + "</div>";
	line++;
}

function page_refresh(data)
{
	//alert(data);
	var ms = data.split("<MessageEnd>");
	var i;
	for(i = 0; i < ms.length - 1; i++)
	{
		var m = ms[i].split("<MessageSep>");
		
		var text = m[0];
		var time = m[1];
		var id = m[2];

		if(time > lastID)
		{
			lastID = time;
			page_adding(id, text);
		}
	}
	
	if(ms.length > 1)
		lastTime = ms[ms.length - 1];
}

function add()
{
	var message = document.getElementById("message");
	var post = "m=" + encodeURIComponent(message.value);  
	loadXMLDoc("add.php", post, processReqChangeAdd);
	message.value = "";
}

function first()
{
	var cm = document.getElementById("cm");
	countMessages = cm.value;
	refresh_chat()
}

function refresh_chat()
{

	var post = "lastTime=" + lastTime;
	loadXMLDoc("read.php", post, processReqChangeRefresh);
	setTimeout('refresh_chat()', 5000);
}

//
// Удаление
//

function DeleteMessage(id)
{
	var req = new MyRequest("delete.php?id=" + id, "", page_DeleteMessage);
	req.Execute();

}

function page_DeleteMessage(data)
{
	if(data == "cancel")
	{
		alert("cancel");
		return;
	}

	var id = data;
	document.getElementById("message_" + id).style.display = "none";
}
  
