//====================================================================================================
var initialised = false;

var activTimeout = 4*1000;//keturios sekundes aktyviam timeriui
var pasivTimeout = 30*1000;//puse minutes pasiviam taimeriui, kai zinuciu nera
var hiddenTimeout = activTimeout;
var submitHiddenTimer;

var changeHiddenTimeout = 2*60*1000;//2 minutes taimerio laiko pakeitimui
var hiddenTimer;

var setWriteMsgUsersTimer; //timeris, kuris sudeda userius i zinuciu rasymo selekta

var timeout = 500;//visiem, kur objektai nera initializuoti
var objServerTime;

//kontrole
var remembedLastid = -1;
var controlTimer;
var controlInit = 0;

//====================================================================================================
function initChat(){
	initGetObj();
	objServerTime = document.getObj('tdServerTime');
	document.autoscroll.auto.onmousedown = changeAutoscroll;
	document.msgtime.showtime.onmousedown = changeShowMsgTime;
	initialised = true;
	controlTimer = setTimeout('controlHidden()',pasivTimeout*2);
}

//====================================================================================================
function closeChat(){
	var win = window.open('close.php', 'chatclose','width=40,height=40,resizable=0,scrollbars=no,menubar=no,alwaysRaised=0');
}

//====================================================================================================
function addChatMsg(msgtype,nick,msg,to,email,msgtime)
{
	if(initialised){
		var obj = self.allmsg;
		if(obj.initialised){
			obj.addChatMsg(msgtype,nick,msg,to,email,msgtime);
			changeHiddenTimer();
			return;
		}
	}
	
	setTimeout('addChatMsg('+msgtype+','+nick+','+msg+','+to+','+email+','+msgtime+')',timeout);
}

//====================================================================================================
function submitUsers()
{
	if(initialised){
		var obj = self.users;
		if(obj.initialised){
			obj.submit();
			return;
		}
	}

}

//====================================================================================================
function submitHidden(lastid)
{

	if(submitHiddenTimer)
		clearTimeout(submitHiddenTimer);

	if(!lastid)
		lastid = 0;

	if(initialised){
		var obj = self.hidden;
		if(obj.initialised){
			obj.setLastid(lastid);
			obj.submit();
			return;
		}
	}

	submitHiddenTimer = setTimeout('submitHidden('+lastid+')',timeout);
}

//====================================================================================================
function startHiddenTimer()
{
	var obj = self.hidden;
	if(obj.initialised)
		obj.startTimer(hiddenTimeout);
}

//====================================================================================================
function changeHiddenTimer()
{
	if(submitHiddenTimer)
		clearTimeout(submitHiddenTimer);
	submitHiddenTimer = setTimeout('submitHidden()',500);

	if(hiddenTimer)
		clearTimeout(hiddenTimer);
	hiddenTimeout = activTimeout;

	hiddenTimer = setTimeout('hiddenTimeout=pasivTimeout',changeHiddenTimeout);
}

//====================================================================================================
function setServerTime(serverTime)
{
	if(initialised)
		objServerTime.innerHTML = serverTime;
}

//====================================================================================================
function changeAutoscroll()
{
	var obj = self.allmsg;
	if(obj.initialised){
		obj.autoScroll(!document.autoscroll.auto.checked);
	}
}

//====================================================================================================
function changeShowMsgTime()
{
	var obj = self.allmsg;
		if(obj.initialised){
			obj.showMsgTime(!document.msgtime.showtime.checked);
			return true;
		}
		
	return false;
}

//====================================================================================================
function setUser(uid,nick)
{
	var obj = self.writemsg;
	if(obj.initialised)
		self.writemsg.setUser(uid,nick);
}

//====================================================================================================
function clearMsg()
{
	var obj = self.allmsg;
	if(obj.initialised)
		obj.clearMsg();
}
	
//====================================================================================================
function getUserName(id)
{
	var obj = self.users;
	if(users.initialised)
		return obj.getUserName(id);
	return '';
}

//====================================================================================================
function setWriteMsgUsers()
{
	if(setWriteMsgUsersTimer)
		clearTimeout(setWriteMsgUsersTimer);
	
	var obj = self.writemsg;
	if(obj.initialised){
		var objUsers = self.users;
		if(objUsers.initialised){
			obj.setUsers(objUsers.getUsersArray());
			return;
		}
	}

	setWriteMsgUsersTimer = setTimeout('setWriteMsgUsers()',300);
}

//====================================================================================================
//====================================================================================================
// Kontrole
//====================================================================================================
function setControl(last)
{
	controlInit = 1;
	remembedLastid = last;
}

//====================================================================================================
function controlHidden()
{
	if(!controlInit){
		if(!remembedLastid)
			remembedLastid = -1;
		self.hidden.location = self.location.href+"hidden.php?lastid="+remembedLastid;
	}

	controlInit = 0;
	
	if(controlTimer)
		clearTimeout(controlTimer);
	controlTimer = setTimeout('controlHidden()',pasivTimeout*2);
}

//====================================================================================================

