var backendURL = '/vchat/vchat-backend-mysqli.php';
var lastTime = 0;
var refreshTime = 4000;

smiliesDir = '/vchat/images/smilies/';

$(document).ready(function() {		
	updateMessages();
});

function updateMessages() {
	processing = true;
	$.post(backendURL,
		{
	     	action: 'refreshInfo',
	     	lastTime: lastTime
		}, function(xml) {					
			onUpdateMessageResult(xml);
		}
	);
}

function onUpdateMessageResult(xml) {	
	if(!processing) return;

	typingStr = '';	
	_status = $("sysInfo/status", xml).text();
	switch(_status) {
		case "1":	
			_lastTime = parseFloat($("sysInfo/lastTime",xml).text());
			if(_lastTime > lastTime) {			
				members = new Object();		
				$("members/member", xml).each(function(i){
					_chatId = $(this).attr('chatId');
					_chatMember = new Object();
					_chatMember['chatId'] = _chatId;
					_chatMember['color'] = $(this).attr('color');
					_chatMember['nick'] = $(this).text();
					_chatMember['inChat'] = $(this).attr('inChat');	
					_chatMember['isTyping'] = $(this).attr('isTyping');	
					_chatMember['userId'] = $(this).attr('userId');	
					members[_chatId] = _chatMember;	
				});
		
				$("messages/*", xml).each(function(i){
					   switch(this.nodeName) {
						   	case 'sysMessage':
						   		addSysMessage(members, this);
						   		break;			   		
						   	case 'memMessage':
						   		addMemMessage(members, this);
						   		break;				 
					   }
				});
				
				lastTime = _lastTime;
			}
			break;
	}
	
	setTimeout("updateMessages()", refreshTime);
	processing = false;
}

function addSysMessage(members, msg) {
	
	_time = parseFloat($(msg).attr('time'));
	if(_time <= lastTime) return;
	_chatId = $(msg).attr('chatId');
	_date = new Date();
	_formatedDate = formatDate(_time);	
	_chatMember = members[_chatId];

	if(_chatMember != null) {
		msgType = $(msg).attr('type');
		isUser = $(msg).attr('isUser');
		
		str = "<div class=\"system\"><span class=\"time\">[" + _formatedDate + "]</span> " + "<span style='";
		if(isUser == '1') str += " font-weight: bold;";
		str += " color:" + _chatMember['color'] + "'>" + _chatMember['nick']+ "</span> ";
		switch(msgType) {
			case 'in':
				str += " vstoupil do chatu";	
				break;
			case 'out':
				str += " opustil chat";
				break;
			case 'expire':
				str += " byl pro neaktivnost odhlášen";
				break;
		}		
		str += "</div>";	

		$("#chatInfo").prepend(str);
	}
}

function addMemMessage(members, msg) {	
	_private = $(msg).attr('private');
	if(_private == 'true') return;
	_time = parseFloat($(msg).attr('time'));	
	if(_time <= lastTime) return;
	_senderId = $(msg).attr('senderChatId');
	_recipientId = $(msg).attr('recipiendChatId');
	_date = new Date();
	_formatedDate = formatDate(_time);	
	_senderMember = members[_senderId];
	
	if(_senderMember != null) {
		
		str = '<div  style="color: ' + _senderMember['color'] + ';" >';
		str += "<span class=\"time\">[" + _formatedDate + "]</span> " + "<span style='" + (_senderMember['userId'] != null ? 'font-weight: bold; ':'') + "color:"+_senderMember['color']+"'>" + _senderMember['nick']+ "</span>";			
		
		if(_recipientId != null) {
			_recipientMember = members[_recipientId];
			if(_recipientMember != null) {
				str += "-><span style='" + (_recipientMember['userId'] != null ? 'font-weight: bold; ':'') + "color:"+_recipientMember['color']+"'>" + _recipientMember['nick']+ "</span>";
			}
		}

		str += ': ' + formatText($(msg).text());
		str += "</div>";	
		
		$("#chatInfo").prepend(str);
	} 
}

function formatDate(time) {
	_date = new Date();
	_date.setTime(parseInt(time) * 1000);
	h = _date.getHours();
	m = _date.getMinutes();
	s = _date.getSeconds();
	return (h < 10 ? '0':'') + h + ":" + (m < 10 ? '0':'') + m + ":" + (s < 10 ? '0':'') + s;
}

