trustdev.provide('chat');
trustdev.provide('chat.settings');

chat.updaterTimer = null;
chat.updaterLock = false;

chat.settings.chat_sound_enabled = 1;
chat.settings.chat_highlight_enabled = 1;
chat.settings.chat_auto_scroll = 1;

$(document).ready(function() {
    $(document.body).append('<div id="soundContainer"></div>');
    $(document.body).append('<div id="soundOff"></div>');
    $(document.body).append('<div id="soundOn"></div>');
    if (!$.browser.msie) {
        $('#soundOff').css('position', 'fixed');
        $('#soundOn').css('position', 'fixed');
    }
});

chat.playSound = function(path) {
    var sound = path + '.swf';
    if ($.browser.msie) {  // IE
    	$('#soundContainer').html('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0"><param name="movie" value="' + sound + '"><param name="quality" value="high"></object>');
    } else {               // остальные браузеры
        $('#soundContainer').html('<embed src="' + sound + '" width="1" height="1" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash"></embed>');
    }
}

chat.updater = function() {

    if (!chat.updaterLock) {

    	chat.updaterLock = true;

    	var isInit = (0 == chatLastId);

		$.get('/static/chat.html?random=' + Math.random(), function(jsonData) {
        if (jsonData) {
            data = $.evalJSON(jsonData);

            for (var messageId in data)
                if (parseInt(chatLastId) < parseInt(messageId)) {
                    if (0 == chatLastId)
                        $('#chat_messages').html('');

                    var style = '';

                    if (chatAdministrators[data[messageId][1]]) {
                    	style = ' admin';
//                    	data[messageId][2] = 'Администрация ОБАНА.BY';
                    }

                    if (chatSupporters[data[messageId][1]]) {
                    	style = ' support';
                    	data[messageId][2] = 'Поддержка ОБАНА.BY';
                    }

                    if (chatDeliveries[data[messageId][1]]) {
                    	style = ' support';
                    	data[messageId][2] = 'Cлужба доставки ОБАНА.BY';
                    }

                    if (chatUser == data[messageId][1]) {
                    	style = ' support';
                    	data[messageId][2] = 'Информация';
                    }

                    if (chatUser == data[messageId][1]) {

                    	message = data[messageId][3];

                    	if (chatCurrentUser && -1 != message.indexOf('[PLUGIN_NEWS]') && !chat.settings.plugin_news)
                    		continue;

                    	if (chatCurrentUser && -1 != message.indexOf('[PLUGIN_SYSTEM]') && !chat.settings.plugin_system)
                    		continue;

                    	if (chatCurrentUser && -1 != message.indexOf('[PLUGIN_BLOG]') && !chat.settings.plugin_blog)
                    		continue;

                    	if (chatCurrentUser && -1 != message.indexOf('[PLUGIN_QUIZ]') && !chat.settings.plugin_quiz)
                    		continue;

//                    	if (-1 != message.indexOf('[PLUGIN_QUIZ]')) {
//                    		$('body').disableTextSelect();
//                    		$('#chat_message').enableTextSelect();
//                    	}

                    	message = message.replace('[PLUGIN_NEWS]', '');
                    	message = message.replace('[PLUGIN_SYSTEM]', '');
                    	message = message.replace('[PLUGIN_BLOG]', '');
                    	message = message.replace('[PLUGIN_QUIZ]', '');

                    	data[messageId][3] = message;

                    	var messageHtml = '<span class="data">' + data[messageId][0] + '</span> ';

                    } else {

                         if (chatCurrentUser=="admin" || chatCurrentUser=="sergey") var messageHtml = '<span class="data">' + data[messageId][0] + '</span> <a onmouseover="$(this).find(\'img\').attr(\'src\', \'/images/del_sm_over.png\');" onmouseout="$(this).find(\'img\').attr(\'src\', \'/images/del_sm.png\');" href="#" onClick="chat.messageDel(' + messageId + '); return false;" title=""><img src="/images/del_sm.png" width="13" height="13" style="margin-bottom: -2px;" alt="" /></a> <a onmouseover="$(this).find(\'img\').attr(\'src\', \'/images/info_sm_over.png\');" onmouseout="$(this).find(\'img\').attr(\'src\', \'/images/info_sm.png\');" href="/profile/' + data[messageId][1] + '" title="Профиль участника"><img src="/images/info_sm.png" width="13" height="13" style="margin-bottom: -2px;" alt="Профиль участника" /></a> <a href="#" class="link' + style + '" onclick="chat.addTo(\'' + data[messageId][2] + '\'); return false;">' + data[messageId][2] + '</a> &nbsp; ';
                    	else var messageHtml = '<span class="data">' + data[messageId][0] + '</span> <a onmouseover="$(this).find(\'img\').attr(\'src\', \'/images/info_sm_over.png\');" onmouseout="$(this).find(\'img\').attr(\'src\', \'/images/info_sm.png\');" href="/profile/' + data[messageId][1] + '" title="Профиль участника"><img src="/images/info_sm.png" width="13" height="13" style="margin-bottom: -2px;" alt="Профиль участника" /></a> <a href="#" class="link' + style + '" onclick="chat.addTo(\'' + data[messageId][2] + '\'); return false;">' + data[messageId][2] + '</a> &nbsp; ';

                    }

                    // Сообщение текущему пользователю
                    var address = data[messageId][3].split(":", 1);
                    var isMessageToUser = chatCurrentUser && chatCurrentUser == address;

                    messageHtml += (isMessageToUser && chat.settings.chat_highlight_enabled ? '<strong>' + data[messageId][3] + '</strong>' : data[messageId][3]);

                    if (!isInit && isMessageToUser && chat.settings.chat_sound_enabled)
                    	chat.playSound('/swf/chat');

                    messageHtml += '<br />';

                    $('#chat_messages').append(messageHtml);
                    $('#chat_block_small_inner').html(messageHtml);

                    chatLastId = messageId;

                    if (chat.settings.chat_auto_scroll)
                    	document.getElementById('chat_messages').scrollTop = document.getElementById('chat_messages').scrollHeight;
                }
			}

			chat.updaterLock = false;

		});

	}

	chat.updaterTimer = setTimeout("chat.updater()", 2000);

}

chat.toggleSettings = function() {
	$('#chat_settings').slideToggle('fast');
}

chat.toggleSmiles = function() {
	$('#chat_smiles').slideToggle('fast');
}

chat.toggle = function() {
    if (1 == $.cookie('chat_enabled'))
        $.cookie('chat_enabled', 0, { expires: 31, path: '/' });
    else
        $.cookie('chat_enabled', 1, { expires: 31, path: '/' });

    $('#chat_block_full').toggle();
    $('#chat_block_small').toggle();
}

chat.messageAdd = function(message) {

    $('#chat_message').val('');

    if (message)
        $.post('/api/chat_add.php?random=' + Math.random(), {'message': message}, function (data) {
            if (1 != data)
                messages.show(data);
        });
}

chat.messageDel = function(messageId) {

    if (messageId)
        $.post('/api/chat_del.php?random=' + Math.random(), {'messageId': messageId}, function (data) {
            chatLastId = 0;
            if (1 != data)
                messages.show(data);
        });
}