function writeMessage()
{
    if (document.getElementById('authorize_form_id'))
    {
        afterLogin = function ()
        {
            writeMessage();
        }

        openAuthorize('login_only');
        return;
    }
    
    $('#id_chat_add_errors').hide();
    $('#id_chat_add_loading').show();
    $('#id_chat_add_submit').hide();
    $('#id_chat_add_text').attr('readonly', true);

    $.ajaxUpload
    ({
        url: '/modules/chat/chat.php',
        secureuri: false,
        uploadform: chatForm,
        type: 'POST',
        dataType: 'html',
        success: function (data, status)
        {
            result = eval("(" + data + ")");
            if (result['errors'].length > 0)
            {
                tmp = '';
                for (i = 0; i < result['errors'].length; i++)
                {
                    tmp += '<div>' + result['errors'][i] + '</div>';
                }
                $('#id_chat_add_errors').show();
                $('#id_chat_add_errors').html(tmp);

                $('#id_chat_add_loading').hide();
		$('#id_chat_add_submit').show();
                $('#id_chat_add_text').attr('readonly', false);
            }
            else
            {
                $('#id_chat_add_loading').hide();
		$('#id_chat_add_submit').show();
                $('#id_chat_add_text').attr('readonly', false);
                $('#id_chat_add_text').val('');

                if (chat_page != 1)
                {
                    getPage(1);
                }
                else
                {
                    getNew();
                }
            }
        }
    });
}

function drawPages(count, update)
{
    if (chat_pages_count == count && update == 0)
    {
        return;
    }
    chat_page = parseInt(chat_page);

    $('#id_chat_pages .pageList').html('');

    if (chat_page < 3)
    {
	var pageStart = 1;
    }
    else
    {
	var pageStart = (chat_page - 2);
    }

    if ((count - 4) > chat_page)
    {
        var pageEnd = (chat_page + 2);
    }
    else
    {
        var pageEnd = count;
    }

    if (chat_page > 3)
    {
        $('<li/>', {
            html: $('<a/>', {
                text: '1',
                click: function()
                {
                    getPage(1);
                    return false;
                },
                href: ''
            })
        }).appendTo('#id_chat_pages .pageList');

        if (chat_page > 4)
        {
            $('<li/>', {
                text: '...'
            }).appendTo('#id_chat_pages .pageList');
        }
    }

    for (i = pageStart; i <= pageEnd; i++)
    {
        if (i == chat_page)
        {
            $('<li/>', {
                text: i
            }).appendTo('#id_chat_pages .pageList').addClass('current');
        }
        else
        {
            $('<li/>', {
                html: $('<a/>', {
                    text: i,
                    click: function()
                    {
                        getPage($(this).text());
                        return false;
                    },
                    href: ''
                })
            }).appendTo('#id_chat_pages .pageList');
        }
    }
    chat_pages_count = count;
}

function getNew()
{
    if (chat_page != 1)
    {
        return;
    }

    $.post (
        '/modules/chat/chat.php',
        {
            operation: 'get',
            district_id: district_id,
            last_id: chat_last_id
        },
        function(data) {
            result = eval("(" + data + ")");

            if (result['messages'].length > 0)
            {
                $(result['messages']).each(function(i, row)
                {
		    if (!document.getElementById('id_message_' + row['id']))
		    {
			$('#chat_new_id').clone().prependTo('#id_chat_messages').attr('id', 'id_message_' + row['id']);
			{
			    $('#id_message_' + row['id']).show();
			    $('#id_message_' + row['id'] + ' .date').html(row['date']);
			    $('#id_message_' + row['id'] + ' .text').html(row['text']);
			    
			    if (row['user']['nick'] != '')
			    {
				if (row['user']['avatara'])
				{
				    $('#id_message_' + row['id'] + ' .avatara A').attr('href', '/users/' + row['user']['id'] + '.html');
				    $('#id_message_' + row['id'] + ' .avatara IMG').attr('src', row['user']['avatara']['src']).css('width', row['user']['avatara']['small'][0]).css('height', row['user']['avatara']['small'][1]);
				}
				$('#id_message_' + row['id'] + ' .nick A').text(row['user']['nick']).attr('href', '/users/' + row['user']['id'] + '.html');
			    }
			    else
			    {
				if (row['user']['avatara'])
				{
				    $('#id_message_' + row['id'] + ' .avatara IMG').attr('src', row['user']['avatara']['src']).css('width', row['user']['avatara']['small'][0]).css('height', row['user']['avatara']['small'][1]);
				}
				$('#id_message_' + row['id'] + ' .nick').text('???');
			    }
	
			    if (result['mod'] == 1)
			    {
				$('#id_message_' + row['id'] + ' .buttonsIcons').show();
				
				$('#id_message_' + row['id'] + ' .buttonsIcons A').click(function ()
				{
				    removeObjet('chat/chat', row['id'], 'id_message_' + row['id'], 0, 'сообщения');
				    return false;
				});
			    }
			    else
			    {
				$('#id_message_' + row['id'] + ' .buttonsIcons').remove();
			    }
			}
		    }
                });
                $('#id_chat_messages .item').each(function(i)
                {
                    if (i > 9)
                    {
                        $(this).remove();
                    }
                });
                chat_last_id = result['last_id'];
                drawPages(result['pages'], 0);
            }
        }
    );
}

function getPage(page)
{
    $('#id_chat_hide').css('height', $('#id_chat_messages').height()+20).css('width', $('#id_chat_messages').width());
    $('#id_chat_hide').show();
    $('#id_chat_pages_loading').show();

    $.post (
        '/modules/chat/chat.php',
        {
            operation: 'page',
            district_id: district_id,
            page: page
        },
        function(data) {
            result = eval("(" + data + ")");
            $('#id_chat_add_errors').hide();
            $('#id_chat_add_loading').hide();
	    $('#id_chat_add_submit').show();
            $('#id_chat_add_text').attr('readonly', false);
            $('#id_chat_add_text').val('');

            if (result['messages'].length > 0)
            {
                $('#id_chat_messages').html('');
                $(result['messages']).each(function(i, row)
                {
                    $('#chat_new_id').clone().appendTo('#id_chat_messages').attr('id', 'id_message_' + row['id']);
                    
                    $('#id_message_' + row['id']).show();
                    $('#id_message_' + row['id'] + ' .date').html(row['date']);
                    $('#id_message_' + row['id'] + ' .text').html(row['text']);
                    if (row['user']['sex'] == 'w' && row['user']['nick'] != '')
                    {
                        $('#id_message_' + row['id']).addClass('pink');
                    }

		    if (row['user']['nick'] != '')
		    {
			if (row['user']['avatara'])
			{
			    $('#id_message_' + row['id'] + ' .avatara A').attr('href', '/users/' + row['user']['id'] + '.html');
			    $('#id_message_' + row['id'] + ' .avatara IMG').attr('src', row['user']['avatara']['src']).css('width', row['user']['avatara']['small'][0]).css('height', row['user']['avatara']['small'][1]);
			}
			$('#id_message_' + row['id'] + ' .nick A').text(row['user']['nick']).attr('href', '/users/' + row['user']['id'] + '.html');
		    }
		    else
		    {
			    if (row['user']['avatara'])
			    {
				    $('#id_message_' + row['id'] + ' .avatara IMG').attr('src', row['user']['avatara']['src']).css('width', row['user']['avatara']['small'][0]).css('height', row['user']['avatara']['small'][1]);
			    }
			    $('#id_message_' + row['id'] + ' .nick').text('???');
		    }


		    if (result['mod'] == 1)
		    {
			    $('#id_message_' + row['id'] + ' .buttonsIcons').show();

			    $('#id_message_' + row['id'] + ' .buttonsIcons A').click(function ()
			    {
				    removeObjet('chat/chat', row['id'], 'id_message_' + row['id'], 0, 'сообщения');
				    getPage(page);
				    return false;
			    });
		    }
		    else
		    {
			    $('#id_message_' + row['id'] + ' .buttonsIcons').hide();
		    }
	    });
            }
            chat_last_id = result['last_id'];
            chat_page = page;
            drawPages(result['pages'], 1);
            $('#id_chat_hide').hide();
            $('#id_chat_pages_loading').hide();
        }
    );
}
