var Req;
var LastMessageID=0;
var MessageContent;
var UpdateTime;
var GlobalHost;
var Hash;

//Инициализация AJAX компонентов
function MakeQuery(Query){
	//branch for native XMLHttpRequest object
	if(window.XMLHttpRequest){
		Req = new XMLHttpRequest();
		Req.onreadystatechange = SentMessage;
		Req.open("GET", Query, true);
		Req.send(null);
	}
	//branch for IE/Windows ActiveX version
	else if (window.ActiveXObject) {
        	Req = new ActiveXObject("Microsoft.XMLHTTP");
		if (Req) {

		Req.onreadystatechange = SentMessage;
		Req.open("GET", Query, true);
		Req.send();

	        }
	}	
}

//Отправка сообщения
function SendMessage(){
	MessageContent=document.input_string.message_string.value;
	if(MessageContent){
		Query=GlobalHost+'?p=make_chat&content='+escape(MessageContent)+'&last_message_id='+LastMessageID;
		MakeQuery(Query);
	}
}

//Если сообщение успешно отправлено
function SentMessage(){
	if(Req.readyState!=4)return;

	if(MessageContent){
		document.input_string.message_string.value='';	
		MessageContent='';
	}
	
	//Проверка на наличие полученных данных
	if(Req.responseText){
		//Разбиение данных на хеш, списка онлайн и сообщения
		Temp=Req.responseText.split('-->');
		NewHash=Temp[0].substr(4);
		NewOnline=Temp[1].substr(4);
		NewMessages=Temp[2];
		//Сверка хеша, если хеш не совпадает - вывод списка онлайн
		if(Hash!=NewHash){
			Hash=NewHash;
			document.getElementById('chat_users_online').innerHTML=NewOnline;
		}

		//Отображение полученных сообщений в окне чата
		if(NewMessages){
			document.getElementById('chat_window').innerHTML=
				NewMessages+
				document.getElementById('chat_window').innerHTML;

			//Получение ID последнего сообщения
			IDContentBegin=NewMessages.indexOf('id="');
			IDContentEnd=NewMessages.indexOf('"',IDContentBegin+4);
			IDContent=NewMessages.substr(IDContentBegin+4,IDContentEnd-IDContentBegin-4);
			IDArray=IDContent.split('_');
			IDNumber=IDArray[1];
			LastMessageID=IDNumber;
		}
	}

	setTimeout('UpdateWindow()',UpdateTime);
}

//Ф-я обновления содержимого окна чата
function UpdateWindow(){
	Query=GlobalHost+'?p=make_chat&last_message_id='+LastMessageID;
	MakeQuery(Query);
}	

/*------------------------------------*/

var Trans = [];
for (var i = 0x410; i <= 0x44F; i++)
	Trans[i] = i - 0x350; // А-Яа-я
	Trans[0x401] = 0xA8;    // Ё
	Trans[0x451] = 0xB8;    // ё

// Сохраняем стандартную функцию escape()
var escapeOrig = window.escape;

// Переопределяем функцию escape()
window.escape = function(str){
	var ret = [];
	// Составляем массив кодов символов, попутно переводим кириллицу
	for (var i = 0; i < str.length; i++){
		var n = str.charCodeAt(i);
		if (typeof Trans[n] != 'undefined')
			n = Trans[n];
		if (n <= 0xFF)
			ret.push(n);
	}
	return escapeOrig(String.fromCharCode.apply(null, ret));
}
